Amazon InspectorでLambda関数のコードスキャンができるようになりました
AWS re:Inforce 2023にて、AWSセキュリティサービスについてたくさんのアップデートがありました。
Amazon InspectorでLambda関数のコードスキャンができるようになったので、検証してみました。
本アップデートは2月にプレビュー版がリリースされていましたが、今回の発表で一般提供開始になりました。
アップデート概要
- ユーザが作成したLambda関数内のコードをスキャンして、インジェクションの欠陥、データ漏洩、弱い暗号化、または暗号化の欠落などのコードセキュリティの脆弱性をスキャン
- Lambdaのスキャンは、レイヤーを対象とした「標準スキャン」とコードを対象とした「コードスキャン」があり、今回のアップデートは後者のコードスキャン
- スキャンタイミングは、Lambda関数のデプロイ時、Lambda関数の更新時、新しい脆弱性 ( CVE ) の公開時
詳細は以下のドキュメントに記載されています。
検証
事前準備
Inspectorの「アカウント管理」にて、「AWS Lambdaスキャン」の項目があります。
依然は「標準スキャン」だけでしたが、「コードスキャン」の記載が増えており、非アクティブ(無効化)になっていることが分かります。
「アクティブ化」から「AWS Lambda標準スキャン + AWS Lambdaコードスキャン」を押下します。
しばらくすると、「コードスキャン」もアクティブ(有効化)になりました。
Organizationを使っていれば、Inspector委任管理者アカウントから全アカウントまとめて有効化できます。 新しいメンバーアカウントを追加したときに、コードスキャンが有効化になるように、「AWS Lambdaコードスキャン」にチェックを入れて保存しておきましょう。
検知させてみる
脆弱なコードで含むLambda関数を作成します。
今回は、「Amazon CodeGuru, Detector Library」から以下の「Improper privilege management」を検知させてみます。
サンプルコード
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の機能も増えてきているので、今後の動向に注目です。