LoginSignup
6
3

More than 1 year has passed since last update.

【Inspector】Lambda関数の脆弱性スキャン結果をSlackへ通知させてみた

Last updated at Posted at 2022-12-07

この記事は、「Relic Advent Calendar 2022」の8日目の記事です!

はじめに

re:Inventでリリースされたサービスを試してみる第3弾はセキュリティで有効化必須の「InspectorによるLambdaの脆弱性スキャン」になります。設定的にはコンソールをクリックして機能を有効化するだけ完了するもので、それだけですと物足りないので実際に脆弱性スキャンさせてSlackへ通知させるところまで確認してみようと思います。

第1弾はこちら→【re:Invent】Amazon EventBridge Pipesの検証と今後について
第2弾はこちら→【完全に】統合型DevOpsサービス「Amazon CodeCatalyst」【理解した】

Inspector v2

Inspectorは2021年11月にv2へとバージョンがあがり、以下の機能が追加されました。

  • Snykと提携することで脆弱性データベースに脆弱性インテリジェンスが追加
  • AWS Organizationと統合
  • Amazon EventBridgeと統合
  • SecurityHubとの統合
  • 脆弱性管理の自動化
  • ECRのアドバンスドスキャン対応
  • SSMエージェントでEC2の脆弱性スキャン対応
    • 以前はInspectorエージェントが必要だった

InspectorのLambda脆弱性スキャン対応

そこに更に今年のre:InventではLambdaへの対応が発表されたことにより更に対応範囲を広げた形になります。

Lambdaへの脆弱性スキャンは以下の機能を持ちます。

  • 対応ランタイム(2022年現在)
    • Java、Node.js、Python
  • エージェントレス
  • スキャン対象
    • Lambda関数およびレイヤー
  • スキャンタイミング
    • Lambda関数の作成時
    • Lambda関数の更新時
    • 新たな脆弱性が公開された時

このアップデートによりLambdaのデプロイ時だけでなく、継続的にCVEをチェックし自動的に再スキャンしてくれるのでよりアプリケーションの安全性を維持することが容易になりました。

Lambda脆弱性スキャンの有効化

※Inspector自体は既に有効化されている前提

  • Inspecotrのナビゲーションペインより設定->アカウント管理を選択
  • アカウントタブより有効化したいアカウントIDをクリック
  • 有効化をクリック

スクリーンショット_2022-12-07_21_00_01.png

  • Lambda標準スキャンをクリック
    スクリーンショット_2022-12-07_21_00_13.png
  • ステータスがEnabledになることを確認
    スクリーンショット_2022-12-07_21_07_34.png

スキャン結果確認

カバレッジ

Lambda関数がそれぞれスキャンされてカバレッジが表示されました。
このSandBox環境ではLambda関数が計151個あり、その内スキャンがサポートされているランタイムでの関数が144個、残りは未サポートのランタイムによる関数ということが分かります。
スクリーンショット 2022-12-07 21.09.31.png

検出結果

  • 検出結果->Lambda別でLambda関数毎の検出結果を参照する事が出来ます。
    このSandBox環境では昔検証で作成されたLambdaに脆弱性が検出されておりました。
    スクリーンショット_2022-12-07_21_15_32.png

Slackへの通知

EventBridgeでInspectorからの検出結果をトリガーに通知させることも可能ですが、より一般的なSecurityHubと統合した状態で通知させたいと思います。

スクリーンショット 2022-12-07 23.06.18.png

SecurityHub有効化

  • SecurityHubコンソールへアクセスして、任意のセキュリティ基準にチェックを入れSecurity Hubの有効化をクリックする
    スクリーンショット_2022-12-07_21_39_13.png

  • SecurityHubを有効化すると各AWSサービスと自動的に統合されます。

統合の確認

  • SecurityHubのナビゲーションペインの統合を選択して、Inspectorのステータスが結果を受け入れますと表示されていることを確認
    スクリーンショット_2022-12-07_21_31_29.png

EventBridge設定

  • EventBridgeにてルールを以下のイベントパターンで作成
  • 今回は重大度評価がMEDIUM以上を通知対象とします
  • ルールのターゲットにChatbotに紐付いているSNSを指定
    ※EventBridgeやSNS、Chatbotとの連携については↓などを参考にしてください

※Inspectorは、NVD/CVSSスコアを脆弱性の重大度スコアの基準として使用しております。
トリガーとする重要度を変更したい場合は下記を参照してください。

Score Rating
0 INFORMATIONAL
0.1–3.9 LOW
4.0–6.9 MEDIUM
7.0–8.9 HIGH
9.0–10.0 CRITICAL
{
  "source": ["aws.securityhub"],
  "detail-type": ["Security Hub Findings - Imported"],
  "detail": {
    "findings": {
      "ProductName": ["Inspector"],
      "Severity": {
        "Label": ["MEDIUM","HIGH", "CRITICAL"]
      }
    }
  }
}

通知の確認

  • 脆弱性が検出された関数のソースコードを改行を加えるなどして更新
  • Slackへ通知が飛ぶことを確認

特に疑っていませんでしたがちゃんと通知が飛んで来ました。
スクリーンショット_2022-12-07_22_03_35.png

今回の検証に利用したLambda関数は特に使っている様子がなかったので最後に削除しました。

料金

Lambda関数の脆弱性スキャンは継続的に評価されることから、毎月のコストは1ヶ月あたりにスキャンされるLambda関数の平均数をベースにInspectorの総カバー時間に基づいて比例配分となります。

条件 価格
スキャンされるLambda関数の平均数/月 $0.36/Lambda関数

※15日間の無料トライアル有り

1ヶ月スキャンされたLambda関数: 20個
10日間だけスキャンされたLambda関数: 10個
20 * 0.36ドル + 10 * 0.12 = 8.4ドル

おわりに

スキャンだけならほぼワンクリックで、今回使用したSecurityHubやEventBridge、Chatbotを活用した仕組みが既に用意されてる環境では変更なく検出結果通知を受け取る事が出来るので是非積極的に取り入れていきたいですね。

ご自身の環境で使用しているLambdaランタイムが今回のアップデートでサポートされているものであれば是非導入を検討してみては如何でしょうか。

参照

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3