概要
CI/CD セキュリティは、自動化されたチェックとテストによってコードパイプラインを保護し、ソフトウェア提供における脆弱性を防ぐために使用されています。パイプラインにセキュリティを組み込むことで、コードを攻撃から守り、データ漏えいを防ぎ、ポリシーに準拠し、品質を保証することができます。
CI/CD とは
CI/CD (継続的インテグレーション、継続的デリバリー、継続的デプロイメント) とは、ソフトウェアの新バージョンを提供するために実行しなければならない一連のステップのことで、しばしばパイプラインとして可視化されます。CI/CD では、人的ミスを最小限に抑えて高品質のコードをより速く開発するプロセスを維持することを目的とし、アプリケーション開発に自動化と継続的な監視を導入します。
通常、CI/CD パイプラインの中核となる段階にはセキュリティ対策が含まれておらず、開発プロセスを保護するための追加的な手段を講じる必要があります。
CI/CD セキュリティの一般的な課題
適切なセキュリティがないまま開発とデプロイメントが急速に進められると、パイプラインが次のようなリスクにさらされることがあります。
- 機密データの外部への流出
- 安全でないコードやサードパーティ製コンポーネントの使用
- ソースコードリポジトリやビルドツールへの不正アクセス
開発サイクル全体を通じて脆弱性が特定、緩和されることで、コードの変更が本番環境にデプロイされる前に徹底的にテストされ、セキュリティ標準に準拠していることが確認できます。
DevSecOps にとって CI/CD が重要な理由
DevSecOps (開発、セキュリティ、運用) は、文化、自動化、およびプラットフォーム設計へのアプローチであり、IT ライフサイクル全体を通じてセキュリティを共有責任として統合します。セキュアな CI/CD パイプラインの導入は、DevSecOps の重要な要素です。
CI/CD は、開発プロセスの早い段階でセキュリティチェックを自動化して組み込み、潜在的な脆弱性に関する迅速なフィードバックを提供して、アプリケーションのライフサイクル全体を通じてセキュリティに対するプロアクティブなアプローチを促進するため、DevSecOps にとって不可欠です。
「シフトレフト」という概念は CI/CD および DevSecOps の基本原則であり、これには特定のセキュリティ指向のタスクや活動をソフトウェア開発プロセスの早い段階に移すことも含みます。早期にセキュリティを実装するこの手法では、セキュリティの脆弱性をスキャンするテストプロセスの自動化、コードの変更がコミットされた後の迅速なコードレビュー、開発者と運用チームの間でプロアクティブにセキュリティを意識する全体的な文化の醸成などが不可欠です。
CI/CD パイプラインの安全性を確保する方法
プランニング・フェーズ:パイプラインの各段階でセキュリティチェックを行い、コードが安全で、セキュリティ標準に準拠していることを確認することが重要です。最初のステップは、潜在的なセキュリティ脅威を特定するのに役立つ製品ロードマップを作成することです。これは脅威のモデル化として知られています。脅威のモデル化では潜在的な脆弱性が特定され、それらのリスクを軽減するための対策が設定されます。
コーディング:開発者がコードの作成に取りかかるとき、コードが事前定義された標準や設計ガイドラインに従って作成されるようにするための対策を講じます。ソースコード・スキャナーを使用すれば、セキュリティの脅威にさらされる可能性のあるコードを検出できます。
ビルド:開発者がソースコードを共有リポジトリにコミットし始めたら、ビルドが要件に準拠しているかどうかを検証するための自動テストが起動することを確認します。
テスト:ビルドが成功したら、ソフトウェアにバグがないかテストします。新しい機能が追加されれば、さらに自動テストが行われます。
Red Hat のサポート内容
Red Hat® OpenShift® により、組織は CI/CD を使用して、オンプレミスとパブリッククラウドのプラットフォームにまたがるアプリケーションのビルド、テスト、デプロイを自動化することができます。Red Hat OpenShift および Red Hat Ansible® Automation Platform は、パートナー・テクノロジーと共に、DevSecOps の基盤を構築し、開発、デプロイメント、ランタイムを含むコンテナのアプリケーションライフサイクルを保護します。
ビジネスを円滑に進めるためには、ソフトウェアのサプライチェーンを潜在的な脆弱性から守ることが極めて重要です。しかし、クラウドネイティブ・アプリケーションのためのソフトウェア・サプライチェーンのセキュリティを確保するには、大規模なエンジニアや開発者のチームによる数カ月に及ぶ努力が必要になります。Red Hat Trusted Software Supply Chain は、重大な脆弱性を入口で阻止することで、企業がソフトウェア開発ライフサイクルにセキュリティのガードレールを追加できるように支援し、この取り組みを加速させるクラウドサービスです。
Red Hat Advanced Cluster Security (ACS) for Kubernetes は先駆的な Kubernetes ネイティブのセキュリティ・プラットフォームで、クラウドネイティブ・アプリケーションをより安全に構築、デプロイ、実行できるようにします。このソリューションは、Red Hat OpenShift、Amazon Elastic Kubernetes Service (EKS)、Microsoft Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE) など、すべての主要なクラウドとハイブリッド・プラットフォームでコンテナ化された Kubernetes ワークロードを保護するのに役立ちます。
Red Hat Trusted Application Pipeline (サービスプレビュー版) は、デフォルトのパイプライン定義と自動化されたセキュリティチェックを提供し、さまざまなプログラミング言語のアプリケーションコードから SLSA (Software Chain Levels for Software Artifacts) レベル 3 のビルドイメージを生成します。このビルドには、認証済みで不変のソフトウェア部品表 (SBOM) の作成が含まれ、オープンソース・コンポーネントと推移的依存関係の信頼の連鎖を自動的に作成します。