昨年、Web アプリケーションへの攻撃をブロックする NGINX 用の動的モジュールである Nemesida WAF Free をリリースしました。 機械学習に基づいた製品版とは異なり、無料版は署名メソッドのみを使用してリクエストを分析します。
Nemesida WAF 4.0.129 リリースの特徴
現在のリリースより前は、Nemesida WAF 動的モジュールは Nginx Stable 1.12、1.14、および 1.16 のみをサポートしていました。 新しいリリースでは、1.17 以降の Nginx Mainline と 1.15.10 (R18) 以降の Nginx Plus のサポートが追加されています。
別の WAF を作成する理由
NAXSI と mod_security はおそらく最も人気のある無料の WAF モジュールであり、mod_security は Nginx によって積極的に推進されていますが、当初は Apache2 でのみ使用されていました。 どちらのソリューションも無料のオープンソースであり、世界中に多くのユーザーがいます。 mod_security の場合は、無料および商用の署名セットが年間 500 ドルで利用できます。NAXSI の場合は、すぐに使える無料の署名セットがあり、doxsi などの追加のルール セットも見つかります。
今年はNAXSIとNemesida WAF Freeの動作テストを行いました。 結果について簡単に説明すると、
- NAXSI は Cookie で二重 URL デコードを行いません
- NAXSI の設定には非常に長い時間がかかります。デフォルトでは、Web アプリケーションを操作する場合 (承認、プロファイルやマテリアルの編集、アンケートへの参加など)、デフォルトのルール設定によりほとんどのリクエストがブロックされ、例外リストを生成する必要があります。 、セキュリティに悪影響を及ぼします。 デフォルト設定の Nemesida WAF Free では、サイトの操作中に誤検知は XNUMX 件も発生しませんでした。
- NAXSI の攻撃が失敗した回数は何倍も多いなどです。
欠点にもかかわらず、NAXSI と mod_security には、オープンソースと多数のユーザーという少なくとも XNUMX つの利点があります。 ソースコードを公開するという考えには賛成ですが、製品版の「著作権侵害」の問題が考えられるため、まだ公開できませんが、この欠点を補うために、署名セットの内容を完全に公開しています。 当社はプライバシーを重視しているため、プロキシ サーバーを使用してご自身でプライバシーを確認することをお勧めします。
Nemesida WAF Freeの特徴:
- 偽陽性と偽陰性の数が最小限に抑えられた高品質の署名データベース。
- リポジトリからのインストールと更新 (高速で便利です)。
- NAXSI のような「混乱」ではなく、事件に関するシンプルでわかりやすいイベント。
- 完全に無料で、トラフィック量や仮想ホストなどの制限はありません。
結論として、WAF のパフォーマンスを評価するためにいくつかのクエリを実行します (URL、ARGS、ヘッダー、本文の各ゾーンで使用することをお勧めします)。
')) un","ion se","lect 1,2,3,4,5,6,7,8,9,0,11#"]
')) union/**/select/**/1,/**/2,/**/3,/**/4,/**/5,/**/6,/**/7,/**/8,/**/9,/**/'some_text',/**/11#"]
union(select(1),2,3,4,5,6,7,8,9,0x70656e746573746974,11)#"]
')) union+/*!select*/ (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
')) /*!u%6eion*/ /*!se%6cect*/ (1),(2),(3),(4),(5),(6),(7),(8),(9.),(0x70656e746573746974),(11)#"]
')) %2f**%2funion%2f**%2fselect (1),(2),(3),(4),(5),(6),(7),(8),(9),(0x70656e746573746974),(11)#"]
%5B%221807182982%27%29%29%20uni%22%2C%22on
%20sel%22%2C%22ect%201%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C%2some_text%27%2C11%23%22%5D
cat /et?/pa?swd
cat /et'c/pa'ss'wd
cat /et*/pa**wd
e'c'ho 'swd test pentest' |awk '{print "cat /etc/pas"$1}' |bas'h
cat /etc/passwd
cat$u+/etc$u/passwd$u
<svg/onload=alert()//
リクエストがブロックされない場合、WAF は実際の攻撃を見逃す可能性が高くなります。 例を使用する前に、WAF が正当なリクエストをブロックしていないことを確認してください。
出所: habr.com