vlambda博客
学习文章列表

漏洞扫描工具是如何工作的?

漏洞扫描软件定义

漏洞扫描软件是自动化工具,用以检查网络,系统和应用程序是否存在易受攻击的安全弱点。漏洞扫描是企业网络安全中的常见做法,并且通常由行业标准和政府法规强制要求进行扫描,以改善组织的安全状况。

漏洞扫描领域中有很多工具和产品,涵盖了不同类型的资产,并提供其他功能以实施完整的漏洞发现与管理,以及漏洞分类和漏洞缓解等系列功能。

漏洞扫描工具是如何工作的?


外部和内部漏洞扫描

漏洞扫描可以从正在评估的网络或网段的外部或内部进行。组织可以从其网络外围进行外部扫描,以确定可直接从互联网访问的服务器和应用程序受到攻击的可能性。同时,内部漏洞扫描旨在发现可以被黑客利用的漏洞,如果他们能够访问本地网络,则可以利用这些漏洞横向迁移到不同的系统和服务器。

访问内部网络各部分的难易程度取决于网络的配置方式,更重要的是分段方式。因此,任何漏洞管理程序都应从组织系统的映射和清单开始,并根据其提供的访问权限和所拥有的数据对其重要性进行分类。

一些行业标准,例如支付卡行业数据安全标准(PCI-DSS),要求组织每季度必须执行一次内部和外部漏洞扫描,或者每次安装新系统或新组件,网络拓扑更改,防火墙规则修改,或各种软件升级后等情况,都必须执行内部和外部漏洞扫描。其中外部扫描,必须使用PCI认证的扫描工具厂商(ASV)的工具执行。


近年来,随着基于云的基础架构的广泛采用,漏洞扫描程序必须进行调整,以包括云托管资产。在这种情况下,外部扫描尤为重要,因为在云中数据库和其他服务的配置错误和不安全的部署已屡见不鲜。

漏洞扫描应辅以渗透测试渗透测试和漏洞扫描具有识别和评估安全漏洞的相同目的,但其实施过程却不尽相同。漏洞扫描是一种自动化的过程,依赖于已知漏洞库(例如CVE / NVD),一般来说,漏扫服务商应当有更完整的漏洞库,但通常不包括利用已识别的缺陷。与此同时,渗透测试是一个更复杂的过程,包括由安全专业人员模拟真实的攻击者所做的人工探测和利用。这样可以更准确地评估不同漏洞带来的风险。

漏洞扫描工具是如何工作的?

通过身份验证和未经身份验证的漏洞扫描 

漏洞扫描可以是通过身份验证的和未经身份验证的,也可以是经过凭据的和未经凭据的。非凭据扫描可以发现网络上的计算机所打开的服务,并在其打开的端口上发送数据包,以获得操作系统或软件的版本,发现是否有文件共享,没有身份验证和其他可用信息。根据这些细节,扫描工具可以形成一个漏洞数据库,并列出测试系统上可能存在的漏洞。

通过身份验证的扫描使用登录凭证来收集有关操作系统和软件的更详细、更准确的信息。有些程序可能无法通过网络访问,但仍然可能存在暴露于其他攻击载体(如打开恶意编写的文件或访问恶意web页面)的漏洞。一些漏洞评估解决方案除了使用网络扫描工具外,还使用部署在计算机上的轻量级代理来更好地了解组织中各种系统的安全状态。

经过身份验证的扫描可以收集更好的信息,因此比未经过身份验证的扫描能够发现更多的漏洞,而漏洞扫描通常会产生一些误报结果。这是因为可能存在各种漏洞,这些漏洞已通过各种变通办法或安全控制措施得到了缓解,而无需安装补丁程序和更新版本。

在某些情况下,漏洞扫描会导致网络拥塞或减慢系统运行速度,这就是为什么它们通常在正常工作时间之外执行,而这些时候它们不太可能造成业务中断。

扫描程序确定的漏洞需要由安全团队进行审查,分类和调查,并且漏洞扫描程序通常是旨在帮助整个漏洞管理过程的大型解决方案的一部分。

安全团队可以使用渗透测试来验证缺陷并更好地确定实际风险,而不必仅仅依赖漏洞数据库中列出的严重性评分。渗透测试还测试可能已经存在的其他防御措施的有效性,这些防御措施可能会阻止利用安全问题。

以下是安全团队在评估漏洞扫描结果时应提出的一些问题:

  • 此漏洞是否真的具有安全威胁?

  • 有人可以直接从互联网利用此漏洞吗?

  • 利用此漏洞困难的程度?

  • 是否存在已知的,已发布的针对此漏洞的攻击代码?

  • 如果此漏洞被利用,将会对业务产生什么影响?

  • 是否有其他安全控制措施可以减少利用此漏洞的可能性或影响?

  • 此漏洞被公开多久了?

  • 此漏洞在被测试系统存在多长时间了?


漏洞扫描工具是如何工作的?


Web应用程序漏洞扫描程序

Web应用程序漏洞扫描程序是可以在网站和其他基于Web的应用程序中查找漏洞的专用工具。网络漏洞扫描程序在扫描Web服务器本身(包括其操作系统,Web服务器守护程序)和各种其他开放式服务(例如在同一系统上运行的数据库服务)时,Web应用程序扫描程序将重点放在应用程序的代码上。

与使用已知漏洞和配置错误的数据库的网络漏洞扫描程序不同,Web应用程序扫描程序会寻找常见的Web缺陷类型,例如跨站点脚本(XSS)SQL注入,命令注入和路径遍历。因此,漏扫工具可以找到以前未知的漏洞,这些漏洞对于测试的应用程序是唯一的。这也称为动态应用程序安全测试(DAST),DAST经常为渗透测试人员所用。

Web应用程序扫描程序与静态应用程序安全性测试(SAST)工具一起使用,后者可在开发阶段分析Web应用程序的实际源代码,作为安全开发生命周期(SDLC)的一部分。开放式Web应用程序安全项目(OWASP)维护DASTSAST工具的列表,并为其运行基准测试项目

外部Web应用程序漏洞扫描(取决于配置方式)会产生大量流量,这可能使服务器超载并导致拒绝服务和其他问题。因此,通常通过与SAST和DAST互补的所谓交互式应用程序安全测试(IAST)工具将漏洞测试集成到DevOps和QA流程中。这有助于在将应用程序发布到生产环境之前识别漏洞和不安全的配置。

漏洞扫描工具是如何工作的?


持续的漏洞管理 

每月或每季度执行一次漏洞扫描时,漏洞扫描仅提供及时的快照,而在两次扫描之间的安全状态则无法被分析。这可能会导致严重的盲点,这就是为什么安全行业建议增加漏洞扫描的频率,并将其作为一种连续漏洞管理的方法的一部分。

建议每周或更频繁地进行扫描,但是要提高扫描频率,必须同时增加补丁频率,才能生效。组织应部署自动软件更新工具和策略,以确保其系统和应用程序尽快收到最新的安全补丁。

一些漏扫供应商还提供被动扫描器或传感器,这类工具可以连续监视网络,以识别添加到环境中的任何新系统或应用程序。这使企业可以立即扫描这些资产,并确保在计划进行下一次网络范围的扫描之前这些资产没有漏洞。

可以参考一些国外发布的漏洞扫描和管理指南,包括NISTUS-CERTSANS,NCSC

延伸阅读: