ESET/マルウェア情報局

サイバー攻撃の事前準備として使われるポートスキャンとは?

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「マルウェア情報局」に掲載された「サイバー攻撃の侵入先を探し出すポートスキャンとは?」を再編集したものです。

 サイバー攻撃者が、攻撃先を探すために行うのがポートスキャンである。ポートスキャン自体は、サーバーなどに対して稼働しているサービスを探り、開放されているポートを調べる行為で違法なものではない。しかし、攻撃の事前準備として行われることが多いため、日常から適切な対処が必要だ。この記事では、ポートスキャンについての基礎知識と対処方法を解説する。

サイバー攻撃の前段階として始まるポートスキャン

 サイバー攻撃の手口は年々巧妙化しているが、システムの脆弱性を突くのが攻撃の基本となる。その脆弱性を見つけ出すためにポートスキャンは使われる。主に、サーバーを対象に外部からパケットを各ポートに対して順に送信し、その応答によってどのようなサービスが稼働しているのか、あるいはどのポートが空いているのか、サーバーのOSの種類やバージョンなどを調査するのがポートスキャンという行為だ。

 例えば、空いているポートがわかれば、そのポートを侵入経路として利用することができる。サーバーのOSやバージョンがわかれば、OSに依存する脆弱性を突くことができる。そのため、ポートスキャンは、サイバー攻撃の前段階、準備段階として行われることも多い。また、ポートを流れるパケットを盗聴することで、通信内容の把握、脆弱性の検出といったことも可能となる。管理しているサーバーがポートスキャンの対象となっていることが発覚したら、速やかに適切な対処をすべきである。

ポートの種類

 ポートとは、サーバーが通信を行うための「窓口」のようなもので、それぞれ番号によって管理されている。Webやメールなど、広く利用されているサービスでは、利用するポート番号が決められていることが多い。代表的なポート番号は以下の通りだ。

25番 メールの送信(SMTP)
80番 Webページを公開するためのHTTPサービス
110番 メールの受信(POP3)
443番 暗号化によるWebページを公開するためのHTTPSサービス

 したがって、そのサーバーで開いている(有効になっている)ポート番号がわかれば、稼働しているサービスも推測できることになる。例えば、ポート25番が開いていればメール送信用のサービス(SMTP)の稼働、ポート80番が開いていればWebサーバーの稼働が推測される。その開いているポートを探る手段が、ポートスキャンである。

ポートスキャンによる被害例

 ポートスキャン自体は、サーバーなどに対して稼働しているサービスを探る手段であり、これ自体は危険性や違法性を伴うものではない。サービスを設定する際の手順の一つとして、ポートスキャンを行うようなものもある。しかし、前述したようにサイバー攻撃の事前準備の段階で、ポートスキャンが行われることが多い。ポートスキャンにより、システムの脆弱性が検出されると、以下のような被害につながる可能性がある。

 ・情報漏えい
 ポートスキャンで見つかったシステムの脆弱性を突いてシステムに侵入されると、内部の機密情報が盗み出される可能性がある。顧客情報などが盗み出され、ダークマーケットなどで売買されたりすると、企業にとって大きな損害になり、企業イメージが大きく損なわれかねない。

 ・マルウェアの感染
 ネットワークにマルウェアが侵入し、ネットワークに繋がっているサーバーやパソコン、スマートフォン(以下スマホ)などに感染が広がっていく。ランサムウェアなどの対処が難しいマルウェアが増えているため、マルウェアの感染によって、業務停滞による損失やマルウェアの駆除、業務復旧にかかるコストは軽視できない。

 ・システムのハッキング
 ポートスキャンで見つかった脆弱性を突かれ、システム全体を乗っ取られてしまう可能性もある。乗っ取りを受けると、攻撃者にとって無法地帯化する。その結果、制御が利かなくなり、機密情報の盗み出しやマルウェアの感染などにつながってしまう。

 ・踏み台/DDoS攻撃への加担
 システム内に潜入され、攻撃ツールが仕込まれることで、知らぬ間に攻撃者による他への攻撃に加担させられてしまう。意図せずとも攻撃者になることで、被害を受けた企業から損害賠償請求がなされる可能性もはらんでいる。

ポートスキャンの方法

 ポートスキャンは、各ポートに対して順番にパケットを送り、返ってくる応答を分析することで、サービスの稼働状況を判断するものだ。パケットとは、データを決まったサイズごとに分けて送る方法だが、パケットには特定のフラグがあり、そのフラグの状況でパケットの意味が変わってくる。

 例えば、TCPで通信を行う場合、まずクライアントからサーバーにSYNフラグが1になっているSYNパケット*1が送られる。次に、サーバーがその接続を受け入れる場合は、サーバーからクライアントにSYNフラグとACKフラグが1になっているSYN/ACKパケット*2が返される。最後にクライアントからサーバーに、ACKフラグが1になっているACKパケット*3を送ることで、TCPの通信が確立する。

 *1 SYNフラグが1になっているパケットであり、通信ができるか問い合わせるという意味
 *2 SYNフラグとACKフラグが1になっているパケットであり、SYNパケットに対して、通信可能であると返答するパケット
 *3 ACKフラグが1になっているパケットで、肯定したという意味

 したがってポートスキャンも、むやみにパケットを送っても意味がなく、このような特別なパケットを送る必要があるのだ。ポートスキャンにはさまざまな方法があるが、その中から代表的な4つの方法を紹介する。

 ・TCPスキャン
 最初にSYNパケットを送り、サーバーからSYN/ACKパケットが返ってきたら、ACKパケットを送る。この3ウェイハンドシェイク(SYN+SYN/ACK+ACK)が確立したときに、そのポートで通信が成立すると判断する。コネクションが確立するため、サーバーのログに記録される。

 ・SYNスキャン
 コネクションを確立しないでポートの稼働状態を確認する方法。SYNパケットのみを送信して、応答を確認する。SYN/ACKパケットが返ってきたときは、サービスが稼働していると判断し、RST/ACKパケット*4が返ってきたときは、サービスが非稼働であると判断する。

 *4 RSTフラグとACKフラグが1になっているパケットで、接続を拒否するという意味

 ・FINスキャン
 FINパケット*5を送信し、RSTパケット*6が返ってくるか調べる方法。RSTパケットが返ってきたら、そのポートは稼働していると判断し、何も返ってこなかった場合は、そのポートは稼働していないと判断する。

 *5 FINフラグが1になっているパケットで、接続を終了するという意味
 *6 RSTフラグが1になっているパケットで、接続を拒否するという意味

 ・NULLスキャン
 どのフラグも立っていないNULLパケット*7を送信し、RSTパケットが返ってくるか調べる方法。RSTパケットが返ってきたら、サービスが稼働していないと判断する(サービスが稼働しているときは、何も返ってこない)。

 *7 すべてのフラグが0になっているパケット

 ポートスキャンでは、こうしたスキャン方法を組み合わせることで、そのサーバーで稼働しているサービスやOSの種類を特定することができるのだ。

ポートスキャンを行うには

 ポートスキャンを行うには、専門的な知識は必要ない。ポートスキャンを自動的に行うツールがインターネット上に公開されているため、誰でも簡単にポートスキャンを行うことができる。また、Webブラウザーから利用できるポートスキャンサービスを提供しているところもある。

 ポートスキャン対策の第一歩として、自社のシステムのポートが不用意に公開されていないか、そうしたツールやサービスを使ってポートスキャンを行うことをおすすめする。自社のシステムに対し、外部からポートスキャンを行うことで、空いているポートや稼働しているサービスの情報が外部にどこまで漏れているのかを確認できるからだ。

ポートスキャンへの対策

 ポートスキャンへの基本的な対策は、不要なポートスキャンの検出および不要なポートを閉じることである。また、以下のようなツールの導入も有効となる。

 ・ファイアウォール
 ファイアウォールは、ポートを通過するパケットを監視し、外部からの攻撃を防御する。ファイアウォールを有効にすることで、ポートスキャンおよび外部からの攻撃を一定程度、守ることができる。また、通信ログが記録されるので、不要なポートスキャンが行われていないかチェックすることも可能となる。ただ、通信ログの監視には専門知識が必要とされる。そういったスキルを有する人材の確保が難しい場合、監視サービスなどアウトソースを利用することも頭に入れておきたい。

 ・IDS/IPS
 IDS(不正侵入検知システム)はネットワークに対する不正なアクセスをリアルタイムでチェックするためのツールであり、ポートスキャンなどの怪しいアクセスを検知後、管理者に即座に通知することができる。IPS(不正侵入防止システム)はIDSと似たツールだが、一歩進んで、ネットワークに怪しいアクセスがあれば、管理者へ通知するだけでなく、自動的にそのアクセスをブロックする。IDS・IPSは、ファイアウォールと併せて利用することで、不正アクセスの多くに対応できる。

 ・WAF
 WAFは、Web Application Firewallの略で、Webアプリケーションに特化したファイアウォールである。IDS/IPSは、ネットワークおよびサーバー全般をカバーするが、Webアプリケーションに対する攻撃の検出に関しては、専門ツールであるWAFのほうが優れていることが多い。例えば、SiteGuardは自動更新かつチューニング済みのパターンファイルを標準搭載し、高度なサイバー攻撃からWebサーバーを保護することが可能だ。

 ・セキュリティソフト
 最近の統合型セキュリティソフトのほとんどが、ファイアウォール機能を備えているため、専用のファイアウォールを導入しなくても、セキュリティソフトを導入すれば代替が可能である。

 不要なポートは、自社サービスの運用状況によっても変わるため、状況が変われば逐一チェックし直す必要がある。社内のセキュリティポリシーに組み込んでおくとよいだろう。また、サイバー攻撃対策の基本だが、既存の脆弱性をなくすために、最新の修正プログラムやセキュリティパッチを必ず適用しておくことも重要だ。

ポートスキャンについての正しい理解が対策に繋がる

 ポートスキャンを事前準備としたサイバー攻撃は、ここで解説したような対策が講じられていれば、被害を受ける可能性は低い。ゼロデイ攻撃やサプライチェーン攻撃といった、近年増えている高度なサイバー攻撃に比べると、ポートスキャンそのものはシンプルで基本的な手法であり、その対応も基本的なものが中心となる。

 しかし、基本的だからこそ油断しがちであり、サーバー製品をリプレースした際など、不要なポートが開いたままになっていることに気づかないこともあるだろう。定期的に、自社サーバーにポートスキャンをかけてみて、開いている不要なポートがないか、チェックすることを習慣化したい。セキュリティの基本は普遍的であり、正しい知識を持って基本的な対策を徹底することを心がけてほしい。