Day21-05|4.7.3 欺骗攻击与防御:不要把“看起来像”当成可信身份

本文对应《系统架构设计师教程(第2版)》第4章“信息安全技术基础知识”4.7.3“欺骗攻击与防御”。欺骗攻击的共同点是攻击者伪造或操纵身份、地址、消息、页面、服务或上下文,使系统或用户相信一个不真实的对象。架构防御的核心不是记住大量攻击名词,而是建立可验证的身份、完整的信任链、不可重放的请求和可追溯的审计证据。

一、学习目标与考试定位

完成本节后,应能够解释欺骗攻击的基本思路,区分 IP 欺骗、ARP 欺骗、DNS 欺骗、网站和邮件欺骗、会话欺骗、重放攻击以及社会工程诱导;能够从认证、授权、通信保护、终端安全、域名治理和安全运营等层面设计防御;能够分析“只看 IP”“只看用户名”“只用一次登录令牌”等方案的缺陷;能够将防御措施写成案例题和论文中的完整架构决策。

综合知识题常考概念边界:伪造源地址不等于获得真实身份,HTTPS 加密不等于服务器一定可信,登录成功不等于后续每个请求都安全,数字签名保护完整性和来源但不能自动解决权限问题。案例题则会给出“用户被导向假站点”“内网出现网关地址冲突”“接口请求被复制后再次提交”等现象,要求说明原因和改进方案。

二、什么是欺骗攻击

欺骗攻击是攻击者通过伪造身份信息、网络地址、域名解析、通信报文、登录页面、邮件发件人或业务上下文,诱使系统或人员作出错误信任判断的攻击。它往往不直接破解密码,而是攻击信任关系:让接收方误以为请求来自可信主机,让用户误以为页面属于真实机构,让服务误以为旧请求是新请求。

欺骗攻击可以沿着三条路径发生。第一条是机器到机器的身份欺骗,例如伪造 IP、MAC、DNS 响应或证书;第二条是人到机器的界面欺骗,例如钓鱼网站、仿冒应用和伪造邮件;第三条是消息和状态欺骗,例如复制合法报文、修改请求上下文、伪造回调或构造过期令牌。防御必须覆盖网络、协议、应用和人员,而不能只部署一个防火墙。

判断一个身份是否可信,至少要问四个问题:身份由谁声明,声明是否经过独立验证;凭证是否仍然有效,是否已被撤销或过期;本次请求是否属于该身份和该设备、会话、资源;请求是否新鲜、完整、未被重复使用。只有用户名、IP 地址、User-Agent 或前端参数,都不能单独作为强身份依据。

三、常见欺骗攻击及其原理

1. IP 地址欺骗

攻击者伪造报文的源 IP 地址,使接收方误以为报文来自其他主机。它适合隐藏来源、绕过基于地址的简单过滤、制造反射流量或干扰访问控制。但攻击者伪造源地址后通常难以接收正常返回数据,因此更适合单向攻击或反射场景。仅依赖源 IP 做身份认证是危险的,尤其在开放网络、代理链路和云环境中。

防御包括边界源地址校验、出口反向路径验证、限制不必要的放大服务、使用加密认证协议、在应用层绑定用户和会话身份。对于必须双向交互的业务,不能把“来源 IP 是白名单”当成充分条件,还要验证证书、令牌、签名或多因素凭据。

2. ARP 欺骗

在局域网中,ARP 用于把 IP 地址解析为 MAC 地址。攻击者发送伪造的 ARP 响应,可能让主机把网关 IP 映射到攻击者的 MAC 地址,从而实施中间人窃听、篡改或拒绝服务。其危险在于网络层以上的应用可能没有明显异常,用户只是发现访问被转发或证书出现警告。

防御可采用交换机端口安全、动态 ARP 检测、DHCP Snooping、静态绑定或可信网络分区;通信层使用 TLS 并严格验证证书,避免即使流量被转发也能被无声解密;重要终端启用网络入侵检测和异常网关告警。安全架构不能只相信“内网”,内网也应按零信任思路进行身份和链路保护。

3. DNS 欺骗

DNS 欺骗是让域名解析到错误地址,可能通过缓存投毒、恶意 DNS 服务、劫持链路或终端配置实现。用户输入的域名看似正确,却被带到仿冒站点。若仿冒站点还使用相似页面和诱导信息,用户可能主动提交账号和验证码。

防御包括使用可信递归解析服务、部署 DNSSEC 验证、保护 DNS 配置和管理账户、监控解析结果变化、限制终端随意修改 DNS,并通过 HTTPS 证书校验降低错误解析的危害。需要注意,DNSSEC 主要验证 DNS 数据来源和完整性,不能代替应用认证,也不能阻止用户访问一个拥有合法证书但本身是恶意的相似域名。

4. 网站、邮件和社交工程欺骗

仿冒网站常使用相似域名、相同标识、伪造登录界面或虚假的紧急通知诱导用户。邮件欺骗可能伪造显示名称、发件人地址或组织关系,攻击者还会结合泄露信息进行定向钓鱼。此类攻击同时利用技术漏洞和人的判断偏差,单靠网络设备难以完全阻止。

组织应配置域名和邮件认证策略,保护域名注册与 DNS 管理账号,启用多因素认证和密码管理器,培训用户识别异常链接、附件和授权请求,并建立可疑邮件上报机制。高风险操作应采用二次确认和独立信道核验,例如转账账号变更不能只凭邮件确认。

5. 会话欺骗和令牌窃取

攻击者取得会话标识、访问令牌或刷新令牌后,可能冒充合法用户调用接口。来源可能是跨站脚本、恶意扩展、日志泄露、不安全存储、终端感染或中间人攻击。若系统只检查“令牌格式正确”,就可能接受被窃取的会话。

防御包括使用安全传输、设置 HttpOnly 和 Secure Cookie、合理的 SameSite 策略、短期访问令牌、受保护的刷新令牌、会话固定防护、登录后重新生成会话标识,以及在敏感操作时再次认证。令牌应绑定必要的客户端、设备、范围或密钥证明,并在异常地域、设备、速度和行为出现时触发风险控制。

6. 重放攻击

重放攻击不一定修改合法报文,而是把曾经有效的请求再次发送。例如重复提交支付、重复执行退款、重复变更配置或重复调用一次性接口。即使报文签名有效,若系统没有检查时间、随机数和唯一请求号,旧请求仍可能被接受。

防御可在请求中加入时间戳、随机挑战值、唯一 nonce、序列号或幂等键,并将这些字段纳入签名或 MAC 计算;服务端维护一定时间窗口内的已用标识;关键操作使用一次性令牌和状态机约束;对重复请求返回同一业务结果而不是再次执行。时间同步、存储容量和多节点一致性是落地时必须解决的问题。

四、可信身份的架构基础

强身份通常由身份、凭证、验证器和授权策略共同组成。身份是“谁”,凭证是“凭什么证明”,验证器负责检查凭证是否有效,授权策略决定该身份能做什么。数字证书可以把公钥与主体绑定,但验证证书链、有效期、用途、撤销状态和域名匹配都很重要。密码、短信、硬件密钥、生物特征和客户端证书的安全强度与使用场景不同,不能只看认证方式的名字。

信任对象 需要验证的内容 常见防护
用户 凭据真实性、登录风险、二次认证 多因素认证、风险控制、会话管理
设备 设备身份、完整性、状态 设备证书、可信启动、终端检测
服务 服务身份、证书链、用途 TLS、双向认证、服务注册治理
请求 来源、完整性、新鲜性、权限 签名/MAC、nonce、时间窗、授权策略
域名 解析完整性、证书匹配、管理权 DNSSEC、证书监控、域名保护

五、请求签名与防重放设计

对于跨机构接口、开放平台和高价值操作,可以设计请求签名。客户端使用私钥或共享密钥对规范化请求进行签名,服务端验证签名、身份、时间戳、nonce、请求路径、HTTP 方法和关键参数。签名覆盖范围必须明确,否则攻击者可能替换未签名的参数、路径或目标租户。

防重放存储可采用集中式缓存记录 nonce,也可在分布式系统中使用带过期时间的唯一请求表。若允许多个节点并行校验,必须考虑原子写入和网络分区;若仅依赖本地内存,不同节点可能分别接受同一个请求。对于支付和库存等状态变化操作,还应通过幂等键和数据库唯一约束形成最后一道保护。

六、架构案例:企业门户被导向仿冒站点

某企业员工收到“账户即将停用”的邮件,点击链接进入仿冒登录页。攻击者获得账号后登录门户,进一步调用内部系统。事后发现企业允许员工使用短信验证码登录,门户未启用强制多因素认证,邮件域名保护和异常登录检测也不完善。

改造应分为四层。第一,域名和邮件层启用发件人认证、反钓鱼策略、恶意链接检测和域名注册保护;第二,身份层对管理员、财务和远程访问强制使用抗钓鱼多因素认证,对高风险登录进行设备和地理位置评估;第三,会话层缩短令牌寿命,保护 Cookie,登录后重新生成会话,并对敏感操作实施再次认证;第四,运营层采集登录、授权、令牌刷新和异常下载日志,发现异常时撤销会话、冻结凭据并通知用户。

不能简单地说“禁止所有外链”,因为业务通知可能需要外部链接;也不能只依赖短信验证码,因为短信本身可能被劫持或转发。合理方案应把用户教育、邮件治理、强认证、风险控制和应急撤销结合起来。

七、常见错误认识

第一,IP 白名单不是身份认证,它只能表达网络位置或管理约束。第二,HTTPS 不是“看到锁图标就绝对安全”,仍需验证域名、证书链和页面来源。第三,签名有效不代表业务一定允许执行,验签之后还必须授权。第四,令牌有签名不代表不会重放,仍需时间窗、nonce 或幂等控制。第五,内网不是天然可信,ARP、DNS、账号和终端都可能遭受欺骗。第六,验证码不是万能防线,必须与限流、风险评分和异常行为检测配合。

八、课后练习

练习一:单项选择

为了防止攻击者复制一次合法支付请求并再次提交,最有效的组合是( )。

A. 只校验客户端 IP;B. 只验证数字签名;C. 在签名覆盖范围内加入时间戳、唯一 nonce 和幂等键,并由服务端校验使用状态;D. 只增加密码长度。

答案:C。签名可以证明请求来源和完整性,但不能自动证明请求是首次提交;时间戳、nonce 和幂等键共同限制重放。

练习二:简答题

为什么“根据源 IP 判断可信身份”不可靠?请写出至少四项原因或改进措施。

参考答案:源 IP 可以被伪造,也可能代表代理、NAT 或共享出口;云环境地址可能动态变化;内网主机被攻陷后仍可使用可信网段;IP 不能表达具体用户、设备和请求权限。改进包括使用证书、令牌或签名验证身份;采用最小权限授权;对通信启用 TLS 或双向认证;结合设备、会话、行为和风险进行动态判断;在边界实施源地址校验,但不把它作为唯一认证因素;记录并审计身份和授权决策。

练习三:案例分析

某开放平台使用 API Key 认证,客户端将 Key 放在 URL 参数中。攻击者通过代理日志获得 Key 后,能够长期调用接口。请分析风险并给出改造方案。

参考答案:URL 可能进入浏览器历史、代理日志、Web 服务器访问日志、监控系统和第三方 Referer,导致 Key 扩散;长期有效且无调用范围限制会扩大影响。改造应使用 HTTPS,避免敏感凭据放在 URL 中,改用受保护的请求头或签名方案;为客户端分配最小权限和接口范围,设置过期时间、调用配额和来源约束;使用短期令牌和可轮换凭据;对高价值请求加入时间戳、nonce、请求路径和关键参数签名;建立泄露检测、立即撤销、重新签发和审计流程。

九、论文素材

论文可写:针对系统面临的身份伪造、会话窃取和请求重放风险,我建立了多层信任防护。入口侧通过安全域名、邮件认证和 TLS 证书验证降低仿冒风险,身份侧采用多因素认证、设备识别和最小权限授权,服务间通过双向认证建立可验证的服务身份,关键接口采用覆盖方法、路径、参数、时间戳和唯一随机数的请求签名,并以幂等键和状态机防止重复执行。运营侧持续监控异常地域、设备、频率和权限使用,对疑似泄露凭据执行会话撤销、密钥轮换和事件复盘。

正式写作时应补充项目场景和结果,比如仿冒登录事件如何发现、风险规则如何减少误报、敏感操作的二次认证如何保障体验、密钥轮换如何做到不停机。论文得分来自“威胁—决策—实现—验证”的闭环,而不是单纯罗列攻击名称。

十、今日复盘

欺骗攻击的本质是破坏信任判断。IP、MAC、域名、页面、令牌和报文都可能被伪造或复制,系统必须使用可验证的身份凭据、完整的证书链、明确的签名覆盖范围、时间戳和 nonce,并把认证与授权、会话管理、幂等控制和审计结合起来。下一篇进入 4.7.4 端口扫描,重点学习攻击者如何发现服务暴露面,以及架构师如何减少、监测和治理不必要的入口。