ポートスキャンとは?仕組みと種類、対策方法について徹底解説|サイバーセキュリティ.com

ポートスキャンとは?仕組みと種類、対策方法について徹底解説



ホームページの公開やメールの送受信など、サーバーが提供しているサービスには様々なものがあります。

ネットワーク通信を行うサービスには、通信を行うための「ポート」という窓口があり、これは番号で管理されています。例えば、ホームページをインターネットに公開するHTTPのサービスでは80番、メールの送信には587番など、よく知られたサービスは基本的に固定したポート番号が予め割り振られています。

サーバーがどのようなポートを開放してサービスを行っているのか、外部から調査する行為のことを「ポートスキャン」と言います。今回はポートスキャンの概要とその種類、そしてセキュリティ上の対策方法について紹介します。

ポートスキャンとは

ポートスキャンとは、ネットワークに接続されているサーバー上の稼働サービスを調査するために、外部から特定のデータを送信して、それに対応する応答を調べることです。得られた応答を分析することで、サーバーで動作しているサービスのバージョンやOSなどを特定できます。

ポートスキャンするためのツールとして、コマンドラインで動作する「nmap」やGUIで提供されている「Zenmap」などが有名です。ZenmapはnmapをGUIで使えるようにしてもので、日本語バージョンも公開されています。これらのツールは無料で使うことができます。

ポートスキャンを行うことで得られる情報

サーバーに対してポートスキャンを行うことで、以下のような情報を得ることができます。

  • 開いているポート番号
  • 閉じているポート番号
  • FW(ファイアウォール)によってフィルタリングされているポート情報
  • 開いているポートで稼働しているサービス(HTTPやFTP)の情報
  • 開いているポートのサービスに関する情報(バージョンなど)

ポート番号は0番から65535まで存在していますが、0から1023まではすでに稼働しているサービスに割り振られています。有名なポート番号としては、以下のように定められています。

20番 FTP(データ)
21番 FTP(制御)
22番 SSH
25番 SMTP
53番 DNS
80番 HTTP
110番 POP3
443番 HTTPS

これらはウェルノウンポート(Well-Known Port)番号と呼ばれ、ユーザーはオリジナルのサービスにこれらのポート番号を使うことはできません。

サーバーがどのサービスにどのポートを使っているかは、「Service Name and Transport Protocol Port Number Registry」を参照してください。

参照Service Name and Transport Protocol Port Number Registry

ポートスキャンとサイバー攻撃の関係

ポートスキャンはサーバーなどのネットワーク機器に対して、接続できるサービスを探り、解放されているポート番号を調べる行為です。つまりポートスキャン自体は問題ありません。しかしサイバー攻撃において、攻撃者はこれから行おうとしている攻撃のための調査として、ポートスキャンを行います。

もし自社で稼働しているサーバーに対して、ポートスキャンが行われていることに気づいたら、”サイバー攻撃の予兆”としてとらえ対策をとることが重要です。

ポートスキャンは”サイバー攻撃の予兆”とも言える

ポートスキャンは例えば、家の中にだれも人がいないこと確かめるために、インターフォンを鳴らして確認するようなイメージです。もし自宅にこのような行為が確認できたら、次は犯罪者が自宅に侵入してこないかどうか、注意するでしょう。

ポートスキャンも同様に、これ自体はサイバー攻撃ではなくても、これから被害が発生するかもしれないサイバー攻撃の予兆としてとらえることが重要です。

ツールを使用すれば簡単にポートスキャンができてしまう

先ほどポートスキャンができるツールとして「nmap」や「Zenmap」を紹介しました。これらのツールを使うことで簡単にポートスキャンができることも、ポートスキャンが簡単に行われる要因にもなっています。

そのため、攻撃に結びつかない興味本位のポートスキャンも存在します。しかしそのようなポートスキャンでも無視することは得策ではありません。

ポートスキャンの種類

ポートスキャンはサーバーに対してパケットと呼ばれるデータを送信して、攻撃の目標を探ります。送信されるパケットの種類に応じて、返却されるパケットの種類が決められています。返答された反応を分析することで、ターゲットで稼働しているサービスを調べること可能です。ポートスキャンの種類について、いくか紹介します。

TCPスキャン 3ウェイハンドシェイク(SYN + SYN/ACK + ACK)が確立したときに、そのポートで通信が成立すると判断します。コネクションが確立するため、サーバーのログに記録されます。
SYNスキャン コネクションを確立しないでポートの稼働状態を確認する方法です。完全な3ウェイハンドシェイクを確立しないため、ステルススキャンやハーフオープンスキャンともよばれます。
ポートに対してSYNパケットのみを送信して、応答を確認します。SYN/ACKを受信したときは、サービスは稼働していると判断し、RST/ACKを受信したときは、サービスが非稼働であると判断します。
FINスキャン FINパケットを送信し、RSTパケットを受信したら、そのポートは稼働していると判断します。もし何も帰ってこなかった場合は、そのポートは稼働していないと判断します。
クリスマスツリースキャン FIN、URG(緊急確認)、PUSHのフラグをセットしたパケットを送信します。ターゲットのサービスが稼働していない場合、RSTパケットが返ってきますが、サービスが稼働しているときは、何も帰ってきません。
NULLスキャン どのフラグも立っていないパケットを送信するポートスキャンです。ターゲットのサービスが稼働していない場合、RSTパケットが返ってきますが、サービスが稼働しているときは、何も帰ってきません。
UDPスキャン UDPを使ったポートスキャンです。ターゲットにUDPパケットを送信し、ICMP Port Unreachableメッセージ
が返ってこなければサービスは提供されていると判断します。UDPは通信相手への到達保障がなく、途中でICMPパケットをロスする可能性もあります。

ポートスキャンの検知、対策方法

もし運用しているサーバーにポートスキャンを検知したら、どうしたらよいのでしょうか。対策方法を3つ紹介します。

1. ファイアウォールのログを確認する

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

意図的なポートスキャンではない場合、対策としてポートスキャンの発信元を洗い出して、ファイアウォールの設定で、その通信元からの通信を遮断するように設定しましょう。

2. 脆弱性対策を行う

既知の脆弱性に対して日頃から対策を行っておくことも重要です。修正プログラムの適用を怠らないようにするだけではなく、IDS/IPSやWAFなどの製品も導入しましょう。

サーバーに不要なサービスが起動していないか定期にチェックすることも重要です。意図しないサービスが誤操作などによって起動している可能性もあるからです。サービスを提供しているサーバーで「netstat」コマンドを実行すると、開いているポートが確認できます。そのポートのサービスが不要でしたら、サービスを停止します。

また、サーバーの起動時に不要なサービスが自動的に立ち上がる設定になっていることがあるので、その点についてもしっかりと確認しましょう。

3. WAFを導入する

WAF(Web Application Firewall) の導入もおすすめです。WAFには様々なものがありますが、クラウド型のWAFはコストや手間をかけずに導入できます。クラウド型ですので、自前でハードウェアや仮想サーバーなどの用意をする必要があります。また自社ネットワーク外で動作するため、悪意のある通信が自社ネットワークの内側まで到達しないというメリットもあります。

WAFを導入する際は、機能や料金だけでなく、サポートの体制や実績も加味して、最適なものを選択しましょう。

まとめ

ポートスキャンの概要から、その種類、そして対策方法まで紹介してきました。ポートスキャンはツールを使うことで簡単に実行できるため、インターネット上で動作しているサーバーによっては、頻繁にポートスキャンのログが記録されていることもあるかもしれません。

運営しているサーバーに何度もポートスキャンの記録があっても、実際に攻撃されたことは、これまでなかったかもしれません。しかし、ポートスキャン自体は無害な行為でも、サイバー攻撃の準備段階として実行されることもあり、サービスの適切な運営のためには、無視できるものではありません。

まずはサーバーで不要なサービスが起動していないかチェックすることから始め、サーバーのアクセスログのチェックも丹念に行うなど、攻撃のきっかけとなる兆候に対して、シビアな目線でチェックすることが重要と言えるでしょう。


SNSでもご購読できます。