ハーフスキャン(SYNスキャン)ってなに?

この記事は旧ブログから移転した記事です。

Pythonによるパケット解析で国内にないサーバーを検出、そのやり方は
新型コロナウイルス禍で企業ネットワークの姿が変わってきています。ネットワーク管理にも変化に対応した手法が求められています。第4回は第3回で構築したPythonによるパケット解析環境を利用して、SaaSなどのサーバーが物理的に設置されている場...

こちらの記事、PythonでRTTを計測して国外サーバーを検出しようという内容なんですが、読んでいて「ハーフスキャン」が何なのか分からなかったので少し調べてみました。

ハーフスキャン(SYNスキャン)とは?

ポートスキャンの中でもTCPスキャンに分類されます。TCPといえば3ウェイハンドシェイクですが、これを確立させるスキャンと確立させないスキャンの2種類あります。ハーフスキャンは確立させない方です。

TCPはコネクション型の通信プロトコルだけど、コネクションを確立しないからハーフって事ですね。

UDPスキャンとどう違うの?

ハーフスキャンは実質コネクションレス型という事になりますが、であれば正真正銘コネクションレス型のUDPを用いたUDPスキャンと何が違うのでしょうか?

結論は、ポート開閉の判断方法が違います。

ハーフスキャンは対象ポートにSYNパケットを送信し、SYN/ACKパケットが帰ってきたらポートが開いている(Listen状態と言う)と判断し、RST/ACKパケットが帰ってきたらポートが閉まっている(Close状態)と判断するのに対し、

UDPスキャンはUDPパケットを送信し、何も帰ってこないならListen状態、”ICMP port Unreachable”が返ってくるならClose状態と判断します。

参考にしたサイト

ポートスキャンの種類一覧:http://capm-network.com/?tag=%E3%83%9D%E3%83%BC%E3%83%88%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3

404 Page Not Found | 株式会社網屋
株式会社網屋は、「SECURE THE SUCCESS.」をビジョンに掲げ、セキュリティ対策ソフトウェア『ALogシリーズ』と、クラウドからセキュアなITネットワーク基盤を構築・運用する『Network All Cloud』を提供しています...

3ウェイハンドシェイクの図:https://atmarkit.itmedia.co.jp/ait/articles/0401/29/news080_3.html