web-dev-qa-db-ja.com

異常を検出するための外部決定に基づくWebアプリケーションファイアウォール

私はWAFに関する理論的な知識を持っていますが、市場のツールについては知りません。異常なトラフィックをソートするときに、外部リソースからの応答(trueまたはfalse)を通じて意思決定を行うWAFはあるのでしょうか。

私のアイデアは、たとえばこの決定を行うために基づいて機械学習を作成することでした。WAFはそれを参照するだけです。

ありがとう!

これは人気のある意見ではないかもしれません(キューコメント)私はセキュリティ業界で使用されている機械学習のファンではありません

「この問題を解決する方法がわからない。わかった!MLを投げてみよう!!」のように思えるとき、私はいつも懐疑的です。もちろん、セキュリティ内には、マルウェアや金融詐欺の検出など、MLが大丈夫と思われるニッチがありますが、それでも、慎重に使用されています。

MLは統計分野の一部であることを忘れないでください。平均的なケースの振る舞いを検出する科学です。 MLでは、平均的な犬と平均的な猫を区別することを心配し、5%が間違っていることを心配しません。一方、セキュリティは最悪の場合の敵対行動を検出する分野です。セキュリティ上、攻撃者がリバースエンジニアリングして最悪の場合の入力を提供できる場合でも、システムは強力であり続ける必要があります。

次に、以下の論文を検討してください:Goodfellow、Shlens、およびSzegedyによる " 説明と悪用の悪用例 ":

ニューラルネットワークを含むいくつかの機械学習モデルは、対立する例を一貫して誤って分類します。入力は、データセットの例に小さいが意図的に最悪の場合の摂動を適用することによって形成され、摂動された入力は、高い信頼度で誤った答えを出力するモデルになります。

これがその論文の中心的な図です。

worst-case perturbation of a panda image

画像分類子(おそらくMLで最も研究されているサブフィールド)を「ハッキング」するのがそれほど簡単な場合、敵のハッカーに対してより優れたパフォーマンスを発揮するMLベースのWAFフィルターを構築できると思われる理由は何でしょうか。


TL; DR:これは、実際にの人によるものでない限り、MLがセキュリティに関与すべきではないという私の怒りです。本当に彼らが何をしているか知っている。

2
Mike Ounsworth

あなたのアイデアに関連するすべての技術的な詳細が記載されたこのホワイトペーパーをお勧めします: https://wallarm.com/files/resources/Wallarm%20AI%20Engine.pdf

技術的には、アプリケーション固有の検出を正しい方法で適用するには、3つのタスクを解決する必要があります。

  1. /api/user/createなどのすべてのWebスクリプトとAPI呼び出しを見つけるためのアプリケーションエンドポイントプロファイリング(クラスタリングなど)

  2. データプロファイリング。各エンドポイントの各パラメーターについて正当なデータの種類を理解する。つまり/api/user/createの「ログイン」フィールドがメールアドレスのように見えることを理解する

  3. 攻撃分類。たとえば、/api/user/createエンドポイントの「ログイン」フィールドの異常なデータがSQLインジェクションのように見える場合や、引用符が付いたDe'Contourラストネームがある場合などです。

0
Ivan

ロドリゴマルティネスはずっと前に機械学習PoCを行いました https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1016#issuecomment-409608061 誤検知の評価を改善するため。

ML検証は小規模サイトでは問題になりませんが、リクエストがスケールアップするため、これはうまくいかず、応答を待機する望ましくない待ち時間の導入は、多くの場合許容できない場合があります。

MLを使用して実行中の構成を改善し、同様の将来のリクエストを防止し、攻撃によって引き起こされた奇妙な非同期動作を追跡することができます。MLには、ネットワークフローや関連するサーバーのプロセス/ソケットの作成などの他のデータもフィードする必要があります。

0
Manuel Spartan