kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Amazon Inspector Lambda 標準スキャンで Lambda Layer に含まれる CVE を検出する

Amazon Inspector Lambda 標準スキャンを有効化すると「AWS Lambda 関数」「AWS Lambda Layer」を対象に脆弱性 (CVE) を検出できる🔐 Lambda Layer もサポートしていることを確認してみた👌

docs.aws.amazon.com

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

pypi.org

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👌