包漏洞扫描的最佳实践
包安全漏洞扫描是确保任何现代软件交付管道安全的基本步骤。与SCA工具例如,可以自动识别用于部署应用程序的包中的已知漏洞,包扫描程序显著降低了将不安全软件发布到生产环境中的风险。
然而,保护包需要的不仅仅是简单地设置一个自动化的包扫描程序,并假设它将检测到所有潜在的漏洞。正如本文所解释的,团队应该采取额外的步骤来最大限度地利用包漏洞扫描。
什么是包漏洞扫描?
软件包漏洞扫描是自动分析软件包中已知漏洞的过程。
漏洞扫描器几乎可以检查任何类型的包。例如,它们可以用于扫描Docker容器映像,或者开发人员创建的用于在Linux系统上部署软件的Debian或RPM包。
通常,包扫描程序的工作原理是检查软件包的内容是否与已知的易受攻击的项目相匹配,这些项目基于跟踪应用程序和库中的安全漏洞的数据库。例如,漏洞扫描器可能会确定一个包包含一个包含已知安全漏洞的特定版本的软件库。扫描器将标记问题并警告开发人员将库更新到最新的安全版本。
包漏洞扫描器的局限性
虽然漏洞扫描器是在软件中发现多种类型安全风险的重要工具,但重要的是要记住,它们只检查漏洞数据库中已经识别出的漏洞。
他们通常无法检测到存在于开发人员内部编写的代码中的安全漏洞,比如缓冲区溢出漏洞。这是静态的工作App 保护测试工具。它们也不监视应用程序行为以寻找安全漏洞的迹象,这是由siem和其他安全监视工具处理的任务。
另一个限制是解释漏洞扫描器可以生成的大量警报。在扫描包时,通常会收到一长串漏洞,扫描器并不一定会评估它识别的每个漏洞的严重程度。出于这个原因,要知道哪些漏洞严重到足以保证不使用映像,哪些漏洞构成无关紧要的风险,可能具有挑战性。收集这些信息通常需要手动分析每个漏洞及其对环境的潜在影响。
从包漏洞扫描器中获得最大收益
简单地部署一个自动化的包漏洞扫描器作为CI/CD管道的一部分是领先于安全问题的第一步。但是团队应该采取额外的步骤来最大限度地发现包中所有潜在漏洞的机会。
保持包尽可能小
每个包中包含的代码和依赖项越多,漏洞扫描器就越难解包所有层并检测漏洞。如果包包含许多项,则修复安全问题和重新构建包也会更加困难。
确保您创建的每个包只包含部署功能的一个方面所需的代码和其他资源是一种最佳实践。2022世界杯阿根廷预选赛赛程抵制将应用程序的多个组件塞进单个包的诱惑。
例如,与其创建包含多个微服务的Docker映像,不如为每个微服务生成不同的映像。或者,与其将应用程序前端和应用程序逻辑打包到同一个Debian包中,不如将它们分离到不同的包中。
在开发生命周期的早期扫描
与其等到部署之前才扫描包,不如在构建包时立即执行扫描。
尽早扫描有两个好处。首先,在CI/CD管道的早期更容易解决漏洞,因为您投入较少。如果等到已经对包执行了其他类型的测试才进行扫描,那么如果检测到漏洞并必须重新构建包,则需要再次运行这些测试。
其次,早期扫描将使不安全应用程序可用于生产的风险降至最低。您不希望将容器映像推入注册表,在您扫描它们之前,用户可以开始下载和安装它们。
早期扫描并不能取代部署前的扫描,这对于确保您评估实际投入生产的软件的风险也很重要。但是在开发周期的早期扫描也将帮助您在潜在的漏洞进入管道之前清除它们。
评估优先级
如上所述,如果您的团队难以确定哪些漏洞严重到足以使包不可用,那么包中的一长串漏洞就没有太大帮助。通过投资扫描器,可以根据每个漏洞的实际安全影响进行有效的漏洞风险评估和优先级排序,从而避免此问题。这样,您就可以轻松确定哪些漏洞是停止显示的,哪些是可以忽略的问题。
扫描包,即使您信任的来源
有时,您部署的包来自第三方来源,而不是内部来源。在这些情况下,确保扫描包是至关重要的,无论您对源代码有多大的信心。
投资建立一个全面的漏洞数据库
包漏洞扫描器的有效性取决于您提供给它们的漏洞数据。如果漏洞数据库不包括已知的安全问题,则扫描器无法检测到它。虽然存在各种免费的公共漏洞数据库,例如MITRE CVE目录,或者是NIST国家漏洞数据库在美国,它们并不总是包括最新的威胁信息。
这就是为什么投资是明智的选择在来自提供商的漏洞扫描解决方案中,通过利用多个威胁信息来源(包括公共风险目录、专有来源,如苏格兰皇家银行VulnDB以及安全专家的内部研究。所有这些漏洞资源都集成到2022世界杯阿根廷预选赛赛程JFrog x光.
