ポートスキャンは攻撃のための調査方法|その種類と対策について
インターネットに知見がある方なら、もしかしたら「ポート」という言葉を聞いたことがあるかもしれません。 このポートをスキャンする行為、「ポートスキャン」は、管理者が、ポートが通信可能なものか把握するための手段ですが、これを逆手に取り、攻撃者がターゲットのOSやサービスのバージョンを把握する、サイバー攻撃の「事前調査」として悪用されているケースも少なくありません。 不用意にポートを空けておけば、サイバー攻撃の標的にされやすく注意が必要です。 本記事では、ポートスキャンの概要、ポートスキャンからサーバ攻撃に至るまでの流れ、ポートスキャンの対策を解説します。
目次
ポートスキャンとは?

ポートスキャンの前に、まず簡単にポートについて説明します。 ポートは「パソコン等の周辺機器が外部とデータ通信をする出入口」を指します。 事前にポートにはポート番号が割り当てられており、この番号を元に通信元と通信先との間で送受信が行われます。
攻撃者は、「nmap」やGUI版オープンソース「Zenmap」といったポートスキャナ―を使い、サーバやネットワーク機器の各ポートに対し通信をし、戻ってきたリアクションから、ポートの開閉をはじめ、サービスやバージョンなどを特定します。 この行為を「ポートスキャン」と呼んでいます。 不要なポートスキャンはもちろん、ましてや得た情報を悪用しサイバー攻撃を行うことは、明らかな犯罪行為となります。
近年、海外のハッカー集団がポートスキャンをすることが増加しています。 狙う対象は汎用的なサービスから特定機器のみで動作するサービスに移行しています。 例えば、ホームルーターやウェブカメラが挙げられます。 これらの機器はライフサイクルが長くメンテナンスを怠りがちなため、サイバー攻撃の対象になりやすいことが指摘されています。
このような傾向を踏まえて、総務省と国立研究開発法人情報通信研究機構(NICT)は2019年2月から対象機器のユーザーに注意を促すプロジェクト「NOTICE(National Operation Towards IoT Clean Environment)」を実施しています。 国内にあるIPv4のグローバルIPアドレスにポートスキャンを行い、具体的には容易に推測されやすいIDやパスワードを対象機器(ルータ、ウェブカメラ、センサーなど)に入力、セキュリティ面で脆弱な機器を特定します。 特定できたらバナー情報などを取得し、プロバイダへ通知します。 プロバイダはNICTから受け取った情報を対象機器のユーザーに送り注意喚起します。
それに伴い、NOTICEの業務開始に先駆ける形で、2018年11月に「電気通信事業法及び国立研究開発法人情報通信研究機構法の一部を改正する法律」が5年間の時限措置で施行されています。
また、NOTICEの活動を騙る詐欺行為も横行しています。 費用の請求やパスワードを聞き出されても教えずに、すぐにNOTICEまたは総務省に被害報告をしましょう。
ポートスキャンによって得られる情報



ポートスキャンでは、どのような情報が得られるのでしょうか?

対象となるポートがアクティブなホストにより利用可能か否かを判別できます。 まず、ポートスキャンをすると、対象ポートを以下の3つに分類できます。
さらにポートスキャンにより以下の情報が得られます。
この他にもポートスキャンの方法によって、様々な情報が入手できます。 これらの情報から、ターゲットのOSや利用デバイスを状況を把握し、攻撃の手がかりとします。
ポートとは一体どういうもの?
ポートについて、もう少し詳しく解説します。 前述したように、ポートはパソコンなどの機器とネットワークとが通じる出入口です。 ポート番号は0番から65535番まで存在し、通信の目的別に割り振られています。 例えば、一般的にはメールの受信は110番や143番、送信は25番です。 インターネットに接続されている機器は各ポートを通じて通信を行います。 パソコンはもちろん、ウェブカメラやインターネットを利用したセンサーも含まれます。
ピンと来ない方は、会社にある部屋の扉を想像するといいでしょう。 ポートが開いている状態は特定の部屋の扉が開いている状態と似ています。 セキュリティ面から考えると、不必要な部屋の扉は鍵をかけるべきです。 それと同じく基本的に不必要なポートは開かないように設定することがセキュリティ上重要です。
代表的なポート番号とその役割
それでは、どの番号でどのようなプロトコル(通信規約)が使われているのでしょうか。 代表的なものは以下の通りです。
代表的なプロトコル |
TCP20:FTP(データ) |
TCP21:FTP(制御) |
TCP22:SSH(セキュアログイン) |
TCP23:Telnet(接続機器の遠隔操作) |
TCP25:SMTP(メール送信) |
UDP53:DNS(ドメインの名前解決) |
UDP67:DHCP(IPアドレス割当[サーバ側]) |
UDP68:DHCP(IPアドレス割当[クライアント]) |
TCP80:HTTP |
TCP110:POP3(メールを受信) |
UDP123:NTP(時刻同期・調整) |
TCP443:HTTPS |
WELL KNOWN PORT NUMBERS:0~1023 |
0~1023までは「ウェルノウンポート番号」と呼ばれ「メジャーなサービスやプロトコル用に予約されているポート」を意味します。 これらの番号はIANA(Internet Assigned Number Authority)が管理しており、各プロトコル・サービスを利用するために、あらかじめ割り当てられているものです。 1024番~49151番は「登録済みポート番号」と呼ばれ、特定のアプリケーションで使われています。 こちらもIANAが管理していますが、IANAに登録されていない番号もあります。
49152番~65535番はユーザーが自由に扱えるポート番号です。 IANAに登録する必要もありません。 設定ファイルを編集することで待受のポート番号を変えることもできます。 ポート番号を暗記する必要はありませんが、よく利用するポート番号を覚えておくと原因調査の時間を短縮できます。
ポートスキャンの仕組み
一般的に、ポートスキャンはサーバに対してパケットを送信することからスタートします。 サーバから返却されるパケットは送信するパケットの種類に応じて決められています。 返答を分析することで、ターゲットにしているサービスなどを調査できます。 ポートスキャンには様々な種類が存在します。

TCPスキャン
TCPスキャンの場合は「スリーウェイハンドシェイク」と呼ばれる接続方法を利用します。 スリーウェイハンドシェイクとは他者とTCP通信する際に3回のやり取りをして接続する方法です。 きちんと通信が確立されるため、ログ(痕跡)が残りやすい方法として知られています。
SYNスキャン
完全なTCP接続を行わない方法がSYNスキャンです。 「ハーフオープンスキャン」や「ステルススキャン」とも呼ばれています。 まず、SYNパケットを標的のポートに送信します。 TCPスキャンと同じく対象サーバがオープン(サービスが起動)ならSYN+ACKパケット、クローズならRST+ACKパケットが返ってきます。
FINスキャン
標的となるポートに「接続終了」を意味するFINスキャンを送信する方法です。 スキャンされた対象サーバのポートがオープンなら対象のサーバは、接続の中断・拒否を意味するRSTを返します。
クリスマスツリースキャン
標的となるポートにFIN、緊急確認を意味するURG、PUSHパケットを送信する方法です。 対象サーバがオープンなら何も返ってきません。 クローズならRSTパケットが返ってきます。
NULLスキャン
標的となるポートに何のフラグも立てないパケットを送信する方法です。 対象サーバがオープンなら何も返ってきません。 クローズならRSTパケットが返ってきます。
UDPスキャン
UDPはTCPと根本的に異なり、一方的に通信する方法です。 UDPスキャンではUDPで待ち受けているサービス状態を判断するために行います。 標的となるポートにUDPパケットを送信し、オープンであれば、何も返らず、クローズならICMP port unreachableが返ってきます。
ポートスキャン攻撃によってもたらされる被害

ポートスキャンをされると、具体的にどのような実害があるのでしょうか? 前述したように、ポートスキャンはあくまで「事前調査」のため、直接的な被害を受けることはありません。 ただ、ポートスキャンで見つかった脆弱性を悪用し、以下のような被害が発生します。
個人情報や機密情報の漏えい
最もわかりやすい被害例は、公開サーバ内にある情報が盗み出されることです。 もし機密情報が盗まれたら重大な事態に発展する可能性もあります。 過去には、ポートスキャンされたのをきっかけに、情報漏えいの被害にあった事例もあります。
システムやWebサイトの乗っ取り・不正侵入
ポートスキャンによって、脆弱性が発見され、システムが乗っ取られるかもしれません。 当然ですが、システムは所有者もしくは管理者がコントロールする権限を持っています。 しかし、マルウェアなどによりシステムをコントロールする権限が奪われると、システムの乗っ取りに発展します。 実際に監視カメラが乗っ取られ、映像データが収奪、改ざんされた上で機能が停止させられた事案も発生しています。 また、アメリカでは医療機関にある胎児モニタ装置へのマルウェア感染が確認された例もあります。 幸いなことに大きな被害はありませんでしたが、人命に関わる重大な事態になりかねません。 最近は仮想通貨のマイニングに利用され、パソコンに高い負荷をかけさせた事例もあります。
重要データの消失やシステムのクラッキング
システムの乗っ取りだけでなく、データやシステムそのものがクラッキングされる恐れもあります。 バックアップをとっていないデータは永久に戻ってきません。 仮にバックアップしても、データ復旧には多大な歳月と労力を要するしょう。
上に挙げたようなポートスキャンの被害は、企業に限ったことではなく、個人ユーザーも決して無関係な話ではありません。 個人のデバイスもポートスキャンにより脆弱性が暴かれ、攻撃対象になる可能性は十分にありえます。
また、一度ポートスキャンが成功すると、再犯率は高くなります。 攻撃者は攻撃に成功したIPアドレスを記録していると言われているからです。 ターゲットリストが攻撃者の間で共有されていることも十分に考えられます。
ポートスキャンを検知する方法・対策

さきほど紹介した、ポートスキャンの被害に遭わないためにも、今から紹介するポートスキャンを検知する方法や対策を講じていきましょう。
使っていないポートを閉じる
まず、使っていない不要なポートは閉じましょう。 特に、注意すべきポート番号が、137番(NetBIOS Name Service)、138番(NetBIOS Datagram Service)です。 NetBIOSでは、他のコンピューターにアクセスできたり、ネットワークに接続しているデバイス一覧を表示することができるため、非常に便利ですが、これらの情報を外部に公開する必要はまったくなく、むしろハッキングの危険性を高めてしまいます。
また、Windowsの利用で使われるTCP/UDPの135番,139番,445番には、さきほどの137番、139番と合わせ脆弱性が指摘されており、過去に攻撃対象となっています。
UNIXやMacOS、Linuxなどを使用している場合は、79番と111番のポートを使用するサービスに脆弱性が指摘されているため、ポート開放が推奨されていません。
セキュリティソフトの導入
基本的なことですが、パーソナルファイアウォールなどのセキュリティソフトを導入しましょう。 ファイアウォールでは、ソフトウェアが外部と許可なく通信しないよう、ポートを制御します。 非常に安全ではあるものの、頻用するソフトウェアを使うたびに許可をする必要があったりと、「おせっかい」な面もあります。 Windowsでは初期状態でオンになっていますが、Macの場合はオフの設定になっているので注意しましょう。
もちろん、市販のセキュリティソフトにもファイアウォール機能が標準装備されています。 ファイアウォールを有効にすることはもちろん、定期的に最新の状態に保っていることをチェックしましょう。
OSやソフトウェアの定期的なアップデート
忘れがちですが、OSやソフトウェアのアップデートも重要です。 攻撃者は、ポートスキャンを通じてOSやブラウザ、ソフトウェアの脆弱性を探索します。 OSやアプリの開発元は、脆弱性を発見したら、それらの問題を修正するセキュリティパッチを発行しています。 定期的に通知される、OSやソフトウェアのアップデートの通知を放置せず、対応しましょう。
不正侵入検知システム(IDS)の導入
不正侵入検知システム(IDS)の導入も検討しましょう。 IDSはOSやミドルウェアレベルのセキュリティシステムで、ファイアウォールを補完します。 ファイアウォールが許可した通信を監視し、ポートスキャンはもちろん、DDoS攻撃などの兆候も検知します。 なお、IDSは設置方法によりネットワーク型(NIDS)とホスト型(HIDS)に分かれます。 ネットワーク型は通信経路に別機器の形で設置されます。 一方、ホスト型はサーバに直接インストールし、対象のサーバを保護します。
IDSと同じく不正アクセスを検知するシステムとしてIPS(不正侵入防止システム)があります。 IDSは不正な通信を検知すると管理者に通知します。 一方、IPSは通信そのものを遮断します。
まとめ

ポートスキャンは、管理者がサーバの通信状況を確認する場合と、サーバ攻撃などの事前調査として悪用される場合、2つの側面を持っています。 サーバ攻撃などで個人情報の漏えいやDDoS攻撃に利用されることを考えれば、ポートスキャンを水際で防ぐことが大切です。
そのためには、パーソナルファイアウォールやセキュリティソフトの導入を始めましょう。 しかし、導入したからと言って放置してはいけません。最新の状態に保っておくこともポートスキャンを防ぐ上で大切です。 これは、普段使っているOSやアプリ、ソフトウェアにも同じことが言えます。
ポートスキャンからのサーバ攻撃は企業だけでなく個人にとっても脅威です。 「自分には関係ない」と思わずに、当事者意識を持って行動することが重要です。 この記事を読んだら、サーバのみならず、インターネットを利用するすべての機器のセキュリティをチェックすることをおすすめします。