IIS用の脆弱性緩和モジュール
Webサーバ・アプリケーションとして、推奨されるセキュリティ設定に上書きします。
通信をキャプチャし透過的に動作するため、既存の設定や環境に影響を与えません。
また、簡易的にXSS(Reflected)を検知し防御します。
今後、ポリシーによる一元管理を実装予定です。
最新版を Download します。
- C:\inetpub\wwwroot\bin ディレクトリへ NachtWal.dll をコピーします。
- IISマネージャーから対象のWebサイトのモジュール設定を開きます。
- 「マネージ モジュールを追加」を開きます。
- 次のように入力または選択します。名前「NachtWal」種類「NachtWal.Firewall」
- OKを押下しモジュールを有効にします。
DLLのコピー先のパスは環境によって変わります。(ルート直下の \bin ディレクトリです)
CGIなどASP.NET以外の環境では十分にテストされていません。
安定性を重視する場合、マネージ モジュールの設定において次をチェックすることを推奨します。
「ASP.NET アプリケーションまたはマネージ ハンドラーへの要求のみ呼び出す(&I)」
この場合、CGIと同時に静的ファイルなどにも適用されないことにご注意ください。
.NET Framework 2.0 以上かつ、ASP.NET が使用可能な環境の IIS 上で動作します。
OS | IIS | Status |
---|---|---|
Windows Server 2016 / Windows 10 | 10.0 | Supported |
Windows Server 2012 R2 / Windows 8.1 | 8.5 | Supported |
Windows Server 2012 / Windows 8 | 8.0 | Supported |
Windows Server 2008 R2 / Windows 7 | 7.5 | Supported |
Windows Server 2008 / Windows Vista | 7.0 | Supported |
Windows Server 2003 R2 / Windows XP | 6.0 | Unsupported |
要件を満たした設定であれば、OS/IISのバージョンに依存することなく動作すると思います。
Requirements | Setting |
---|---|
ASP.NET | Enable |
.NET CLR Version | v2.0 later |
.NET Extension | Enable |
Manage pipeline mode | Integration |
.NET CLR 2.0/4.0 どちらのバージョンでも動作します。
IISの機能構成(サーバーマネージャー)とIISマネージャー(コンピュータの管理)から設定・確認が可能です。
本モジュールが動作している、XSS攻撃の検知・防御のデモサイトを用意しました。
BurpやZAPなどのツールレベルであればブロックするかと思います。
XSS Attack Demo Site ※IIS 7.5
デモサイトのソースコード
XSS攻撃の検知・防御機能は、まだ実験的です。
Storedはそのうち実装します。
Fields | Status |
---|---|
QueryString Key/Value | Supported |
Body Key/Value | Supported |
Cookie Key/Value | Future |
JSON Key/Value | Future |
Base64 encoded params | Unsupported |
Path separate param | Unsupported |
Some header fields | Unsupported |
UserAgent field | Future |
Referer field | Future |
ViewState | Unsupported |
CGI環境は、ASP.NETの仕様上の問題によりBodyは非対応です。
Accuracy | False Positive | False Negative |
---|---|---|
Reflected | Bad | Good |
Point | Medium | Medium |
Reflected: XSS攻撃の可能性のある文字が、Reflectedするかしないかで真偽を決定する検知方法です。
可能性として検知されたものは全てブロックするため、False Positive が非常に多いです。
しかしながら、False Negative が限りなく最小になります。
Point: XSS攻撃のシグネチャにマッチするかしないかを検査し、点数加算方式で評価する検知方法です。
複数の攻撃シグネチャをベースに、XSS攻撃あるかどうかの傾向を数値化し評価します。
ただしパターンマッチによる検査のため、高度な攻撃によっては検知できないケースがあります。
可能性のとして検知されたものから誤検知を排除するため、False Positive は少なくなります。
どなたでもお使いいただけます。
コードは私(@reinforchu)が開発したものであります。
独自研究、オープンソースコミュニティへの貢献、サイバーセキュリティ活動を目的としています。
Twitter: @reinforchu
E-Mail: [email protected]