セキュリティ診断ではまず、利用しているサーバーを洗い出し、優先度を基にセキュリティ診断の対象となるサーバーを決める。次にやるべきは、セキュリティ診断の実行対象となる、稼働サービスの調査だ。ここでは、稼働サービスを調べるためのポートスキャンについて学ぼう。
* * *
若葉イロハが、先輩の吉野さんに作業の結果を報告している。
若葉:公開サーバーの一覧作成とセキュリティ診断の優先度付けが終わりました。外部公開サーバーが多くてびっくりしました!
吉野:資産管理台帳から漏れているサーバーもいくつかあったね。では次に、診断対象サーバーにポートスキャンしてみようか。
若葉:ポートスキャン?
* * *
公開サーバーへの攻撃は、サーバー上で稼働するサービスに対して行われる▼。この稼働サービスを洗い出すのがポート▼スキャンだ。例えると、泥棒が侵入しようとする家の複数のドア(=ポート)を順番にノックして、開いているドアを探すイメージだ。実際の攻撃も、ポートスキャンを足掛かりにすることが多い。攻撃者は見つけたオープンポート▼に対して、サーバーの乗っ取りやDoS攻撃▼などを試みる。
想定外のオープンポートを調べる
サーバー診断では、攻撃で狙われやすいサービスが公開されていないかを調べるためにポートスキャンを実施する。サーバーの運用上は必要ないはずのポートが、構築作業やメンテナンス作業でオープンになって、そのまま放置されているのはよくある話だ。最悪のケースとしては、サーバーが攻撃者に乗っ取られ、仕掛けられたバックドア▼のオープンポートが見つかることもある。
ポートスキャンを含むサーバー診断は、診断を実行するパソコンと診断対象のサーバーの間のネットワーク環境によって、結果が変わる。同一ネットワーク内なら、サーバー単体のスキャン結果が得られる。しかし社内からデータセンターの診断対象にポートスキャンすると、間にあるファイアウオールによって、いくつものポートが遮断された結果になる。
サーバー自体の脆弱性を漏れなく探すためには、データセンターやクラウドのネットワーク内に診断用のパソコンを用意してスキャンする。一方、外部から侵入可能な脆弱性を見つける目的なら、データセンターやクラウドのファイアウオール越しに診断すればよい。社内のファイアウオールでポートを遮断しないようにして診断する。
稼働していないサービスは外部からアクセスできないため、攻撃対象にならない。
サーバーでサービスを提供するときの送受信に使われるもの。ポートには番号が割り振られていて、サービスごとに番号が異なる。例えばHTTPサービスには、一般的に80番ポートを利用する。
サービスを提供するためにサーバーが外部に公開しているポート。
大量の接続要求を送ったり脆弱性を悪用したりして、サービス停止を狙う攻撃。DoSはDenial of Serviceの略。
直訳すると「裏口」。攻撃者が侵入した後に、再度侵入したり不正操作をしたりするための口。