【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スキャンということです。
ntopngによるSYNスキャン検知
ntopngを起動し、Chrome等のブラウザでntopngにアクセスします。
ログインすると図1の赤枠のように、通常インターフェイスが表示されるプルダウンメニューに-iオプションで指定したpcapファイル名が表示されていることが分かります。
SYNスキャンが正しく検知されているか、アラートエクスプローラー画面に遷移して確認してみましょう。
書籍の通り、172.16.0.8が攻撃者で64.13.134.52が被害者といったところまで検知してくれています。
なかなか精度は良さそうです。
それでは、どうやってntopngはSYNスキャン攻撃者/被害者といった判断をしているのでしょうか?
最後にこちらを説明して本記事を終えたいと思います。
図2のアクション列のアイコンをクリックし、”設定”を選ぶとCheckと呼ばれるntopngのアラートスクリプトの設定画面にジャンプします。
図3の通りですが、1分間に256スキャンを発しているホストがTCP SYNスキャン攻撃者、設定画面は割愛しますがその逆が被害者といった閾値を設定しています。
つまり、-iオプションで設定したpcapファイルはこの閾値を超過したため図2のアラートを発報したということです。
書籍では読者の理解を促進するために、Wiresharkを使って丁寧にSYNスキャンの検出方法を説明していますが、現実はIDS等が検知したらWiresharkで詳細調査といった流れとなります。
IDSほど多機能ではないですが、ntopngをCyber Securityツールとして活用する姿が少しだけみえてきましたね。
本シリーズは定期的に検証、ご紹介していきたいと思います。
本記事は、記念すべき第一回の記事でした。ご一読、ありがとうございました。
最新記事 by 伊集院 (全て見る)
- 【暗号化通信(TLS)を復元できる】WIRESHARK達人への道 第二十五歩 暗号化通信(TLS)を復号する方法 - 1月 1, 2023
- 【詳細版】NSM(ネットワークセキュリティモニタ)、Zeekとは? - 9月 1, 2022
- 【簡易版】OSSネットワークセキュリティモニタZeekとは? - 8月 26, 2022