yuj1osm's tech blog

クラウドやセキュリティなど

Amazon InspectorでLambda関数のコードスキャンができるようになりました

AWS re:Inforce 2023にて、AWSセキュリティサービスについてたくさんのアップデートがありました。
Amazon InspectorでLambda関数のコードスキャンができるようになったので、検証してみました。

aws.amazon.com

本アップデートは2月にプレビュー版がリリースされていましたが、今回の発表で一般提供開始になりました。

aws.amazon.com

アップデート概要

  • ユーザが作成したLambda関数内のコードをスキャンして、インジェクションの欠陥、データ漏洩、弱い暗号化、または暗号化の欠落などのコードセキュリティの脆弱性をスキャン
  • Lambdaのスキャンは、レイヤーを対象とした「標準スキャン」とコードを対象とした「コードスキャン」があり、今回のアップデートは後者のコードスキャン
  • スキャンタイミングは、Lambda関数のデプロイ時、Lambda関数の更新時、新しい脆弱性 ( CVE ) の公開時

詳細は以下のドキュメントに記載されています。

docs.aws.amazon.com

検証

事前準備

Inspectorの「アカウント管理」にて、「AWS Lambdaスキャン」の項目があります。
依然は「標準スキャン」だけでしたが、「コードスキャン」の記載が増えており、非アクティブ(無効化)になっていることが分かります。

「アクティブ化」から「AWS Lambda標準スキャン + AWS Lambdaコードスキャン」を押下します。

しばらくすると、「コードスキャン」もアクティブ(有効化)になりました。

Organizationを使っていれば、Inspector委任管理者アカウントから全アカウントまとめて有効化できます。 新しいメンバーアカウントを追加したときに、コードスキャンが有効化になるように、「AWS Lambdaコードスキャン」にチェックを入れて保存しておきましょう。

検知させてみる

脆弱なコードで含むLambda関数を作成します。
今回は、「Amazon CodeGuru, Detector Library」から以下の「Improper privilege management」を検知させてみます。

docs.aws.amazon.com

サンプルコード

import os

def lambda_handler(event, context):
    root = 0
    # Noncompliant: the process user is set to root.
    os.setuid(root)

しばらくすると、検知がありました。

詳細画面から、関連するCWE情報やコードの脆弱な部分がハイライトされています。

まとめ

Amazon Inspectorで簡単にLambda関数のコードスキャンができるようになりました。
コードのどこに脆弱性があるかも示してくれるため、非常に使い勝手が良いサービスです。
Inspectorの機能も増えてきているので、今後の動向に注目です。