🔍 Amazon Inspector Lambda関数スキャン

Lambda関数の脆弱性を自動検出!
セキュリティリスクを未然に防ぐ完全図解ガイド

🛡️ 脆弱性検出 ⚡ 自動スキャン 📊 継続的監視

📌 結論:Inspector Lambda スキャンの3つの価値

🔎
自動脆弱性検出
Lambda関数のコードと依存パッケージを自動でスキャンし、 既知の脆弱性(CVE)を検出します
🔄
継続的な監視
新しいCVEが公開されると自動で再スキャン。 常に最新のセキュリティ状態を把握できます
📋
優先度付きレポート
検出された脆弱性を重要度別に分類。 どこから対処すべきかが一目瞭然です

🏥 たとえ話で理解しよう!「健康診断」で考える

🏥 会社の健康診断
👤 社員 = Lambda関数
🩺 健康診断 = Inspectorスキャン
📋 検査項目 = CVEデータベース
📊 診断結果 = 検出レポート
⚠️ 要精密検査 = 脆弱性検出
➡️
☁️ AWSの世界では
λ Lambda関数のコード
🔍 Amazon Inspector
🗄️ NVD/CVE脆弱性情報
📈 セキュリティFindings
🚨 Critical/High検出
🔗 健康診断とInspectorの対応関係
年1回の定期健康診断
=
デプロイ時の自動スキャン
新しい病気が発見されたら再検査
=
新CVE公開時の自動再スキャン
血液検査・レントゲン等の項目
=
コード・依存関係・設定の検査
「要治療」「要経過観察」の判定
=
Critical/High/Medium/Lowの分類

⚙️ スキャンの仕組み:5ステップで理解

1
📦
Lambda作成
関数をデプロイ
2
🔍
自動検出
Inspectorが検知
3
📝
コード解析
依存関係を抽出
4
🗄️
CVE照合
脆弱性DBと比較
5
📊
結果出力
Findings生成

🎯 検出できる脆弱性の種類

💻
コードの脆弱性
Lambda関数のソースコード自体に含まれる セキュリティ上の問題を検出します。
📋 検出例
🔴 ハードコードされた認証情報
🟠 SQLインジェクション脆弱性
🟡 不適切なエラーハンドリング
📦
依存パッケージの脆弱性
npm、pip、Maven等で追加した外部ライブラリの 既知の脆弱性(CVE)を検出します。
📋 検出例
🔴 Log4j(CVE-2021-44228)
🟠 古いrequestsライブラリ
🟡 非推奨の暗号化ライブラリ
⚙️
ランタイムの脆弱性
Lambda関数が使用するランタイム環境 (Python、Node.js等)の脆弱性を検出します。
📋 検出例
🔴 サポート終了ランタイム
🟠 古いNode.jsバージョン
🟡 Python 3.8以前の使用

⚡ 脆弱性の重要度レベル(CVSS)

🔴
Critical
CVSS 9.0 - 10.0
即時対応が必要!
🟠
High
CVSS 7.0 - 8.9
24時間以内に対応
🟡
Medium
CVSS 4.0 - 6.9
計画的に対応
🔵
Low
CVSS 0.1 - 3.9
リスク評価後に対応
Informational
CVSS 0.0
情報として把握

🚀 有効化手順(3ステップ)

1

Inspectorを有効化

AWS Management ConsoleでAmazon Inspectorを有効化します。

# AWS CLIでの有効化 aws inspector2 enable --resource-types "LAMBDA" "LAMBDA_CODE" # 有効化状態の確認 aws inspector2 batch-get-account-status
2

スキャン対象の選択

すべてのLambda関数が自動的にスキャン対象になります。除外したい関数はタグで制御可能です。

# 特定の関数をスキャン対象から除外するタグ aws lambda tag-resource \ --resource arn:aws:lambda:ap-northeast-1:123456789012:function:my-function \ --tags 'InspectorExclusion=LambdaStandardScanning'
3

結果の確認

スキャン結果はInspectorコンソールまたはSecurity Hubで確認できます。

# 検出結果(Findings)の取得 aws inspector2 list-findings \ --filter-criteria '{"resourceType":[{"comparison":"EQUALS","value":"AWS_LAMBDA_FUNCTION"}]}' \ --max-results 10

🏗️ アーキテクチャ全体像

λ
Lambda関数
スキャン対象
🔍
Inspector
スキャンエンジン
📊
Findings
検出結果
🔔
通知・対応
アラート発報
🛡️
Security Hub
セキュリティ情報の一元管理
📧
EventBridge + SNS
リアルタイム通知
📈
CloudWatch
メトリクス監視
🎫
Jira/ServiceNow
チケット自動作成

💻 サポート対象のプログラミング言語

言語/ランタイム パッケージスキャン コードスキャン 対象ファイル
🟢 Node.js ✅ 対応 ✅ 対応 package.json, package-lock.json
🐍 Python ✅ 対応 ✅ 対応 requirements.txt, Pipfile.lock
☕ Java ✅ 対応 ✅ 対応 pom.xml, build.gradle
🔷 .NET ✅ 対応 ✅ 対応 *.csproj, packages.config
🦀 Rust ✅ 対応 ❌ 非対応 Cargo.toml, Cargo.lock
🐹 Go ✅ 対応 ❌ 非対応 go.mod, go.sum
💎 Ruby ✅ 対応 ❌ 非対応 Gemfile, Gemfile.lock

✨ ベストプラクティス

1
CI/CDパイプラインに統合
デプロイ前にInspectorスキャンを実行し、 Critical/High脆弱性がある場合はデプロイを停止。 シフトレフトで早期に問題を発見しましょう。
2
通知の自動化
EventBridgeルールでCritical検出時に 即座にSlack/Teams/メールへ通知。 対応の遅延を防ぎましょう。
3
依存関係の定期更新
Dependabot等を使用して依存パッケージを 自動更新。脆弱なバージョンの使用期間を 最小化しましょう。
4
抑制ルールの活用
誤検知や対応不要な脆弱性は抑制ルールで 管理。ノイズを減らして本当に重要な 問題に集中しましょう。
5
Security Hub統合
InspectorをSecurity Hubと統合し、 他のセキュリティサービスと合わせて 一元的に監視・管理しましょう。
6
定期的なレビュー
週次/月次でFindings状況をレビュー。 トレンドを把握し、セキュリティ改善の KPIとして活用しましょう。

💰 料金体系

📦
Lambdaパッケージスキャン
$0.30 / 関数 / 月
依存パッケージの脆弱性検出。 対象となる全Lambda関数に課金されます。
💻
Lambdaコードスキャン
$0.75 / 初回スキャン
ソースコードの脆弱性検出。 初回スキャン後の自動再スキャンは無料。
🎁
無料利用枠
15日間 無料トライアル
新規有効化から15日間は無料で利用可能。 本格導入前の評価に活用できます。
💡

コスト最適化のヒント

開発環境やテスト用の一時的なLambda関数は、タグを使ってスキャン対象から除外することで コストを抑えられます。本番環境のセキュリティは妥協せず、不要なスキャンは削減しましょう。

❓ よくある質問(FAQ)

Q
スキャンはいつ実行されますか?
スキャンは以下のタイミングで自動的に実行されます:
  • Lambda関数が新規作成されたとき
  • 関数のコードが更新されたとき
  • 新しいCVE(脆弱性情報)が公開されたとき
💡 手動でスキャンを実行する必要はありません。Inspectorが自動で継続的にスキャンします。
Q
スキャンによるLambda関数のパフォーマンス影響はありますか?
パフォーマンスへの影響はありません。

Amazon InspectorはLambda関数のデプロイパッケージをスキャンします。 関数の実行時(ランタイム)には一切介入しないため、レイテンシーやメモリ使用量に影響を与えません。
💡 健康診断が日常生活に影響しないのと同じです。検査は別の場所で行われます。
Q
検出された脆弱性はどうやって修正すればいいですか?
検出結果(Findings)には以下の情報が含まれており、修正をサポートします:
  • 脆弱性の詳細:CVE番号、影響、悪用方法
  • 影響を受けるパッケージ:脆弱なライブラリとバージョン
  • 修正バージョン:アップデートすべきバージョン
  • 関連リンク:NVD、ベンダーアドバイザリ等
多くの場合、依存パッケージのバージョンを更新するだけで解決します。
Q
Lambda以外のリソースもスキャンできますか?
はい、Amazon Inspectorは以下のリソースもスキャン可能です:
  • EC2インスタンス:OSパッケージの脆弱性
  • ECRコンテナイメージ:コンテナ内のパッケージ脆弱性
💡 Lambda、EC2、ECRを一つのダッシュボードで統合管理できるのがInspectorの強みです。
⚠️

注意点

Amazon InspectorのLambdaスキャンは既知の脆弱性(CVE)のみを検出します。 ゼロデイ脆弱性やビジネスロジックの問題は検出できません。 セキュリティは多層防御が重要です。WAF、IAM、暗号化など他のセキュリティ対策と組み合わせて利用しましょう。

Created by SSuzuki1063

AWS SAP Learning Resources