FortigateのWAF、IPS、botnet、C&Cサーバ遮断機能の検証
※割と、画期的な事を閃いた気がするので、冒頭に載せます。
APIサーバとの通信に含まれるシグネチャについて、APIサーバの
バイナリをてきとーにビットローテートすると何らかの復号に近い
動きをするかも知れない。
その操作をWAF経由のTelnet(当然、暗号化無しの通信)で行うと
復路の通信中に、シグネチャが含まれることになる。
それはもしかしてWAF/IPSで検知できるのでは、と。
以下、本文です。
検証対象
FortigateのWAF、IPS、botnet、C&Cサーバ遮断機能
NW構成
検証内容
①FotrigateのWAFを有効にし、OwaspZap(業界標準のWeb侵入試験ツール)で
侵入試験を行う。
②FotrigateのIPSを有効にし、NMAP(業界標準のスキャナー)で
侵入試験を行う。
③Fotrigateのbootnetを有効にし、トレンドマイクロ社のテスト用ウィルス、および
自作のテストウィルスで感染試験を行う。
④CiscoルータにC&C(悪意のあるサーバ)のIPアドレス)を実装し、疎通試験
を行う。
※ああそうだ、セキュリティのオンラインスクールで習った、色々な攻撃ツール(SQLなんちゃら、とかも後で追記しよう。。。)
--
【FotrigateのWAFによる侵入試験 防御結果】
※WAFの設定方法は後述
■事前の試験 WAFを使用しない状態での侵入試験
先ず最初に WAFを無効化した状態でowaspzap(侵入試験の標準ツール)の試験を行います
Fotrigateの設定は以下の通り
※Poricy2(全通信を許可する)のみ実装する
Owaspzapのログ(自己申告)は下記の通り
試験中
試験完了後のOwaspzapのログ(自己申告)
サーバ側のWireSharkの画面:HTTPでフィルタ
サーバ側のWireSharkの画面:IPアドレスフィルタ
※攻撃PCとサーバ間にある家庭用ルーターでSourceNATしている
■試験本番 WAFを有効化した状態での侵入試験
※ Poricy1(WAFを実装している)のみを使用する
Owaspzapのログ(自己申告)は下記の通り
試験中/試験後(下記の画面のまま停まってしまう)
サーバ側のWireSharkeの画面:HTTPでフィルタ
※パケットが現れない
■WAFのロギングについて
※今回使用しているFotrigate30では検知時のActionが Allow/Block/Monitor
しか選べず、Block&Monitorが選べ無かった(他機種では出来た「筈」
後日、別機種を入手後に調査します。)
■WAFの実装方法について
SecurityPolicy -> Create Newの操作をすると下記の画面になる
※GUI画面を上下に2分割して居ます
※ActionはACCEPT、InspectionModeはProxy-Based、他のパラメータは任意
WAFを有効にする(赤枠部分)、実装するWAFポリシーはデフォルト
※WAFポリシーの作成方法は省略します
画面中央、下の
をクリックするとIPv4のポリシーにWAFが実装される(赤枠部分)
【IPS機能】→WAFでも防げる模様
■事前の試験 WAFを使用しない状態でのNMAPでスキャンを行う
・Fotrigateの設定
・WAFを適用した1行目のPolicyを無効化し、2行目のPolicyで全通信を許可
・NMAPのレポート(抜粋)
・サーバ側のWireShark
■試験本番 WAFを使用した状態でのNMAPでスキャンを行う
・Fotrigateの設定
・WAFを適用した1行目のPolicyを有効化し、2行目の全通信を許可するPolicyを
消去する
・NMAPのレポート(抜粋)
※スキャン自体が始まらない
・サーバ側のWireShark
※通信が全く受信できて居ない
■IPSの試験※後日→ほぼ同じ構成なので再劣後
■botnetの試験※後日 →疑似マルウェア作成中(
危険視されがちなAPIを単体でコンパイルする。1スレッドを別に
立てる事になりそう)
■C&Cサーバの試験※後日(IPアドレス群は入手済み、ブラウザが独自に持つDNS
DNSを騙す仕組み(FakeDNS)等が要るので構成の設計が
必要。つまり結構時間かかりそう)