漏洞管理
制定有效的漏洞实践。
概述
本技术文件涵盖了不同的漏洞管理实践,例如漏洞扫描、渗透测试和代码漏洞扫描。本文还将探讨因事故导致服务中断后恢复可用性和访问权限的流程。
数据保护政策 (DPP) 要求
作为其中的一部分 亚马逊的数据保护政策 (DPP) (DPP),开发人员必须至少每半年进行一次漏洞扫描,每年进行渗透测试,在发布新代码、功能或产品之前进行代码漏洞扫描,并确保他们能够在数小时内恢复对个人身份信息 (PII) 的可用性和访问权限。这是为了避免泄露敏感数据,包括个人身份信息。每个 SP-API 开发人员都需要确保面向公众的网站、接口、服务器和新功能等漏洞在发布之前就具有预期的安全和保护级别。
漏洞管理
开发人员必须制定并维护计划或运行手册以检测和修复漏洞。开发人员必须通过执行漏洞扫描和适当修复来保护包含 PII 的物理硬件免受技术漏洞的影响。开发人员必须至少每 180 天进行一次漏洞扫描,至少每 365 天进行一次渗透测试,并在每次发布之前扫描漏洞代码。此外,开发人员必须通过测试、验证更改、批准更改以及限制谁可以执行这些操作来控制存储硬件的更改。开发人员必须制定适当的程序和计划,以便在发生物理或技术事故时及时恢复 PII 的可用性和访问权限。
漏洞扫描
漏洞扫描是识别、发现、分析和报告应用程序运行的实例或软件的主机访问权限、漏洞和网络缺口的过程。
就安全性而言,必须验证面向公众的设备/实例是否受到保护,免受不良行为者的侵害。在理想情况下,漏洞扫描工具可以运行扫描,以识别/分类风险因素以及网络中可能的攻击载体(包括软件和硬件资产)。
根据开放Web应用程序安全项目,以下是十大漏洞(OWASP) 2021 年及相关的常见弱点列举 (CWE):
CWE | 漏洞点 | 简要描述 |
---|---|---|
A01 | 访问控制失效 | 用户执行他们不应该能够访问的操作。 |
A02 | 加密故障 | 缺乏或薄弱的加密实践。 |
A03 | 注射 | 黑客能够在网络中插入数据并对其进行操作。 |
A04 | 不安全的设计 | 在网络设计阶段缺乏规划。 |
A05 | 安全微配置 | 未设置数据库、库或服务器中的安全设置,这可能会导致漏洞。 |
A06 | 易受攻击和过时的组件 | 软件或操作系统的旧版本或不支持的版本。 |
A07 | 识别和身份验证失败 | 缺乏用户访问控制和凭据管理。 |
A08 | 软件和数据完整性故障 | 无法防范违反诚信的行为。 |
A09 | 安全记录和监控失败 | 由于没有监控服务,因此很难识别漏洞和传出攻击。 |
A10 | 服务器端请求伪造 (SSFR) | 用户提供的未经验证的 URL,它强制应用程序发送绕过网络安全的请求。 |
请参阅 OWASP — 漏洞扫描工具 获取免费和付费扫描工具的列表。
扫描完成后,开发人员必须根据安全影响级别对漏洞进行优先级排序,并努力相应地修复漏洞。
-
外部漏洞扫描:外部扫描旨在检查端口、网站、网络和应用程序等外部/公共点的漏洞。
-
内部漏洞扫描:内部扫描可以查看私有网络中可能存在的安全漏洞。
-
侵入式和非侵入式扫描:非侵入式扫描将扫描特定的目标,例如网络流量或数据库的版本,但它不会影响服务级别,因为它只检查信息而不利用漏洞。侵入性扫描旨在利用最高级别的漏洞,提供有关已发现漏洞的更多见解,但它也会中断服务级别,因此请在受控环境中使用。
Amazon Inspector
亚马逊检查员 是一种可扩展的漏洞管理工具,可扫描工作负载和意外网络暴露,以验证运行 EC2 实例的操作系统中是否存在漏洞。
Amazon Inspector 使用更新的常见漏洞和暴露 (CVE) 因素并检查不同的编码语言(例如 Java、Python 和 Node.js),提供近乎实时的漏洞发现报告。使用 Amazon Inspector 的开发人员可以使用它来对 PCI、ISO 和 CSA STAR 证书等程序进行合规性验证。
Amazon Guard
亚马逊的安全团队开发了 亚马逊的 sp-api-Guard 作为在 AWS 实例中运行的应用程序,用于检查和评估安全合规性 亚马逊的 DPP。SP-API Guard 还针对其在一天内发现的任何安全漏洞向 S3 存储桶提供建议报告。这减少了手动数据安全评估的工作量和补救计划时间,同时为发现的漏洞提供了推荐的解决方案。
渗透测试
渗透测试(Pen testing)是一种在模拟/控制环境中检查应用程序或网络不同点是否存在漏洞的方法。这样做是为了确认哪些漏洞可以被不良行为者利用。
笔试包括以下阶段:
-
规划阶段: 团队为测试人员的笔试设定目标和范围。所有各方都必须了解即将到来的测试。
-
扫描/发现阶段:笔测试人员启动网络识别和代码检查过程。
-
渗透阶段: pen 测试人员尝试使用不同类型的攻击(例如 SQL 注入、跨站脚本和后门程序来利用漏洞)获得对网络/实例的访问权限。
-
分析/报告阶段: pen 测试器会创建一份报告,其中包含有关为渗透网络安全所采取的措施以及发现的漏洞的详细信息。触笔测试人员必须在报告中包含建议的操作部分。
-
修复/清理阶段:负责团队牵头,开始修复笔试完成后报告的漏洞。
作为确保漏洞得到修复或修补的额外安全措施,开发人员在修复阶段结束后进行第二次测试,以确保没有遗漏或无人值守的项目。
OWASP 还提供渗透测试指南 (OWASP ZAP)适用于想更多地了解如何在应用程序级别应用笔试及其网络组件(例如防火墙和端口)的开发人员。
代码漏洞扫描
代码漏洞扫描旨在降低发布新功能/产品时的风险。使用以下代码扫描工具,开发人员可以确保在部署代码时没有错误、技术问题或安全漏洞:
-
静态应用程序安全测试 (SAST):无需运行代码即可审查代码。SAST 检查代码的编写方式,以指出其中的任何安全问题。
-
动态应用程序安全测试 (DAST):与 SAST 相比,DAST 通过使用恶意载荷注入模拟攻击来检查正在运行的应用程序中的代码。DAST 帮助开发人员识别正在运行的应用程序中的漏洞。
-
交互式应用程序测试 (IAST):IAST 检查测试环境中的应用程序功能。这有助于实施和可扩展性,因为它有助于通过在发布之前解决漏洞来减少可能的停机时间或服务中断。
这些工具必须遵循OWASP给出的标准,以根据十大安全风险检查应用程序的安全性。开发人员必须继续扫描代码,对产品发布后影响或中断服务的任何安全漏洞进行识别、分类和优先级排序。
灾难恢复计划
为确保应用程序用户不受事件(技术或物理)的影响,开发人员必须制定计划,涵盖如何在短时间内恢复 PII 数据的可用性和访问权限的措施,同时考虑恢复时间目标 (RTO) 和恢复点目标 (RPO)。AWS 在以下方面提供指导 为云应用程序建立 RTO 和 RPO 目标。
-
到:开发人员恢复应用程序用户的正常服务级别所花费的时间。这可以通过在对应用程序功能至关重要的网络实例/服务中设置冗余来实现。
-
RPO:开发人员可以恢复数据的时间点,换句话说,事件发生后可以丢失多少数据。该目标的一个基本方面是在不同的位置对数据进行一次或多次备份,并尽可能每周执行两次备份。
开发人员应使用恢复策略并对其进行测试以实现目标(RTO 和 RPO)。 AWS 弹性中心 是一项 AWS 服务,可帮助建立 RTO 和 RPO 目标,并根据这些目标分析应用程序。
结论
漏洞管理是一项基本的安全标准。漏洞扫描和渗透测试有助于识别和降低网络环境和应用程序实例中可能存在的风险。根据 DPP 的要求,开发人员每年必须至少运行一次漏洞扫描和笔试。进行这些评估的做法有助于开发人员提高安全成熟度并遵守他们可能面临的标准,例如监管或行业最佳实践。
开发人员必须在发布功能或产品之前进行代码扫描。测试必须在隔离和受控的环境中进行,以确保新版本没有安全漏洞,也不会泄露任何数据。
拥有备份、快照或图像有助于减少因事故而丢失 PII 数据的影响。确保应用程序服务的弹性可以减少您恢复 PII 数据的访问权限和可用性所需的时间。
Updated 23 days ago