ブログ | CTO オフィス

ゼロトラスト: 侵害を想定する 3 つの主要な戦略コンポーネント

ケン・アローラ サムネイル
ケン・アローラ
2023年4月13日公開

ゼロ トラストは、最近のサイバー セキュリティ界では人気の話題ですが、ゼロ トラストの考え方の重要な部分として侵害を想定するという概念を持ち出すと、いまだに奇妙な顔をされます。 この反応の理由は、2 つの懸念のいずれかから生じていると考えられます。 まず、セキュリティ専門家の中には、これを非常に悲観的な世界観と解釈する人もいるかもしれません。つまり、「侵害を想定する」という考え方は、「つまり、私たちは皆破滅すると言っているわけですね」ということになります。 じゃあ、手を上げて、もう挑戦するのをやめましょう。 」 他の人、おそらくもっとプライドの高い人は、「まあ、あなたのものは侵入されるかもしれないが、私のセキュリティは堅固で、悪者が私の防御を突破することはあり得ない」という態度をとるかもしれません。

私の意図は、これらの極端などちらでもなく、むしろデジタル世界での活動の現実を内面化すること、つまり、侵害は起こるものであり、したがってあらゆるセキュリティ システムの設計に考慮に入れることができるし、考慮に入れるべきだということを強調することです。 これは目新しい概念ではなく、私たちはこれを受け入れてきた何世代にもわたる職人や貿易労働者から得られた知恵からインスピレーションを得るべきです。

配管工、電気技師、および現実世界で活動するその他の専門家は、長い間、「違反を想定する」ことの本質を内面化してきました。 彼らは、実環境において堅牢でなければならないソリューションを作成するという任務を負っているため、仕事の範囲内で障害が発生するという単純な事実を暗黙のうちに受け入れ、取り入れています。 彼らはまた、失敗は彼らのスキルを非難するものでも、彼らのサービスを断念する理由でもないことを理解しています。 むしろ、自分の創造物が最終的には失敗することを理解し、過去の失敗から学んだ教訓を取り入れ、将来の失敗の可能性を予測できるのは、最も熟練した人だけです。 

私は最近、そのような故障に遭遇しました。私の家の下水管が排水経路の途中で詰まってしまったのです。 この家は築30年以上なので、故障や侵入があっても驚くには値しません。 結局のところ、長期間にわたってあらゆるシステムが侵害される可能性は 100% に近づきます。  

それがポイントです。 時間の経過とともに障害が発生することを予測することは、配管システムの場合と同様に、アプリケーション セキュリティ ソリューションの場合にも当てはまります。 さらに、「私の配管システムは決して故障しない」と想定することは、「私のサイバー防御は決して破られない」と想定するのと同じくらい、家庭のメンテナンス戦略としては適切ではありません。 

したがって、配管工、そしてサイバーセキュリティの専門家の考え方には、最終的に発生する障害、つまり侵害にどのように対処するかが含まれる必要があります。

侵害を想定する 3 つの主要な戦略コンポーネント

物理的またはサイバー的なシステムの障害に対処するための効果的な戦略には、通常、3 つの要素があります。

  1. 可視性。 障害をできるだけ早く検出できるように十分な可視性を確保します。 浴室の排水管の配管漏れを放置すると、床下の腐食やカビの原因となり、それに気づくまでに数か月から数年かかる場合があります。 あるいは、床下の水受け皿から水があふれて乾式壁が水浸しになった後、2階の浴室の下の空間の天井から水が滴り落ちていることに気づくかもしれません。 どちらのシナリオでも、問題が最初に検出されるのは、最初の障害が発生してからしばらく経ち、さらに二次的な損害が発生した後になります。

    障害/侵害を想定する第一の原則は、障害発生後できるだけ早く侵害の可能性を明確に示す指標を提供することであり、理想的には、起こりうる障害について積極的な通知を提供することです。 たとえば、排水に排水ポンプを使用する地下室には通常、水位が事前に設定されたしきい値を超えると警報を発するセンサーが設置されています。 その他の状況では、すべての可能性のある障害モードに対してプロアクティブな警告が実行可能ではないため、定期的なメンテナンス チェック (たとえば、半年ごとの給湯器の検査) が実行されます。

    サイバーセキュリティにおいて、これは、アプリケーション セキュリティ アーキテクチャに、考えられるあらゆる侵害をタイムリーに可視化する最も重要な障害モードを考慮した、検討およびテスト済みのテレメトリ戦略を含める必要があることを意味します。 実際には、テレメトリは AISecOps プラクティスを使用して分析および通知ツールにストリーミングされ、後で使用するために同時にデータ ストアに保存される必要があります。 有効性を高め、人間にコンテキストを提供し、タイムリーな対応を確実にするために、AI とアラート ツールを使用する必要があります。 永続化されたデータは、今後のさらなる堅牢性の向上に役立つように学習するために使用する必要があります。

     

  2. 堅牢性。 ソリューションには、障害を回避したり、障害の継続時間を短縮する手段が含まれている必要があります。 このコンテキストにおける堅牢性の一般的なパターンは、(a) 段階的な劣化または (b) 冗長性であり、劣化したコンポーネントでの動作の実行可能性に応じて選択されます。 給湯器などの一部のシステムでは、両方を備えている場合があります。 たとえば、私の給湯器は、常にお湯が使えるように、ポンプで供給される循環システムを使用しています。 しかし、ポンプが故障した場合、お湯は出ますが、もう少し待つ必要があります。 一方、加熱コイルセンサーの故障(加熱要素が停止しない)は壊滅的な故障につながる可能性があるため、圧力逃し弁の形で冗長性が使用されます。

    堅牢性は複数のシステム スコープで考慮する必要があります。 たとえば、排水管のみを対象に、商用グレードのソリューションに取り組む配管工は、冗長性のある排水管を 1 組設置する可能性があり、これにより、どちらかの管が故障しても排水管が使用できなくなることはありません。 一方、システム レベルの抽象化を操作する建築家は、近くに 2 つ目のシンクやトイレを追加するなど、システム レベルで冗長性を設計できます。これにより、詰まった排水管だけでなく、より多くの障害モードに対処できるという利点もあります。

    確かに、多くのセキュリティ デバイスがアクティブ/スタンバイ (完全な冗長性) モードまたはアクティブ/アクティブ (段階的な縮退) モードのいずれかで導入されているため、冗長性はサイバー セキュリティでは一般的な方法です。 しかし、サイバーセキュリティの世界は物理的な世界とは少し異なります。 まず、サイバーセキュリティの世界には意図と知性を持ったアクティブな攻撃者が存在するため、障害が自然原因で発生することはほとんどないということです。 2 つ目のより重要な違いは規模の違いです。 ソフトウェアは物理的なものではなく仮想的なものであるため、「一度書いて何度も展開する」というパラダイムに従います。 これはスケーリングにとって素晴らしい特性ですが、コア ソフトウェア コンポーネントのコード脆弱性がシステム内のそのコードのすべてのインスタンスに影響を及ぼす可能性が高いことも意味します。 そのため、堅牢性のためのサイバーセキュリティ ソリューションは、単一の障害点、および単一の要素クラスを回避することにも基づいており、この戦略は「多層防御」と呼ばれることもあります。 多要素認証は、このアイデアを実践した素晴らしい例です。 各要素の障害モード (侵害の手段) は異なり、いずれかの要素のみが侵害されてもシステム全体が侵害されることはありません。

     

  3. 封じ込め。 障害の影響範囲(爆発範囲)を制限することが重要です。 障害や違反が発生することを受け入れるのと同様に、単一障害点を完全に回避したり、各機能要件に冗長性を組み込んだりすることはできないことも受け入れる必要があります。 したがって、アーキテクトは、努力と結果の両方を 2 つの重要な良さの指標として使用して、障害の影響を最小限に抑える方法も考慮する必要があります。 たとえば、配管工は、修復時間を短縮するために、排水管に戦略的に配置された清掃ポートを追加することがあります。 より壊滅的な故障の場合、請負業者は、ラインの漏れを修理しやすくし、修復の労力を軽減するために、亜鉛メッキ排水ラインではなく PVC を選択する場合があります。 家庭の配管工事では、(検出された)故障の影響を制限し、洗面台や床への二次的な損傷を防ぐために遮断弁を設置するのが一般的です。

    サイバーセキュリティの世界では、類似の概念として分離性、保守性、モジュール性があります。 分離とは、付随的な損害を最小限に抑え、出血を止めることです。マイクロセグメンテーションなどのテクノロジーを使用して、回路ブレーカーとして機能できるインフラストラクチャを用意することが推奨されます。 保守性とは、可能であれば、侵害された状態から侵害されていない状態へ、迅速かつ労力のかからないパスを可能にすることを意味します。たとえば、メモリ オーバーフロー攻撃によって侵害されたワークロードを再起動することは、効果的な (ただし不完全な) 緩和方法になる可能性があります。 モジュール化とは、同等の機能コンポーネントを簡単に交換できるシステムを構築する手法であり、メンテナンスが不可能または不十分な場合でも、修復に必要な労力を最小限に抑えることができます。

これらは、侵害に対処する際に私が学んだベストプラクティスの一部ですが、他にもベストプラクティスがないとは決して主張しません。 さらに重要なのは、アプリケーションの保護を担当する開発者とセキュリティ専門家が、脱獄は必ず起こり、侵害は必ず起こることを理解していることです。 そう考えると、失敗の頻度を最小限に抑えるために何をするかと同じくらい、失敗にどう対処し、計画するかも重要であり、慎重に検討する価値があります。  

最終的に、私たちは、違反がどれほど頻繁に発生するかだけでなく、違反が必然的に発生したときにそれらの違反にどれほど適切に対応するかによっても評価されることになります。