DUICUO

知っておくべき5つのDevSecOpsオープンソースプロジェクト

[[422374]]

クラウドネイティブコンピューティングにおいて最も活発なサブフィールドの一つは、セキュリティ関連の様々なプロジェクトです。これまでと同様に、これらの新しいセキュリティプロジェクトは主にセキュリティ分野における特定の課題に対処しています。言い換えれば、万能で永続的なソリューションを提供するセキュリティツールは、今後も見つからないかもしれません。

ここでは、DevSecOps手法の導入を成功させるのに役立つ5つのオープンソースツールを紹介します。これらのツールを活用することで、IT部門はセキュリティをエンドツーエンドの統合を必要とする共有責任と捉え、従来の事後対応型のアプローチから脱却できるようになります。これらのツールは成熟するにつれて、Red Hat OpenShiftを含む商用Kubernetesプラットフォームに完全に統合されることが多くなります。しかし現時点では、これらのプロジェクトは主にセキュリティイノベーションへの窓口として機能し、OpenShiftユーザーにとって貴重な補足情報を提供しています。

1. クレア

脆弱性スキャンは、DevSecOpsの自動化されたCI/CD(継続的インテグレーション/継続的デプロイメント)ワークフローにおいて重要な要素です。これらのスキャンはワークフロー全体の複数のポイントで実行できます。ソフトウェアが本番環境にデプロイされた後は、共通脆弱性データベース(CVE)の新しい脅威定義とデプロイされたイメージの潜在的な変更に基づいて、適切なセキュリティスキャンを実行する必要があります。

Clairは、アプリケーションコンテナ内のセキュリティ脆弱性を静的に分析するためのオープンソースプロジェクトです。API駆動型の分析エンジンであるClairは、コンテナ内のレイヤーごとにチェックを実行し、既知のセキュリティ脆弱性を特定します。Clairを使用することで、ユーザーはコンテナの脆弱性をターゲットとした継続的な監視サービスを構築できます。

コンテナイメージを頻繁にダウンロードする必要がある組織にとって、この種のサービスは特に重要です。しかし、コンテナが社内ソースコードを使用して構築されている場合でも、脆弱性は時間の経過とともに急速に拡大する可能性があります。特に、新たなセキュリティ脆弱性が開発されると、その影響は大きくなります。したがって、定期的なスキャンは、企業にとってセキュリティのベストプラクティスであるべきです。

2. シグストア

ソフトウェアサプライチェーンを適切に保護するには、DevSecOps CI/CDパイプラインの定期的なデプロイメントスキャンだけに頼ることはできません。Google、Linux Foundation、Red Hat、Purdue大学などのパートナーの支援を受けて、sigstoreは開発者、ソフトウェアメンテナー、パッケージマネージャー、セキュリティ専門家の特定のニーズに合わせてカスタマイズされた高品質のツールセットを開発しました。デジタル署名の処理、検証、データのログ記録により透明性のある監査を実現し、さまざまな署名ソフトウェアのより安全な配布と利用を可能にします。sigstoreの目標は、すべてのユーザーに無料かつ透明性の高い保管チェーン追跡サービスを提供することです。現在、sigstoreは非営利の公共サービスとして運営されており、様々なステークホルダーにソフトウェア署名サポートを継続的に提供しています。

Cosginは2021年7月にバージョン1.0をリリースし、Open Container Initiative(OCI)レジストリに保存されたアーティファクトの署名と検証を可能にしました。これには、署名の保存と検出に関する基盤仕様も含まれています。

Fulcio は、コード署名証明書のルート証明機関 (CA) であり、Open ID Connect (OIDC) のメールアドレスに基づいて証明書を発行します。Fulcio が発行するアーティファクト署名は有効期間が短いため、ユーザーは秘密鍵の保護を気にすることなく簡単に署名できます(秘密鍵が盗難された場合はいつでも署名を取り消すことができます)。

Rekorは、改ざん不可能で、改ざん防止機能を備えた透明性のある台帳とタイムスタンプサービスを提供しており、ソフトウェアサプライチェーン全体にわたってメタデータを生成します。ソフトウェアメンテナーや様々なビルドシステムは、署名されたメタデータを不変のレコードに記録できるため、他の関係者がメタデータを照会し、対象オブジェクトのライフサイクルにおける信頼性と否認不能性について明確な判断を下すことができます。

3. キューブリンター

KubeLinterのコア機能は脆弱性スキャンです。従来の脆弱性スキャンは、基本的にユニットテストの一種であり、コンテナやライブラリなどを個別にテストする必要があります。このアプローチ自体は価値がありますが、より複雑な統合オブジェクトに対してはフルスキャンを実行する必要があります。

KubeLinterは、様々なベストプラクティスに基づいて構成チェックを実行し、本番環境への準備状況とセキュリティレベルに重点を置いています。適切なデフォルトチェックを実行し、Kubernetes YAMLファイルとHelm Chartに関する有用な情報をまとめます。これらの情報を活用することで、チームはセキュリティ構成エラーを迅速に特定し、DevSecOpsのベストプラクティスを実装できます。KubeLinterが重点的に扱う一般的な構成には、コンテナを非ルートユーザーとして実行すること、最小限の権限を強制すること、機密情報をシークレットにのみ保存することなどがあります。

したがって、KubeLinter はコンテナやライブラリの脆弱性をスキャンできるだけでなく、ソフトウェアの構成や使用におけるセキュリティ上の弱点も特定できます。

4. Open Policy ProxyとGateKeeper

ここ数年、Kubernetesセキュリティ分野においてポリシー管理が大きな焦点となっています。Open Policy Broker(OPA)は、インフラストラクチャスタックとAPIの様々なレイヤーを抽象化する新しいポリシー言語Regoを提供します。つまり、OPAはセキュリティポリシーを簡素化し、複雑さに起因するセキュリティ脆弱性を排除することを目指しています。

OPA GateKeeperは、OPAをKubernetesにネイティブに統合する手段です。Kubernetesのカスタムリソース定義(CRD)から構築されたOPA制約フレームワークを使用して、ポリシーの記述と適用を行います。バージョン3.0では、GateKeeperはOPA制約フレームワークと統合され、Kubernetes CRDベースのポリシーの適用が可能になり、宣言的に設定されたポリシーをユーザーが確実に共有できるようになります。

これにより、Regoポリシー用のポリシーテンプレートを作成し、ポリシーをCRDとして作成し、監査結果をポリシーCRDに保存できるようになります。ちなみに、OPA GateKeeperは、Google、Microsoft、Red Hat、Styraが参加する共同プロジェクトです。

また、ポリシー共有用の Rego Playground、ポリシー作成用の VS Code、最終的な制御用の CLI および REPL など、いくつかのサブプロジェクトも含まれています。

5. ファルコ

Falcoは、2016年にSysdigによって開発・リリースされたKubernetesランタイム脅威検出エンジンです。Falcoには、カーネルの予期せぬ動作をチェックするためのデフォルトルールセットが含まれています。例えば、名前空間の変更、権限昇格、予期せぬネットワーク接続などに応じてアラートをトリガーすることができます。

Kubernetes監査イベントが、Falcoがサポートするイベントソースのリストに追加されました。つまり、Kubernetesクラスター構成で監査ログが有効になっている限り、監査ログをイベントとしてFalcoに送信できます。開発者は柔軟なFalcoルールを記述することで、イベントの内容を読み取り、悪意のあるホスト/コンテナの動作、アクティビティ、その他の明らかな異常を検出できます。これらのアラートはイベント対応ワークフローに統合できるため、既存のプロセスと連携して管理しながら、応答時間を大幅に短縮できます。

今日、DevSecOpsとKubernetesのセキュリティ分野では、数多くのオープンソースソリューションが利用可能です。紙面の都合上、この記事では新しく注目に値するソリューションのみを厳選してご紹介します。さらに、成熟度が異なる様々なスキャンツールやシークレット管理ソフトウェア、そして古くからある、そして今もなお重要なネットワークやその他のセキュリティ保護技術も存在します。結局のところ、複雑な脅威環境に直面した場合、それに対抗できるのは、同様に高度なセキュリティ対策を講じることだけです。