【SYN SCANの簡単検知】実践パケット解析とntopに学ぶセキュリティ対策アプローチ

mieruka.link読者の皆様、こんにちは!

管理人の伊集院です。昨今のウクライナ危機で不安な日々を過ごしていらっしゃる方もいらっしゃるのではないでしょうか。本日は、セキュリティを勉強して有事に備えようといったモチベーションで、セキュリティに関連した内容を勉強していきたいと思います。

ちなみに、管理人はセキュリティエンジニアとは程遠い存在ですが、少しずつ勉強していきスキルアップしていきたい次第です。

Chris Sanders著、「実践パケット解析 Wiresharkを使ったトラブルシューティング」の”12章 セキュリティ問題とパケット解析”を読んでまして、ここで解説しているパケットを実際にntopngに解析されたらこの本で紹介しているWiresharkによる分析作業を簡素化できるのか?といった実験をしてみました。

本記事を読むことによって、Cyber Securityソフトウェアと進化したntopngがどういった場面で活用できるのか?を検証していきたいと思います。

サンプルのキャプチャファイル入手

「実践パケット解析 Wiresharkを使ったトラブルシューティング」のサンプルキャプチャファイルは、https://www.nostarch.com/packetanalysis3/ から入手できます。適宜ダウンロードしてください。

ntopngの起動方法

ntopngはインターフェイスを監視するだけではなく、pcapファイルを引数として起動し分析することが可能です。「実践パケット解析 Wiresharkを使ったトラブルシューティング」”12.1.1 SYNスキャン”で解説しているsynscan.pcapngを参考に、起動例を以下にご紹介します。

$ sudo ntopng -i synscan.pcapng -w 3000 -m 192.168.0.0/16
27/Feb/2022 11:11:17 [Ntop.cpp:3258] Added Local Network 192.168.0.0/16
27/Feb/2022 11:11:17 [Redis.cpp:157] Successfully connected to redis 127.0.0.1:6379@0
27/Feb/2022 11:11:17 [Redis.cpp:157] Successfully connected to redis 127.0.0.1:6379@0
27/Feb/2022 11:11:17 [NtopPro.cpp:322] [LICENSE] Reading license from /etc/ntopng.license
27/Feb/2022 11:11:17 [NtopPro.cpp:493] [LICENSE] /etc/ntopng.license: found valid Professional license
27/Feb/2022 11:11:18 [boot.lua:41] [delete_data_utils.lua:425] Deleting data [delete_if_data][OK]
27/Feb/2022 11:11:18 [boot.lua:41] [delete_data_utils.lua:425] Deleting data [delete_if_ids][OK]
27/Feb/2022 11:11:18 [boot.lua:41] [delete_data_utils.lua:425] Deleting data [delete_if_redis_keys][OK]
27/Feb/2022 11:11:18 [boot.lua:41] [delete_data_utils.lua:425] Deleting data [delete_if_db][OK]
27/Feb/2022 11:11:19 [PcapInterface.cpp:61] Reading packets from pcap file synscan.pcapng...
27/Feb/2022 11:11:19 [Ntop.cpp:2534] Registered interface synscan.pcapng [id: 5]
27/Feb/2022 11:11:19 [main.cpp:337] PID stored in file /var/run/ntopng.pid

-iオプションのパラメータとして、解析するpcapファイル。-wはWEBアプリケーションの待ち受けポート、つまりお手持ちのブラウザからhttp://AAA.BBB.CCC.DDD:3000 でアクセスすればntopngに接続できます。最後の-mは、ローカルホストのスコープを定義しています。192.168.0.0/16内のアドレスがローカルホストという意味です。

書籍のsynscan.pcapngは、Nmapを利用した例です。Wiresharkの[Conversations]ダイアログと3way handshakeの知識を使ってSYNスキャンを調査している様子が説明されています。

攻撃者が被害者にSYNを投げて、SYN/ACKを被害者が返す被害者が該当ポート開いている
攻撃者が被害者にSYNを投げて、RSTを被害者が返す被害者が該当ポートを閉じている
攻撃者が被害者にSYNを投げて、被害者が何も介さない被害者がフィルタを設定している
表1 SYNスキャンによる調査

表1の知識を使って、被害者が起動しているサービスを特定するといったことを繰り返し実行するのがSYNスキャンということです。

ntopngによるSYNスキャン検知

ntopngを起動し、Chrome等のブラウザでntopngにアクセスします。

図1 pcapファイルの分析

ログインすると図1の赤枠のように、通常インターフェイスが表示されるプルダウンメニューに-iオプションで指定したpcapファイル名が表示されていることが分かります。

SYNスキャンが正しく検知されているか、アラートエクスプローラー画面に遷移して確認してみましょう。

図2 ntopngによるTCP SYNスキャンの検知

書籍の通り、172.16.0.8が攻撃者で64.13.134.52が被害者といったところまで検知してくれています。

なかなか精度は良さそうです。

それでは、どうやってntopngはSYNスキャン攻撃者/被害者といった判断をしているのでしょうか?

最後にこちらを説明して本記事を終えたいと思います。

図2のアクション列のアイコンをクリックし、”設定”を選ぶとCheckと呼ばれるntopngのアラートスクリプトの設定画面にジャンプします。

図3 TCP SYNスキャンの設定

図3の通りですが、1分間に256スキャンを発しているホストがTCP SYNスキャン攻撃者、設定画面は割愛しますがその逆が被害者といった閾値を設定しています。

つまり、-iオプションで設定したpcapファイルはこの閾値を超過したため図2のアラートを発報したということです。

書籍では読者の理解を促進するために、Wiresharkを使って丁寧にSYNスキャンの検出方法を説明していますが、現実はIDS等が検知したらWiresharkで詳細調査といった流れとなります。

IDSほど多機能ではないですが、ntopngをCyber Securityツールとして活用する姿が少しだけみえてきましたね。

本シリーズは定期的に検証、ご紹介していきたいと思います。

本記事は、記念すべき第一回の記事でした。ご一読、ありがとうございました。

(Visited 323 times, 1 visits today)
The following two tabs change content below.
【好きなもの】 インフラ技術が好き。古いものが好き。 【生きてきたフィールド】 システム運用、ソフトウェア開発、ミドルウェア検証、OSSサポート、プリセールスエンジニア、プロジェクトマネジメント 【このサイトでの役割】 サイト管理者。