インストールしてシグネチャーを登録する
簡単にセットアップ手順を紹介する。
今回はラズパイ標準のOSであるRaspbianを使った。ここにSuricataをセットアップする。
まずは次のコマンドでSuricataをダウンロードして展開する。
wget https://www.openinfosecfoundation.org/download/suricata-6.0.3.tar.gz
tar -xvf suricata-6.0.3.tar.gz suricata-6.0.3
次のコマンドでSuricataをインストールする。
cd suricata-6.0.3/
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var –enable-nfqueue –enable-lua
make
sudo make install
インストールが終わったら、不正な通信の検知に使うルール(シグネチャー)をインストールする。このシグネチャーは常に最新のものにしておく必要がある。そうしないと、最新のマルウエアの通信を見逃す可能性が高まる。次のコマンドでインストールする。
sudo suricata-update
これでSuricataのセットアップは完了した。なお、2021年8月3日時点のシグネチャーには30149個のルールが登録されていた。
最後に、監視したいインターフェース名を指定してSuricataを起動すれば利用できるようになる。
負荷トラフィックを徐々に高めていく
今回の実験では、2020年9月11日に公開されたActive Directoryに存在した特権昇格の脆弱性(Zerologon、CVE-2020-1472)を突く攻撃の通信を検知できるかを確認した。攻撃テストツールにはMetasploitを利用した。
ラズパイはネットワークのインラインではなく、LANスイッチのミラーポートに接続した。そしてMetasploitを使って攻撃の通信だけを開始して、それを検知できるかを試した。その結果、SuricataのログからCVE-2020-1472の通信を検知したと確認できた。
次に負荷がある状態で不正な通信を検知できるかの実験を行った。通常のネットワーク環境では、多くの通信が発生している中に不正な通信が紛れ込んでいるからだ。今回はiPerfというツールを使って、UDPの負荷トラフィックを発生させた。
負荷トラフィックは、200Mbps、500Mbps、800Mbps、1Gbpsと徐々に大きくしていった。その結果は以下の通りだ。
負荷トラフィック | 検知結果 |
---|---|
200Mbps | ○ |
500Mbps | ○ |
800Mbps | ○ |
1Gbps(=1000Mbps) | ○ |
今回の実験では、1Gbpsの負荷でも不正な通信を検知できた。ただ実際の業務に使うネットワーク環境で使用するときは、何かトラブルにつながる可能性があるため慎重に進めてほしい。
なお、今回はラズパイに液晶パネルを取り付けて、不正な通信を検知しときは警告を表示するようにした。ここまでのシステムを構築するのにかかった費用は1万4355円で、かかった時間は2時間ほどだった。