CNDO 2021、KubernetesのセキュリティをHPEのアーキテクトが解説
CloudNative Days ONLINE 2021から、今回はコンテナとKubernetesのセキュリティに関する初歩の解説を実施したセッションを紹介する。セッションを担当したのは日本ヒューレット・パッカード株式会社のアーキテクトである磯貝哲也氏だ。
セキュリティは商用、オープンソースを含めて多くのソリューションが開発されている領域であり、CNCFのランドスケープでも多くのソフトウェアがリストアップされている。
CNCFのランドスケープにリストアップされているセキュリティ関連ソフトウェア:CNCF Cloud Native Interactive Landscape
磯貝氏は「ここからはじめるKubernetes Security」と題して、セキュリティの基礎的な考え方からコンテナにおけるセキュリティの考え方、Kubernetesのクラスターに対するセキュリティの方法、各種ツールの紹介などを行った。
領域としては非常に広いセキュリティをすべてカバーするのではなく、まずは原則として防御の基礎を理解して欲しいとして挙げたのがこのスライドだ。
ここでは複数の防御層を用意すること、ユーザー、プロセスなどに必要最小限の権限を与えること、そして攻撃される対象やポイントを削減することの3つが重要であると説明した。最後の「攻撃対象領域の削減」は「Reduce Blast Radius=爆発半径を削減する」という言い方で解説されることもあり、たとえ攻撃をされたとしても被害を最小限に抑えるという意味合いも含まれていると考えるべきだろう。
この例では、攻撃者がシステムに侵入し、最終的に特権を獲得することでデータの盗難、システムの破壊などが行われることを解説した。ここでは徐々に侵入を企て、最終的にシステムを自由に操る特権を奪うやり方を説明し、攻撃者が洗練された手法を使っているということを紹介した。
このスライドではKubernetesの公式ドキュメントから引用して、ソースコード、コンテナ、コンテナを実行するサーバー群であるクラスター、そしてクラウドインフラストラクチャーの4つのレイヤーにおいて、セキュリティを意識する必要があることを解説した。
この図の引用元である公式ドキュメントは以下から参照されたい。
公式ドキュメント:Overview of Cloud Native Security
続いては、アメリカの非営利団体MITREが公開しているマトリックスを使って、攻撃者がシステムのどの部分にどのような攻撃を仕掛けてくるのか? を理解することが必要だと説明した。このマトリックスについては、NTTデータ先端技術株式会社がコラムとして詳しく解説しているので、そちらも参照して欲しい。
参照:セキュリティコラム「MITRE ATT&CK その1 ~概要~」
次にコンテナやアプリケーションが実行されるレイヤーを比較しながら、ハードウェア、OS、システムコールインターフェース、ライブラリーなどとともに、いかにコンテナが分離されているのかを解説した。
通常のアプリケーションにおいてPermissionが果たしている役割を、コンテナにおいてはランタイムのレイヤーが果たしていることを説明した。その上でnamespace、capability、cgroupについて簡単に説明を行った。
ここからはコンテナをオーケストレーションするKubernetesのセキュリティについての解説に移った。
Kubernetesは複数のノード(サーバー)によって構成されたクラスターが基本構成となるが、ノードとコントロールプレーンとなるコンポーネント(API Server、Kubelet、etcdなど)にどのようなリスクが有り得るのかを、代表的な攻撃例を示しながら解説した。
そのためにPodレベルのセキュリティ、ノードレベルのセキュリティ設定がそれぞれ必要であるとして、ここではホストOSの強化や、コンテナ実行を制御するKubeletの設定としてAnonymous-authをFalseに設定する例などを示して解説を行った。
このスライドで最初に挙げられているポイントが「Kubernetesのバージョンを常に最新にアップデートする」という内容であるのは重要だ。活発に開発が行われるオープンソースソフトウェアの場合、「リリースが多過ぎて実装が追いつかない」「アップデートの工数が取れない」「アップデート後の確認の手順が決まっていない」などの理由で、同じバージョンを使い続けるいわゆる塩漬け状態のプロジェクトを持っているIT部門には耳が痛い内容だろう。またKubernetesのデータストアであるetcdの暗号化なども要チェックポイントだと説明した。
このスライドでは、Role Base Access Control(RBAC)について説明を行った。RBACの確認方法、ユーザーごとにアクセス権を確認する方法などを解説した上で、Admission Controllerについても簡単に解説した。
その後、Kubernetesのセキュリティを実装するツールとしてAqua Securityが開発するKube-BenchとTRIVVY、Sysdigが開発するFALCO、2021年2月にCNCFのグラデュエーションプロジェクトとなったOpen Policy Agentをそれぞれ解説した。
最後にKubernetesのセキュリティに関する知識と実践を深めるために、Certified Kubernetes Security Specialist(CKS)試験についても解説した。ここでは磯貝氏自身が試験を受けた経験を元に説明されているが、より詳細は磯貝氏のブログを参照されたい。
参考:Certified Kubernetes Security Specialist (CKS) 試験のFeedback
Kubernetesとコンテナのセキュリティを網羅的に解説するというよりも、取り掛かりとしてのトピックを紹介したセッションであり、エントリーポイントに適した内容だろう。冒頭で触れたように、クラウドネイティブなセキュリティについては多くのソリューションが存在し、CNCFのプロジェクトとしてもOPA以外にサンドボックスプロジェクトであるKyvernoやCuriefence、InGRAINdなども存在しており、目が離せない境域と言える。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Oracle Cloud Hangout Cafe Season5 #3「Kubernetes のセキュリティ」(2022年3月9日開催)
- LFがエントリーレベルの認定試験「認定Kubernetesクラウドネイティブアソシエイト(KCNA-JP)」日本語版を提供開始
- KubeCon EU 2021からセキュアでコンパクトなバイナリーフォーマットWASMのセッションを紹介
- KubernetesネイティブなポリシーエンジンKyverno
- CNDT2020シリーズ:CAのインフラエンジニアが解説するKubernetesネイティブなCI/CD
- Linux Foundation、日本語に対応したKubernetersおよびクラウドセキュリティに関する認定試験を提供開始
- Oracle Cloud Hangout Cafe Season 4 #2「Kubernetesのネットワーク」(2021年5月12日開催)
- CloudNative Days Tokyo 2023から、クラウドネイティブセキュリティの脅威や論点を紹介
- CNDO 2021、Kubernetesとコンテナの基本的構造をNTTの徳永航平氏が解説
- CNDO 2021、サイバーエージェントのテックリードがコンテナランタイムの最新情報を解説