超軽量WAF Raptor WAFのご紹介
2017/08/29
2019/12/23
タグ: proxy, Raptor, WAF
軽量で簡単に設定できそうなWAF(Web application Firewall)を探していたところ「Raptor WAF」と言うソフトを見つけた。仕組み的にはリバースプロキシーを使ってインジェクション対策やらCSRF対策、マッチリスト、BLACKリストでブロックしてくれる。
様々なフレームワークを使用していると、おおよそ自前WEBサーバがついてくる。テスト用のWEBサーバなので完全に内部でやるなら外界からシャットアウトしてテストするといいのだが場合によっては、ちょっと本番的な使い方をしたい時にお気軽にWAFができたらと探していたところでした。使ってみたところ中々レベル的にはちょうどいい感じがします。SSLが現在非対応
導入方法
C言語やmake関連のユーティリティを事前にインストールしてください。コンパイルはあっという間に終わります。
1 2 |
$ git clone https://github.com/CoolerVoid/raptor_waf $ cd raptor_waf; make; |
WAF起動
raptor_wafのフォルダー直下で実行する必要があります。
- -h : 接続先ホスト(ユーザがアクセスするIP or ホスト名)
- -p : オリジナルのホストのポート番号
- -r : WAFのポート番号(ユーザが実際にアクセスするポート番号)
- -o : 不正アクセスした際に記録するログファイルの出力先
- -w : WAFの検知レベルの強度を指定 levelは 1-4 まである。
1 |
$ bin/Raptor -h xxx.xxx.xxx.xxx -p 8080 -r 8000 -w 4 -o log.txt |
ブラウザから次のように入力してテストしてみます。テストプログラムサイトはご自分でパラメータ引数があるプロ グラムを用意してください。
1 |
http://xxx.xxx.xxx.xxx:8000/user/<script>alert(document.cookie)</script> |
以下のようなページが表示できたら成功です。
BLACKリスト、マッチリスト
RaptorはBLACKリスト、マッチリストでもブロックが可能だ。
1 2 3 4 5 |
[root@local]> ls LICENSE Makefile README.md bin config doc lib log.txt src [root@local]> cd config [root@local]> ls blacklist_ip.txt match_list_request.txt |
- ブラックリスト:blacklist_ip.txt
- マッチリスト:match_list_request.txt