Container Registry の脆弱性スキャンで安全な CI/CD パイプラインを
Google Cloud Japan Team
※この投稿は米国時間 2018 年 9 月 19 日に Google Cloud blog に投稿されたものの抄訳です。
クラウド ネイティブ環境で継続的インテグレーションと継続的デリバリー(CI/CD)を実現するには、コンテナ イメージが安全であることや既知の重大な脆弱性がないことを確認したうえで、イメージをデプロイすることが重要です。そこで Google Cloud は本日、Container Registry の脆弱性スキャン機能をベータ リリースしました。この機能は、CI/CD プロセスの初期段階で既知のセキュリティ脆弱性を自動的に検出し、脆弱なコンテナ イメージのデプロイを防ぎます。
CI/CD パイプラインにいつ、どこで、どのようにセキュリティ機能を統合するかは非常に重要です。私たちは脆弱性スキャン機能の開発に着手する際、「セキュリティは CI/CD に最初から組み込む必要がある」という前提から出発しました。下流工程でセキュリティ問題の修正に費やす時間を減らし、リスクの度合いを下げるためです。さらに、セキュリティ制御は、アドホックな手動プロセスの一部としてではなく、自動的に行われる必要があります。またシステムは、DevSecOps チームが設定したポリシーに基づいて、脆弱なイメージを自動的にブロックできなければなりません。つまり、CI/CD セキュリティは、各 CI/CD パイプラインの一環として、イメージのスキャンから検証の強制までエンドツーエンドで確保する必要があります。
Cloud Build(Google Cloud のフルマネージド CI/CD プラットフォーム)を使って作成されたコンテナ イメージが Container Registry にプッシュされると、脆弱性スキャン機能により、OS パッケージの脆弱性が自動的にスキャンされます。コンテナを作成すると、潜在的な脅威に関するフィードバックが迅速に得られ、すぐに問題を特定できるのです。また、脆弱性スキャンは Binary Authorization と統合されています。コンテナ イメージのデプロイ時に実行される Binary Authorization は、人手を介さずに、信頼できるコンテナ イメージだけが Kubernetes Engine にデプロイされるようにします。
Container Registry の脆弱性スキャンをベータ リリースするにあたって、私たちは Container Registry の現行ユーザーにこの機能を試してもらい、意見を求めました。そうしたアーリー アダプターの 1 社が ThoughtWorks です。同社は、ソフトウェア設計およびデリバリ ソリューションを世界中のさまざまな業種の顧客に提供しているテクノロジー コンサルティング会社です。
ThoughtWorks は、脆弱性スキャンをすべてのアプリケーションプロジェクトのパイプラインに統合し、脆弱なコンポーネントを本番環境に移行しないようにしています。パイプラインで脆弱性が発見されると、脆弱性の詳細が自動的に開発者に報告されます。さらに、情報セキュリティ チームがレポートを作成し、セキュリティ問題を防ぐ方法のガイダンスを開発チームに提供します。
Container Registry の脆弱性スキャンは優れたサービスです。ウェブ アプリケーション全体の保護に有意義な効果をもたらします。脆弱性スキャンにより、脆弱なコンポーネントを簡単にチェックし、それらが本番環境に配備されるのを阻止できます。
Philip Duldig 氏、ThoughtWorks のシニア セキュリティ アナリスト
CI/CD パイプラインにセキュリティ機能を組み込む
脆弱性スキャンを CI/CD パイプラインの他のコンポーネントと統合することで、既知の脆弱性を継続的に特定し、その情報を基にアクションをトリガーできます(たとえば、Cloud Pub/Sub と Cloud Functions を使用)。脆弱性スキャンは、サポートしているディストリビューションのセキュリティ データベースを継続的にモニタリングし、新しい、または更新された脆弱性データをチェックします。したがって、脆弱性スキャンとその結果には最新の情報が反映されています。さらに、脆弱性スキャンは以下のメリットも提供します。CI/CD パイプライン内で強力なセキュリティ スキャンを実行 : 脆弱性スキャンは Cloud Build と統合されているため、Cloud Build がイメージを作成して Container Registry に保存すると、開発者はすぐにセキュリティの脅威を特定できます。この機能は、シンプルな API 呼び出し、gcloud コマンドライン、または Cloud Console UI で利用できます。
セキュリティ チェックを早期に実行 : Container Registry の脆弱性スキャンは、セキュリティ機能を CI/CD に最初から組み込みます。アプリケーション開発プロセスの中で、Ubuntu、Debian、Alpine のパッケージの脆弱性が特定されるのです。また、CentOS と RHEL のサポートも進められています。脆弱性スキャンは、コストが高くつく非効率性を回避し、脆弱性の修正に要する時間を短縮するのに役立ちます。
既存アーキテクチャへの統合 : Pub/Sub の通知と Cloud Functions を使って、Container Registry の脆弱性スキャンを既存の CI/CD ツールにプラグインできます。たとえば、脆弱性の発見をワークフローに組み込み、脆弱性が見つかったら自動的に問題を追跡するといったことが可能です。また将来的には、Container Registry の脆弱性スキャン結果を、他のセキュリティ ツール(Aqua や Twistlock のようなベンダーのツール)が発見した結果とともに、Cloud Security Command Center で確認できるようになります。
危険なコンテナ イメージをロックダウン : Binary Authorization とのネイティブな統合を利用して、ポリシーを定義し、それらのポリシーを満たさないイメージのデプロイを防止できます。コンテナ イメージの自動ロックダウンをトリガーし、危険なイメージが Kubernetes Engine にデプロイされないようにすることも可能です。
詳細なインサイトを提供 : Container Registry の脆弱性スキャンは、脆弱性の深刻度、CVSS スコア、パッケージ、修正プログラムの入手可否といった詳細なインサイトを提供します。脆弱性スキャンのフィルタリング メカニズムにより、パッチ適用の優先順位を決めたり、新しい脆弱性の影響を判断したりすることができます。また、脆弱性スキャンが完了して問題が発見されると、すぐに DevSecOps チームにスキャンの状態と結果が通知されます。
今すぐお試しを!
Container Registry の脆弱性スキャンは、CI/CD パイプラインのセキュリティを高めるうえで簡単な方法です。既存セキュリティ ベンダーのお気に入りの CI/CD ツールに簡単にプラグインできます。Container Registry の脆弱性スキャンについてもっと知りたい方は以下のリンク先をご覧ください。- ウェビナーを見る
- Container Registry の脆弱性スキャンについて読む
- Binary Authorization について読む
- Container Registry の脆弱性スキャンの概要
- Container Registry の脆弱性スキャン API の概要
Container Registry の脆弱性スキャンをぜひお試しください!
By Juan Sebastian Oviedo, Product Manager and Nikhil Kaul, Product Marketing Manager