Sysdig SecureによるAWS ECRスキャン

By 清水 孝郎 - NOVEMBER 24, 2021

SHARE:

本文の内容は、2021年11月23日にPawan Shankarが投稿したブログ(https://sysdig.com/blog/aws-ecr-scanning/)を元に日本語に翻訳・再構成した内容となっております。

AWSでのコンテナ導入が本格化する中、ECRスキャンは継続的なセキュリティとコンプライアンスを実現するための最初のステップとなります。AWS ECRから取得したイメージを確実にスキャンして、脆弱性設定ミスの両方を確認し、悪用可能なAWS上で動作するアプリケーションをプッシュしないようにする必要があります。

AWS RE:INVENT 2021でのSysdigとのミーティングをご希望の方は、こちらからお申し込みください。


Sysdig Secureは、Kubernetesのライフサイクルのすべての段階でセキュリティとコンプライアンスを実現します。15以上の脅威フィードを活用し、Sysdig Secureは単一のワークフローで脆弱性やセキュリティ、コンプライアンス関連の設定ミスを検出します。

イメージスキャンについて

Image Scanning Schema
イメージスキャニングとは、コンテナイメージの内容やビルドプロセスを分析して、セキュリティ上の問題や脆弱性、バッドプラクティスを検出するプロセスのことです。イメージスキャンを活用するには、ユースケースに応じていくつかの方法があります。
  • 開発ライフサイクルにスキャニングを組み込む:チームがアプリケーションをビルドする際に、Sysdigは脆弱なイメージがCI/CDパイプラインJenkinsBambooGitlabAWS CodePipeline)でプッシュされるのを防ぎ、本番環境で新たな脆弱性を特定します。Sysdig Secureは、Sysdig Secure DevOps Platformの一部であり、本番環境でクラウドネイティブなワークロードを自信を持って実行することができます。これは主に開発チームからの要望です。
  • インラインスキャンを手動で起動することもできます。詳細は公式ドキュメントをご覧いただくか、いくつかの例をご覧ください。これは主にセキュリティ担当者が使用します。また、ECRやV2レジストリでホストされているイメージに対して、「イメージをスキャン」ボタンを使用して手動でバックエンドスキャンを開始することも可能です(これは昔ながらの方法であり、現在は推奨されていません)。
  • AWS ECRを使用している場合は、プッシュ時にイメージの自動スキャンを行うことができ、イメージが挿入される最初のステップからセキュリティが確保されます。この記事で説明するのはこの方法です。
イメージスキャンについて詳しく知りたい方は、ベストプラクティスに従うことを強くお勧めします。

Sysdig SecureによるAWS ECRのスキャン

Diagram AWS ECR and Sysdig
Amazon Elastic Container Registry (ECR)は、完全に管理されたDockerコンテナレジストリで、開発者がDockerコンテナイメージを簡単に保存、管理、デプロイすることができます。Amazon ECRは、ECSやEKSなどのAWSコンテナサービスと統合されており、開発から本番までのワークフローを簡素化します。

Sysdig Secureは、ClairをベースにしたECRデフォルトのイメージスキャンに加えて、OS以外の脆弱性(サードパーティライブラリ)や設定ミスのスキャン、コンプライアンスチェックなど、ECRの追加スキャン機能を提供します。
Dashboard AWS with a grafana-test
Sysdig Secure for Cloudは、クラウドフォーメーションテンプレートやTerraformを使ってAWSアカウントにデプロイするだけで、アドレスやクレデンシャルを手動で追加することなく、すぐにECRスキャンの統合が可能になります。ECRの統合については、公式ドキュメントで詳しく説明されています。

Quick create stack AWS ECR
インストール後、サービスが正しくインストールされたことを確認するには、サービスが動作していることを知るためのチェックリストを確認してください。

次回、ECRレジストリのいずれかにイメージがプッシュされると、自動的にスキャンされ、以下のような可視性が得られます:
  • 公式OSパッケージの脆弱性
  • 設定のチェック:
    • DockerfileでのSSHの公開
    • rootで起動しているユーザー
  • サードパーティ製ライブラリの脆弱性:
    • JavascriptのNPMモジュール
    • Python PiP
    • Ruby GEM
    • Java JAR アーカイブ
  • シークレット、トークンや証明書などの認証情報、その他の機密データ
  • 既知の脆弱性と利用可能なアップデート
  • メタデータ:イメージのサイズなど。
  • いくつかのフレームワークのコンプライアンスチェック
Docker push example
これらの成果物は保存され、特定のレジストリ、リポジトリ、またはイメージタグに指定できるカスタムスキャンポリシーに対して評価されます。これらのポリシーは、イメージ内の脆弱性や設定ミス、コンプライアンス上の問題を検出するのに役立ち、UIで直接合否結果を生成します。

Dashboard results Sysdig Secure
Scan results Sysdig Secure
レポートには、発見されたOS/非OSの脆弱性の詳細が記載されています。発見された各脆弱性について、Sysdig Secureはイメージ内で発見された(その脆弱性の影響を受ける)パッケージのバージョンを表示し、その問題に対する修正プログラムを含むバージョン番号も表示します。

脆弱性を取り除くには、コンテナイメージを再ビルドして、修正プログラムが利用可能なそのパッケージのバージョンを含むようにする必要があります。

例えば、影響を受けるパッケージがベースイメージ自体に含まれている場合があります。この場合は、ベースイメージを直接アップデートするのがよいでしょう。他のケースでは、Dockerfile内のコマンドによってパッケージがベースイメージの上にインストールされているかもしれません。例えば、aptやyumなどのパッケージマネージャのコマンドがDockerfileに指定されていることがよくあります。これらが影響を受けるパッケージのバージョンを指定している場合は、Dockerfileを編集する必要があります。

ECRスキャンについて説明しましたが、次にECR脆弱性レポートとECR脆弱性アラートについて説明します。

AWS ECRの脆弱性レポートとアラート生成

アプリケーションセキュリティチームは、深刻度の高いCVEがあれば30日以内に修正プログラムで対処することを確認する必要があることがよくあります。

Sysdig Secureを使えば、従来のパッチ管理プロセスをコンテナに導入することができます。ECRと特定のAWSクラスターやリージョンの両方で、脆弱性レポートのポリシーを設定することができます。そして、CVE ID、深刻度、修正、経過期間などの高度な条件で特定の脆弱性を照会することができます。

例えば、新しいCVEが発表された場合、それが原因で脆弱になっているECRのイメージをレポートすることができます:

Report list Sysdig Secure
ECRに登録されているイメージをスキャンした後、一般的に次の質問は、そのサービスの過去のすべてのビルドのイメージスキャン結果はどうだったかということです。脆弱性管理チームは、ECRで特定のレポに対して長期間にわたって行われたすべてのスキャンのレポートを必要としています。

Sysdig Secureでは、ポリシーを用いたクエリーを行い、3クリック以内で質問に答える特定のスコープを適用することができます:

Report detail Sysdig Secure
最後に、ECRの脆弱性アラートを簡単に設定することができます。ECRで新しいイメージが解析されたり、CVEのスコアが更新されたりした場合に、チームにアラートを設定することができます。SlackやAWS SNSなどでダウンストリーム通知を作成したり、独自のカスタムWebhookを作成して特定のアクションを起こすことができます。

Create repository alert Sysdig Secure

まとめ

AWS Elastic Container RegistryとSysdig Secureの両方を簡単に使いこなせることがお分かりいただけたと思います。また、SysdigのコンテナやKubernetesのイメージスキャン機能をより深く掘り下げたり、Sysdigが様々なAWSコンテナサービス(EKS、ECS)にセキュリティサービスを拡張する方法についてもご覧いただけます。

または、sysdig.jpでデモ依頼をしてみてください!



Sysdig Secureは、お客様のAWS ECRにセキュリティのレイヤーを1つ追加するのに役立ちます。わずか数分で設定が完了します。ぜひお試しください!