Amazon InspectorがLambdaの脆弱性スキャンに対応。SnykのLambda統合とどのように使い分けるか #reInvent22 #reInvent @snykjp #Qiitaアドカレ

2022.12.08

こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。

Snyk アドベントカレンダーの 12/8 の記事です。

SHARP 水なし自動調理鍋 HEALSiO ヘルシオ ホットクックを狙っています。 (妻が)

Snyk

Snyk は「デベロッパーファーストのセキュリティプラットフォーム」を標榜する、SaaS 型の SAST(静的解析)ツールです。弊社でも取り扱っています。

フリープランもあるためお気軽にぜひご利用いただけると幸いです。

re:Invent 2022 にて、 Amazon Inspector が Lambda の脆弱性スキャンに対応しました。

Snyk Open Source でも以前から Lambda の脆弱性対応はサポートされており、今回はどのような違いがあるのかをまとめていければと思います。

前提として Snyk Code の部分は比較対象外とします。

脆弱性データベース

Amazon Inspector

公式より提供されるアップデートブログを確認する限り、 CVE をもとに脆弱性を検出しているそうです。

Amazon Inspector scans functions and layers initially upon deployment and automatically rescans them when there are changes in the workloads, for example, when a Lambda function is updated or when a new vulnerability (CVE) is published.

Snyk Open Source

対して、 Snyk は独自の脆弱性データベースを利用して検出します。

対応言語

Amazon Inspector

Amazon Inspector は次の言語をサポートしています。

  • Java
    • Java 8
    • Java 11
  • NodeJS
    • NodeJS 12
    • NodeJS 14
    • NodeJS 16
  • Python
    • Python 3.7
    • Python 3.8
  • Python 3.9

Supported programming languages: AWS Lambda function scanning

Snyk Open Source

対して、 Snyk Open Source では以下の言語がサポートされています。

Lambda のランタイムでネイティブにサポートされている言語のみ抽出しています。

  • NodeJS
  • Java ( Maven のみ)
  • Ruby

AWS Lambda integration

詳しい言語バージョンは、以下製品ページよりご確認ください。

Open Source - Supported languages and package managers

スキャン頻度

Amazon Inspector

Amazon Inspectorは以下の頻度でスキャンが実行されます。

  • Amazon Inspector が既存の Lambda 関数を発見した場合(Inspectorを有効にした場合)
  • 新しい Lambda 関数をデプロイするとき
  • Lambda 関数を更新した時
  • 新しい脆弱性が CVE に公開された時
  • 自動スキャンのみ

参考:Scanning AWS Lambda functions with Amazon Inspector

Snyk Open Source

Snyk Open Source は以下のタイミングでスキャンが実行されます。

  • 初回スキャン
  • 新しい脆弱性が公開された時
  • 日時、週次の自動スキャン
  • 手動スキャンも可能

料金

Amazon Inspector

料金体系が少し複雑ですが、1ヶ月(720時間)、1関数あたり$0.36発生します。

Amazon Inspector pricing

Snyk Open Source

フリープランなら200テストまで無料で1ヶ月ご利用いただけます。

また、ビジネスプラン($98/月あたり人から)になると無制限でテスト可能になります。

Developer security for teams of all sizes

使いわけについて

まず初めに、 Lambda の対応言語を確認する必要があります。

Python の場合だと Amazon Inspector 、 Ruby だと Snyk と言った言語ベースでの使い分けができます。

(Snyk Open SourceとしてはPythonに対応しているため、デプロイ前のSCMで脆弱性管理も可能です。)

次点で、料金やスキャンタイミングなどを考えていくといいと思います。

まとめ

以上、Lambdaの脆弱性スキャンまとめでした。

対応言語や、料金スキャンタイミングさまざまな違いが明確に分かれててとてもわかりやすかったです。

以上、AWS事業本部コンサルティング部のたかくに(@takakuni_)でした!