SSMJP-20240930-01-NLOG2N2

1.6K Views

September 30, 24

スライド概要

USB キャプチャと Suricata の構築で詰んだ話で公開できるもの

profile-image

サーバーやネットワークを構築したり、ちょっとしたスクリプトをかいたり、通信解析を行ったりすることが得意なフレンズです。 シェル芸、Wireshark が大好き。流離のシェルスクリプター。ここに書かれてあることは大部分がフィクションです。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

 USB通信の中身を見てみようと したけど挫折した話 Raspberry PI で USB キャプチャ環境作ろうとした Raspberry PI で IPS を作ろうとした @nlog2n2 Sekiguchi Toshihiro 1

2.

USBキャプチャ環境 2

3.

USBキャプチャ環境 • どうやら皆んな大好き Wireshark で USB の通信の中身がみれるらしい • セキュリティ関係のツールが一通り入っている Kali Linux というディストリ ビューションがあるらしい 3

4.

必要なツールだけインストールして隔離 • lsusb で usb の情報を見ることは可能だけど、usbview を入れた方がみやす いらしいので、念の為インストールしておく • Wireshark に sudo usermod -G wireshark で起動権限をつけたような... • Wireshark で usb のインタフェースを監視できるように modprobe usbmon という呪文をターミナル上で唱える。 4

5.

隔離環境なので写真をパシャリ 「h」の入力らしきもの 5

6.

隔離環境なので写真をパシャリ 6

7.

IPS環境 7

8.

IPS を入れるべく箱を買う • Raspberry PI 4 Model.B を買う。 • 熱の問題があってヒートシンクがつ いているケースがおすすめとのこと で勢いでついでに発注した。 8

9.

IPS(Suricata) on Raspberry PI • Suricata is a high performance, open source network analysis and threat detection software used by most private and public organizations, and embedded by major vendors to protect their assets. • Suricata は、ほとんどの民間および公的組織で使用され、資産を保護するた めに大手ベンダーによって組み込まれている、高性能のオープンソースのネッ トワーク分析および脅威検出ソフトウェアです。(Google翻訳)https://suricata.io/ 9

10.

IPS(Suricata) on Raspberry PI • 雑に sudo apt-get install suricata する • /etc/suricata 配下を見るが、 うん。よくわからない。 • すべて何かのコンフィグだと言うこと だけはわかる。 10

11.

主な設定ファイル • Suricata自体の設定 /etc/suricata/suricata.yaml を利用する。 • 検知ルール(シグネチャ)の設定 デフォルトでは /etc/suricata/rules 配下の ファイルで設定される。 もし変更したい場合は suricata.yaml の default-rule-path とその下の記載を編集す る。 11

12.

Suricataの設定 12

13.

wlan0 を監視対象に追加する 13

14.

シグネチャの追加準備 • シグネチャとして利用するディレクトリとファイル名を編集する。 • HOME_NETとEXTERNAL_NETにネットワークを指定する。 14

15.

シグネチャの追加 15

16.

シグネチャを設定する What is signature 🤔 16

17.

シグネチャ 公式サイトの説明 2.3. Signatures Suricata uses Signatures to trigger alerts so it's necessary to install those and keep them updated. Signatures are also called rules, thus the name rule- les. With the tool suricataupdate rules can be fetched, updated and managed to be provided for Suricata. ChatGPTの翻訳 Suricataはシグネチャを使用してアラートをトリガーするため、それらをインストールし、最新 の状態に保つ必要があります。シグネチャはルールとも呼ばれ、したがってルールファイルとい う名前が付けられています。ツールsuricata-updateを使用することで、ルールを取得、更新、お よび管理し、Suricataに提供することができます。 fi 17

18.

シグネチャ たぶん、ACLみたいなもん😇 18

19.

とりあえず signatures update 作業 19

20.

シグネチャの追加 作ったシグネチャのファイルに、 • 検知したい通信ルール • 検知したときに記録するメッセージ を設定する。 20

21.

検知できた模様 21

22.

よーし、これらを駆使して、 通信を検知する環境を構築するぞ! 22

23.

あとは nftables を設定し、 IPSモードにして、 ルールを追加するだけ 23

24.

そう言えば誰がこのシグネチャ作るの??? 24

25.

ワイやん😇 俺はそこまで強くない https://docs.suricata.io/en/latest/rules/index.html 25

26.
[beta]
Suricata のシグネチャの書き方
• 公式で提示されているサンプル
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing Rule in URI";
flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern;
classtype:bad-unknown; sid:123; rev:1;)
注意
-> と <> のみ対応

• 意味

<処理> <プロトコル> <送信元ネットワーク> <送信元ポート> <通信方向> <宛先ネットワーク> <宛先ポート>
<オプションの記載。括弧で括られ、セミコロンで区切るスタイル。
キーワードとなる単語は、https://docs.suricata.io/en/latest/rules/meta.html に記載あり。>

26

27.

自力で検出作業は無理と判断 orz 27