web-dev-qa-db-ja.com

Webアプリケーションセキュリティのためのベイジアンネットワークのアプリケーション

ベイジアンネットワークを使用して、Webトラフィックの攻撃分析を実行するにはどうすればよいですか?そのアプリケーションに関する興味深い記事を読みました。 "ベイジアン攻撃分析によるWebアプリケーション防御" しかし、その方法論については明確ではありませんでした。

1
Ali Ahmad

ベイジアンネットワークは確率モデルの形式であり、一連の条件を使用して、アサーションが真であるか偽であるかを予測できます。

たとえば、ディスクが死んでいるかどうかを予測するために使用している2つの条件があるとします。

  1. ディスクの書き込みが遅い。
  2. トラフィックが異常に多い。

次のような確率を定式化することができます。

  Slow Writes | High Traffic | Disk failing?
--------------+--------------+-- T --|-- F ---
      F       |      F       | 0.05  | 0.95
      F       |      T       | 0.01  | 0.99
      T       |      F       | 0.90  | 0.10
      T       |      T       | 0.45  | 0.55

これは次のように解釈できます。

  • 書き込みが遅くなく、トラフィックが多くない場合、ディスクに障害が発生していない確率は0.95です。
  • 書き込みが遅くなく、トラフィックが多くない場合、ディスクに障害が発生していない確率は0.99です。
  • 書き込みが遅く、トラフィックが多くない場合、ディスクに障害が発生している可能性は0.90です。
  • 書き込みが遅く、トラフィックが多い場合、ディスクに障害が発生していない確率は0.55です。

このタイプのモデルを採用して、自己学習を適用することができます。結果がわかっている大量のデータセットを取得し、これを使用して確率モデルを構築します。

たとえば、ネットワークでは、次のようなテストが行​​われる場合があります。

  • > 10Mbps TCPインターネットからのトラフィック?
  • インターネットからの> 10Mbps UDPトラフィック?
  • 過去10分間にRDPへのログインに5回以上失敗しましたか?
  • 過去10分間にSSHへのログインに5回以上失敗しましたか?
  • TCP SQLサーバーへの接続数は> 5ですか?
  • TCP HTTPサーバーへの接続数は> 500ですか?
  • ファイアウォールは最後の1分間に100を超えるイベントを記録しましたか?
  • 時間は現在オフィス(9-5)時間以内ですか?
  • 等.

これらのテストは、ネットワーク上の既知のトラフィックのセットに対して実行され、違反が試行された、または試行されなかった時間のモデルに通知します。次に、特定のタイプのターゲットイベントと相関する可能性が最も高いテストを確認し、上記のように確率モデルを構築できます。

さらに違反が検出されると、モデルに「これは違反でした」と通知し、モデルの改善を試みることができます。また、違反を誤って警告した場合にもそれを知ることができます。

これらのモデルは、多数の質問や膨大なデータセットを処理する場合、特にモデルにサブモデルや他の形式の分析から提供されるテスト質問が含まれている場合、非常に複雑になる可能性があります。そのため、侵入検知に優れたパターンマッチングアプローチを提供できます。

5
Polynomial

リクエスト/パケット/メッセージを良い/悪いものに分類しており、この分類はトレーニングプロセス中に作成されたデータベースに基づいているため、最初のバッチを自分で分類してから、自己学習を続ける必要があります。

0
Andrew Smith