漏洞概述 漏洞名称: CWE-441: Unintended Proxy or Intermediary ('Confused Deputy') 漏洞描述: 产品接收来自上游组件的请求、消息或指令,但未充分保留原始来源。这导致产品作为上游组件和外部实体之间的代理或中介,使产品看起来像是请求的来源。 漏洞类型: 代理或中介问题 漏洞影响: 可能导致权限提升、身份隐藏、活动执行、未授权代码或命令执行等。 影响范围 权限提升: 攻击者可以利用漏洞提升权限。 身份隐藏: 攻击者可以隐藏自己的身份。 活动执行: 攻击者可以执行未授权的活动。 未授权代码或命令执行: 攻击者可以执行未授权的代码或命令。 修复方案 1. 强制使用强相互认证机制: 在两个实体之间强制使用强相互认证机制。 2. 保持发起者身份不变: 当产品作为两个其他组件之间的代理或中介时,代理不应丢弃发起者的身份。发起者身份必须保持不变,并应一直转发到目标。 示例 示例1: 一个SoC包含一个微控制器(运行ring-3代码)、一个内存映射输入输出(MMIO)映射IP核心(包含设计密钥)和一个直接内存访问(DMA)控制器。SoC实现访问控制以保护IP核心的寄存器免受恶意ring-3代码的访问。DMA控制器未被阻止从访问IP核心的功能原因。 示例代码: 相关漏洞 CVE-1999-0017: FTP bounce attack CVE-1999-0168: RPC portmapper could redirect service requests CVE-2005-0315: FTP server does not ensure that the IP address in a PORT command is the same as the FTP user's session CVE-2002-1484: Web server allows attackers to request a URL from another server CVE-2004-2061: CGI script accepts and retrieves incoming URLs CVE-2001-1484: Bounce attack allows access to TFTP from trusted side CVE-2010-1637: Web-based mail program allows internal network scanning using a modified POP3 port number CVE-2009-0037: URL-downloading library automatically follows redirects to file:// and scp:// URLs 检测方法和工具 自动化静态分析: 使用静态应用安全测试(SAST)工具,如Fortify、Checkmarx、Coverity等,可以检测此类漏洞。 结论 CWE-441漏洞涉及代理或中介问题,可能导致多种安全影响。修复方案包括强制使用强相互认证机制和保持发起者身份不变。相关漏洞和示例代码提供了具体的利用场景和检测方法。