尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

漏洞扫描识别系统弱点的完整过程:从资产发现到修复闭环

漏洞扫描识别系统弱点的完整过程:从资产发现到修复闭环 1. 漏洞扫描到底在“扫”什么先明确边界和定位先说一个我在项目里经常碰到的场景客户月度巡检安全管理员跑一遍漏洞扫描导出报告然后把高风险的几条甩给运维“这几台机器抓紧修一下。”运维打开报告对着IP和CVE编号看了半天也不知道这个漏洞到底是干什么的更不知道扫描器是怎么“看出来”的。于是修复就变成了“能升级就升级不能升级就先放着”下一轮扫描依然一片红。这个现象背后有一个很扎心的现实很多人会“用”漏洞扫描工具但不真正理解漏洞扫描识别系统弱点的原理和过程。这就好比你会用血压计量血压但不知道为什么血压计能测出高压低压也不知道测量结果受什么因素干扰。真到了需要判断“这条结果该不该信”“这个漏洞有没有被误报”“为什么两台同样版本的机器一台报漏洞一台不报”的时候就完全抓瞎了。这篇文章我想把漏洞扫描识别系统弱点的完整过程掰开揉碎讲清楚从最底层的资产发现到指纹识别再到漏洞匹配、验证、降噪、输出报告最后到结果处置。整个链条里的每一步都会解释“为什么这么做”也会带上我在实际项目中踩过的坑和总结出来的经验。适合三类人看一是做安全运维、需要日常执行漏扫任务的同学二是做等保测评、渗透测试、需要解读扫描结果的工程师三是刚入行安全、想建立整体认知的新人。先给漏洞扫描下一个更实在的定义漏洞扫描不是攻击工具而是一种自动化的“安全体检”工具。它通过主动向目标系统发送探测请求采集系统的端口开放情况、服务类型、软件版本、配置信息等再把这些信息与漏洞特征库进行比对来判断目标是否存在已知的弱点和错误配置。整个过程由工具自动完成覆盖面广、速度快但它给出的结论本质上是一个“疑似清单”不是最终事实。很多刚接触安全的人会把漏洞扫描和渗透测试混为一谈这两个东西的定位差别很大。漏洞扫描的目标是“尽可能多地发现可疑问题”它的产出是一份按风险等级排序的清单渗透测试的目标是“证明某条路径能不能真的被打穿”它的产出是一个经过人工验证的、可利用的攻击链路。扫描是面渗透是点扫描可以天天跑渗透一年跑几次就够。把这两个定位搞清楚后面看报告时的预期才不会错。2. 一次完整的系统弱点识别过程拆解四个核心环节有一次我和团队里一个新同事一起排查问题他拿着Nessus的扫描报告问我“这个漏洞描述说OpenSSH版本过旧但我上机器看系统里OpenSSH明明是打了补丁的为什么扫描器还报”这个问题特别典型因为它正好涉及漏洞扫描识别弱点的四个核心环节资产发现、指纹识别、漏洞探测匹配、验证与降噪。他之所以产生疑惑是因为不理解扫描器的判断依据到底是什么。下面我把这四个环节逐一拆开讲。2.1 资产发现先搞清楚网络里到底有什么想象一下你要给一整栋办公楼做消防检查你首先得知道这栋楼有多少层、多少个房间、每个房间是干什么用的才能决定应该检查哪些地方。漏洞扫描也是一样第一步永远是把目标环境里的“活资产”翻出来。资产发现通常从两个层面展开网络层和应用层。网络层常用的是Ping扫描、ARP扫描、TCP端口探测目的是判断目标IP是否存活、哪些端口在监听。工具上最常用的就是Nmap一条nmap -sn 192.168.1.0/24就能快速列出网段里有哪些主机在线。但这只是第一步真正重要的是端口探测因为端口决定了你能在这个主机上看到哪些“入口”。端口探测的基本原理是TCP协议的三次握手。扫描器向目标的每个端口发送一个SYN包如果收到SYNACK响应说明端口是开放的如果收到RST说明端口是关闭的如果一直没有响应可能是被防火墙丢弃了。Nmap的-sS参数用的就是这种半开扫描方式速度快、隐蔽性好但需要root权限。如果权限不够可以用-sT做完整的TCP连接扫描原理类似但不隐蔽效率会低一些。这里有一个我在实际项目里反复强调的观点端口扫描的范围一定要覆盖全部65535个端口不要只扫常见的几个。2022年某次的攻防演练里内网一台应用服务器对外开放了一个5位数的随机高端口上面跑着一个内部管理后台常规的1-10000端口扫描完全没发现它结果这个后台成了整个内网沦陷的跳板。-p-这个参数看起来会让扫描时间变长但和漏掉一个关键暴露面相比这点时间是值得的。2.2 端口与服务指纹识别精确到版本才有意义端口开放只代表“门开着”但门后面是什么必须搞清楚。这一步叫服务指纹识别是整个漏洞识别链条里最关键、也是最容易出错的一环。扫描器识别服务指纹的手段主要有四种。第一种是抓取Banner就是服务在连接建立后主动返回的版本信息比如连接SSH服务通常会返回SSH-2.0-OpenSSH_7.4连接HTTP服务会在响应头里看到Server: nginx/1.18.0。第二种是发送特定探测请求根据响应内容判断服务类型比如向HTTP服务发送OPTIONS、GET请求通过响应里的Server头、X-Powered-By、Cookie格式等信息推断后端技术栈。第三种是分析TLS证书内容证书里的组织名称、签发机构、有效期有时能暴露目标使用的设备或平台。第四种是路径与文件探测比如访问/wp-login.php判断是否WordPress访问/.git/HEAD判断是否存在源码泄露。指纹识别为什么这么重要因为漏洞匹配用的核心依据就是“软件名版本号”。同样是一个Web服务组件1.8.3版本有一个已知RCE漏洞1.8.4版本修复了如果你的扫描器把1.8.4误识别成1.8.3就会产生一个高危误报反过来如果版本识别成了更新的版本又会漏掉真正存在的漏洞。所以在Nmap这类工具里-sV版本探测的参数可以加--version-intensity调节探测强度范围是0到9数字越大越激进、越准确耗时也越长。实际使用中我通常用7左右的强度既保证准确率也不至于把大量时间耗在单一目标上。2.3 漏洞探测与匹配CVE、CVSS 和插件机制服务指纹出来以后扫描器就进入核心环节漏洞探测与匹配。这一步表面上看是“拿着版本号查表”但真正优秀的扫描器远不止做版本比对它还会结合多种手段去验证漏洞是否存在。先说最基础的匹配机制。扫描器内置了一个庞大的漏洞特征库每条特征通常对应一个或多个CVE编号。CVE的全称是Common Vulnerabilities and Exposures是一套公开的漏洞编号体系格式类似CVE-2021-44228。当你扫描到某台主机运行着Apache Log4j 2.14.1版本扫描器就会去特征库里查找与Log4j相关的漏洞条目发现2.14.1命中CVE-2021-44228也就是当年影响力极大的Log4Shell漏洞。于是报告里就会生成一条高危项并把CVE编号、漏洞描述、修复建议一起列出来。CVE编号只能说明“存在这个漏洞”不能说明“这个漏洞有多严重”所以配套出现了CVSS评分系统。CVSS全称是Common Vulnerability Scoring System目前常用的是3.1版本评分范围0到10分。很多人看到CVSS 9.8就觉得天塌了其实这个分数本身是“裸漏洞”的严重程度它没有考虑你的网络环境、资产重要性和实际可利用条件。这一点在第五章讲修复优先级的时候我会再详细展开。光靠版本比对远远不够因为实际环境中存在太多特殊情况官方补丁可能以非标准方式安装、老版本服务可能被新版本二进制替换、有些漏洞只存在于特定配置下。为了减少这种误差主流扫描器会使用插件机制做主动验证。Nessus和OpenVAS的插件都是用NASL语言编写的每个插件对应一个漏洞的探测逻辑功能类似一个个独立的验证脚本。比如检测Heartbleed漏洞CVE-2014-0160时插件会主动向目标的TLS服务发送一个特殊构造的心跳请求并检查返回的数据长度是否异常如果返回的数据比请求的数据多了内存中的敏感内容就判定漏洞存在。这种验证方式比单纯比对版本要可靠得多也是区分“高级扫描器”和“简单端口扫描器”的关键标志。2.4 验证、降噪与输出报告扫描结果如何变成可行动的清单探测环节收集到大量“疑似漏洞”之后扫描器并不会直接把它们全部塞进报告而是会做一轮验证和降噪。这一步是整个流程里最容易被使用者忽略但恰恰决定报告可用性的环节。验证的目的在于排除误报。同一台服务器可能存在多种服务共用端口的情况比如某些云负载均衡器会把HTTP请求转发到后端扫描器从前端拿到的指纹和后端实际软件不一致就会产生错误匹配。扫描器通常会通过多次探测、校验响应内容格式、检查是否存在已知的补丁痕迹等方式来降低这类错误。但无论工具做了多少努力人工抽查仍然不可替代尤其是高危项一定要在修复前做二次确认这个习惯可以帮你避免浪费大量时间处理根本不存在的漏洞。降噪处理包括两个层面。一是剔除重复项比如同一台主机通过不同探测路径发现的同一个漏洞合并成一条二是归类分级按CVSS分值和资产重要程度把漏洞分成严重、高危、中危、低危四个等级。最终报告一般会包含三个部分汇总统计表各等级漏洞数量、漏洞详情列表IP、端口、CVE编号、CVSS分值、描述、修复建议升级版本、修改配置、打补丁等。我之前看到过一份做得特别糟糕的报告里面500多条漏洞全部平铺在一个Excel表里没有按主机归类也没有按端口聚合运维拿到以后完全不知道从哪下手。后来我养成了一个习惯凡是经过我手输出的扫描结果至少要按“资产维度”再聚合一次同一个IP上同类型的漏洞归并同一网段相同版本的批量漏洞单独列出来这样后续排优先级就方便多了。3. 工具选型与关键参数如何配置一次高质量的扫描漏洞扫描工具五花八门从开源免费到商业授权从单机命令行到云端SaaS平台选择非常丰富。但在实际项目里真正决定扫描质量的往往不是工具本身而是你是否理解工具的参数、策略和工作原理。这一节我分享一些工具选型的心得以及我在配置扫描任务时常用的参数和步骤。3.1 常用工具横向对比先给几张经常被拿来对比的工具表后面解释各自的适用场景。工具类型核心优势主要限制Nmap网络扫描器速度快、灵活资产发现和指纹识别能力强漏洞库相对有限偏底层探测OpenVAS开源漏洞扫描器免费、本地部署插件库齐全资源占用高误报率略高需要维护Nessus商业漏洞扫描器插件质量高报告体验好合规场景常用收费资产规模大时成本高AWVSWeb应用扫描器对Web漏洞覆盖深支持爬虫和逻辑测试偏Web场景对基础设施类漏洞覆盖较弱云平台自带扫描云厂商产品和云资产联动好集成方便仅覆盖云上资产退出云环境就没法用简单说下我的选型思路日常资产盘点、端口存活确认、快速指纹采集用Nmap就够了它最大的价值是灵活、结果透明能让我清楚地知道扫描器是靠什么特征判断目标的。正式的漏洞扫描任务至少用OpenVAS或Nessus这类有完整漏洞库和插件机制的工具。如果预算允许、设备数量又比较多Nessus会是省心的选择它出的报告在等保、ISO27001这些合规审计里通常更容易被接受。如果是Web应用我会额外加AWVS或其他专门的Web扫描器因为传统漏扫对Web逻辑漏洞的覆盖明显不足。3.2 Nmap 常用命令与参数解析Nmap是漏洞扫描流程里我最常用的前置工具。下面这几条命令是我平时用得最多的每条都会解释参数为什么这么写。第一步主机发现。确定目标IP或网段中存在哪些存活主机nmap -sn 192.168.1.0/24-sn表示只做Ping扫描不进行端口探测。它通过发送ICMP Echo请求、TCP SYN到常见端口等组合方式判断主机是否在线。这个阶段不需要太重先把范围缩小。第二步全端口扫描。对存活主机做TCP端口扫描nmap -sS -p- -T4 192.168.1.10-sS是SYN半开扫描只发送SYN包不完成握手速度快、目标日志里大概率不会留下连接记录。-p-扫描全端口1到65535代价是耗时会长一些但对于重要主机这一步不能省。-T4表示时序级别数值0到5越大扫描越快但也越容易触发目标的安全设备告警。在内网环境下T3或T4都可以外网扫描建议T3以下避免被防火墙针对。第三步服务版本识别。确认开放端口对应的服务类型和版本号nmap -sS -sV --version-intensity 7 -p 22,80,443,3306,8080 目标IP-sV开启版本探测--version-intensity 7控制探测力度前面说过7是一个准确率和速度都不错的折中值。这里指定了端口范围只扫描目标已知开放的几个端口速度会快很多。第四步漏洞脚本扫描。Nmap自带的NSE脚本库里也有一部分漏洞检测脚本可以快速验证一些常见弱点nmap -sV --script vuln 目标IP--script vuln会加载所有以vuln开头的漏洞检测脚本覆盖面不算特别全但用来做扫描前的“粗筛”足够用了。实际使用时我会先跑这一步如果发现了可疑项再用OpenVAS或Nessus做更完整的扫描确认。3.3 漏洞扫描器的策略配置与认证扫描如果你已经确定了用OpenVAS或Nessus这类专业漏扫下一步就是新建扫描任务、选择扫描策略。这里我想重点强调一个很多人没搞明白的概念未认证扫描和认证扫描。默认情况下扫描器只从网络层面对目标发起探测这叫未认证扫描。它的优势是不需要目标机器的任何凭据部署简单缺点是只能从外部“猜”系统内部的状态很多漏洞根本看不见。举个例子一台Windows服务器上某个第三方软件存在一个高危漏洞但它在公网上没有开放对应端口未认证扫描连发现都发现不了。就算它开放了服务端口扫描器也只能通过指纹去做间接判断容易误报漏报。认证扫描就完全不一样了。它通过你提供的SSH私钥、Windows远程管理凭据等以合法账号身份登录目标系统直接查看系统版本、已安装补丁、软件配置、注册表项等信息。这种扫描方式的准确率高得多因为它看到的是系统内部的真实状态而不是“从门缝里猜客厅长什么样”。我在给客户做漏扫时只要条件允许一定会配置认证扫描。Nessus的策略里可以指定SSH凭据OpenVAS也提供了类似的配置选项。配置流程大概分三步先配置一个符合要求的系统账号最好是只读权限的专用账号然后在扫描策略里填入账号和密码或私钥指定扫描协议最后测试连接确认扫描器能成功登录目标机器。配置认证扫描后报告里会增加大量配置类检查项比如默认共享是否开启、密码策略是否符合要求、高危端口是否暴露等。这些虽然不属于传统意义上的“漏洞”但往往是真实攻击中被利用的“弱点”价值一点都不低。3.4 控制扫描对业务的影响漏扫工具在探测时会向目标发送大量请求这本身就是一种负载。在实际项目中我见过不止一次因为扫描频率太高、并发太大直接导致老旧业务系统响应缓慢甚至崩溃的情况。控制扫描对业务的影响是不比漏洞识别本身简单的一件事。我常用的做法有三条。第一扫描时间放在业务低峰期比如凌晨或周末尽量避开交易高峰。第二限制扫描并发数。Nmap的--min-rate和--max-rate可以控制发包速率Nessus的策略里也有并发连接数限制调低这些参数可以让扫描器“温柔”一点代价是扫描耗时会明显拉长需要在深度和影响之间做平衡。第三先试点后铺开。我每次接一个新的扫描范围都会先挑一台不太重要的机器做试点扫描观察它对扫描请求的响应情况和业务日志确认没有异常影响再扩大到整个网段。另一个容易被忽略的点是防火墙和WAF的干扰。有些安全设备会主动拦截扫描器的探测请求导致扫描结果大量漏报。如果扫描结果异常干净而且你知道目标前面有WAF或IPS不要高兴太早先看看是不是流量被安全设备拦了。处理办法是把扫描器所在IP加入安全设备白名单或者临时放行扫描流量这样才能拿到真实的目标状态。4. 误报、漏报与结果不一致常见问题排查实录独立做过漏扫的人早晚会碰到同一个困惑扫描器报出来的东西和实际情况对不上。要么报了不存在的漏洞要么真出了事扫描器却没发现要么两台工具结果相差很大。这一节我把这些年整理出来的问题清单和排查思路全部摆出来。4.1 误报是怎么产生的又该怎么处理先说误报。扫描器报了一个高危漏洞但你登进系统一看版本早就不存在这个漏洞了。这种情况最让人头疼因为处理起来要花费大量人工确认成本。误报的产生通常有三个原因。第一个原因是指纹识别不准确。很多服务在版本特征上存在相似性或者目标服务主动隐藏了真实版本扫描器在得不到精确响应的情况下会采用“最保守”或“最激进”的策略进行匹配。比如某个HTTP服务返回的Server头里带了Apache字样但它实际可能是某个反向代理模拟的扫描器可能据此把整套系统都判定为Apache再套用Apache的漏洞库误报自然就来了。第二个原因是判断条件过于宽松。一些插件设计时为了减少漏报会故意放宽检测阈值。比如任何一个Web服务只要返回的Cookie里包含特定字段插件就“宁可错杀”地报某个CMS框架的漏洞但实际上这个字段可能只是碰巧重名。这种情况在开源扫描器里尤其常见。第三个原因是漏洞已被修复但修复痕迹没有被扫描器识别。前面提到扫描器做主动验证时会检查补丁痕迹但补丁的安装方式千奇百怪有的企业会通过自制脚本替换二进制文件而不是用厂商官方渠道更新这些非标准操作很容易绕过扫描器的检测逻辑。处理误报我的经验是两步走。第一步针对高危以上漏洞在报告下发前做人工技术验证至少要登进系统确认版本号和补丁安装情况。第二步在扫描器里建立白名单规则把经过确认的误报记录加进去下次扫描自动忽略。这样既能保证报告质量也不会让运维反复处理同一条虚假告警。4.2 漏报的几种典型情况漏报通常比误报更危险因为它意味着防御方完全看不到风险。结合我的实际经验漏报主要来自四个场景。一是未授权扫描的视野盲区。没有目标系统的登录凭据扫描器就看不到系统内部安装的软件和配置只能依赖外部指纹“盲猜”很多不对外开放端口的漏洞自然发现不了。这就是为什么我一直强调认证扫描的必要性。二是插件库更新时间滞后。漏洞库的更新速度决定了扫描器能否识别最新漏洞。每年都会有大量新CVE公布如果扫描器没有及时更新插件就算目标系统存在新披露的漏洞扫描器也认不出来。所以漏扫任务一定要配置插件库定时更新每周至少一次。三是目标系统与扫描器之间的网络拦截。我遇到过最奇葩的一次一台Windows主机明明存在SMBv1相关的漏洞但每次扫描都报“端口关闭”后来查下来发现是网络中间设备的策略把SMB流量拦掉了扫描器永远收不到目标端口的真实响应。这种问题排查起来很费劲因为你看到的扫描结果并不是目标主动返回的结果而是中间设备留给你的假象。四是现代Web应用的动态特性。很多Web应用高度依赖前端JavaScript渲染页面内容和数据都是动态加载的传统漏洞扫描器对这种应用能覆盖的检测面非常有限。这也是为什么成熟的Web安全测试方案会在漏扫之外增加专门的Web扫描器和人工测试环节。4.3 不同扫描器结果不一致的根因很多团队会同时用两个扫描器交叉验证结果发现两份报告差异巨大A工具报了一堆高危B工具却显示“未发现漏洞”。这种不一致很容易引发内部争论——到底该信谁其实这个现象的本质很简单不同扫描器的指纹库、漏洞库、插件逻辑都不相同判断方法也存在差异。有的工具更依赖版本比对有的工具更依赖主动验证还有的做了厂商专有漏洞补充导致同一个目标在它们眼里会呈现不同的漏洞状态。另外扫描策略和参数也会影响结果比如Nessus的扫描策略里有“仅检查已发布漏洞”和“包括潜在漏洞”的开关开启后报告量可能翻几倍。面对不一致的结果我建议不要试图“统一报告”而是要做交叉确认。具体做法是把两份报告都导入到一个表格里按IP聚合漏洞信息重合的部分优先处理只有A报B不报的根据A的检测逻辑人工复核只有B报A不报的同样处理。这样做的成本不会太高但能让最终结论的置信度大幅提升。4.4 一次中危漏洞被低估的实战复盘2023年我给一家企业做内部安全评估扫描报告显示一台运行着Linux系统的服务器存在一条中危漏洞SSH服务启用了较弱的密钥交换算法。当时客户安全团队的负责人看了一眼说“中危而已而且SSH好像不是公网端口先放着吧”。我没说什么但心里很清楚这类被严重低估的弱点在真实攻击里往往是被利用的突破口。大概两周以后我们做了一次内部红队演练。红队扫描时通过内网信息收集发现这台主机的SSH确实监听在一个高位端口上而且支持diffie-hellman-group1-sha1这个已经过时的密钥交换算法。红队利用算法降级的方式花了一些时间成功破解了会话密钥紧接着结合一个低权限账号的弱口令一路横向移动到核心业务区。最后的报告里那个“中危漏洞”被标注为整个攻击链路中最关键的一环。这次复盘给我的教训很深扫描报告里的“中危”绝不等于“可忽略”。漏洞等级的设置是综合了多方面因素的结果但它不可能替你做实际的业务风险评估。一个在内网核心区域的“中危”其危害可能远超一个外网边缘的“高危”。所以我的习惯是把所有等级的结果都看一遍尤其是中危项结合资产的重要性做二次评估而不是只看排名前几的红色条目。5. 从扫描报告到修复闭环优先级、复测与影响面控制扫描报告只是一张体检单真正有价值的是后续的治疗方案和执行闭环。很多安全团队的漏扫工作做到“出报告”就结束了后续的修复跟踪、复测验证、影响面排查完全断掉导致同一批漏洞每次扫描都出现变成了“老油条漏洞”。这一节我讲讲怎么把报告真正落地。5.1 修复优先级的排序逻辑CVSS 分值只是起点CVSS评分是判断漏洞严重程度最常用的依据但它只是起点绝对不能直接拿它当修复优先级的最终答案。我判断一个问题应该多紧急时至少会同时看四个维度CVSS分值、资产重要性、漏洞可利用性、当前网络暴露面。比如一个CVSS 9.8的远程代码执行漏洞听起来很吓人但如果它所在的主机是一台没有业务流量的测试机而且严格隔离在内网那它的实际风险就远低于一个CVSS 6.5、但暴露在公网并且保存着客户数据的业务系统。再比如一个漏洞虽然CVSS不算高但网上已经出现了公开的利用工具甚至被写进了自动化攻击框架那它的优先级就需要往上提。实际操作中我会先用表格把资产按重要性分档核心业务系统、一般业务系统、测试开发系统、办公终端。然后对每条漏洞计算一个“实际风险分”公式可以简单定义为实际风险分 CVSS分值 × 资产权重 × 暴露因子资产权重和暴露因子根据实际情况取1到3之间的值。这样排序下来修复顺序就不再是简单的“从分高到分低”而是“从最危险的组合到最不危险的组合”。5.2 修复验证与复测流程漏洞必须闭环修复动作做完之后必须有一条硬性的复测流程跟上。很多团队的修复闭环断在“运维说改好了”这一步但“说改好了”和“真的改好了”之间还有很长的距离。我的建议是修复完成后一周内对同一目标重新执行一次同等配置的漏洞扫描确认对应漏洞项已经从报告里消失或者缓解措施已经被扫描器识别到才能算真正闭环。复测有几个细节要提醒。第一修复动作要附带变更记录至少包含变更时间、变更内容、操作人、验证结果这样后续出了问题可以回溯。第二有些漏洞的修复不是单点操作比如某个系统组件升级后可能影响其他服务运行复测时除了确认漏洞状态还要关注业务可用性有没有因为修复动作而下降。第三对于暂时无法修复的漏洞要建立风险接受流程写明接受原因、临时缓解措施、计划修复时间。我最怕的是那种“永远挂在报告里、既没人修复也没人签字接收”的漏洞。5.3 全网影响面排查从单台主机扩展到整个资产的视野扫描器通常只会告诉你“哪台主机存在什么问题”但在实际安全运营里你更需要知道的是“这个问题影响了多大范围”。一个系统组件存在漏洞往往不只是你扫描到的那一台机器有问题而是所有相同版本、相似配置的资产都可能有同样的问题。判断影响面我常用的办法是先提取指纹条件。比如扫描报告里发现某Web框架存在一个高危反序列化漏洞我会把这条发现的指纹信息框架名称、版本区间、暴露端口整理成一个查询条件然后对公司资产台账做一次批量匹配把所有可能受影响的资产全部拉出来再逐个用轻量级探测或认证扫描做确认。这样做的效率远高于一台一台扫描排查。影响面分析还要兼顾“路径影响”。一个看起来只影响单台主机的漏洞如果这台主机同时是内网其他系统的认证中心、管理入口或数据汇聚节点那它一旦被突破波及面可能是整张网络。所以我评估影响范围时除了统计资产数量还会看这台机器的网络位置和它在业务链路里的角色。这也是为什么许多安全管理平台会把资产测绘、漏洞管理和网络拓扑放在一起看因为它们本来就是相互关联的信息。说到最后我想起在项目里常被问到的一个问题“漏洞扫描多久做一次合适”我的习惯是关键系统每月一次完整的认证扫描全网每季度一次全量扫描遇到重大漏洞公告或版本升级还要临时增加针对性扫描。但比频率更重要的是每次扫描之后有没有真正把问题处置闭环。扫描器只是放大镜真正值钱的是那些能把一张张报告读透、把一条条漏洞盯到彻底修复的人。这套流程跑通了漏洞扫描才真正发挥出它应有的价值。
返回列表