本文の内容は、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は単一のワークフローで脆弱性やセキュリティ、コンプライアンス関連の設定ミスを検出します。
イメージスキャンについて
イメージスキャニングとは、コンテナイメージの内容やビルドプロセスを分析して、セキュリティ上の問題や脆弱性、バッドプラクティスを検出するプロセスのことです。イメージスキャンを活用するには、ユースケースに応じていくつかの方法があります。- 開発ライフサイクルにスキャニングを組み込む:チームがアプリケーションをビルドする際に、Sysdigは脆弱なイメージがCI/CDパイプライン(Jenkins、Bamboo、Gitlab、AWS CodePipeline)でプッシュされるのを防ぎ、本番環境で新たな脆弱性を特定します。Sysdig Secureは、Sysdig Secure DevOps Platformの一部であり、本番環境でクラウドネイティブなワークロードを自信を持って実行することができます。これは主に開発チームからの要望です。
- インラインスキャンを手動で起動することもできます。詳細は公式ドキュメントをご覧いただくか、いくつかの例をご覧ください。これは主にセキュリティ担当者が使用します。また、ECRやV2レジストリでホストされているイメージに対して、「イメージをスキャン」ボタンを使用して手動でバックエンドスキャンを開始することも可能です(これは昔ながらの方法であり、現在は推奨されていません)。
- AWS ECRを使用している場合は、プッシュ時にイメージの自動スキャンを行うことができ、イメージが挿入される最初のステップからセキュリティが確保されます。この記事で説明するのはこの方法です。
Sysdig SecureによるAWS ECRのスキャン
Amazon Elastic Container Registry (ECR)は、完全に管理されたDockerコンテナレジストリで、開発者がDockerコンテナイメージを簡単に保存、管理、デプロイすることができます。Amazon ECRは、ECSやEKSなどのAWSコンテナサービスと統合されており、開発から本番までのワークフローを簡素化します。 Sysdig Secureは、ClairをベースにしたECRデフォルトのイメージスキャンに加えて、OS以外の脆弱性(サードパーティライブラリ)や設定ミスのスキャン、コンプライアンスチェックなど、ECRの追加スキャン機能を提供します。 Sysdig Secure for Cloudは、クラウドフォーメーションテンプレートやTerraformを使ってAWSアカウントにデプロイするだけで、アドレスやクレデンシャルを手動で追加することなく、すぐにECRスキャンの統合が可能になります。ECRの統合については、公式ドキュメントで詳しく説明されています。 インストール後、サービスが正しくインストールされたことを確認するには、サービスが動作していることを知るためのチェックリストを確認してください。 次回、ECRレジストリのいずれかにイメージがプッシュされると、自動的にスキャンされ、以下のような可視性が得られます:- 公式OSパッケージの脆弱性
- 設定のチェック:
- DockerfileでのSSHの公開
- rootで起動しているユーザー
- サードパーティ製ライブラリの脆弱性:
- JavascriptのNPMモジュール
- Python PiP
- Ruby GEM
- Java JAR アーカイブ
- シークレット、トークンや証明書などの認証情報、その他の機密データ
- 既知の脆弱性と利用可能なアップデート
- メタデータ:イメージのサイズなど。
- いくつかのフレームワークのコンプライアンスチェック
AWS ECRの脆弱性レポートとアラート生成
アプリケーションセキュリティチームは、深刻度の高いCVEがあれば30日以内に修正プログラムで対処することを確認する必要があることがよくあります。 Sysdig Secureを使えば、従来のパッチ管理プロセスをコンテナに導入することができます。ECRと特定のAWSクラスターやリージョンの両方で、脆弱性レポートのポリシーを設定することができます。そして、CVE ID、深刻度、修正、経過期間などの高度な条件で特定の脆弱性を照会することができます。 例えば、新しいCVEが発表された場合、それが原因で脆弱になっているECRのイメージをレポートすることができます: ECRに登録されているイメージをスキャンした後、一般的に次の質問は、そのサービスの過去のすべてのビルドのイメージスキャン結果はどうだったかということです。脆弱性管理チームは、ECRで特定のレポに対して長期間にわたって行われたすべてのスキャンのレポートを必要としています。 Sysdig Secureでは、ポリシーを用いたクエリーを行い、3クリック以内で質問に答える特定のスコープを適用することができます: 最後に、ECRの脆弱性アラートを簡単に設定することができます。ECRで新しいイメージが解析されたり、CVEのスコアが更新されたりした場合に、チームにアラートを設定することができます。SlackやAWS SNSなどでダウンストリーム通知を作成したり、独自のカスタムWebhookを作成して特定のアクションを起こすことができます。まとめ
AWS Elastic Container RegistryとSysdig Secureの両方を簡単に使いこなせることがお分かりいただけたと思います。また、SysdigのコンテナやKubernetesのイメージスキャン機能をより深く掘り下げたり、Sysdigが様々なAWSコンテナサービス(EKS、ECS)にセキュリティサービスを拡張する方法についてもご覧いただけます。 または、sysdig.jpでデモ依頼をしてみてください!Sysdig Secureは、お客様のAWS ECRにセキュリティのレイヤーを1つ追加するのに役立ちます。わずか数分で設定が完了します。ぜひお試しください!https://youtu.be/wQ4_2KyujbQ