使用 Amazon Inspector 进行扫描 Amazon Lambda - Amazon Inspector
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Inspector 进行扫描 Amazon Lambda

Amazon Inspector 对 Amazon Lambda 函数的支持为 Lambda 函数和层提供了持续、自动的安全漏洞评估。Amazon Inspector 提供两种类型的 Lambda 扫描。这些扫描类型可查找不同类型的脆弱性。

Amazon Inspector Lambda 标准扫描

这是默认的 Lambda 扫描类型。Lambda 标准扫描会扫描 Lambda 函数及其层中的应用程序依赖项,以查找程序包脆弱性。有关更多信息,请参阅 Lambda 标准扫描

Amazon Inspector Lambda 代码扫描

这种扫描类型会扫描函数及其层中的自定义应用程序代码,以查找代码脆弱性。您可以单独激活 Lambda 标准扫描,也可以同时激活 Lambda 标准扫描和 Lambda 代码扫描。有关更多信息,请参阅 Amazon Inspector Lambda 代码扫描

激活 Lambda 扫描后,Amazon Inspector 会在您的账户中创建以下 Amazon CloudTrail 与服务相关的渠道:

  • cloudtrail:CreateServiceLinkedChannel

  • cloudtrail:DeleteServiceLinkedChannel

Amazon Inspector 管理这些渠道,并使用它们来监控您的扫描 CloudTrail 事件。有关服务关联频道的更多信息,请参阅使用 CLI Amazon 查看服务相关频道。 CloudTrail

注意

Amazon Inspector 创建的服务相关渠道允许您像有 CloudTrail 跟踪一样查看账户中的 CloudTrail 事件,但是,我们建议您创建自己的渠道 CloudTrail 来管理账户的事件。

有关激活 Lambda 函数的说明,请参阅激活扫描类型

Lambda 函数扫描的扫描行为

激活后,Amazon Inspector 会扫描您账户中过去 90 天内调用或更新的所有 Lambda 函数。在以下情况下,Amazon Inspector 会对 Lambda 函数启动脆弱性扫描:

  • Amazon Inspector 发现现有的 Lambda 函数时。

  • 将新的 Lambda 函数部署到 Lambda 服务时。

  • 部署现有 Lambda 函数或其层的应用程序代码或依赖项更新时。

  • Amazon Inspector 在其数据库中添加新的常见脆弱性和风险 (CVE) 项目,且该 CVE 与您的函数相关时。

Amazon Inspector 会在每个 Lambda 函数的整个生命周期内对其进行监控,直到该函数被删除或被排除在扫描范围之外。

您可以通过账户管理页面的 Lambda 函数选项卡或使用 API 查看上次检查 Lambda 函数是否存在漏洞的时间。ListCoverage 发生以下事件时,Amazon Inspector 会更新 Lambda 函数的上次扫描时间字段:

  • Amazon Inspector 完成对 Lambda 函数的初始扫描时。

  • 更新 Lambda 函数时。

  • 由于影响 Lambda 函数的新 CVE 项目添加到 Amazon Inspector 数据库中,Amazon Inspector 重新扫描该函数时。

支持的运行时系统和符合条件的函数

对于 Lambda 标准扫描和 Lambda 代码扫描,Amazon Inspector 支持不同的运行时系统。有关每种扫描类型支持的运行时系统的列表,请参阅支持的运行时系统:Amazon Inspector Lambda 标准扫描支持的运行时系统:Amazon Inspector Lambda 代码扫描

除了具有受支持的运行时系统之外,Lambda 函数还需要满足以下条件才有资格进行 Amazon Inspector 扫描:

  • 过去 90 天内调用或更新过该函数。

  • 该函数被标记为 $LATEST

  • 该函数未按标签从扫描中排除。

注意

过去 90 天内未调用或修改的 Lambda 函数将自动排除在扫描范围之外。如果 Lambda 函数再次被调用或对函数代码进行了更改,则 Amazon Inspector 将恢复对自动排除的函数的扫描。

Amazon Inspector Lambda 标准扫描

Amazon Inspector Lambda 标准扫描可识别 Lambda 函数代码和层中使用的应用程序包依赖项中的软件脆弱性。例如,如果 Lambda 函数使用的 python-jwt 程序包版本存在已知脆弱性,则 Lambda 标准扫描将生成针对该函数的调查发现。

如果 Amazon Inspector 在 Lambda 函数应用程序包依赖项中检测到脆弱性,则 Amazon Inspector 会生成详细的程序包脆弱性类型的调查发现。

有关激活扫描类型的说明,请参阅激活扫描类型

注意

停用 Amazon Inspector Lambda 标准扫描也将同时停用 Amazon Inspector Lambda 代码扫描。

从 Lambda 标准扫描中排除函数

您可以标记某些函数,将其排除在 Amazon Inspector Lambda 标准扫描之外。从扫描中排除函数有助于防止出现无法操作的警报。

要从 Lambda 标准扫描中排除 Lambda 函数,请使用以下键值对标记函数:

  • 键:InspectorExclusion

  • 值:LambdaStandardScanning

从 Lambda 标准扫描中排除函数
  1. 通过以下网址登录 Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 选择函数

  3. 在函数表中,选择要从 Amazon Inspector Lambda 标准扫描中排除的函数的名称。

  4. 选择配置,然后从菜单中选择标签

  5. 选择管理标签,然后选择添加新标签

  6. 字段中输入 InspectorExclusion,然后在字段中输入 LambdaStandardScanning

  7. 选择保存以添加标签,并将函数排除在 Amazon Inspector Lambda 标准扫描之外。

有关在 Lambda 中添加标签的更多信息,请参阅在 Lambda 函数上使用标签

Amazon Inspector Lambda 代码扫描

重要

代码扫描从 Lambda 函数中捕获代码片段,以突出显示检测到的脆弱性。这些片段可能以纯文本形式显示硬编码的凭证或其他敏感材料。

Amazon Inspector Lambda 代码扫描会根据安全最佳实践扫描 Lambda 函数中的自定义应用程序代码,以查找代码漏洞。 Amazon Lambda 代码扫描可检测注入缺陷、数据泄露、弱加密或代码中缺少加密。有关可用区域的信息,请参阅特定于区域的功能可用性

Lambda 标准扫描这项功能可评估函数中使用的应用程序包依赖项,以查找常见脆弱性和风险 (CVE)。您可以同时激活 Lambda 代码扫描和 Lambda 标准扫描。

Amazon Inspector 会使用自动推理和机器学习来评估 Lambda 函数应用程序代码,分析应用程序代码的总体安全合规性。它基于与 Amazon 合作开发的内部检测器来识别违反政策的行为和漏洞 CodeGuru。有关可能检测的列表,请参阅探CodeGuru 测器库

如果 Amazon Inspector 在 Lambda 函数应用程序代码中检测到脆弱性,Amazon Inspector 会生成详细的代码脆弱性类型的调查发现。此调查发现类型包括问题在代码中的确切位置、展示问题的代码片段以及建议的补救措施。

重要

您应对自己接受的补救建议负责。在接受补救建议之前,请务必仔细审视这些建议。您可能需要对补救建议进行编辑,以确保代码符合您的预期。

在代码脆弱性调查发现中加密代码

该服务存储在使用 Lambda 代码扫描发现代码漏洞时检测到的代码片段。 CodeGuru 默认情况下,由 CodeGuru 控制的Amazon 自有密钥用于加密您的代码,但是,您可以通过 Amazon Inspector API 使用自己的客户托管密钥进行加密。有关更多信息,请参阅对调查发现中的代码进行静态加密

可以同时激活 Lambda 代码扫描和 Lambda 标准扫描。有关激活扫描类型的说明,请参阅激活扫描类型

从 Lambda 代码扫描中排除函数

您可以标记某些函数,将其排除在 Amazon Inspector Lambda 代码扫描之外。从扫描中排除函数有助于防止出现无法操作的警报。

要从 Amazon Inspector 中排除 Lambda 函数,Lambda 代码扫描可使用以下键值对标记函数:

  • 键:InspectorCodeExclusion

  • 值:LambdaCodeScanning

从 Lambda 代码扫描中排除函数
  1. 通过以下网址登录 Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 选择函数

  3. 在函数表中,选择要从 Amazon Inspector Lambda 代码扫描中排除的函数的名称。

  4. 选择配置,然后从菜单中选择标签

  5. 选择管理标签,然后选择添加新标签

  6. 字段中输入 InspectorCodeExclusion,然后在字段中输入 LambdaCodeScanning

  7. 选择保存以添加标签,并将函数排除在 Amazon Inspector Lambda 代码扫描之外。

有关在 Lambda 中添加标签的更多信息,请参阅在 Lambda 函数上使用标签