連載
» 2022年02月03日 05時00分 公開

Kubernetesのセキュリティ対策を整理する「脅威モデリング」のすすめ特集:クラウドネイティブのセキュリティ対策とDevSecOpsの勘所(3)

クラウドへの移行が進み、Kubernetesなどコンテナ技術を活用するシーンが増えた昨今、管理者を悩ませるのはそのセキュリティ対策だ。GMOペパボのセキュリティエンジニアによる「Cloud Native Days Tokyo 2021」の講演から、脅威モデリングの基本やKubernetesクラスタを題材にした具体的なモデリング方法などを解説する。

[谷崎朋子,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 クラウドへの移行が進み、Kubernetesなどコンテナ技術を活用するシーンが増えた昨今、管理者を悩ませるのはそのセキュリティ対策だ。従来の境界防御と勝手が違うので対策が分かりにくい、守るべき箇所が見えない、適切な設定が分からないといった悩みも聞かれる。

 そうした課題に、GMOペパボのセキュリティエンジニア、森田浩平氏が「Cloud Native Days Tokyo 2021」の講演「脅威モデリングで考える Kubernetes セキュリティ」で提案するのは、脅威モデリング手法だ。本稿では、脅威モデリングの基本やKubernetesクラスタを題材にした具体的なモデリング方法などを解説する。

リスクの洗い出しと対策を導き出す脅威モデリング

 新しいアーキテクチャには、その仕組みを前提とした攻撃手法が存在し、対策もそれに応じた新しいものが存在する。コンテナオーケストレーターのKubernetesもそうだ。しかも、コンテナやコンテナイメージ、クラスタ上で実行されるソフトウェア、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインなど、コンテナアーキテクチャの構成要素それぞれにリスクが存在し、見逃すことでアーキテクチャ全体の破綻を招く可能性もある。

 森田氏はこう指摘する。「大切なことは、どこを守るべきなのか、何から何を守るのかを整理し、対策を講じることだ。しかしKubernetesの場合、活用が進むほどにサービスや要素が複数絡み合い、複雑化する。そうなると、どこを守るべきかというシンプルな問いにも複数の答えが浮上し、判断も難しくなる。『Kubernetesやコンテナは難しい』と感じるのは、こうした背景もあるのではないだろうか」

 この“難しさ”をほどくにはどうすればよいのだろうか。

 「防御の基本は、システムがどのように攻撃されるかを理解すること。そのためには、システムのアーキテクチャやアーキテクチャ上で動くコンポーネントが何かを理解し、コンポーネント同士の通信方法や経路、重要データへのアクセス方法などを把握することが必要不可欠だ。全体を把握する方法はさまざまだが、リスクの特定も含めて整理するなら、脅威モデリングがお勧めだ」(森田氏)

 脅威モデリングは、システムの潜在的な脅威を予測するためのモデルを作成するプロセスのこと。システムを抽象化して全体像を俯瞰(ふかん)し、リスク要因の発見につなげるのが主な役割だ。

 脅威モデリングを実践するためのフレームワークには、有名なところで「STRIDE」「PASTA」「Trike」「RRA」などが挙げられる。STRIDEはMicrosoftが提唱するフレームワークで、システムの脅威をSpoofing(なりすまし)、Tampering(データ改ざん)、Repudiation(否認)、Information Disclosure(情報漏えい)、Denial of Service(サービス拒否)、Elevation of privilege(特権昇格)の6つに分類し、それぞれの頭文字を取ったものだ。脅威を抽象化、整理してシステムに該当箇所があるかどうかを探るのに役立つという。

脅威モデリングの流れ

 脅威モデリングは大まかに、フレームワークの決定、インフラなど保護対象の構成図の作成、脅威の特定、脅威の要因となる攻撃手法の列挙、対策優先度の決定を行う。

 まずは、保護対象のシステムやインフラの構成図を作成する。これは「DFD(Data Flow Diagram)」といい、対象となるコンポーネントを列挙してデータの流れやデータの扱われ方などを記載、整理する作業だ。

 「DFDを書くことでデータの流れが俯瞰でき、どのような脅威が発生し得るかを考える一助となる。作成するときは、システムのドメイン知識のある人に聞き取りしながらまとめると、より良いDFDが作成できる」(森田氏)

 DFDを図示する際の主な構成要素には、プロセス(WebサービスやOSプロセスなどデータの入出力)、データストア(永続的/一時的な記憶領域)、外部エンティティ(ユーザーや外部サービスなどの直接制御できないもの)、データフロー(プロセス、データストア、外部エンティティ間のデータの流れ)、信頼境界(ネットワークやホストなど制御が必要な境界)がある。特に信頼境界線を越えることはすなわち攻撃にさらされることを意味し、「アタックサーフェス(攻撃対象範囲)」となる。

KubernetesのDFD例(森田氏の講演資料から引用)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。