基調講演:ハッキングで学ぶ:2,500ノードのKubernetes CTFを運営する方法 - アンドリュー・マーティン & アンドレス・ベガ
このページのタイトル、字幕、要約、読書メモは保存済みの AI 翻訳です。誤りが含まれる場合があります。タイムスタンプは原文と同じです。原文の字幕を開き、元の動画と照合できます。
アンドリュー・マーティンとアンドレス・ベガが、学習シナリオ、インフラ、コストのバランスを取りながら、大規模なKubernetesキャプチャ・ザ・フラッグ・イベントをどのように運営したかを説明します。
文字起こしの出典:Vidleafによる自動音声認識(誤りを含む可能性があります)。AIによる句読点はVidleafが追加しました。元の文言とタイムスタンプのアンカーは保持されています。元の文字起こしは以下でご覧いただけます。
AI生成の要約
「Learn by Hacking」と題されたこの講演では、講演者たちが過去数年にわたりCloud Native Security ConでCTFをどのように運営してきたかを説明し、何を行ったか、参加者に何を達成してほしかったか、そしてどのように壊れやすい正気を保ったかを扱う。2019に計画を開始し、一日あたり数千のノードをオンデマンドでプロビジョニングし、対面と仮想の両方でイベントを開催し、完全なデモンストレーション、分解、修復を伴うレッドチームシナリオを通じて、クラウドネイティブインフラを最善の方法で保護する方法を伝えることを目指した。シナリオは意図的にますます複雑で難しくなり、各イベントで導入シナリオから始まり、複雑さを多少犠牲にして現実世界のシステムをエミュレートする専用の実インフラ上で実行される。目標は究極のセキュリティ忍者を見つけることではなく、すべての船を浮かせる満ち潮であり、迅速なフィードバックとサポートを伴う。ライブデプロイメントは一日あたり2,500ノードを伴い、シナリオごとに一つの五ノードクラスタでクラスタの再利用はなく、プレイヤーごとシナリオクラスタのペアごとに固有の認証情報、そして対面とSlack上のTaskmastersがヒントを配布した。このセッションでは、AWS内部のUbuntuミラーがダウンし、プロビジョニングが停止し、ヘルスチェックが不健全になりダッシュボードが赤くなったライブ侵害シミュレーションも語られる。チームは別のリージョンに再プロビジョニングし、誰かが初期のSSHトンネルサンドボックス化をバイパスし、Cluster Admin RBAC認証情報が消えてバスティオンノードに行き着き、テストスイートはハッピーパスのみをカバーしている。講演者はプレイし、フィードバックを与え、反復を可能にしたすべての人に感謝し、CTFプレイヤーに学習体験に焦点を当ててシナリオを歩くよう促し、クラスタとシナリオはオープンソースであり、Kubernetesシミュレータプロジェクトの下でホスト版があり、Control Planeのプライベートベータがあることを述べる。
文字起こしから生成されました。リンクされた箇所を元の動画と照合して確認してください。
タイムスタンプ付きの章の要約
Learn by Hacking: Kubernetesセキュリティ講演イントロ
- [0:02] 講演のタイトルはLearn by Hackingです。
- [0:06] 登壇者は、Kubernetesに関わる参加者、ボランティア、コントリビューター、そしてCloud Native Computing Foundationに感謝します。
- [0:23] ドキュメントやバグ修正はひとりでに書かれるものではなく、オープンソースへの貢献は無償で与えられ、快く受け取られます。
- [0:36] Kubernetesの機能を伴う複雑なオーケストレーションでは、セキュリティ制御を正しく行うことは一般にいっそう困難です。
- [0:45] 登壇者は特にセキュリティチームの尽力に感謝します。
- [0:49] 税務セキュリティCTFは、インターネットという危険な自由の海におけるKubernetesの先駆的な航海を反映しています。
- [1:00] 登壇者と共著者であるMichael Hassenblass氏による無料の書籍がダウンロード可能で、クラウドネイティブインフラを攻撃しようとする個人向けのヒントやコツが掲載されています。
- [1:00] この講演に興味を持った聴衆は、木曜日に登壇者と合流できます。
Cloud Native Security ConでのCTF運営
- [1:25] この講演は、過去数年にわたりCloud Native Security ConでCTFがどのように運営されてきたかを扱います。
- [1:30] 彼らが行ったこと、参加者に対して達成しようと望んだこと、そして彼らがいかにして壊れやすい正気を保ったかを扱います。
- [1:38] 彼らは一日あたり数千のノードをオンデマンドでプロビジョニングした。
- [1:44] 長年にわたり、彼らは対面とバーチャルの両方でCTFを運営しており、計画は2019に始まりました。
- [1:55] 彼らは、Kubernetes上でKubernetesのために実行するCTFをまとめ上げるには何が必要かを見極めようとしました。
- [2:04] 重要な懸念は、インフラ全体が崩れ落ちることなくこれを実現することでした。
- [2:09] 自己ホスト型のセキュリティゲームを構築し、誰もがそれを攻撃できるよう招くことは、恐ろしいことだと述べられています。
クラウドネイティブセキュリティのレッドチームシナリオ
- [2:19] 目標は、クラウドネイティブインフラをどのように最善の形で保護するかを伝えることです。
- [2:25] シナリオは、完全なデモンストレーション、分解、および修復を伴うレッドチーム演習です。
- [2:32] 枠組みは孫子に依拠しています。最善の防御は攻撃であり、己を知ることです。
- [2:37] 目的は、これほど多くを共有してきたコミュニティに何かを返すことです。
- [2:44] 悪名高き#PirateCaptainと、彼の名を冠したBitcoinの袋が登場します。
- [2:55] また、ここ数年でセキュリティへの熱意を呼び起こしたUntitled Gooseも登場します。
- [3:04] これはあらゆるスキルレベルのための学習体験であり、各イベントで導入用のシナリオから始まり、難易度を上げていきます。
- [3:12] 進行は、旅の途中でますます難しくなるゲームとして機能し、あらゆるスキルレベルを惹きつけ、セキュリティへの関心を育みます。
- [3:23] 現実世界のシステムをエミュレートするために専用インフラが使用され、複雑さをいくらか犠牲にしています。
クラウドネイティブCTFと学習目標
安全なソフトウェアは存在しない
- [4:03] 新機能が素早く出荷され脆弱性が現れ続けるため、安全なソフトウェアというものは存在しません。
- [4:19] 新機能にはテストされていないコードパスが含まれている可能性があります。
- [4:26] セキュリティ上の副作用を伴うテストされていないコードパスは、既定で脆弱性です。
- [4:34] 私たちは脆弱性の修正よりも機能の出荷を優先しており、それは危険を伴います。
- [4:48] これはレッドチームとブルーチームの間の摩擦に似ています。
- [5:01] 組織は生き残るために進化しなければなりません。なぜなら敵対者もまた進化しているからです。
- [5:06] 問題は、その複雑なパズルを安全な学習環境でどのように表現するかです。
実インフラ上の現実的な攻撃シナリオ
- [5:11] シナリオの作者たちは、自分たちが実現できる最も現実的なシナリオを構築することを目指しています。
- [5:16] これにはインフラストラクチャの図や脅威モデリングのシナリオの作成が含まれ、規制産業やスタートアップとのコンサルティング経験を活かしています。
- [5:28] サプライチェーン攻撃が進行中である様子が示されており、Captain Hashjackは過去にさまざまなネットワークシステムを通じてシステムを攻撃してきました。
- [5:37] 過去の攻撃対象には、パッキングリポジトリ、コンテナレジストリ、ハイパーテキストコーヒーポット制御プロトコルなどが含まれます。
- [5:47] 実際のインフラストラクチャ上でプラットフォームを実行することで、現実に見られるシミュレーションのエミュレーションが可能になります。
- [5:54] コーヒーポットやIoT攻撃は例外ではありません。
Kubernetes CTF セキュリティ宝の地図
- [6:02] 目標は、できるだけ多くの人々にできるだけ効果的に教育することです。
- [6:10] 書籍「Hacking Kubernetes」のポッドセキュリティ宝の地図が示されています。
- [6:15] シナリオは意図的にますます複雑で難しくなり、広く複雑なセキュリティの状況についての理解を明確にします。
- [6:29] すべてのCTFと同様に、プレイヤーは見える地平線を列挙し、権限を昇格させ、行き止まりや意図的な誤誘導から逆戻りしなければなりません。
- [6:41] ポッド宝の地図は、攻撃者がKubernetesクラスタ内で探索する可能性のある多くのルートを詳述しています。
- [6:49] 各シナリオには意図されたルートが一つしかないが、プレイヤーは完了への高貴なルートとして複数のバイパス、意図しないショートカット、狡猾な回避策を見つけてきた。
Kubernetesクラスタの攻撃対象領域
- [7:10] プレイヤーはターミナル、IPアドレス、およびKubernetesクラスタまたはその他のインフラストラクチャへのオプションのSSH認証資格情報から始めます。
- [7:20] 最初のビューはnclusterを実行しているroot有効のコンテナであり、プレイヤーは見えるものを列挙し、見えないものを明らかにし、潜在的な侵害ルートを探索しなければなりません。
- [7:36] 可能な攻撃ルートには、セッションと資格情報のハイジャック、ルーティング可能なAPIとデータストアへの攻撃、IDメカニズムを通じた権限の昇格が含まれます。
- [7:50] 講演者は列挙と悪用を加速するためにポータブルなbashスクリプトを持ち込むことを好み、実行できる場所がある限りツールに関するルールはありません。
- [8:04] 長年にわたり、彼らはコンテナイメージのファイルシステムの問題、暴走するランタイム、悪意のあるマウント、隔離されていないシークレット、特権ポッドセキュリティポリシー、機密サービスアカウント、ファイアウォールのないネットワーキング、ひどいアドミッションコントロール、露出したetcd、ひどいTLS実装、フェデレーションの失敗、コントロールプレーンの問題など、多くの脆弱性と設定ミスを調査してきました。
- [8:43] ゲームは以前はリモートでプレイされ、今回はパンデミックに適応して対面でプレイされています。
大規模なライブ侵害シミュレーションの展開
- [8:54] 高圧的なライブデプロイメントは一日あたり2,500ノードを伴った。
- [9:10] 彼らは、コントロールプレーンのクライアントがクラウドを保護するのを支援するために構築されたオープンソースの侵害シミュレータツールから始めました。
- [9:14] 各シナリオに対して一つの五ノードクラスタがプロビジョニングされ、クラスタの再利用は有効になっていない。
- [9:23] Knativeに支えられたプロビジョニングエンジンはゼロにスケールし、統一されたエンジンに集中化されていません。
- [9:33] Pub/Subキューと再入可能なステートマシンは、半分プロビジョニングされたクラスタが強制的に稼働し、半分展開されたときに再活性化されることを保証しようとします。
- [9:51] 各シナリオクラスタのペアリングごとに、各プレイヤーに一意の資格情報が配布されます。
- [10:01] タスクマスターが対面およびSlack上で待機し、ヒントを配り、提案を提供し、人々を課題を通して導きます。
- [10:13] 彼らは一日あたり2,500ノードをスピンアップし、80から100の参加者に達した。
障害の話と教訓
- [10:23] 講演者は記録を破りたいと願っています。
- [10:30] 講演者は何がうまくいかなかったのかを尋ね、何も起こらなかったと主張するジョークを言います。
- [10:37] AWS内部のUbuntuミラーがダウンしたため、プロビジョニングが完了せず、シミュレータは完全に停止しました。
- [10:49] ヘルスチェックは明らかに不健康で、ダッシュボードは非常に赤くなり、パニックの感覚が高まっていました。
- [11:01] このインシデントでは、別のリージョンへの迅速な再プロビジョニングが必要でした。
- [11:06] 誰かが初期のSSHトンネルサンドボックスをバイパスする方法を考え出しました。
- [11:12] 安全なプロビジョニングと安全なインフラストラクチャは難しく、彼らはそれをあまりにも安全でないものにしたくありません。
- [11:17] クラスタ管理者のRBAC資格情報が消え、踏み台ノードに紛れ込みました。
- [11:26] テストスイートはハッピーパスのみをカバーしています。
- [11:30] そのすべてを通じて、彼らは目標を達成したようです。
CTFプレイヤーへの感謝とアドバイス
オープンソースのクラウドネイティブ侵害シミュレーション
[0:00] こんにちは、ようこそ。私たちのトーク「Learn by Hacking」へ。私たちのアークがクラウドネイティブの啓蒙を見たことに無限の感謝を捧げ、心からの感謝を申し上げます。皆様、参加者、ボランティア、貢献者、そしてKubernetesのビジョンと提供に関わるCloud Native Computing Foundationに感謝します。ドキュメントやバグ修正は自ら書かれるものではなく、オープンソースコミュニティを動かす信じられないほどの無私の貢献は、これほど自由に与えられ、優雅に受け取られたことはありませんでした。
[0:36] セキュリティ制御は一般に、Kubernetesが知られている機能を備えた複雑なオーケストレーションで正しく行うのがより困難です。申し訳ありません。特にこれらのセキュリティチームに、皆様の努力に感謝します。税務セキュリティCTFは、Kubernetesの良き船がインターネットの荒れ狂う危険な自由の海に出て行く先駆的な航海を反映しています。私自身と私の真の共著者であるMichael Hassenblass氏によって書かれた無料の本をダウンロードできます。クラウドネイティブインフラを攻撃しようとする個人にとって有用なヒントやコツがあるかもしれません。このトークに十分興味を持たれたなら、木曜日にご参加ください。
[1:21] そして新しいシナリオをプレイしてください。それでは、過去数年間にCloud Native Security ConでCTFをどのように運営してきたかについて話します。何をしたか、参加者である皆様のために何を達成したいと考えているか、そして毎日オンデマンドで何千ものノートをプロビジョニングしながら、いかにして私たちの壊れやすい正気を保ったか。長年にわたり、私たちはCTFを対面および仮想で運営してきました。これらのイベントの計画は2019の幻想的で霧深い夜に始まりました。
[1:55] Kubernetes上でKubernetesのためのCTFを、インフラ全体が崩壊することなく実行するために何が必要かを判断しようとしたとき。自己ホスト型のセキュリティゲームを構築し、誰も彼もがそれを楽しめるよう招待することほど恐ろしいことはありません。私たちの目標は、クラウドネイティブインフラを最善の方法で保護する方法を伝えることです。これらは完全なデモンストレーション、分解、および修復を伴うレッドチームシナリオです。
[2:32] 孫子が教えてくれたように、最善の防御形態は攻撃です。己を知れ。そして、私たちにこれほど気前よく多くを共有してくれたコミュニティに何かを返したいと考えています。ここに、悪名高い#PirateCaptainが彼の名を冠したビットコインの袋を持って先頭に立っています。そして、過去数年間にわたって多くのセキュリティ熱意を引き起こしたUntitled Gooseがいます。
[3:04] これはすべてのスキルレベルのための学習体験であり、各イベントで入門シナリオから始まり、難易度を上げ、ゲームとして進行するにつれてますます難しくなり、すべてのスキルレベルを魅了し興味を引き、セキュリティに関する関心を育み定着させるのに役立ちます。専用のインフラストラクチャにより、複雑さを犠牲にしてできるだけ多くの実世界のシステムをエミュレートしようとしています。プレゼンテーションをもう少し深く掘り下げるつもりでした。目標は究極のセキュリティ忍者を見つけることではなく、すべての船を持ち上げる満ち潮であり、プレイヤーが学習体験を向上させるための迅速なフィードバックとサポートを得ることです。
[3:45] しかし最初に、ストリートアーティストのBanksyによるデジタル再構築があります。海賊の一団がクラウドネイティブCTFをプレイしている様子を、効果のためにstable diffusionを少し加えて表現しています。ですから、安全なソフトウェアというものは存在しません。インフラのカラフルな脆弱性の選択を塗りつぶすことができるのと同じ速さで、新しい機能が出荷されます。ソフトウェアは迅速に動きます。
[4:18] - そしてそれらの新機能には、テストされていないコードパスが含まれている可能性があります。確かではありません。そして、セキュリティ上の副作用を持つテストされていないコードパスは、デフォルトで脆弱性です。私たちはもちろん、脆弱性の修正よりも機能の出荷を優先するという危険を冒しています。そしてこれが、私たちが日々バランスを取っている現代のソフトウェアの現実です。レッドチームとブルーチームの間に見られる摩擦との類似性。最後のアニメーションの類似性は偶然ではありません。
[4:57] 組織は競争優位のために進化するだけでなく、敵も進化しているため、生き残るためにも進化しなければなりません。では、その複雑なパズルを安全な学習環境でどのように表現するのでしょうか?シナリオ作者として、私たちは管理できる最も現実的なシナリオを構築しようとしています。これにはインフラストラクチャ図とスレッドモデリングシナリオの構築が含まれます。これは最大限のリアリズムで開発するのに役立ち、規制産業やスタートアップとのコンサルティング経験から生まれています。
[5:28] ここでは進行中のサプライチェーン攻撃を見ることができます。Captain Hashjackは過去にさまざまなネットワークシステムを通じてシステムを攻撃してきました。パッキングリポジトリ、コンテナレジストリ、そして有名なハイパーテキストコーヒーポッド制御プロトコルを含みます。何も妨げられずに、実際のインフラ上でプラットフォームを実行することで、実生活で見られるシミュレーションをエミュレートする機会が得られます。コーヒーポットやIoT攻撃は例外ではありません。
[6:02] そして私たちはできるだけ多くの人々をできるだけ効果的に教育しようとしています。ここに書籍「Hacking Kubernetes」からのポッドセキュリティ宝の地図があります。これらのシナリオは意図的にますます複雑で困難になっています。これは、広く複雑なセキュリティランドスケープに対するプレイヤーの理解を結晶化させるのに役立ち、すべてのCTFと同様に、参加者とプレイヤーは可視の地平線を列挙し、特権を昇格させ、行き止まりから逆戻りし、意図的な誤誘導を行う必要があります。
[6:40] バイバイ。このポッドトレジャーマップは、攻撃者がKubernetesクラスタ内で探索するかもしれない多くのルートを詳述している。しかし各シナリオでは、プレイヤーが見つける意図されたルートは一つだけで、注記と注意事項として、プレイヤーは完了への高貴なルートとして複数のバイパス、意図しないショートカット、狡猾な回避策を見つけてきた。ではCTFはどのようにプレイされるのか?ターミナル、IPアドレス、そしてSSHセッション、Kubernetesクラスタ、またはその他の謎のインフラのためのオプションの認証情報で。
[7:20] ここでは、プレイヤーがnclusterを実行するroot有効のコンテナ内に置かれたときに見る、クラスタの最初のビューを示します。プレイヤーは可視のものを列挙し、不可視のものを暴き、クラスタ内の潜在的な侵害ルートの探索を開始しなければなりません。これにはセッションや資格情報のハイジャック、開始点からルーティング可能なAPIやデータストアへの攻撃、クラウドネイティブシステムが持ちうるあらゆる識別メカニズムを通じた特権昇格が含まれます。私個人の好みは、列挙と悪用を加速するためのポータブルなbashスクリプト一式を持ち込むことです。
[7:57] しかし、持ち込めるツールに関するルールはありません。それを実行できる場所を見つける必要があるだけです。長年にわたり、私たちはコンテナイメージのファイルシステムのfoobarや暴走するランタイムから、セキュア設定、悪意あるマウント、隔離されていないシークレット、特権的なポッドセキュリティポリシー、機密性の高いサービスアカウント、ファイアウォールのないネットワーキング、ひどいアドミッションコントロール、露出したetcd、ひどいTLS実装、フェデレーションの失敗、慢性的なコントロールプレーンの制御などに至るまで、実に多種多様な脆弱性と設定ミスを見てきました。
[8:34] 設定と無制限のユーザー露出。そしてIngressからカーネルまでさらに続く。私たちはこれをリモートでプレイした。今回は対面でプレイしている。パンデミックに適応し、仮想イベント、オンライン集会から実行し、Slack上でインフラを運用した。平和は決して選択肢ではなかった。では、ゲームをプレイする各日に2500ノードというこの高圧的なライブデプロイメントにどう取り組んだのか?まず、コントロールプレーンのクライアントがクラウドを保護するのを助けるために構築されたオープンソースの侵害シミュレータツールから始める。各シナリオに対して一つの五ノードクラスタがプロビジョニングされる。
[9:18] そして、クラスタの再利用は有効になっていません。Knativeに支えられた、ゼロにスケールする超巨大なプロビジョニングエンジンを二重に追加します。これらは統一されたエンジンに集中化されていません。これはPub/Subキューと再入可能なステートマシンの上に乗っており、半分しかプロビジョニングされていないクラスタであっても、半分デプロイされたときに強制的に生かされ、再活性化されることを保証しようとします。これはつまり、私たちが知っているように、分散システムは難しいということです。
[9:51] 次に、固有の認証情報が各プレイヤーに各シナリオクラスタのペアごとに配布され、ゲームが始まる。頼れるTaskmastersが対面とSlack上で待機し、ヒントを配布し、提案を提供し、人々を課題の道へと導く。これらすべてが積み重なる。必要に応じてクラスタをスピンアップし、一日あたり二千五百ノードという高い高みに達し、80から100の参加者がいた。
[10:23] 私たちはこの記録を破りたいと願っています。木曜日に、何がうまくいかなかったのでしょうか?何もなかったと言ったら、本当に私たちを信じますか?そういうこともありました。ある時、AWS内部のUbuntuミラーがダウンしました。ご想像のとおり、何もプロビジョニングが完了しませんでした。シミュレータはただのホストで、完全に動かなくなっていました。ヘルスチェックは明らかに不健全でした。それを示すために。EC2がVMをプロビジョニングできなかったときの典型的な分散システムの問題、真っ赤なダッシュボード、高まるパニック感があり、そこから別のリージョンへ急いで再プロビジョニングする必要が生じました。
[11:05] よくわかりません。あの時、誰かが最初のSHトンネルのサンドボックス化をバイパスする方法を見つけ出しましたが、これも興味深いものでした。安全なプロビジョニングとセキュアなインフラストラクチャは難しいものです。あまりにも安全でないのは望ましくありません。クラスタ管理者がRBACを設定したとき、RBACの資格情報が消えました、なくなったのです。テストスイートがハッピーパスしかカバーしていないときに、それらはバスティオンノードに入り込んでいました。そしてそのすべてを通じて、私たちは目標を達成したようです。ゲームをプレイし、フィードバックを寄せ、私たちがプレイするのが大好きなこの素晴らしく、心から楽しめるプラットフォームを反復改善する機会を与えてくれたすべての人々に感謝します。
[11:50] CTFはしばしば大規模になり得ます。威圧的に感じることはありませんか?ですから、学習体験に集中してほしいと願っています。シナリオを歩んでください。そして、マシンを壊したい気分なら、それを存分に発揮してください。そして今日の私たちのクラスタとシナリオは、もちろんオープンソースで、このクラウドネイティブのブリーチシミュレーション上で実行されています。Kubernetesシミュレータプロジェクトの下には、ホスト版があり、Control Planeはプライベートベータを運営しています。参加をご希望の場合はどうぞ。
[12:28] ご覧のとおり、完璧なものはありません。スライドの最後に範囲外例外があります。私たちと一緒にシェルをポップしたい方は、明日ぜひ遊びに来てください。ありがとうございました。
英語の原文字幕を見る
[0:00] Hello and welcome. To our talk, Learn by Hacking. We're infinitely grateful that our arc saw the cloud native enlightenment, and we extend a heartfelt thank you. To you, the attendees, volunteers, contributors and the Cloud Native Computing Foundation involved in the vision and delivery of Kubernetes. Documentation and bug fixes do not write themselves, and the incredible selfless contributions that drive open source communities have never been more freely given or gracefully received.
[0:36] security controls are generally more difficult. to get right in complex orchestrations with the functionality that Kubernetes is known for. I'm sorry. To these security teams especially, We thank you for your hard work. The tax security CTFs are a reflection of the pioneering voyage of the good ship of Kubernetes. out in the choppy and dangerous free seas of the Internet. We have a free book available to download written by myself and my veritable co-author, Mr. Michael Hassenblass. There may be useful tips and tricks for individuals looking to assail the cloud-native infrastructure. If you're intrigued enough by this talk, to join us on Thursday.
[1:21] and play our new scenarios. So we're going to talk about how we run CTFs at Cloud Native Security Con over the past years. what we did, what we hope to achieve for you, the attendees, and how we maintained our fragile sanity. while provisioning thousands of notes on demand. per day. I Over the years, we have run CTFs in person, virtually. Planning for these events began in the ethereal and misty nights of 2019.
[1:55] As we looked to determine what it would take to put together a CTF running on Kubernetes for Kubernetes. without having the entire infrastructure come crumbling down around us. Nothing is more terrifying than building a self-hosted security game and inviting all and sundry to have a blast at it. Our goals are to communicate how best to secure cloud native infrastructure, They are red team scenarios with full demonstrations, teardowns and remediations.
[2:32] The best form, as Sun Tzu has told us, of defence is attack. Know thyself. And we look to give something back to the community that has so generously shared so much with us. here stands the nefarious #PirateCaptain leading the charge with his eponymous bag of Bitcoin. and the Untitled Goose that sparked so much security enthusiasm across the last few years.
[3:04] This is a learning experience for all skill levels, starting with an introductory scenario at each event, building up in difficulty, progressing as a game that gets more and more difficult throughout the journey to captivate and intrigue all skill levels and help nurture and seat the interest in and around security. With dedicated infrastructure, we look to emulate as much of the real-world systems at some cost of complexity. that we were going to delve slightly further into the presentation. The goal is not to find the ultimate security ninja but there rising tide that will lift all boats, and that players have fast feedback and support to enhance their learning experience.
[3:45] But first, here is a digital reconstruction by the street artist Banksy. of what a bunch of pirates would look like playing a cloud-native CTF. with a splash of stable diffusion for effect as well. So there is no such thing as secure software. As fast as we can possibly paint over the colourful selection of vulnerabilities in our infrastructure, new features are shipped. Software moves quickly.
[4:18] - and those new features potentially feature untested code paths. I'm not sure. And any of those untested code paths with security side effects are by default vulnerabilities. We prioritize shipping features over fixing vulnerabilities at our peril, of course. And this is the reality of modern software that we balance in our day-to-day every day. Resemblance to the friction we see between red teams and blue teams Any resemblance in that last animation is not a coincidence.
[4:57] Organizations not only evolve for competitive advantage, they must do so in order to survive because their adversaries are also evolving. So how do we represent that complex puzzle in a safe learning environment? As scenario authors, we look to construct the most realistic scenarios that we can manage. That includes building infrastructure diagrams and thread modeling scenarios. It helps us develop with the greatest degree of realism and is born from our experience consulting with regulated industries and startups alike.
[5:28] Here we can see a supply chain attack in progress. Captain Hashjack has attacked systems through various network systems in the past. including packing repositories, container registries, and the notable hypertext coffee pod control protocol. with no stone left unhindered, Running the platform on real infrastructure gives us the opportunity to emulate simulations we see in real life. Coffee pots and IoT attacks are not the exception.
[6:02] And we are looking to educate as many people as possible as effectively as we can, here we see a pod Security treasure map from the book, "Hacking Kubernetes," These scenarios are intentionally increasingly complex and difficult. This helps to crystallize players' understanding of a wide and complex security landscape and, as with all CTFs, Attendees and players must enumerate the visible horizon, escalate their privilege, reverse back from dead ends, and intentional misdirections.
[6:40] Bye. This pod treasure map details many of the routes that an attacker might explore within a Kubernetes cluster. But with each scenario, there is only one intentional route for a player to find, with the notes and caveats that players have found, multiple bypasses, unintended shortcuts and wily workarounds as noble routes to completion. So how is the CTF played? With a terminal, IP address, and optional authentication credentials for an SSH session, a Kubernetes cluster, or other mystery piece of infrastructure.
[7:20] Here we see the first view of a cluster that a player has when placed in a root-enabled container running ncluster. They must enumerate the visible, uncover the invisible, and start to explore potential routes of compromise in the cluster. This may include hijacking sessions and credentials, attacking APIs and data stores routable from the starting point, and escalating privilege through any and all identity mechanisms, a cloud-native system may have. My personal preference is to bring a portable set of bash scripts to speed up enumeration and exploitation.
[7:57] However, there are no rules what tooling you can bring with you. You just need to find somewhere to execute it from. Over the years, we have looked at a whole host of vulnerabilities and misconfigurations, from container image file system foobars and runaway runtimes to secure config, malicious mounts, unsequestered secrets, privileged pod security policies, sensitive service accounts, no firewall networking, awful admission control, exposed etcds, terrible TLS implementations, federation failures, chronic control plane control, and so on.
[8:34] configurations and unlimited user exposures. And there's more from Ingress to the kernel. We played this remotely. We're playing it in person this time around. adapting to the pandemic and running from virtual events, online gatherings, running the infrastructure over Slack, Peace was never an option. So how did we go about this high pressure live deployment of 2500 nodes across each day we play the game? We start with the open source breach simulator tool built to help control planes clients secure their clouds, One five-node cluster is provisioned for each scenario.
[9:18] I And cluster reuse is not enabled. We add a double dose of super massive provisioning engines backed by Knative, scaling to zero. These are not centralized in a unified engine. This sits on the back of a Pub/Sub queue and reentrant state machine, which tries to ensure that even half provisioned clusters are forced into life and reinvigorated when half deployed, which just means distributed systems, as we know, are hard.
[9:51] Then, the unique credentials are distributed to each player for each scenario cluster pairing, and the games begin. Our trusty Taskmasters are on hand in person and on Slack, to hand out hints, offer suggestions and guide people through the path of the challenges. All this adds up. We spin up the clusters as needed and we hit the lofty heights of two and a half thousand nodes spun up per day with 80 to 100 participants.
[10:23] We hope to beat this record. on Thursday, What has gone wrong? Would you really believe us if we said nothing? There was that. one time And AWS internal-- Ubuntu Mirror went down. As you can imagine, nothing completed provisioning. simulator was just Host, dead in the water. Health checks are decidedly unhealthy. to showcase that. Typical distributed system problems when EC2 wouldn't provision VMs, a very red dashboard, a rising sense of panic, came from it that required us reprovisioning into a different region post-haste.
[11:05] I'M NOT SURE. That time somebody figured out how to bypass the initial SH tunnel sandboxing, which was also interesting. securely provisioning and secure infrastructure is hard. We don't want it too insecure. When the Cluster Admin RBACs the RBAC credentials disappeared, gone. found their way into a bastion node when the test suite only cover the happy paths also. And through it all, we seem to have hit our goal We're thankful to everybody who has played the game, given us feedback and given us the opportunity to iterate on this wonderful, thoroughly enjoyable platform that we love to play.
[11:50] CTFs can often be big. Can't feel daunting? So we hope that you focus on the learning experience. Walk through the scenarios. and If you feel like smashing machines, Channel that, please. And our clusters and scenarios today are of course, open source running on this cloud native breach simulation. Underneath the Kubernetes simulator project, there is a hosted version and Control Plane are running a private beta if you would like to be involved.
[12:28] As you can see, Nothing is perfect, there's an out of bounds exception on the end of the slide, if you would like to pop some shells with us please come and play tomorrow. Thank you.
Vidleafワークベンチで開く
トランスクリプトを検索し、行を選択し、タイムスタンプ付きの引用をコピーし、翻訳します。
帰属
「基調講演:ハッキングで学ぶ:2,500ノードのKubernetes CTFを運営する方法 - Andrew Martin & Andrés Vega」by CNCF [Cloud Native Computing Foundation](https://www.youtube.com/@cncf)、CC BY 3.0(https://creativecommons.org/licenses/by/3.0/)の下でライセンスされています。ソース動画:https://www.youtube.com/watch?v=DCAumwUKlF0。このページは、段落区切りとタイムスタンプを追加した動画のテキスト文字起こしです。作成者はVidleafと提携しておらず、Vidleafを推奨していません。VidleafはAIによる句読点とAI生成の要約を追加しました。元の文言はこのページで引き続き利用可能です。
あなたは制作者または権利者ですか?訂正や削除をリクエストする:copyright@vidleaf.app(これらのページについてを参照)。
最終更新