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 deflambda_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👌