ブログ

機械学習でセキュリティルールをリアルタイムに変更

ロリ・マクヴィッティ サムネイル
ロリ・マクヴィッティ
2018年11月26日公開

可視性、あるいはその欠如は、今日のすべての運用および開発領域で共通の不満となっています。 開発者は、オンプレミスかパブリック クラウドかを問わず、アプリが「本番環境」の地下にデプロイされると、そのパフォーマンスが可視化されないことを嘆いています。 インフラストラクチャからネットワーク、セキュリティに至るまで、あらゆる種類の運用において、アプリケーション トラフィックの隙間を覗き込み、そのフローから攻撃の兆候を察知することができないことが問題となっています。

セキュリティで使用される可視性は、論理的にアプリケーションの前にあるネットワーク サービスとアプリケーション サービスの展開によって必然的に実現されます。 この慣行はさまざまな理由で発生していますが、実際のところ、アプリケーションにはさまざまな形式の攻撃を認識するために必要なコンテキストが欠けています。 これは、アプリケーション スタックによって、開発者が利用できる情報が接続ごとに制限されるためです。 これはそれ自体がセキュリティ対策であり、分離によって、ある接続上の悪意のあるユーザーが別の接続上の善意のあるユーザーにアクセスできなくなることを防ぎます。

しかし、この制限により、アプリケーションとそのプラットフォームがコンテキスト内で接続とアプリケーション トラフィックを理解する能力が制限されます。 その責任を上流(アプリケーションの前)に移動することで、ネットワークおよびアプリケーション サービスは、そのアプリケーションと交換されるすべての接続とペイロードのコンテキストで各接続とそのペイロードを評価できるようになります。

アプリケーション層 DoS 攻撃の増大する脅威に対処する方法を考えるときに、これを認識することが重要です。 

こうしたアプリケーション層攻撃の量と頻度が増加していることは不安を覚えます。 アプリケーション層 DoS 攻撃の 43% がシグネチャやレピュテーションに基づく検出を回避できることを知ると、さらに悲惨なことになります。 悪意のある行為者が特定のアプリケーションをカスタマイズしてターゲットにする能力が急速に進化したため、静的シグネチャはすぐに時代遅れになります。

静的署名はインフルエンザワクチンのようなものです。 インフルエンザワクチンは、ウイルスに関する過去の経験に基づいて、特定のインフルエンザ株から身を守るために開発されています。 本質的には、特定のウイルスを識別する生物学的シグネチャです。 同じウイルスの新しい株を特定することができず、私たちは再びインフルエンザに罹患する危険にさらされることになる。

悪意のある行為者は、検出や排除を回避するために、インフルエンザウイルスのように適応し、進化することに長けています。 この課題に対処するには、特定のシグネチャではなく、行動に基づいて悪意のある行為者を識別できる必要があります。 そのためには、可視性とそれがもたらすコンテキストが必要です。 

L7 行動 DoS 保護

本質的に、L7 動作型 DoS 保護は、実際の構成ではなく動作に基づいて原因となるウイルスを検出できるインフルエンザワクチンです。 このような攻撃は単なるボリューム攻撃ではないため、この機能はレイヤー 7 (アプリケーション) で特に重要です。 一部のアプリケーションは、接続を固定し、正当なユーザーにサービスを提供するアプリケーションの能力を消耗させ、その結果、サービスを拒否することだけを目的として設計されています。 他にも、アプリケーションがクラッシュして停止を引き起こすようなリクエストを作成しようとする、より巧妙なものもあります。

さまざまな種類の L7 DoS 攻撃を検出するには、個々のリクエストを正常と見なされるものと比較して評価する機能が必要です。 しかし、単に「通常の」動作を定義することは、署名を作成することに似ています。 ハイパースケールの API ベースのアプリケーションでは普通のことでも、単一のビジネス ユニットまたは部門で使用される Web ベースのアプリケーションでは普通ではありません。

したがって、「正常」を判断することが最初のステップです。 動作型 DoS は、システムを通過するすべてのパケットから特定の情報ビットを収集することによってこれを実現します。 これらのビットは、ネットワーク、トランスポート、およびアプリケーション データから取得されます。 ベースラインは、通常のヘッダー属性やサイズ、サーバーの通常の負荷、通常の応答時間や待ち時間などから確立されます。 システムは統計モデルを使用して、毎秒数千の観測値からそれらの値の正常しきい値を計算します。

アプリケーションのパフォーマンスが低下したり、負荷が重くなったりしてストレスの兆候が見られると、システムは「攻撃モード」に移行します。 このモードでは、いくつかのことが起こります: 

  • 異常検出に基づいて動的シグネチャが構築されている間に、レート制限が開始されます。
  • 設定に応じて、新しいカスタム署名は承認を待つか、自動的に軽減策をアクティブ化できます。
  • トラフィックが新しいシグネチャに一致したときに攻撃緩和を実行する方法をさらにカスタマイズできます。
    • 保守的 – 既知の悪質なものだけをブロックする
    • 標準 – サーバーの負荷が高すぎる場合を除き、既知の不正行為のみをブロックし、攻撃中はすべてのトラフィックをレート制限します。
    • アグレッシブ – サーバーの健全性を確保するために、必要に応じてすべてのトラフィックを自動的にレート制限します。
  • 動的シグネチャが攻撃元を特定するのに十分な時間実行されると、緩和策はレート制限からレイヤー 3 ベースのブロックに移行します。

このプロセスには、偽陰性を防ぐために、「良好なフロー」との特性の重複が 5% 未満であることを確認することが含まれます。 アプリケーションの健全性が正常に戻ると、システムは安心できます。

L7 動作型 DoS の利点は、何が正常であるかを常に学習し、何が正常でないかを識別することに重点を置いていることです。 これにより、静的なシグネチャベースのシステムでは更新されるまで検出されない、新しい L7 攻撃や以前の攻撃から進化した L7 攻撃を検出できるようになります。

非常に焦点を絞った機械学習モデルのおかげで、行動分析が可能になります。 これらのモデルにより、アプリケーション保護をリアルタイムで進化させることが可能になり、セキュリティ分野が今日切実に必要としている俊敏性が提供されます。 悪意のある行為者は、検出を回避するために攻撃を絶えず調整および変更しています。 アプリケーションをより適切に保護するには、セキュリティ サービスは前提を変更し、アプリケーションが配置されている環境のコンテキストで動作する必要があります。 セキュリティ専門家に、企業のポートフォリオ内のアプリケーションごとにしきい値を作成するように要求するのは、まったく合理的ではありません。

新しいアプリケーションや環境の追加によりセキュリティと運用の負荷が増大するにつれて、可能な限りその負担を人からテクノロジーに移すことが重要になります。 高度な WAF の一部である動作 DoSは、マシンを攻撃者ではなくユーザーの役に立つように動作させる方法の 1 つです。