■PaloAltoNetworks社 CNシリーズとは?
Kubernetes環境のクラスタ内(pod内及びPod間)のコンテナで操作するサーバ群をセグメンテーション、驚異の検出から防御までゼロトラスト対応が可能な次世代FWです。いわゆるKubernetes内のNouth-SouthおよびEast-WestトラヒックにPaloaltoNetworks社が持つ次世代FWの機能をInlineで適用可能にし、次世代FWが持つ機能をフルで利用して脅威の検出、防御を可能にします。
■North-South(クライアントとサーバ間のトラヒック。以下N-S)およびEast-West(サーバ間トラヒック。以下E-W)は内部。セキュリティ対応は必要?
昨今は内部感染後もしくは外部で感染したPCやデバイスが内部に持ち込まれ、内部ネットワークに自律的に広がる脅威が増えてきております。サーバーや端末をHopして移動して場合によっては情報漏洩、サーバダウンによりサービスの停止に追い込まれる事例も非常に多くなっています。そのためサーバ環境の内部対策は利益を生み出す事業の継続(BCP)の観点、システムの可用性の向上といった点からも最も重要な対応の一つとされています。特に従来のポートベースのアクセスリストでは防ぎきれない脆弱性をついた脅威が増加しており、セキュリティ面での増強が必要になってきています。
■サーバ環境におけるN-S、E-Wトラヒックのゼロトラスト対応
筆者は外資系のメーカに在籍して、海外のセキュリティの専門家、データセンタのアーキテクトと接してきましたが、日本は残念ながら、世界的に見て脅威に対して鈍感な方が比較的多い国民かもしれない。。と個人的に思っています。(もちろんそうではない方もたくさんいらっしゃいます。)特にデータセンタ、サーバ環境では外部と接する部分にWAFを設置したら十分、内部対策は過剰という考え方をお持ちの方、内部感染?そんなこと起きるはずもないという正常性バイアスをお持ちのアプリケーション、サーバ担当者たちとも幾度もなく出会ってきました。残念ながら、今の世界、そのような認識ではもはや時代遅れどころか平和ボケというしかないと感じています。
実際、過去、ランサムウェア Wannacryふくめラテラルムーブメント(横移動)の結果、サーバがダウンし業務停止に追い込まれたり、情報漏洩しているにもかかわらず、内部対策をとってなかったっため、どのように内部から漏れたのかすらわからず右往左往する企業様を目の当たりにしてきました。
ではどうすればよいか。今はゼロトラストという言葉が浸透してきています。ゼロトラストでは攻撃される面を減らし、役割に応じてセグメンテーションを行い、境界部分(マイクロペリメータ)でしっかり脅威を検出防御まで行う必要があります。サーバ環境においてN-S、E-WトラヒックにInlineで次世代FWを設置し脅威を検出、防御を行うことでゼロトラスト対応を実現することが可能になります。もちろん、このゼロトラスト対応はオンプレミス、クラウド両方でつまりネイティブクラウドで実現することが必要になります。
■Kubernetes、コンテナ環境におけるセキュリティ対応の課題
Kubernetes環境、コンテナ環境におけるセキュリティ対応は通常のサーバ環境に加えていくつかの対応が必要です。Imageの脆弱性の管理、ランニングコンテナの脆弱性検出、コンテナサーバ間のアクセス制御と驚異の検出と防御。CI/CD Toolとの連携などImageレポジトリのチェック・・・。(この辺りの詳細は別の機会で記事に起こします)今回はN-S、E-Wトラヒックのセグメンテーションという点にフォーカスします。
コンテナ環境では各コンテナ間やサーバ、クライアントと通信を行うことができます。これは今までのサーバ、クライアントと同様でコンテナ間のネットワークが構成されます。ただし、コンテナを収容する外部もしくはHost間の通信は一旦、コンテナを構成するネットワークでBridgeもしくはNAT(IP Masquerade)を介します。このためKubetenesではCNI Pluginが提供され、異なるPoD間のネットワーク構成をNATなしで組めて、IP空間を一元的に利用する環境を構築することが可能になっています。要はKubernetesでは自由にコンテナ間通信できるネットワーキングがKubernetesの世界で構成可能になっているわけです。
自由に通信できるようになるとゼロトラストという点では具合が悪いので、通信の可視化、驚異の検出、防御ということを行う必要がありますが、残念ながら、従来型のイーサーネットの足回りしかないFWや次世代FWがこのコンテナで組まれたKubernetesの世界のネットワークに介入することが難しくなってしまいます。KubernetesのCNI Pluginを用いてKubernetesの外部との接点を作成し、外部に組み込まれたFWもしくは次世代FWのPoolにトラヒックをRedirectして。。という設計も可能かもしれませんが、CNI Pluginと外部のFabricとの連携などの複雑性と外部ファブリックの費用面の問題やスケーラビリティに課題が出ます。またようやく費用と汗をかいてそれで構成できてもN-S対応は可能でもE-Wの対応は難しいという課題がありました。
■ということで登場した製品
CNシリーズはKubernetesネットワーク上で動作が可能です。それ自体コンテナイメージで提供され、次世代FWを管理する管理部分とデータ処理をするモジュールに分けられ、ネットワーク上に配置されクラスタリングをとります。PaloAltoNetworks社が提供するCNI PluginによってKubetenesのPoDのN-S、E-Wトラヒックがデータ処理を行うモジュールにRedirectされ、N-S及び、E-WのトラヒックをInlineで検査可能にします。次世代FWが持つ、可視化、驚異の検出、防御という機能を享受することになります。これにより、Kubernetes内のコンテナのセグメンテーションから防御までゼロトラストを実現しています。
■DevOpsとセキュリティ対応のシフトレフト
アプリケーション開発において、DevOps部門にて開発環境およびプロダクション環境とのCI/CD PipeLineという言葉の元進められ、コンテナ化も進みつつあると思います。セキュリティ対応も同様で開発時点から組み込んで、開発テストリリースするサイクルに回していく必要があります。Yamlなどで表現されたコードにて次世代FWをKubernetes環境に組み込むことによりCI/CDのプロセスの中の早い段階から、セキュリティの設計を組み込むことが可能になります。CNシリーズではHelm と Terraformのテンプレートもコミュニティサポートで提供されているそうです。
■まとめ
この記事では、ネイティブクラウド環境のゼロトラスト対応、DecOpsのセキュリティ環境を実現するという観点でPaloAltoNetworks社のCNシリーズを紹介しました。個人的にはなかなかいままで痒い所に手が届いていなかった画期的な領域に踏み込まれた製品だと思いますし、DevOpsからDevSecOpsにシフトレフトするひとつのきっかけになっていく、ゲームチェンジな匂いがするわけであります。(PaloAltoNetworks社の回し者ではありませんので、あしからず・・・)
■参考文献
https://docs.paloaltonetworks.com/cn-series
2020年8月6日
草川秀人
hkusakaw@roccaon.com