目次
Suricata は、ネットワークを流れる通信をルールと照らし合わせ、怪しい通信を見つけるとアラートとして記録するエンジンです。非営利団体 OISF が開発しているオープンソースで、設定を変えると通信を止める防御役にもなります。
この記事は、Wireshark でパケットを読んだことがあり、次は自動で見張る仕組みを試したい人に向けています。読み終えると、次のことができるようになります。
- 検証用の Ubuntu に Suricata を入れて、ルールを取得する
- テスト用のルールでアラートを出し、ログを読む
- IDS モードと IPS モードの違いを説明する
Suricata でできること
公式ドキュメントは、Suricata をネットワークの IDS、IPS、ネットワークセキュリティ監視(NSM)のエンジンと説明しています。
- 通信をルールと照合し、当たったものをアラートとして記録する
- 結果を
fast.log(1 行ずつのアラート)やeve.json(JSON 形式の詳しい記録)に出す - 保存済みの pcap ファイルを読み込んで、後から検査する
- IPS モードでは、ルールに当たった通信を止める
IDS モードと IPS モードの違い
| IDS モード | IPS モード | |
|---|---|---|
| 置き方 | 通信を横から受け取って検査する | 通信の通り道(インライン)に入る |
| ルールに当たったとき | アラートを記録するだけ | drop や reject のルールで通信を止められる |
| TCP の検査のタイミング | 相手の確認応答(ACK)が届いてから | 届いたデータをすぐに検査する |
| 失敗したときの影響 | 見逃しが出る | 正しい通信まで止まることがある |
Linux で IPS にするには、たとえば iptables で通信を NFQUEUE に回し、-q オプションでキュー番号を指定して起動します。この記事の手順は IDS モードだけを扱います。
安全な試し方:検証用の Ubuntu で IDS を動かす
自分で作った仮想マシンで、その仮想マシン自身の通信だけを検査します。公式のクイックスタートに沿った手順です。
-
公式の PPA を追加して、Suricata と JSON を読むための
jqを入れます。sudo add-apt-repository ppa:oisf/suricata-stable sudo apt update sudo apt install suricata jq -
ip addrでネットワークインターフェースの名前と IP アドレスを確かめます。 -
/etc/suricata/suricata.yamlを開き、HOME_NETに自分のネットワークが含まれているか確かめます。af-packetのinterfaceを、手順 2 で確かめた名前に合わせます。 -
sudo suricata-updateでルールを取得します。標準では ET Open というルールセットが/var/lib/suricata/rulesに入ります。 -
sudo systemctl restart suricataで再起動します。 -
別の端末で
sudo tail -f /var/log/suricata/fast.logを実行しておき、curl http://testmynids.org/uid/index.htmlを実行します。この URL は、ET Open のテスト用ルール(sid 2100498)に当たる応答を返します。 -
fast.logにアラートが 1 行出れば、検知が動いています。
ルールの入手と管理
ルールの取得と更新には、Suricata に同梱されている suricata-update を使います。
| コマンド | すること |
|---|---|
sudo suricata-update |
ET Open を取得・更新する |
sudo suricata-update update-sources |
使えるルールセットの一覧を取得する |
sudo suricata-update list-sources |
使えるルールセットを表示する |
sudo suricata-update enable-source oisf/trafficid |
別のルールセットを有効にする(例は OISF の TrafficID) |
ルールは頻繁に更新するよう、公式も勧めています。自分で書いたルールは、ルールファイルとして追加できます。
主なコマンドラインオプション
| オプション | 意味 |
|---|---|
-c <ファイル> |
設定ファイルを指定する |
-i <インターフェース> |
指定したインターフェースの通信を検査する |
-r <パス> |
pcap ファイル(またはフォルダー内のファイル)を読み込んで検査する |
-l <フォルダー> |
ログの出力先を指定する |
-q <キュー番号> |
NFQUEUE を使ってインラインで動かす(IPS) |
-r を使えば、Wireshark で記録した自分の pcap ファイルを後から検査できます。
注意点
- 検査してよいのは、自分が管理するネットワークか、管理者の許可を得たネットワークだけです。Suricata は通信の中身を読むので、他人の通信を許可なく検査しないでください。
eve.jsonなどのログには、通信先や通信内容の一部が残ります。人に渡す前に中身を確かめてください。- IPS モードは、通信の通り道に入るので、設定やルールを誤ると必要な通信まで止めることがあります。まず IDS モードで誤検知の様子を見てから切り替えてください。
- Windows 版は公式サイトで 64 ビットのインストーラーが配布されています。macOS では、ソースからのビルドになります。
次に読む
出典
- 公式ドキュメント:Suricata とはdocs.suricata.io/en/suricata-8.0.7/what-is-suricata.html
- 公式ドキュメント:クイックスタートdocs.suricata.io/en/suricata-8.0.7/quickstart.html
- 公式ドキュメント:suricata-update によるルール管理docs.suricata.io/en/suricata-8.0.7/rule-management/suricata-update.html
- 公式ドキュメント:IPS の考え方docs.suricata.io/en/suricata-8.0.7/ips/ips-concept.html
- 公式ドキュメント:Linux で IPS(インライン)を設定するdocs.suricata.io/en/suricata-8.0.7/ips/setting-up-ipsinline-for-linux.html
- 公式ドキュメント:コマンドラインオプションdocs.suricata.io/en/suricata-8.0.7/command-line-options.html
- 公式サイト:ダウンロードsuricata.io/download/
確認日 2026-10-24
似たツール
Wazuh
影響範囲 手元だけ端末に入れたエージェントからログや設定、脆弱性の情報を集め、1 つの画面で監視できる無料のセキュリティ基盤(SIEM/XDR)。
- 用途
- 防御
- 形式
- サーバーで動かす
- 難易度
- 上級
- ライセンス
- 条件つきGPL-2.0(一部の構成要素は Apache-2.0)
- 分類
- 脆弱性スキャン/フォレンジック
Wireshark
影響範囲 外に届くネットワークを流れるパケットを記録し、中身をプロトコルごとに分解して見せるパケットアナライザー。
- 用途
- 学習
- 形式
- デスクトップアプリ
- 難易度
- 初級
- ライセンス
- 条件つきGPL-2.0
- 分類
- ネットワーク/フォレンジック