Amazon Inspector Lambda 標準スキャンを有効化すると「AWS Lambda 関数」と「AWS Lambda Layer」を対象に脆弱性 (CVE) を検出できる🔐 Lambda Layer もサポートしていることを確認してみた👌
requests 2.30.0
今回は Python パッケージの requests を使う.requests 2.30.0 には Medium レベルの脆弱性 CVE-2023-32681 が含まれているため,今回は意図的に requests 2.30.0 を含んだ Lambda Layer を作っておく.AWS SAM を使えば Lambda Layer も簡単に作れる❗️
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::Serverless-2016-10-31 Resources: requests2300: Type: AWS::Serverless::LayerVersion Properties: LayerName: requests-2-30-0 ContentUri: requests-2.30.0/ CompatibleRuntimes: - python3.12 Metadata: BuildMethod: python3.12
Lambda Layer を追加した動作確認用の AWS Lambda 関数も作っておく.コードは以下のように requests を使って API(今回は random.dog)を呼び出すシンプルな実装にしておく🐕
import requests def lambda_handler(event, context): print(requests.get('https://random.dog/woof.json').json())
動作確認
すると Amazon Inspector で CVE を検出できた❗️
標準スキャンから除外する
ドキュメントに書いてある通り,Amazon Inspector Lambda 標準スキャンの対象になるのは 過去90日間に呼び出された・または更新された
AWS Lambda 関数になるため,日常的に実行している AWS Lambda 関数は基本的にすべて対象になる.もし除外する場合は InspectorExclusion: LambdaStandardScanning
というタグを付ければ OK👌