Amazon Web Services ブログ

Amazon Inspector の 3 つの新機能により、ワークロードの脆弱性スキャンの範囲が広がります

11月30日、Amazon Inspector には、ワークロードをスキャンしてソフトウェアの脆弱性を検出する際の可能性を広げる 3 つの新機能が追加されました。

  • Amazon Inspector では、新しいオープンソースプラグインと API が導入されました。これにより、コンテナイメージのソフトウェアの脆弱性をビルド時に評価できます。これにより、実行中の継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインから直接、コンテナイメージのソフトウェア脆弱性を評価できます。
  • Amazon Inspector は、エージェントや追加のソフトウェアをインストールしなくても、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを継続的にモニタリングできるようになりました (プレビュー中)。
  • Amazon Inspector は、生成型人工知能 (AI) と自動推論を使用して、AWS Lambda 関数のコード修正を支援します。

Amazon Inspector は、AWS ワークロードを継続的にスキャンして、既知のソフトウェアの脆弱性や意図しないネットワークへの露出がないかを確認する脆弱性管理サービスです。Amazon Inspector は、実行中の EC2 インスタンス、Amazon Elastic Container Registry (Amazon ECR) および CI/CD ツール内のコンテナイメージ、および Lambda 関数を自動的に検出してスキャンします。

エンジニアリングチームが脆弱性に迅速に対処しようとすると、しばしば課題に直面することは周知の事実です。これは、リリース期限が厳しく、チームが脆弱性バックログにある問題に取り組むよりも開発を優先せざるを得ないためです。しかし、それはまた、セキュリティ環境の複雑で進化し続ける性質によるものでもあります。その結果、ある調査によると、組織は重大な脆弱性を解決するのに平均 250 日かかることがわかりました。そのため、開発ライフサイクルの早い段階で潜在的なセキュリティ問題を特定し、本番環境へのデプロイを防ぐことが重要です。

AWS Lambda 関数コードの脆弱性を検出する
デベロッパーの近くで Lambda 関数コードから始めましょう。

2022 年 11 月と 2023 年 6 月に、Amazon Inspector は関数の依存関係とコードをスキャンする機能を追加しました。今日は、生成系 AI と自動推論機能を追加して、コードを分析し、コードパッチとして自動的に修正を作成します。

Amazon Inspector は、セキュリティスキャン中に検出された複数のクラスの脆弱性に対して、コンテキストに応じたコードパッチを提供できるようになりました。Amazon Inspector は、インジェクションの欠陥、データ漏えい、脆弱な暗号化、暗号化の欠如などのセキュリティ問題について、コードの評価を拡張します。生成系 AI のおかげで、Amazon Inspector が修正方法を提案するようになりました。影響を受けたコードスニペットが、改善策の提案と共に表示されます。

以下に例を示します。ハードコードされた AWS シークレットキーを使って Python コードの短いスニペットを書きました。そんなことは絶対しないで!

def create_session_noncompliant ():
    import boto3
    # 非準拠:ハードコードされたシークレットアクセスキーを使用します。
    sample_key =「AjWnyxxxxx45xxxxZxxxX7ZQxxxxYxxx1xYxxxxx」
    boto3.session.session (aws_secret_access_key=sample_key)
    return response

コードをデプロイします。これにより評価が開始されます。AWS マネジメントコンソールを開いて Amazon Inspector ページに移動します。検出結果のセクションで、脆弱性を見つけました。脆弱性の場所と推奨修正方法がわかりやすい自然言語で説明されていますが、差分テキストやグラフ形式でも表示されます。

Inspector による自動コード修正

コンテナ CI/CD パイプラインの脆弱性の検出
それでは、コンテナを構築するときの CI/CD パイプラインに移りましょう。

今日まで、Amazon Inspector は、コンテナイメージを作成して Amazon Elastic Container Registry (Amazon ECR) に保存すると、それを評価することができました。本日より、Amazon Inspector は、CI/CD ツール内でビルド中にコンテナイメージを評価することで、開発プロセスのより早い段階でセキュリティ問題を検出できるようになりました。評価結果はほぼリアルタイムで CI/CD ツールのダッシュボードに直接返されます。この新しい機能を使用するために Amazon Inspector を有効にする必要はありません。

Jenkins と JetBrain の TeamCity 向けに、すぐに使える CI/CD プラグインを提供しており、今後さらに追加される予定ですAWS SDKAWS コマンドラインインターフェイス (AWS CLI) から利用できる新しい API (inspector スキャン) とコマンド (inspector-sbomgen) もあります。この新しい API により、Amazon Inspector をお好みの CI/CD ツールに統合できます。

実行時に、プラグインは構成されたリソースでコンテナ抽出エンジンを実行し、 CycloneDX 互換のソフトウェア部品表 (SBOM) を生成します。次に、プラグインは SBOM を Amazon Inspector に送信して分析します。プラグインはスキャンの結果をほぼリアルタイムで受信します。応答を解析し、Jenkins または TeamCity がパイプラインの実行をパスまたは失敗させるために使用する出力を生成します。

Jenkins でプラグインを使用するには、まず Jenkins がインストールされている EC2 インスタンスにロールがアタッチされているか、Amazon Inspector API を呼び出す権限を持つ AWS アクセスキーとシークレットアクセスキーがあることを確認します。

プラグインを Jenkins から直接インストールします (Jenkins ダッシュボード > Jenkins 管理 > プラグイン)

CICD の検査 Jenkins プラグインのインストール

次に、パイプラインに Amazon Inspector スキャンステップを追加します。

Inspector CICD-Jenkins ステップを追加

作成した IAM ロール(またはオンプレミスで実行している場合は AWS アクセスキーとシークレットアクセスキー)、 Docker 認証情報 AWS リージョンおよびイメージ ID を使用してステップを構成します

Inspector CICD-Jenkins プラグインの設定

Amazon Inspector は脆弱性を検出すると、プラグインに報告します。ビルドが失敗し、詳細を Jenkins で直接確認できます。

Inspector CICD-Jenkins の検出結果

SBOM 世代は、Alpine、Amazon Linux、Debian、Ubuntu、Red Hat パッケージなど、一般的なオペレーティングシステム用のパッケージやアプリケーションを認識します。また、Go、Java、NodeJS、C#、PHP、Python、Ruby、および Rust プログラミング言語のパッケージも検出します。

エージェントをインストールせずに Amazon EC2 の脆弱性を検出 (プレビュー中)
最後に、EC2 インスタンスのエージェントレス検査について説明しましょう。

現在、Amazon Inspector は AWS Systems Manager と AWS Systems Manager Agent (SSM Agent) を使用して EC2 インスタンスのインベントリに関する情報を収集しています。Amazon Inspector がインスタンスと通信できるようにするには、3 つの条件を確認する必要があります。まず、SSM エージェントの最新バージョンがインスタンスにインストールされます。次に、SSM エージェントが起動します。次に、インスタンスに IAM ロールをアタッチして、SSM エージェントが SSM サービスに通信できるようにします。これは公平で簡単なようです。しかし、複数の OS バージョン、AWS リージョン、アカウントにまたがる大規模なデプロイを検討する場合や、レガシーアプリケーションを管理する場合にはそうではありません。これら 3 つの条件を満たさないインスタンスが起動されるたびに、インフラストラクチャにセキュリティ上の欠陥が生じる可能性があります。

エージェントレススキャン (プレビュー中) では、Amazon Inspector はインスタンスをスキャンするために SSM エージェントを必要としません。既存のインスタンスと新しいインスタンスを自動的に検出し、それらの脆弱性評価をスケジュールします。そのためには、インスタンスの EBS ボリュームのスナップショットを取得し、そのスナップショットを分析します。この手法には、インスタンスで CPU サイクルやメモリを消費しないため、(仮想) ハードウェアの 100%をワークロードに使用できるという利点もあります。分析後、Amazon Inspector はスナップショットを削除します。

はじめに、 AWS マネジメントコンソールの Amazon Inspector セクションにある EC2 スキャン設定でハイブリッドスキャンを有効にします。ハイブリッドモードとは、Amazon Inspector が SSM によって管理されるインスタンスでは引き続き SSM エージェントベースのスキャンを使用し、SSM によって管理されていないインスタンスでは自動的にエージェントレスに切り替わることを意味します。

Inspector はハイブリッドスキャンを有効にします

アカウント管理では、スキャンされたインスタンスのリストを確認できます。どのインスタンスが SSM エージェントでスキャンされ、どのインスタンスがスキャンされていないかがわかります。

監視対象インスタンスの Inspector リスト

検出結果」では、脆弱性、アカウント、インスタンスなどでフィルタリングできます。インスタンスごとに選択し、確認したいエージェントレスインスタンスを選択します。

その特定のインスタンスについて、Amazon Inspector は 200 を超える検出結果を重要度別に一覧表示します。

検査官による検出結果リスト

いつものように、検出結果の詳細を確認して、リスクとは何か、どのように軽減するかを理解できます。

検査官による検出結果の詳細

料金と利用可能なリージョン
Lambda 関数の Amazon Inspector コード修復は、米国東部 (オハイオ、バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (シンガポール、シドニー、東京)、ヨーロッパ (フランクフルト、アイルランド、ロンドン、ストックホルム) の 10 リージョンでご利用いただけます。今すぐ追加コストなしで利用可能

Amazon EC2 の Amazon Inspector エージェントレス脆弱性スキャンは、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド) の 3 つの AWS リージョンでプレビューできます。

ビルド時にコンテナをスキャンする新しい API は、 Amazon Inspector が現在利用可能な 21 の AWS リージョンで利用できます

初期費用やサブスクリプション費用はありません。アクティビティの量に基づいてオンデマンドで課金されます。EC2 インスタンスまたはコンテナイメージのスキャンごとに料金がかかります。いつものように、Amazon Inspectorの価格ページに詳細が記載されています

コンテナ化されたアプリケーションの CI/CD パイプラインに Jenkins または TeamCity エージェントを追加するか、エージェントレスの Amazon EC2 インスペクションを有効にして、今すぐ始めましょう。

さあ、構築しましょう!

— seb

原文はこちらです。