Kubescape で Kubernetes を保護する方法

Kubescape で Kubernetes を保護する方法

Kubernetes は強力ですが、複雑でもあります。クラスターを攻撃に対して脆弱な状態にしておくことは簡単です。第一の防御線は自動化されたセキュリティ チェックです。

Kubernetes は成長を続けています。最近の調査によると、開発者の間での Kubernetes の採用は 2021 年に驚異的な 67% 増加しました。企業は、クラウドネイティブ アプリケーションの柔軟性と拡張性を享受するために Kubernetes に移行しています。

Kubernetes が企業にとって持つ価値は疑う余地がありませんが、それには代償が伴います。Kubernetes は複雑なため、クラスターが攻撃に対して脆弱な状態になりやすいのです。企業はこれを認識しています。 Red Hat は、Kubernetes セキュリティの現状レポートの中で、回答者の 59% がコンテナ セキュリティを脅威とみなしていると述べています。

継続的インテグレーションとデリバリー (CI/CD) に自動セキュリティ チェックをインストールすることは、本番環境に入る前にすべてのコードが通過する必要がある唯一の場所であり、脅威に対する保護を開始するための最良の方法であり、Kubescape はそれを実現するのに役立ちます。

この記事では、CI/CD パイプラインで Kubescape を実行して、脅威が展開される前に検出する方法を学習します。

Kubescapeの登場

Kubescape は、Kubernetes 用のオープンソースのセキュリティ チェック ツールです。 ARMO によって開発されたこのツールは、Kubernetes クラスターをスキャンし、コンテナを検査し、安全でないデプロイメントを検出することができます。

Kubernetes の実行経験が何年もあるにもかかわらず、企業はクラスターのセキュリティ保護の詳細をまだ学習しているところです。 2019年、暗号通貨マイナーが何らかの方法でJW Playerのクラスターにアクセスし、そのリソースをマイニングに使い始めました。開発者は、原因は権限が昇格されたコンテナにあることを発見しました。この場合、JW Player チームがデプロイメント プロセスで Kubescape を使用していた場合、昇格されたコンテナー権限はデプロイメント前に検出されていたはずです。

Kubescape は、NSA、CISA、Microsoft のセキュリティ ガイダンスに基づいて 70 を超える制御を実装しています。これらのコントロールは、フレームワークと呼ばれる 4 つのカテゴリに分類されます。

  • NSA : NSA Kubernetes 強化ガイドに従ってください。これは、アプリケーションのセキュリティに重点を置いたトップダウン フレームワークです。
  • MITRE : Microsoft の MITRE フレームワークに従います。 MITRE は主に Kubernetes インフラストラクチャの保護に重点を置いています。
  • ArmoBest : ARMO フレームワークは、Kubescape の背後にいる同じ人々によって保守されています。このフレームワークは、MITRE フレームワークと NSA フレームワーク間の盲点をカバーしようとします。
  • DevOpsBest : インフラストラクチャとアプリケーション セキュリティの基本をカバーする最小限のフレームワーク。

デフォルトでは、Kubescape はすべてのチェックを実行し、各フレームワークのリスク レベルを出力します。

Kubernetes セキュリティの整合性制御

Kubernetes のセキュリティには 2 つの観点からアプローチできます。最も基本的なレベルでは、攻撃に対して適切に強化する必要があるクラスターがあります。これは、自己管理型およびオンプレミスのインストールでは特に重要です。アプリケーション レベルでは、デプロイメントがベスト プラクティスに従っており、悪用可能な脆弱性が残っていないことを確認する必要があります。

Kubescape による Kubernetes の保護

最初に検討するコントロール セットは、Kubernetes がリソース セットの望ましい状態を記述するために使用するデプロイメント マニフェストのセキュリティ保護です。このマニフェストを分析することで、Kubescape は次の問題を検出できます。

  • コンテナ内で実行されている安全でない SSH サービス。
  • コンテナ起動コマンドの sudo コマンド。
  • コンテナをルートとして実行するか、機能が多すぎる
  • 親レプリカセットなしでポッドを実行します。
  • Pod は利用可能なすべての CPU とメモリを消費します。

すべてのコントロールと利用可能なフレームワークについては、ArmoSec ドキュメントで確認できます。各コントロールには、低から重度までのリスク レベルが関連付けられています。スキャン プロセスの最後に、Kubescape は 0% (非常に安全) から 100% (安全でない) までのリスク スコアを計算します。

Kubernetes マニフェストのスキャン

Kubescape の動作を見てみましょう。チュートリアルのこの部分では、有効な Kubernetes マニフェストであればどれでも使用できます。例として、このリポジトリのデプロイメント マニフェストを使用します。

  • セマフォデモ-nodejs-k8s

Kubernetes マニフェスト ファイルをスキャンするための基本コマンドは次のとおりです。

 $ kubescapeスキャン展開.yml
コントロール: 31 (失敗: 14除外: 0スキップ: 0 )
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- -- +
|重大度|コントロール|失敗したリソース|除外されるリソース|すべてのリソース| %リスク-スコア|
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- -- +
||リソースCPU制限リクエスト| 1 | 0 | 1 | 100 % |
||リソースメモリの制限要求| 1 | 0 | 1 | 100 % |
||権限昇格を許可する| 1 | 0 | 1 | 100 % |
|| CVE - 2022-0492 - cgroups -コンテナー-エスケープ| 1 | 0 | 1 | 100 % |
||構成された活性プローブ| 1 | 0 | 1 | 100 % |
||許可されたレジストリからの画像| 1 | 0 | 1 | 100 % |
||入口出口がブロックされました| 1 | 0 | 1 | 100 % |
|| Linux の強化| 1 | 0 | 1 | 100 % |
||ルートコンテナー| 1 | 0 | 1 | 100 % |
|低い|構成された準備プローブ| 1 | 0 | 1 | 100 % |
|低い|不変コンテナファイルシステム| 1 | 0 | 1 | 100 % |
|低い| K8s の一般的なラベルの使用法| 1 | 0 | 1 | 100 % |
|低い|リソースラベル使用法| 1 | 0 | 1 | 100 % |
|低い|リソースポリシー| 1 | 0 | 1 | 100 % |
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- -- +
| |リソースの概要| 1 | 0 | 1 | 40.27パーセント
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- -- +

フレームワーク: MITRE (リスク: 0.00)、AllControls (リスク: 40.27)、ArmoBest (リスク: 36.73)、DevOpsBest (リスク: 63.16)、NSA (リスク: 36.99)特定のフレームワークを選択しない場合、Kubescape はすべてのコントロールを評価します。フレームワークを追加できます。例えば:

 $ kubescapeスキャンフレームワークDevOpsBestデプロイメントyml

ID コードを一覧表示して、個々のコントロールを実行することもできます。

 $ kubescapeスキャンコントロールC - 0076C - 0004 の展開yml

ご覧のとおり、Kubescape はコントロール、そのステータス、および最終的なリスク スコアを含むテーブルを出力します。

Kubernetes クラスターの健全性チェック

Kubernetes のデフォルト構成がセキュリティ問題の約 47% の原因となっているため、ほとんどの自己管理型クラスターは危険にさらされています。 Kubescape は、実行中のクラスターの構成を検査し、潜在的な問題を検出し、修正を提案できます。ツールが実行できるクラスター レベルのチェックの一部を次に示します。

  • 安全でないワーカーノードを識別します。
  • 管理ダッシュボードなど、公開されている安全でないインターフェースがないか確認します。
  • クラスターが既知の CVE の影響を受けているかどうかを検出します。
  • 不足しているネットワーク ポリシーを検出します。
  • TLS 認証なしで実行されている Kubelet クライアントを探します。

クラスターをスキャンするには、次のコマンドを使用します。

 $ kubescapeスキャン
コントロール: 57 (失敗: 35除外: 0スキップ: 5 )
+ -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- +
|重大度|コントロール|失敗したリソース|除外されるリソース|すべてのリソース| %リスク-スコア|
+ -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- +
|クリティカル|データ破壊| 17 | 0 | 67 | 25 % |
|クリティカル| Kubeletサービスへの匿名アクセスを無効にする| 0 | 0 | 0 |スキップ* |
|クリティカル| KubeletクライアントのTLS認証を強制する| 0 | 0 | 0 |スキップ* |
||クラスター-管理バインディング| 1 | 0 | 67 | 1 % |
|| Kubernetesシークレットの一覧| 10 | 0 | 67 | 15 % |
||特権コンテナ| 1 | 0 | 6 | 14 % |
||リソースCPU制限リクエスト| 6 | 0 | 6 | 100 % |
||リソースメモリの制限要求| 5 | 0 | 6 | 69パーセント
||重大な脆弱性を持つワークロード外部トラフィック公開される| 0 | 0 | 0 |スキップ** |
||外部トラフィックさらされるRCE脆弱性を持つワークロード| 0 | 0 | 0 |スキップ** |
||脆弱性過剰に存在するワークロード| 0 | 0 | 0 |スキップ** |
||書き込み可能なホストパスマウント| 3 | 0 | 6 | 42パーセント
||コンテナサービスアカウントにアクセスする| 2 | 0 | 2 | 100 % |
||権限昇格を許可する| 5 | 0 | 6 | 69パーセント
||許可されたホストパス| 3 | 0 | 6 | 42パーセント
||サービスアカウント自動マッピング| 4 | 0 | 8 | 57パーセント
|| CVE - 2022-0492 - cgroups -コンテナー-エスケープ| 1 | 0 | 6 | 31 % |
||クラスター内部ネットワーク| 5 | 0 | 5 | 100 % |
||構成された活性プローブ| 1 | 0 | 6 | 14 % |
|| CoreDNSポイズニング| 3 | 0 | 67 | 4 % |
|| Kubernetesイベントを削除する| 3 | 0 | 67 | 4 % |
||コンテナ実行| 1 | 0 | 67 | 1 % |
||ホストネットワークアクセス| 5 | 0 | 6 | 69パーセント
|| HostPathマウント| 4 | 0 | 6 | 56パーセント
||入口出口がブロックされました| 6 | 0 | 6 | 100 % |
|| Linux の強化| 1 | 0 | 6 | 14 % |
||マウントサービスプリンシパル| 4 | 0 | 6 | 56パーセント
||サービスアカウントのない名前空間| 4 | 0 | 7 | 57パーセント
||ネットワークマッピング| 5 | 0 | 5 | 100 % |
||なりすまし禁止| 1 | 0 | 67 | 1 % |
||ルートコンテナー| 6 | 0 | 6 | 100 % |
||ポート転送権限| 1 | 0 | 67 | 1 % |
|低い|監査ログが有効| 1 | 0 | 1 | 100 % |
|低い|構成された準備プローブ| 4 | 0 | 6 | 56パーセント
|低い|不変コンテナファイルシステム| 5 | 0 | 6 | 69パーセント
|低い| K8s の一般的なラベルの使用法| 6 | 0 | 6 | 100 % |
|低い|リソースラベル使用法| 2 | 0 | 6 | 44パーセント
|低い| PSP対応| 1 | 0 | 1 | 100 % |
|低い|リソースポリシー| 6 | 0 | 6 | 100 % |
|低い|シークレット/ ETCD暗号化が有効| 1 | 0 | 1 | 100 % |
+ -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- +
| |リソースの概要| 37 | 0 | 90 | 16.62パーセント
+ -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - + -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- + -- -- -- -- -- -- +

フレームワーク: MITER (リスク: 12.58 )、 AllControls (リスク: 16.62 )、 ArmoBest (リスク: 13.44 )、 DevOpsBest (リスク: 40.27 )、 NSA (リスク: 17.92 )

各ノードに診断コンテナをインストールするには、--enable-host-scan を追加します。これにより、以下に示すように、より詳細な結果が得られます。

 $ kubescapeスキャンフレームワークDevOpsBest --enable - host - scan
コントロール: 11 (失敗: 6除外: 0スキップ: 0 )
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- +
|重大度|コントロール|失敗したリソース|除外されるリソース|すべてのリソース| %リスク-スコア|
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- +
||リソースCPU制限リクエスト| 6 | 0 | 6 | 100 % |
||リソースメモリの制限要求| 5 | 0 | 6 | 69パーセント
||構成された活性プローブ| 1 | 0 | 6 | 14 % |
|低い|構成された準備プローブ| 4 | 0 | 6 | 56パーセント
|低い| K8s の一般的なラベルの使用法| 6 | 0 | 6 | 100 % |
|低い|リソースラベル使用法| 2 | 0 | 6 | 44パーセント
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- +
| |リソースの概要| 6 | 0 | 6 | 40.27パーセント
+ -- -- -- -- -- + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- -- -- -- + -- -- -- -- -- -- - + -- -- -- -- -- -- +
フレームワークDevOpsベスト

CI / CDによるセキュリティ監査の自動化

Kubernetes 環境のセキュリティを確保できたので、その安全性を維持するにはどうすればよいでしょうか?安全でないデプロイメントがシステムに到達するのを防ぐために、CI/CD パイプラインに整合性チェックを埋め込むことができます。

この目的のために、CI/CD ソリューションとして Semaphore を使用します。 Semaphore に詳しくない場合は、ガイド付きツアーを見て基本を学んでください。無料アカウントを使用して、このチュートリアルのすべての手順を実行できます。

パイプラインを開始します。デプロイする前にいくつかテストを追加します。

まず、リポジトリをフォークし、フォークアンド実行ブランチに切り替えます。それから:

  1. セマフォに項目を追加します。
  2. パイプラインを編集し、 「デプロイ」をクリックして継続的なデプロイ パイプラインを表示します。
  3. + ブロックを追加 をクリックします。
  4. Prologueを開き、Kubescape インストール コマンド「curl -s」を入力します。
    https://raw.githubusercontent.com/armosec/kubescape/master/install.sh |バイナリ
  5. ジョブに次のコマンドを追加します。 checkout コマンドは、CI マシンのリポジトリをクローンして、マニフェスト ファイル (deployment.yml) にアクセスできるようにします。
  6. checkoutexport MAX_RISK=40kubescape scan -t "$MAX_RISK" デプロイメント.yml --format junit -o report.xml
  7. 新しいジョブが最初に実行されるように、パイプライン内のジョブの依存関係を調整します。

テストレポートの設定

このセクションでは、すべての CI/CD 実行の Kubescape 結果を分析し、統合レポートに表示する機能であるテスト レポートを構成します。

  1. 継続的デプロイメント パイプラインのエピローグセクションを開き、次の行を入力して、Kubescape によって生成されたレポートを処理します。
  2. ` -f report`.`xml ` && テスト結果 report.xml を公開
    ジョブ後に「追加」をクリックし、次のコマンドを入力します。これにより、すべてのジョブからレポートが収集され、ダッシュボードが更新されます。

1 つのテスト結果からパイプライン レポートが生成される

  1. テスト結果 gen-pipeline-レポート
  2. パイプラインはすぐに開始されるはずです。 「プロモート」ボタンをクリックする前に、CI パイプライン内のすべてのジョブが完了するまで待機します。リスク レベルが設定されたしきい値 (この例では 40% ですが、自由に調整できます) を超えると、パイプラインは失敗し、クラスターを保護するためにデプロイメントがブロックされます。

インベントリ整合性チェックがインストールされた継続的なデプロイメント パイプライン。

完了すると、Kubescape によって検出された障害を「テスト結果」タブで表示できます。

テスト レポートは、重大な安全性の問題に関する洞察を提供します。

クラスターの事前チェック

展開を保護することは解決策の半分にすぎません。残りの半分は、Kubernetes クラスター自体を継続的にチェックすることです。 Kubescape は、次の 2 つの補完的な方法でこれを実現します。

  • クラスターに Kubescape をインストールし、バックグラウンドで実行したままにします。結果はArmo Cloudポータルで確認できます。
  • すべてのデプロイメントの前に、CI/CD パイプラインでクラスターをスキャンします。

そこで、CI/CD パイプラインを更新して事前チェックを実行し、安全にデプロイできることを確認しましょう。その前に、クラスターに接続できるように、Kubeconfig ファイルを Semaphore にアップロードする必要があります。つまり、ファイルを含むシークレットを作成する必要があります。これをシークレット kubeconfig と呼びます。

パイプラインを編集し、先ほど作成したブロックにパイプライン スキャン ジョブを追加してセットアップを完了します。チェックを実行するコマンドは次のとおりです。

チェックアウト
エクスポートMAX_RISK = 40
kubescapeスキャン--除外-名前空間kube - systemkube - public - t $MAX_RISK --フォーマットjunit - oレポート.xml

保存する前に、シークレット セクションを開いて kubeconfig エントリを有効にします。

ブロックにクラスター スキャン ジョブと kubeconfig パスワードを追加します。

それでおしまい。パイプラインを再度実行して、すべてが正常に動作しているかどうかを確認します。

すべてのチェックを完了した最終的な CI/CD パイプライン。

結論は

Kubernetes は大規模なアプリケーションを実行するための人気のプラットフォームですが、攻撃の主な標的にもなります。安全は決して後回しにされるものではありません。これは、ソフトウェア開発サイクルのあらゆる部分の不可欠な部分として考えるべき継続的な実践です。この実践の一環として、Kubescape などのツールを活用してシステムを保護しします。

<<:  クラウドコンピューティングが精密農業技術に与える影響

>>:  レポート: クラウド サービス市場は 2029 年までに 20% 成長する見込み

推薦する

加盟店コレクション: 韓国のVPS、Alipay決済

韓国の VPS 販売業者、特に Alipay 決済をサポートする韓国の VPS をいくつかお勧めしま...

sugarhosts-仮想ホスト: 無料の独立 IP + 30% 割引コード - 香港/米国/ドイツのデータセンター

Sugarhosts は設立から 5 年が経ちました。この 5 年間、皆様のご支援に感謝いたします。...

ウェブサイトのプロモーションとソーシャル マーケティング: 家系図のプロモーション

あなたのウェブサイトに将来性があるかどうかをどのように評価しますか?隠さないでください。家族に見せる...

NetEase、Sanlian、Xinshixiangはすべて分裂ツールを使用してグループ宝物を構築し、グループ宝物に入ります

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますWeCha...

農業ウェブサイトでのPPCクリック数の増加の裏にある真実

業界ウェブサイトが、複数のカテゴリを扱うポータルから、特定の製品セグメントにのみ焦点を当てたポータル...

Baidu Advanced Phrase 2.0 マッチングモードで注意すべき問題

新しいプランを追加したのですが、ブロードにすると表示されません。精密をオンにしたようなもので、キーワ...

ウェブサイトのスナップショットが更新されず、内部ページが削減される理由の事例分析

この記事は、主に著者が所有するウェブサイトで発生した問題に対処するために書かれています。著者のウェブ...

最適なSEO会社を選ぶ方法

SEO 初心者の友人の多くは、一定期間ウェブサイトの SEO に取り組んできましたが、どれだけ努力し...

逆境におけるリスクを回避するために、事業継続は必須である

キャッシュフローの危機、不確実な景気変動、その他の予期せぬ出来事の課題により、企業は持続可能な運営能...

企業がクラウドリソースをより有効活用するための4つのステップ

多くの企業にとって、クラウド リソースの活用は戦略の一部ではなく、個々のチームがニーズを満たすために...

検索エンジンにウェブサイトを簡単に飲み込まれないようにする

皆さんは三匹の子豚の物語をよくご存知だと思います。大きな悪いオオカミの攻撃を避けるために、彼らは自分...

Kubescape で Kubernetes を保護する方法

Kubernetes は強力ですが、複雑でもあります。クラスターを攻撃に対して脆弱な状態にしておくこ...

iWeekly: ダウンタイムのないクラウド コンピューティングの 3 年間の旅

3 年前、私たちは IDC のコンピュータ ルームのキャビネットに独自のサーバーを構築するか、Ali...

中国SNSは定着率の危機に直面、ユーザーの需要が変革の鍵に

インターネット トラフィック監視機関 ComScore は最近、2011 年グローバル ソーシャル ...

韓国サーバー: zenlayer、30% 割引、ソウルデータセンター、10Gbps の超大容量帯域幅、リソースのカスタマイズをサポート、月額 209 ドルから

世界的に有名なデータセンターである Zenlayer は、韓国のソウルにも独自のデータセンターを構え...