发布于19小时前19小时 2024 年 4 月,Palo Alto Networks 披露 PAN-OS GlobalProtect 命令注入漏洞 CVE-2024-3400。该漏洞在公开披露前已被用于真实攻击,风险重点不只是设备本身失陷,还包括配置泄露、凭据获取以及由边界设备向内网横向移动。本文不提供攻击载荷,而是从授权验证和蓝队排查角度,说明如何确认暴露面、检查相关日志,并处理边界设备失陷后的权限边界问题。虽然事件披露已有一段时间,但仍建议检查历史日志和旧版本设备,尤其是长期运行、补丁窗口较少的 VPN 节点。事件背景与影响范围CVE-2024-3400 是 PAN-OS GlobalProtect 功能中的未授权命令注入漏洞,CVSS 评分为 10.0。历史受影响分支主要包括 PAN-OS 10.2、11.0 和 11.1,是否实际受影响还取决于具体版本和 GlobalProtect 配置。Panorama、Cloud NGFW 等产品不能仅凭名称推定受影响,应以厂商安全公告中的产品矩阵为准。厂商最初发布的修复版本包括 10.2.9-h1、11.0.4-h1、11.1.2-h3,后续还发布了多个维护版本。生产环境不宜把“达到最低修复版本”当成最终状态,应升级到对应分支当前受支持的最新维护版本,并再次核对官方公告。仅升级版本不能证明设备此前没有被利用。若攻击者已经取得设备执行权限,补丁只能阻止同一路径再次进入,不能自动撤销已泄露的口令、令牌、证书和内网访问权限。典型内网攻防链路阶段常见行为应检查的数据外部入口扫描 GlobalProtect 门户或网关并尝试利用Threat、System、GlobalProtect、上游流量日志设备控制执行系统命令、写入持久化文件或启动异常进程技术支持包、文件完整性、进程和任务信息凭据访问读取配置、认证信息、证书或会话相关数据配置导出记录、管理员操作、AAA 与 IdP 日志横向移动从设备接口地址访问 AD、SSH、RDP、虚拟化或备份系统东西向防火墙、Windows 安全日志、Linux auth 日志外传与维持建立反向连接、代理通道或新增管理入口DNS、NetFlow、出口代理、管理面登录日志排查时需要注意源地址差异:攻击者从 VPN 用户终端进入时,流量通常来自 VPN 地址池;如果命令直接在防火墙设备上执行,后续流量可能来自设备的数据接口或管理接口地址。只查询 VPN 地址池会漏掉后一类活动。授权验证:先确认版本和暴露面不建议在生产设备上直接发送公开利用载荷。对于边界设备,优先采用版本、配置和日志三项交叉验证,既能确认风险,也不会产生额外命令执行或设备稳定性问题。在设备 CLI 中记录系统版本,并确认 GlobalProtect 门户或网关是否启用。不同 PAN-OS 版本的配置层级可能有差异,以下命令主要用于资产核对:show system info show config running | match global-protect show admins all show jobs all外部只能做低影响的端口与证书确认,目标必须属于授权范围。该检查不能证明漏洞存在,只用于识别互联网暴露节点和资产归属:nmap -Pn -sT -p 443 --script ssl-cert,http-title vpn.example.org openssl s_client -connect vpn.example.org:443 -servername vpn.example.org </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -serial -dates资产清单至少应包含公网地址、域名、序列号、HA 节点、PAN-OS 版本、GlobalProtect 配置状态、管理接口开放范围和日志转发状态。HA 环境要分别检查主备节点,不能只看当前 Active 设备。日志定位与时间线构建首先从厂商控制台或集中日志平台检索威胁特征 ID 95187。该特征用于发现相关利用活动,但没有命中不代表安全:签名可能在事件发生后才更新,也可能未启用对应订阅或未完成日志转发。在 PAN-OS 的 Monitor、Threat 页面可使用类似过滤条件:( threatid eq 95187 )如果日志已经进入 Microsoft Sentinel,可根据实际字段映射调整以下查询。部分采集器会把特征编号写入 DeviceEventClassID,另一些则写入 Activity 或 AdditionalExtensions:let start_time = datetime(2024-03-01); CommonSecurityLog | where TimeGenerated >= start_time | where DeviceVendor has 'Palo Alto' | where DeviceEventClassID == '95187' or Activity has '95187' or AdditionalExtensions has '95187' | project TimeGenerated, DeviceName, SourceIP, DestinationIP, DeviceAction, Activity, Message, AdditionalExtensions | order by TimeGenerated asc随后以命中时间前后至少 24 小时为窗口,检查设备地址发起的内网连接。若没有命中记录,则建议从漏洞公开前数周开始回溯,具体范围取决于日志保留周期:let firewall_ips = dynamic(['10.10.0.1','10.10.0.2']); CommonSecurityLog | where TimeGenerated between (datetime(2024-03-01) .. datetime(2024-05-01)) | where SourceIP in (firewall_ips) | where DestinationPort in (22,88,135,139,389,445,636,3389,5985,5986) | summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), Sessions=count() by SourceIP, DestinationIP, DestinationPort, DeviceAction | order by FirstSeen asc重点关注以下异常:边界设备首次访问域控制器、备份服务器、虚拟化管理端或运维跳板机。设备地址发起 SMB、RDP、WinRM、SSH、LDAP 或 Kerberos 请求。非维护时段出现配置导出、管理员登录、HA 切换或服务重启。设备直接解析新注册域名,或连接历史上从未出现的云主机地址。补丁安装后仍存在周期性外联,特别是固定间隔的小流量连接。关联 Windows 与身份认证日志若防火墙能够访问域控或服务器管理网,需要关联 Windows 事件 4624、4672、4768、4769。事件 4624 中的源地址尤其关键,应同时查询防火墙接口地址、VPN 地址池和可疑外部地址。$start = Get-Date '2024-03-25 00:00:00' $end = Get-Date '2024-04-20 23:59:59' Get-WinEvent -FilterHashtable @{ LogName = 'Security' Id = 4624,4672,4768,4769 StartTime = $start EndTime = $end } | Where-Object { $_.Message -match '10\.10\.0\.(1|2)' } | Select-Object TimeCreated, Id, MachineName, Message如果发现防火墙地址对应的网络登录,需进一步确认登录类型、目标账户和目标主机。常见高风险组合包括:4624 登录类型 3 后紧跟 4672;服务账户从未见过的源地址申请 Kerberos 票据;设备地址访问管理共享后出现计划任务、服务创建或远程管理事件。设备侧取证注意事项不要为了寻找 IOC 直接在生产防火墙上随意执行底层 Shell 命令。PAN-OS 设备的底层操作通常需要厂商支持权限,不受控的文件遍历、删除或重启可能破坏证据,也可能影响转发业务。更稳妥的处理流程是:记录当前时间、设备序列号、HA 状态、软件版本和配置版本。生成技术支持包,并保存到受控取证目录,记录文件哈希。导出 Threat、System、Config、GlobalProtect 和管理员审计日志。保留上游路由器、交换机 NetFlow、DNS、代理和身份平台日志。由厂商支持或具备设备取证经验的人员检查异常进程、启动项、计划任务及文件变更。可以在取证工作站上对导出的文件进行哈希固定:mkdir -p case-CVE-2024-3400/evidence sha256sum techsupport.tgz exported-logs.zip | tee case-CVE-2024-3400/evidence/SHA256SUMS stat techsupport.tgz exported-logs.zip > case-CVE-2024-3400/evidence/file-metadata.txt风险处置与修复建议立即升级到对应分支当前受支持的安全版本,不要长期停留在最早的 hotfix。确认 Threat Prevention 内容已更新,并检查特征 95187 的启用、动作和日志转发状态。将 GlobalProtect 暴露面限制到确有需要的地址范围;管理接口禁止直接暴露互联网。边界设备到内网采用最小权限策略。设备本身通常不应主动访问域控 SMB、服务器 RDP 或虚拟化管理端。轮换本地管理员、LDAP 绑定账户、RADIUS/TACACS 共享密钥、API Key、SNMP 凭据及可能存储在配置中的其他秘密。如存在设备控制或配置泄露迹象,撤销并重新签发相关证书和令牌,仅修改登录密码通常不够。检查 IdP 中 GlobalProtect 应用的异常登录、MFA 变更和会话复用情况,必要时使现有会话全部失效。确认失陷时,不应只做原地升级。应根据厂商建议执行私有数据重置、恢复已知可信配置,严重情况下重建或恢复设备。对漏洞窗口内从设备地址访问过的内网主机开展二次排查,重点检查新增账户、服务、计划任务、SSH 密钥和远程管理记录。验证修复是否真正闭环修复完成后,应至少验证四个方面:所有 HA 节点版本一致;配置中不存在临时放开的管理策略;凭据和证书已经轮换;设备到内网的异常连接不再出现。建议继续保持 7 至 14 天的增强监控,观察设备地址的 DNS、外联和管理协议流量。这类事件的核心问题不是单个漏洞编号,而是边界设备同时处于互联网入口和内网高信任位置。处置时必须把“漏洞是否修复”和“是否已经发生入侵”分开判断:前者依靠版本与配置确认,后者依靠设备、身份和东西向日志共同还原。只打补丁、不查历史行为,无法完成真正的风险闭环。 服务器、云资产与权限边界梳理示意 安全动态、影响面和处置建议示意
17小时前17小时 这类事件排查建议不要只盯着 CVE 告警,重点是确认“是否被利用、是否落地持久化、是否向内网扩展”。CVE-2024-3400 影响的是 PAN-OS GlobalProtect 网关,日志时间线最好按以下顺序串起来: GlobalProtect gateway / portal 访问日志:查异常请求、异常 URI、短时间大量 5xx,以及请求头或 Cookie 中出现命令注入特征。 系统日志、配置变更日志:确认是否新增管理员、修改认证配置、创建计划任务或变更安全策略。 流量日志:重点看防火墙主动访问外部 IP、DNS、HTTP/HTTPS、SSH,以及从管理面到内网服务器的异常连接。 下游主机日志:如果网关存在出站连接或凭据泄露迹象,要继续查 AD、VPN 用户、跳板机和关键服务器登录记录。 从集中日志中可以先做一轮低成本筛选,下面的关键词不要直接当作 IOC 定性,需结合源 IP、时间和响应码确认: grep -Eai \ 'SESSID|GlobalProtect|/ssl-vpn|/global-protect|curl|wget|bash|sh -c|python|perl|nc |netcat|/tmp/|/var/tmp/|cron|;[[:space:]]*id|\\|[[:space:]]*(id|whoami|uname)' \ panos-*.log 如果日志已经进入 Elasticsearch,可以优先按 GlobalProtect 入口筛选,再看同一源 IP 的行为: event.dataset:"panos" AND (message:"globalprotect" OR url.path:"/ssl-vpn/*" OR url.path:"/global-protect/*") | stats count(), values(http.response.status_code), values(user_agent) by source.ip, bin(@timestamp, 5m) 几个容易漏掉的点: 不要只检查攻击者公网 IP。攻击者可能通过代理、VPN 或被入侵的主机转发请求,源 IP 只能作为线索。 检查设备是否存在异常出站 DNS/HTTP 连接,以及是否出现不符合日常管理行为的 DNS 查询。 导出完整的技术支持文件和相关日志后再清理,不要直接重启或恢复配置,否则可能丢失内存和时间线信息。 若设备在受影响版本且存在可疑访问,应按“已失陷”处理:升级到厂商修复版本、隔离管理面、轮换管理员/VPN/API 凭据,并审计这些凭据在内网的使用情况。 确认日志时间是否统一为 NTP 时间,尤其要核对防火墙、认证服务器和终端的时区,否则很容易把利用请求和后续横向行为错开。 最后建议把 GlobalProtect 的异常请求、配置变更和出站流量做成关联规则:同一源 IP 在短时间内出现异常 URI,随后设备产生非管理类出站连接或配置变更时,直接提升为高优先级事件。