漏洞扫描这东西,漏洞英文圈里最常挂在嘴边的扫描简称就一个:VAS——Vulnerability Assessment System,或者更干脆点,英文直接叫VA,漏洞Vulnerability Assessment。扫描别跟我提什么“漏扫”,英文那是漏洞中文偷懒的叫法,真到写报告、扫描跟老外开会,英文你嘴里蹦出个“lou sao”,漏洞对面能愣三秒。扫描
我第一次接触VAS是英文在一台老旧的CentOS 6机器上。那天下午,漏洞运维扔给我一个IP段,扫描说“扫一遍,英文看看有没有能直接拿shell的”。我装了OpenVAS,跑了一整夜。第二天早上打开报告,满屏的CVE编号,红黄绿三色标记,像圣诞树。但真正让我记住的是其中一条:某台Web服务器开着8080端口,跑着Jenkins,版本2.138——那会儿这个版本有个反序列化漏洞,攻击者能直接执行命令。我试着用Metasploit打了一下,果然,弹回来一个root shell。那是我第一次觉得,VAS这玩意儿不是摆设。
VAS和另一个词经常被搞混:IDS,Intrusion Detection System。IDS是盯着流量看谁在干坏事,VAS是主动去敲门,问“你在不在家?门锁了没?窗户关了吗?”一个被动,一个主动。还有个词叫VMS,Vulnerability Management System,那是把VAS、工单、修复流程串起来的整套体系。小团队用VAS就够了,大公司才玩VMS。
开源圈里,OpenVAS算是老牌选手。它前身是Nessus,2005年Nessus闭源之后,社区 fork 出来继续搞。现在OpenVAS归Greenbone管,扫描插件库叫VT(Vulnerability Tests),每周更新。我数过,2023年那会儿,VT数量已经超过8万条。什么概念?你拿它扫一个中等规模的网络,没个两三天跑不完。商业产品里,Tenable的Nessus(对,又回到Nessus了)、Qualys的VM、Rapid7的InsightVM,这三家占了大半壁江山。Nessus专业版一年小两万美金,贵,但扫得准,误报少。OpenVAS免费,误报多到你想砸键盘。我见过一份OpenVAS报告,同一个Apache版本,它报了17个漏洞,其中12个是误报——因为发行版打了backport补丁,但VAS只认版本号。
VAS的核心逻辑其实不复杂:先做主机发现(ping扫、ARP扫),再做端口扫描(TCP SYN、TCP connect、UDP),然后根据端口指纹匹配服务,最后拿插件库里的POC去验证。听起来线性,但实际跑起来,网络延迟、防火墙丢包、目标限速,随便一个环节都能让扫描卡死。我习惯先跑一遍nmap -sS -sV,拿到开放端口和服务版本,再针对性调VAS的扫描策略。全端口全插件那种“地毯式轰炸”,除了给客户看报告凑数,实战里意义不大。
有个细节很多人忽略:VAS扫出来的漏洞,优先级怎么排?CVSS评分是通用标准,但CVSS 9.8的漏洞,如果目标机器在内网、没公网IP、且只有特定协议能触发,实际风险可能不如一个CVSS 5.0但直接暴露在公网的弱口令。我自己的习惯是,先看资产重要性,再看利用难度,最后才看CVSS。EPSS(Exploit Prediction Scoring System)这几年也开始流行,它预测的是“这个漏洞未来30天被利用的概率”,比CVSS更动态。不过EPSS数据依赖公开情报,0day刚出来那几天,它基本没用。
最后说个真事。去年帮一个朋友看他的小电商站,VAS扫出来一个“PHP-FPM未授权访问”,CVSS 7.5。他不懂,问我严重吗。我让他把php-fpm的监听地址从0.0.0.0改成127.0.0.1,重启,完事。漏洞还在,但攻击面没了。VAS告诉你“这里有洞”,但堵不堵、怎么堵,得靠人。工具再牛,也替不了你判断。