面试题答案
一键面试常见认证漏洞
- 弱密码问题
- 描述:用户设置简单易猜的密码,如生日、123456 等,或系统默认密码未更改,导致攻击者可通过暴力破解或字典攻击获取用户凭证。
- 举例:某系统默认密码为“admin123”,攻击者通过尝试常用默认密码即可登录。
- 密码泄露
- 描述:因数据存储安全问题,如数据库被攻击,或用户在其他不安全网站使用相同密码,导致密码泄露,攻击者可利用泄露密码在 OAuth 授权服务器登录。
- 举例:某知名网站数据库泄露,其中用户密码明文存储,攻击者获取后尝试在 OAuth 授权服务器登录。
- 暴力破解
- 描述:攻击者通过自动化工具不断尝试用户名和密码组合,直至成功登录。
- 举例:使用工具对常见用户名进行大量密码尝试,如每秒尝试数百个密码。
- 重放攻击
- 描述:攻击者截取并记录合法用户的认证请求,然后在稍后重放这些请求,以获取授权。
- 举例:在网络传输中截取用户登录请求包,再次发送该包,绕过认证机制。
- 中间人攻击
- 描述:攻击者拦截通信双方的信息交互,篡改数据或获取认证信息。
- 举例:在公共 Wi-Fi 环境下,攻击者通过 ARP 欺骗,拦截用户与 OAuth 授权服务器通信,获取用户认证信息。
- 未授权访问
- 描述:系统未对某些关键接口或功能进行有效的权限控制,攻击者可直接访问。
- 举例:直接访问用户敏感信息接口,无需认证即可获取数据。
- 钓鱼攻击
- 描述:攻击者伪装成合法的 OAuth 授权服务器,诱导用户输入用户名和密码,从而获取用户凭证。
- 举例:发送钓鱼邮件,链接到伪造的 OAuth 登录页面,用户输入信息后被攻击者获取。
初步检测方法
- 弱密码检测
- 方法:使用密码强度检测工具,对现有用户密码进行检测,判断是否存在弱密码。
- 举例:采用开源的密码强度检测脚本,对数据库中存储的密码进行检测。
- 密码泄露检测
- 方法:定期检查暗网等非法渠道是否有本系统相关的密码泄露信息,或使用第三方密码泄露检测服务。
- 举例:订阅专业的暗网监测服务,及时获取可能的密码泄露情报。
- 暴力破解检测
- 方法:通过分析系统日志,查看是否有异常频繁的登录失败记录。
- 举例:设定规则,若同一 IP 地址在短时间内(如 5 分钟)有超过 50 次登录失败记录,视为可能的暴力破解行为。
- 重放攻击检测
- 方法:在认证请求中添加时间戳或一次性随机数,验证请求的新鲜度,检测重放的请求。
- 举例:每次认证请求附带当前时间戳,服务器验证时间戳是否在合理时间范围内。
- 中间人攻击检测
- 方法:使用网络流量分析工具,检测异常的网络流量,如 ARP 欺骗攻击产生的异常 ARP 响应包。
- 举例:使用 Wireshark 分析网络流量,查看是否有异常 ARP 包。
- 未授权访问检测
- 方法:对系统接口进行遍历测试,尝试在未登录状态下访问,检查是否存在未授权可访问的接口。
- 举例:使用自动化工具对系统所有公开接口进行未认证访问测试。
- 钓鱼攻击检测
- 方法:通过监测用户反馈,或定期进行钓鱼模拟测试,检测用户对钓鱼攻击的防范意识。
- 举例:发送模拟钓鱼邮件,统计点击邮件链接并输入信息的用户比例,对相关用户进行安全教育。