ポートスキャンの特徴と種類、その対策方法についてまとめてみた

2018.05.24

セキュリティ対策

image

皆さんは「ポート」という言葉を聞いたことはありますか?
ポートとは、パソコンや周辺機器が外部とデータの通信をする出入り口のことを指します。
ネットワーク通信するサービスにはポート番号と呼ばれる番号が設定されており、この番号をもとに通信元と通信先サービス送受信が行われます。

しかし、このポートに着目して不正アクセスやウイルス感染を目論むサイバー攻撃をしかける脅威に私たちは直面しています。ポートからパソコンや企業システムに侵入されてしまうと、受ける被害は甚大なものになる可能性が高いです。

このポートを狙う攻撃を「ポートスキャン」を呼びます。今回は「ポートスキャン」について解説をしてまいります。

目次

ポートスキャンとは何か?

「ポートスキャン」はこのネットワークに接続されている、通信可能なポートをひとつひとつ順番に探していくことです。

企業や個人に関わらず、ネット利用に欠かせないパソコンやモデムといった機器にはポートを介することでネットワーク接続が出来るようになっています。
ポートの数も多く、番号が割り当てられており、それぞれのサービスやプログラムに応じた番号を指定して利用することが一般的です。

例えば、Webサービス(HTTP)であれば80番、メール配信サービス(SMTP)であれば25番が割り当てられています。

ポートは0番から65535番まで存在しており、0から1023番までは用途に合わせてあらかじめ割り振られた一般的な番号であり、ユーザーが自由に使用しても問題がない番号が49152番から65535番です。
有名なポート番号は以下のように定められています。

20(TCP)…ftp-data:ファイル転送(データ本体)
21(TCP)…ftp:ファイル転送(コントロール)
22(TCP)…ssh:リモートログイン(セキュア)
53(TCP/UDP)…domain:DNS
67(UDP)…BOOT/DHCP Server:IPアドレスの自動取得
68(UDP)…BOOT/DHCP Client:IPアドレスの自動取得
80(TCP)…http:www
110(TCP)…pop3:メール受信

ポートスキャンは本来であればネットワーク管理者がポート管理を行うために行われるものです。
それらを悪用し、コンピュータを攻撃するための下準備として、ポートスキャンを行うことがあります。

攻撃の前兆となるポートスキャンとは

ポートスキャンとはIT用語の一つで、ネット機器やシステムに信号を送り、接続が可能なポートを探り当てる行為を意味します。ポートスキャン自体には問題がありませんが、使い方によっては犯罪行為として扱われます。
ポートスキャンを自分たちのサービスへ行うのではなく、外部のサービスに対して行うことでサイバー攻撃としてみなされます。

万が一意図しない外部からポートスキャンを受けていると気がついた場合は、攻撃の準備をしていると考え対策を取るようにしましょう。

オンラインサービスを提供する企業の担当者であれば、リアルタイム監視や不正侵入防止に関する対応を考えることが理想的です。

次の段階としての攻撃に移行しないか注視する必要があります。ポートスキャン攻撃とは、攻撃できる相手を絞り込む作業のようなものと考えられます。
例えば、空き巣犯が家に人がいないかインターホンを鳴らして確認するといったイメージです。

ポートスキャンの種類

ポートスキャンはターゲットに信号を送り込むことで、攻撃できる目標を探し当てます。どのような仕組みで選別しているのかご存知でしょうか?
ポートスキャンは送信するパケットの種類によって、返すパケットの種類が決められています。返ってくる反応をみることで、サービス稼働状況を判断することができます。
代表的なポートスキャンについて、いくつか紹介します。

TCPスキャン

標的ポートに接続し、3ウェイハンドシェイクのシーケンスを実行します。
通信が確立されるため、ログに残りやすいスキャン方法です。

SYNスキャン

完全なTCP接続を行わないスキャン手法で、「ハーフオープンスキャン」や「ステルススキャン」とも呼ばれています。接続するかわりにSYNパケットを標的のポートに送信して、標的ポートからSYN/ACKを受信した場合はサービス稼働が稼働している状態。標的ポートからリセット(RST/ACK)を受信した場合のポートはサービス非可動状態となります。(RSTとは接続を中断・拒否する際に送られるパケットです。)

FINスキャン

標的にFINパケット(接続終了)を送信するスキャン手法です。FINパケットが送信されたホストはクローズした全てのポートにRSTを送り返します。よって、RSTが返ったら標的サービスは稼働していると判断できます。

クリスマスツリースキャン

標的ポートに、FIN、URG(緊急確認)、PUSH(プッシュ)パケットを送信するスキャン手法です。
標的サービスが稼働してなければRSTパケットを返しますが、稼働していれば何も返ってきません。

NULLスキャン

全てのフラグを”0″にするスキャン手法です。
標的サービスが稼働してなければRSTパケットを返しますが、稼働していれば何も返ってきません。

ポートスキャン攻撃とは、以上のスキャン方法を組み合わせて、セキュリティ対策を施してあるシステムの綻びを見つけ出そうとしていると認識することが重要です。

UDPスキャン

UDPで待ち受けているサービスの状態を判断するためのスキャンです。
標的ポートにUDPパケットを送信し、標的ポートが “ICMP port unreachable” というメッセージで応答したポートがなければ稼動していることがわかります。稼働していない場合は何も返ってきません。

ポートスキャンの検知と対処方法とは?

自動的にポートスキャンが発生した場合、ファイアーウォールのログを確認すると、短時間に遮断ログが記録されます。インターネットルータでは、ポートスキャン攻撃として、警告のログを残す場合もあるでしょう。

このような場合、意図的にポートスキャンしたのではないのであれば、対処として、該当の通信元を洗い出し、ファイアーウォールにその通信元からのみの通信を拒否する設定を追加します。

なお、IDS/IPSを導入している場合は、通信内容から不審な通信であると判断して検知するので、すぐに対処できますし、WAFを導入すれば遮断することも可能です。

対策はポートスキャンから攻撃に進展する前に

判明している脆弱性に対して対策しておくことが第一です。
既知の脆弱性に対しては、修正プログラムとしてセキュリティパッチが配布されています。
そのためには、まずセキュリティパッチは確実に適用しておくこと、加えてIDS/IPS、WAFといった製品を導入し、それぞれに適応した脆弱性攻撃に対策しておきましょう。

次に、不要なサービスが起動していないか定期的に確認しておきます。
定期的に実施するのは、誤操作で不要なサービスを起動してしまう可能性があるためです。
確認の方法としては、例えば、サーバ上でnetstatコマンドを実行すると、”Listen”(待ち受け)状態になっているポートを確認することができます。そのポートに対するサービスが不要であればそのサービスを停止しておきます。
さらに、そのサービスが自動起動になっている場合があるので、その点も確認します。

ポートスキャンによってさらなる攻撃を受けないためにも、対策を怠らず万が一の時のためにも準備をしておくことが大切です。