📌 結論: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関数のデプロイパッケージをスキャンします。 関数の実行時(ランタイム)には一切介入しないため、レイテンシーやメモリ使用量に影響を与えません。
Amazon InspectorはLambda関数のデプロイパッケージをスキャンします。 関数の実行時(ランタイム)には一切介入しないため、レイテンシーやメモリ使用量に影響を与えません。
💡 健康診断が日常生活に影響しないのと同じです。検査は別の場所で行われます。
Q
検出された脆弱性はどうやって修正すればいいですか?
検出結果(Findings)には以下の情報が含まれており、修正をサポートします:
- 脆弱性の詳細:CVE番号、影響、悪用方法
- 影響を受けるパッケージ:脆弱なライブラリとバージョン
- 修正バージョン:アップデートすべきバージョン
- 関連リンク:NVD、ベンダーアドバイザリ等
Q
Lambda以外のリソースもスキャンできますか?
はい、Amazon Inspectorは以下のリソースもスキャン可能です:
- EC2インスタンス:OSパッケージの脆弱性
- ECRコンテナイメージ:コンテナ内のパッケージ脆弱性
💡 Lambda、EC2、ECRを一つのダッシュボードで統合管理できるのがInspectorの強みです。
注意点
Amazon InspectorのLambdaスキャンは既知の脆弱性(CVE)のみを検出します。 ゼロデイ脆弱性やビジネスロジックの問題は検出できません。 セキュリティは多層防御が重要です。WAF、IAM、暗号化など他のセキュリティ対策と組み合わせて利用しましょう。