作者简介:马云卓,某安全公司安全专家,持有注册信息安全专业人员及渗透测试工程师(CISP-PTE)和项目管理专业人士(PMP)证书,拥有丰富的行业经验,长期专注于网络安全攻防技术的研究与应用,精通Web渗透、硬件安全、Linux安全、应急响应等多个领域的攻防能力。曾多次担任红队主力,参与过省级、地市、运营商等单位的渗透测试和红蓝对抗,在攻防对抗和应急响应方面经验丰富。拥有独到的技术见解,对各类漏洞挖掘和利用、入侵检测和防御具有扎实的理论功底和实战经验。
漏洞扫描是一种自动化的安全测试方法,用于检测计算机系统、网络和应用程序中的漏洞和安全缺陷。漏洞扫描工具会对系统进行自动化的测试,以发现可能存在的安全漏洞和缺陷,比如弱口令、SQL注入、XSS等等技术类型漏洞以及CVE漏洞、CNVD漏洞报告给厂商的漏洞等。
漏洞扫描工具会模拟攻击者进行漏洞检测和验证的行为,以黑盒的方式对系统中的功能进行遍历、测试、验证,以帮助安全人员识别和修复系统中的漏洞。
漏洞扫描工具根据扫描对象的不同,通常可以分为主机漏洞扫描和Web应用漏洞扫描,这两种扫描的工作机制、扫描方法和漏洞信息都有不同。
主机漏洞扫描主要关注的是网络中的设备或操作系统的安全漏洞,它通常寻找已知的安全漏洞、配置错误、弱密码、端口暴露等问题。Nessus就是一个典型的主机漏洞扫描工具,它可以扫描操作系统、应用程序和网络设备,并且支持扫描安全漏洞、安全风险和安全合规性。
应用漏洞扫描主要专注于Web应用程序的安全问题,扫描的目标是Web应用程序本身,包括其代码、数据库交互、用户输入处理等方面,用于发现SQL注入、XSS、文件包含、路径遍历等Web应用特有的漏洞。AWVS(Acunetix Web Vulnerability Scanner)就是一个专门用于Web应用漏洞扫描的工具,并支持多种Web应用程序技术。
无论是哪种漏洞扫描工具,工具自身都会通过某种方式向工具使用者呈现报告的信息,比如通过漏洞报告导出功能。漏洞扫描报告用于记录扫描过程中发现的漏洞信息,通过漏洞扫描报告,用户可以了解网络、主机、应用等安全状况,对相关的风险进行处置,漏洞进行修复。
不同工具的漏洞报告详尽程度也不同,漏洞详情是用户判断漏洞误报、修复优先级、修复方法的重要信息来源,也是决定漏洞信息之于非安全人员是否专业的判断依据,而粗略的报告会让用户在漏洞修复决策、手段选择上产生一定学习成本或修复障碍,甚至无法按照漏洞信息完成漏洞修复,就像一桌子用了上好食材的家宴被吃饭的人评价不好吃。相反,一份清晰的报告可以直接看出来漏洞是不是误报,省略了手动去验证的步骤,可以快速的对报告里的漏洞进行定位、排查、处置。
本文对下面常见的五款漏洞扫描报告中:“漏洞详情”部分进行对比。
▪ AppScan
▪ AWVS
▪ Nessus
▪ 明鉴漏洞扫描系统
▪ 绿盟远程安全评估系统RSAS
【AppScan】
这是AppScan扫描工具的漏洞详情部分,其中标明了漏洞的严重性、CVSS分数、漏洞的参数(报告中为实体)、风险和原因,接下来给出了测试用的payload和对应的请求包和响应包,多数漏洞通过响应包可以直接看出来是不是误报,这里将payload和回包重点字段均进行了颜色标注。
下面是该漏洞详情中给出的修复建议:
修复建议中更加详细的介绍了漏洞原因和风险,然后给出了一个示例,使人更加了解漏洞的成因,最后才给出修复建议。对于XSS漏洞给出的建议专注于对动态数据的编码处理,以确保它们被视为纯文本。建议了设置HTTP响应标头和Cookie标志,提供更全面的安全防护措施,给出的建议比较适用于部署后的Web应用程序。
【AWVS】
AWVS扫描器用红黄蓝三种颜色来区分高中低风险,开头是一段漏洞的介绍,然后是关于这个漏洞会有什么影响介绍。下来同样给出了漏洞所在的URL和参数,可以准确的定位到漏洞所在的位置,以及去验证时使用的请求包,但是并没有响应包,如果要验证的话还是需要自己去手动测试一遍。
下面的推荐是给出的修复建议,只有简短的一句“将上下文相关的编码和/或验证应用于页面上呈现的用户输入“,比较简单,需要用户花点时间去理解,但在后面的参考里面给出了多篇他官网对这个漏洞详细的分析和修复建议。
【Nessus】
Nessus的漏洞报告是按照主机列表来展示的,直接展示这个主机下面有多少中高低漏洞,以及开始扫描时间、结束扫描时间、IP地址、服务器信息等。漏洞详情中再将漏洞一个一个单独列出来,并和漏洞数量的颜色对应,红色为最严重,橙色为高危,黄色为中危,绿色低危。
漏洞详情中包含漏洞的概述以及详细情况描述,其中包括漏洞的原因和危害,最后会给出自身官网和第三方对于这个漏洞的分析研究网址,内容还是比较详细的,但报告本身对于这个漏洞怎么修复只是简单的提一句,需要阅读参考文档。
漏洞详情中还会给出漏洞的风险级别和不同版本的CVSS评分,在插件输出部分,会给出检测时返回的信息、端口号和服务,这样的话可以帮助用户快速确定是不是误报。
【明鉴漏洞扫描系统】
明鉴扫描器的漏洞风险等级在上一级目录,会将所有高危列在一个章节,然后分别显示漏洞,给出了漏洞的位置和参考POC,详细信息里面有一般的漏洞描述和修复建议,没有详细的漏洞分析过程和请求包、响应包,如果不确定的话,需要手动去验证一下。
这里的漏洞详情给出的修复建议是”一般性的建议”,内容是通用的处理办法。
【绿盟远程安全评估系统RSAS】
RSAS漏洞扫描是针对主机漏洞的,要定位漏洞位置的话,需要看漏洞概况部分,看这个漏洞是在主机的哪个端口扫描到的,通过这个端口再去确定是什么应用产生了漏洞。漏洞详情部分给出了详细描述,描述中包含参考链接,后面给出了分值和漏洞的CVE编号、CNNVD编号、微软安全公告编号,并可以查看更加详细的漏洞信息和描述。
修复建议的话给出的依然是常规解决办法:升级打补丁,在其他一些未授权访问之类,或者基线会给出稍微详细一点的解决办法,包括怎么去配置,怎么修改配置文件等。
总结
以上这些常见的漏洞扫描工具报告格式虽有差异,但核心内容相似,主要包括任务配置信息、风险等级、漏洞统计和详细描述等。根据漏洞修复过程中关键的漏洞名称、漏洞描述和修复建议三个维度,对上述内容做对比,可以列出更加直观的详尽情况(包括:简单、一般、详细)。
显然,上述漏洞扫描工具都假设用户是专业的安全技术人员,而忽略了具体修复漏洞的非安全人员,比如产品经理、研发人员、实施人员,现实中同步漏洞信息时往往又是依据工具扫描的漏洞报告进行原文复制,这就可能造成非安全人员对于漏洞修复的恐惧甚至反感。因此,详尽的漏洞信息有助于安全漏洞的修复,如下所示:
▪ 漏洞名称:即简洁、清晰、易懂的标题;
▪ 漏洞描述:漏洞的上下文关系、漏洞原理以及利用成功后的影响;
▪ 漏洞位置:漏洞出现的位置,比如URL、参数、文件或其他资源;
▪ 影响范围:漏洞利用成功后受影响的用户、客户或其他目标人群;
▪ 漏洞危害:漏洞利用成功后的危害情况简短说明;
▪ 漏洞复杂度:漏洞利用的条件和难度的简短说明;
▪ 发生概率:发生漏洞被利用的概率,比如:高、中、低;
▪ 漏洞严重性:结合漏洞危害和发生概率评估的漏洞严重性,比如:严重、高危、中危、低危 ;
▪ 复现过程:能够复现漏洞的逐步的操作说明,确保漏洞修复人员可复现漏洞;
▪ 修复建议:能够帮助开发者或相关人员修复或缓解漏洞的具体方式。