NGINXの保護-NAXSI

NAXSIとは何ですか?


NAXSI = N GINX A NTI X SS& S QLインジェクション
簡単に言えば、これはXSS、SQLインジェクション、CSRF、ローカルおよびリモートファイルのインクルージョンに対する保護に役立つNGINXのWebアプリケーションファイアウォール(WAF)です。
その特徴的な機能は、セットアップの速度と容易さです。 これにより、 mod_securityやapacheなどの優れた代替手段になります。

なぜNAXSIが必要なのですか?

明らかに、正しく記述されたコードを使用して上記の攻撃から防御することが最善です。 ただし、WAF(および特にnaxsi)が役立つ状況があります。



設置

Ubuntu、Debian、Netbsd、Freebsd :パッケージとして入手可能。
たとえば、サーバーubunt 12.04では、それで十分です
apt-get install nginx-naxsi 


その他のLinuxシステム:
パッケージがまだ登場していない場合、ソースからnginx + naxsiを収集します。
 wget http://nginx.org/download/nginx-xxxx.tar.gz wget http://naxsi.googlecode.com/files/naxsi-x.xx.tar.gz tar xvzf nginx-xxxx.tar.gz tar xvzf naxsi-x.xx.tar.gz cd nginx-xxxx/ 

(xxxxの代わりに-現在のバージョンを入れてください)

libpcre依存関係(オプション、httpsのlibssl)があることを確認し、コンパイルします。
 ./configure --add-module=../naxsi-x.xx/naxsi_src/ [    nginx] make make install 


NAXSIの仕組み

NAXSIは、GET要求、HTTPヘッダー(Cookieなど)、およびPOST要求の本文をルールセットに対してチェックできます。
基本的な禁止ルールのセットは非常に単純で 、さまざまな「危険な」文字とsqlキーワードを禁止します。
この一連のルールは非常に厳しく、場合によってはサイトの正しい操作を妨げる可能性があるため、NAXSIには、必要なコンテキストで禁止文字(ルール)を使用できるホワイトリストがあります。

リクエストをチェックするとき、そのコンテキストのホワイトリストにあるものを除き、すべての禁止ルールに従って実行され、「ペナルティ」ポイントは6つのカテゴリで計算されます:$ SQL、$ XSS、$ RFI、$ TRAVERSAL、$ EVADE、$ UPLOAD。

「ペナルティ」ポイントの数がしきい値レベルを超えている場合、要求は危険と見なされ、構成で指定されたDeniedUrlへの内部(nginx用)リダイレクトが実行されます。 ブロッキングの理由に関するget-parameters包括的な情報の形式で、アグレッサの元のURLとIPが指定されたURLに送信されます。 指定されたアドレスで、403を返すことができます。 または、NIDSシステムに攻撃に関する情報を蓄積します。
NAXSIは、「学習」モードと「戦闘」モードで動作できます。

学習モードでは、NAXSI自体がユーザーアクティビティに基づいて一連のホワイトリストを準備できます。 簡単に言えば、ユーザーが同じURLのルールの1つにしばしば違反する場合、ルールはホワイトリストに登録され、ブロックされません。 これらのリストは、卒業後に確認および調整する価値があります。

戦闘モードでは、違反は単にDeniedUrlにつながります。

NAXSIの構成

基本的な制限ルールを含めるためにnginx設定のコメントを外します
 include /etc/nginx/naxsi_core.rules; 


ここで、目的の設定を仮想ホスト構成に追加します(これらを個別のファイルに入れ、includeを介して接続することをお勧めします)
 LearningMode; SecRulesEnabled; DeniedUrl "/RequestDenied"; #include "/etc/nginx/mynaxsi.rules"; ## check rules CheckRule "$SQL >= 8" BLOCK; CheckRule "$RFI >= 8" BLOCK; CheckRule "$TRAVERSAL >= 4" BLOCK; CheckRule "$EVADE >= 4" BLOCK; CheckRule "$XSS >= 8" BLOCK; 


これらのコマンドの意味をさらに詳しく調べてみましょう。

ホワイトリストは、トレーニングモードに基づいて、またはログファイルの分析を通じて作成できます。

ルールとリストの操作方法、および統計とベンチマークの監視方法については、次の記事で説明します。

NAXSIに興味がある場合は、 プロジェクトWikiで優れたドキュメントを読むことができます。

Source: https://habr.com/ru/post/J145241/


All Articles