Pivotal Cloud Foundry環境の保護 #PivotalCloudFoundry #AquaSecurity #DevSecOps #Kubernetes #Docker
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは「Aqua Security」社の技術ブログで2019年7月31日に公開された「Native Runtime Protection for Pivotal Cloud Foundry」の日本語翻訳です。
Pivotal Cloud Foundry環境に対するランタイム保護
Pivotal Application Service(PAS)は、Pivotal Cloud Foundry(PCF)製品の一つであるCloud Foundry Application Runtime(CFAR)のディストリビューションです。特に大規模な企業組織で広く使用されています。Aquaは、昨年導入したイメージスキャンおよびデプロイにおけるAssurance Policies(Aquaの機能の一つ)から、コンテナの挙動およびネットワークセキュリティポリシーを含む新しいランタイム制御まで、Pivotal Application Serviceのためのフルライフサイクルソリューションを提供します。PCFソリューションでAqua Securityを利用する場合、Pivotal Networkからインストールすることができます。
Aquaは2018年初めにPCF環境におけるイメージスキャンをサポート開始しています。PCF/PAS環境の用語に不慣れな方は過去のブログをご一読ください。
脆弱性スキャンとApp Assurance Policy(アプリ保証ポリシー)
AquaはPCFパイプラインに統合され、既知の脆弱性、秘密鍵などの機密データ、およびマルウェア等を含むイメージがBlobstoreにプッシュされる際に自動的にスキャンします。イメージスキャンは、Aqua tileをデプロイ時にインストールされるBuildpackを使用して実行されます。Aqua社の脆弱性スキャンは、Aquaのセキュリティチームが複数のソースから収集したデータに基づいており、データを最新の状態に保つため誤検知を削減します。
これにより、開発者によるコードの新規作成や変更を可視化し、重大な新しいリスクが発生しないようにすることができます。さらに、Aquaは柔軟なAssurance Policiesを提供し、セキュリティ担当者はどのイメージに容認できないリスクがあるかが判断でき、準拠していないアプリケーションがBlobstoreに配備されるのを阻止します。
一度Blobstoreにイメージが配備されると、Aquaは毎日イメージに対してスキャンを実行し、未承認のイメージが利用されないようにAssurance Policyを適用します。(※この機能は現在プレビュー中です)
PASランタイム保護
Aquaは、ランタイムでPASアプリケーションを保護するための重要な新機能を追加しました。これはマーケットで初のソリューションです。クラスタ内の各Cell毎にAqua Enforcer(エージェント)コンテナを自動的にデプロイするアドオンを使用して、CFクラスタノード内のすべてのDiego CellにBOSHを利用してAqua Enforcerをデプロイし、無駄のないプロセスを提供します。既存のアプリケーションのデプロイ方法の変更、アプリケーションごとの手動の変更または個々の再デプロイも必要ありません。
Runtime Policies(Aquaの機能の一つ)は、AquaがKubernetes/Docker環境で提供しているものと似ており、広範囲の機能を提供します。以下は主な機能となります。
- 元のイメージに含まれていなかった実行ファイルの実行を防ぐ=Drift Prevention
- 実行ファイルのホワイトリストおよびブラックリスト=Allowed Executables
- ホストネームスペースを使用した、特権コンテナの実行、ホストネットワークへのアクセスなど、コンテナ特権の制限=Limit Container Privileges
- プロセス、コマンド引数、およびネットワークアクティビティに関するフォレンジックデータ収集=Forensics
- ポートスキャン、フォーク爆弾防止、評判の悪いIPアドレスへの接続防止などの脅威軽減策
- 実行中のコンテナで使用されているプロセスの自動プロファイリングおよびホワイトリスト化。攻撃対象領域をさらに削減します。
Cloud Foundryのアプリ名またはCloud Foundryスペース等でRuntime Policiesの適用範囲(スコープ)を定義します。これにより、顧客向けアプリケーションと社内アプリケーション、またはPCI-DSS準拠アプリケーションとそれを必要としないアプリケーションなど、アプリケーションごとに異なるポリシーを設定できます。
その結果、監査イベントや警告を作成したり、ポリシーに違反したアクションをブロックしたりすることができます。以下の例では、実行可能ファイルがDrift Preventionコントロールに違反しているため、実行可能ファイルがブロックされたものです。
ネットワーク接続検出とファイアウォール
Aquaの優れた機能の1つは、アプリケーション毎(コンテナ毎)のネットワーク接続を自動的に検出・リスト化し、そこから接続をホワイトリスト化(またはブラックリスト化)したファイアウォールルールを作成する機能です。以下に示すように、これはIPだけでなく、アプリケーション内のサービスIDとDNS URLにも基づくことができます。
ホワイトリストに登録されていない接続は警告を生成し、ファイアウォールルールがEnforceモードで有効になっている場合はブロックされます。
※Aquaは2つのモードがあります。
- Enforceモード:定義したポリシーをもとに実際に接続を制限します。
- Auditモード:定義したポリシーにもとに接続の検知だけを行い、制限はしません。
Diego Cellのセキュリティとコンプライアンス
Cloud FoundryはDiegoシステムを使用してコンテナを管理します。Diegoは、ネットワーク障害やクラッシュを回避するために、Diego Cell(ホスト)内で実行されているコンテナの正しい数を維持する自己修復コンテナ管理システムです。
PAS環境で実行されているコンテナにセキュリティを提供するだけでなく、Aquaはそれらが実行されているホスト、つまりDiego Cellも保護します。Aquaは自動的に既知の脆弱性、秘密鍵などの機密データ、およびマルウェアについてホストに対してもスキャンすることができます。以下はホストに対してスキャンを実行した後に確認できる画面の例です。
Aquaはまた、Linux CISをもとにDiego Cellに対してベンチマークテストを行い、構成のベストプラクティス、パッチ適用、ファイルシステムの整合性などに対するセキュリティの評価をします。
さらに、Aqua内にAssurance Policiesを作成して、それらのポリシーに対するCellの構成を監視し、Cell内で変更が行われた際にアラートを発報することができます。また、ユーザーのアクセスと動作を監視し、ファイル整合性監視を適用して、Diego Cellのファイルシステムが改ざんされていないことを確認します。
その結果、Diego Cellのセキュリティとコンプライアンスが明確に評価されます。
ハイブリッド環境の保護
Cloud Foundryは、2011年にオープンソースプロジェクトとして最初に市場にリリースされ、Pivotalは2年後にマルチクラウドプラットフォームとして商用化するために設立されました。DockerコンテナとKubernetesの進化は並行して進んでいますが、この2つは収束/共存への道を進んでいます。
開発から本番まで完全な保護を提供するAquaのPAS環境用セキュリティプラットフォームは、ポリシー管理と可視性のためのUIと各モードに適したクラウドネイティブな機能を使用して、PAS環境とKubernetes環境の両方にわたって包括的なセキュリティを実現できます。企業がKubernetesを導入していくにつれて、Aquaはそれらがある環境から次の環境へよりスムーズに移行することも可能にします。
これが、AquaがPivotal Container Service(PKS)にセキュリティを提供している理由でもあります。AquaはVMwareとPivotalによって認定されています。
Pivotalを利用している方は、新しいAqua Security for PCF tileをPivotal Networkから直接ダウンロードできます。