ステルススキャン 【stealth scanning】
概要
ステルススキャン(stealth scanning)とは、サイバー攻撃を行う対象となるコンピュータの状態を調べるポートスキャンの手法の一つで、相手に記録(ログ)を取られずに調査を行う手法のこと。実際に接続を試みることにより相手方のTCPポート/UDPポートが開いているかどうかを調べることをポートスキャンというが、普通に接続を試みると通信記録に残るため、ポートスキャンを行っていることが明らかになってしまう。これを回避するため、通常の接続手順から外れた応答を行うことによりログを残させずにスキャンすることをステルススキャンという。
具体的には、接続が確立する寸前にキャンセルを意味する「RSTパケット」を送信して接続を中断する「SYNスキャン」や、接続が確立していないのにいきなり接続終了を意味する「FINパケット」を送りつけて相手方の応答を見る「FINスキャン」などの手法がある。
SYNスキャン (TCP SYNスキャン)
相手方に記録を取られずにポートスキャンを行うステルススキャンの一つで、TCPのSYNパケットの特徴を悪用する手法をSYNスキャンという。
TCPでは、まずクライアントがサーバに「SYNパケット」を送り、サーバがクライアントに「ACKパケット」を返信し、最後にクライアントがサーバにACKパケットを送ることで接続が確立するが、SYNスキャンでは最後にクライアントから「RSTパケット」(リセット)を送信することにより、接続を中断する。このような用途にRSTを使うのは本来の仕様から逸脱するため、サーバ側では想定通りに処理が進まず、通信記録(ログ)に正しく記録されなくなってしまう。
FINスキャン (TCP FINスキャン)
TCPのFINパケットを悪用して相手方のコンピュータがどのような通信サービスを提供しているかを探る調査手法をFINスキャン(TCP FIN scan)という。相手方に通信記録(ログ)を残させずにポートスキャン(port scan)を行うステルススキャン(stealth scan)の一種である。
FINパケットはすでに接続が確立している相手と接続の終了を伝え合うために用意されているもので、未接続の相手に送るのは本来誤った使い方である。これを悪用して、TCP接続が未確立の相手の様々なTCPポートに向けて次々にいきなりFINパケットを送信し、反応を見る。
UNIX系OSなどが稼働するシステムでは稼働中のポートからは何も反応を返さず、ポートが閉じている場合のみRSTパケットを応答する。この反応の違いを見て、当該コンピュータの何番のポートが活動中かを記録を取られず調べ上げることができる。Windowsのように突然のFINには常にRSTを返すシステムもあり、この場合は各ポートの開閉は判断できないが、代わりにOSがWindowsであると推測することができる。