セキュリティ診断ではまず、利用しているサーバーを洗い出し、優先度を基にセキュリティ診断の対象となるサーバーを決める。次にやるべきは、セキュリティ診断の実行対象となる、稼働サービスの調査だ。ここでは、稼働サービスを調べるためのポートスキャンについて学ぼう。

*   *   *

 若葉イロハが、先輩の吉野さんに作業の結果を報告している。

若葉:公開サーバーの一覧作成とセキュリティ診断の優先度付けが終わりました。外部公開サーバーが多くてびっくりしました!

吉野:資産管理台帳から漏れているサーバーもいくつかあったね。では次に、診断対象サーバーにポートスキャンしてみようか。

若葉:ポートスキャン?

*   *   *

 公開サーバーへの攻撃は、サーバー上で稼働するサービスに対して行われる。この稼働サービスを洗い出すのがポートスキャンだ。例えると、泥棒が侵入しようとする家の複数のドア(=ポート)を順番にノックして、開いているドアを探すイメージだ。実際の攻撃も、ポートスキャンを足掛かりにすることが多い。攻撃者は見つけたオープンポートに対して、サーバーの乗っ取りやDoS攻撃などを試みる。

稼働しているサービスをポートスキャンで探す
稼働しているサービスをポートスキャンで探す
セキュリティ診断で潜在的な脆弱性を見つける前に、サーバーで稼働しているサービスを洗い出すのがポートスキャン。入り口のドア(=ポート)を一つずつノックして探るイメージだ。サーバー診断では、サーバーの稼働状況を把握するための基本作業だ。
[画像のクリックで拡大表示]

想定外のオープンポートを調べる

 サーバー診断では、攻撃で狙われやすいサービスが公開されていないかを調べるためにポートスキャンを実施する。サーバーの運用上は必要ないはずのポートが、構築作業やメンテナンス作業でオープンになって、そのまま放置されているのはよくある話だ。最悪のケースとしては、サーバーが攻撃者に乗っ取られ、仕掛けられたバックドアのオープンポートが見つかることもある。

 ポートスキャンを含むサーバー診断は、診断を実行するパソコンと診断対象のサーバーの間のネットワーク環境によって、結果が変わる。同一ネットワーク内なら、サーバー単体のスキャン結果が得られる。しかし社内からデータセンターの診断対象にポートスキャンすると、間にあるファイアウオールによって、いくつものポートが遮断された結果になる。

 サーバー自体の脆弱性を漏れなく探すためには、データセンターやクラウドのネットワーク内に診断用のパソコンを用意してスキャンする。一方、外部から侵入可能な脆弱性を見つける目的なら、データセンターやクラウドのファイアウオール越しに診断すればよい。社内のファイアウオールでポートを遮断しないようにして診断する。

▼稼働するサービスに対して行われる
稼働していないサービスは外部からアクセスできないため、攻撃対象にならない。
▼ポート
サーバーでサービスを提供するときの送受信に使われるもの。ポートには番号が割り振られていて、サービスごとに番号が異なる。例えばHTTPサービスには、一般的に80番ポートを利用する。
▼オープンポート
サービスを提供するためにサーバーが外部に公開しているポート。
▼DoS攻撃
大量の接続要求を送ったり脆弱性を悪用したりして、サービス停止を狙う攻撃。DoSはDenial of Serviceの略。
▼バックドア
直訳すると「裏口」。攻撃者が侵入した後に、再度侵入したり不正操作をしたりするための口。