PR

 とある企業の情報システム部門。そこで元気一杯に働いているのが、ちょっと頼りない若手社員、通称「ネコSE」だ。セキュリティに関する豊富な知識を持つ「センパイ」に日々、鍛えられている。今回は、ネットワークで使われる「ポート」について、いろいろと突っ込んで考えてみた。

センパイ:猫瀬君、今、余裕あるかい?

ネコSE:はい、大丈夫です。

センパイ:サーバーやパソコンで不要なポートが開いてないか確認するので手伝ってもらいたいんだ。

ネコSE:ポ、ポート?

センパイ:どうしたんだい?

ネコSE:勇気を出して聞きますが、ポートが開いているというのは何のことなのでしょうか。

センパイ:なるほど。ポートを知らないのか。IPアドレスはよく住所に例えられるよね。同じように、ポートは建物の入口に例えることができるんだ(図1)。

ネコSE:おお、これはうちの本社ビルの地図ですね。はい、確かにいろいろな入口があります。

図1●ポートはいわば建物の入口
図1●ポートはいわば建物の入口
用途に応じて異なる入口を用意する。それぞれの入口には番号が付いている。
[画像のクリックで拡大表示]

センパイ:それぞれの入口に役割があり、必要に応じて利用できるようになっている。入口によっては、監視カメラで記録を取っていたり、IDカードやパスワードで認証したりしていることもあるね。

ネコSE:入口ごとに番号が付いていますね。

センパイ:そう。ポートには番号が付いているのが特徴なんだ。図2を見てほしい。この図では五つの入口のドアを開けているね。それぞれの入口には、Webアクセス用、FTP用といった役割がある。

図2●通信の内容に応じて異なるポートを使う
図2●通信の内容に応じて異なるポートを使う
用途ごとに異なる入口、すなわちポートをコンピュータに用意する。それぞれの入口には用途に応じた番号が付いている。ここに示したのは、WebとFTPの機能を持つサーバーの例。
[画像のクリックで拡大表示]

ネコSE:やっぱり番号が付いていますね。

センパイ:うん。Webにアクセスしてもらうには、80番のドアを開けておくんだ。これがつまりポートが開いている状態さ。

ネコSE:アクセスしてほしい扉を開けておくわけですか。

センパイ:ポートを開くことを、「開放する」「オープンする」と言うこともある。待ち受け状態になっているという意味でListenしているという言い方もあるよ(図3)。

図3●ポートを開いたり閉じたりする
図3●ポートを開いたり閉じたりする
個々の番号のポートは開けたり閉じたりできる。ポートが開いた状態では外部からの通信を待ち受けているため、「Listen」(聞く)と表現することもある。使わないポートを閉じておくことで、攻撃者がそのポートを使えなくなり、安全性が高まる。
[画像のクリックで拡大表示]

ネコSE:80とかの番号は勝手に決めていいんでしょうか?

センパイ:よく使われるものは、標準ポート番号として決められているよ。例えばWebアクセスならHTTPの標準ポートの80番を使うのが一般的だね(表1)。他の番号をわざわざ使うこともできるけど例外的だよ。

表1●ポート番号の例
ポート番号は、トランスポート層のプロトコルであるTCPまたはUDPと併記して表現することが多い。
表1●ポート番号の例
[画像のクリックで拡大表示]

攻撃者は開いたポートを狙う

ネコSE:ポートのイメージはわかりましたが、開いているポートを調べるのはなぜですか?

センパイ:どのポートが開いているかを調べることをポートスキャンと呼ぶ。こんなことをしたいのは誰だと思う?

ネコSE:どの入口が使えるか知りたい人ですか。

センパイ:その通り。でも、普通の人は自分が使いたいポートさえ使えればいいから、すべてのポートを調べたりはしない。そうしたことをしたい人は…。

ネコSE:システムに不正に侵入したい人だ!

センパイ:うん、システムを攻撃しようとする悪い人たちは、サーバーに対してポートスキャンを実施して、開いているポートを探す。開いているポートを不正に利用できそうなら、侵入したり破壊行為に及んだりするんだ。

ネコSE:むむー、悪者めー。

センパイ:攻撃者の気持ちで考えてみよう。ある企業を対象にポートスキャンを実施したら、FTPのポートであるTCPの20番と21番が開いていることを発見したとする。もし脆弱なパスワードしか設定されていなければ…。

ネコSE:あわわわ。

センパイ:うちの部署には、「他社とのやり取りのために、特定のポートを一定期間開けてほしい」という申請が来ることがあるよね。

ネコSE:確かにそんなやりとりを聞いたことがあります。申請制になっているんですね。

センパイ:申請を受けて開いたポートに外部から侵入されてしまったという話を聞いたことがある。申請で開いたポートがその後開いたままになっていないかどうか確認することが大切なんだ。