【入門編】 ポート21(FTP)およびポート20におけるデータ流出の経路制御 – サイバーセキュリティとプライバシー保護実践ガイド

こんにちは!ネットワークの深淵から最新のセキュリティトレンドまで、皆さんに「生きた技術」をお届けする技術メディア主筆のライターです。

「ゼロトラスト」や「クラウドネイティブ」といったキラキラした言葉が飛び交う昨今ですが、実はサイバー攻撃の世界では、古くからある「枯れた技術」が今なお猛威を振るっています。その筆頭が、ファイル転送の老舗プロトコルであるFTP(File Transfer Protocol)です。

「今どきFTPなんて使うの?」と思われるかもしれません。しかし、攻撃者は私たちが油断している「裏口」を狙う天才です。今回は、ポート21と20という、ネットワークの古典的な仕組みを悪用したデータ流出のカラクリと、それを食い止めるための「防波堤」の作り方を、郵便配達の仕組みに例えて丁寧に紐解いていきましょう。

—

1. ポート21と20:二つの窓口を持つ「郵便局」

まず、FTPという仕組みを理解するために、街の郵便局をイメージしてみてください。

普通の通信(例えばWebサイトを見るHTTPなど)は、一つの窓口で「お願い」も「荷物の受け渡し」も完結します。しかし、FTPはちょっと変わっていて、「二つの窓口」を使い分けます。

  • ポート21(制御用): 「これからファイルを送りますよ」「名前はこれですよ」といった命令(コマンド)をやり取りする受付窓口です。
  • ポート20(データ用): 実際に大きな荷物(ファイルの中身)が運び出される搬出口です。

この「命令と荷物が別々の道を通る」という仕組みが、実はセキュリティを考える上で非常に重要なポイントになります。

—

2. なぜ攻撃者は「FTP」を悪用するのか?

マルウェア(悪意のあるプログラム)がパソコンやサーバーに侵入したあと、彼らが最後に行う「仕上げ」は何でしょうか? それは、盗み出した機密情報を自分の手元(C2サーバー:指令サーバー)へ送り出すことです。

ここで、攻撃者がなぜわざわざ古いFTPを使うのか、その理由は主に3つあります。

1. 仕組みがシンプル: 複雑な暗号化の手間を省き、確実に大量のデータを送り出せる。
2. 監視の目をすり抜ける: Webの通信(80や443)は厳しく監視されていても、古いシステムの保守用に開けっぱなしにされた21番ポートは見逃されていることが多い。
3. 「正規の通信」に化けやすい: 会社の中で業務用のファイル転送が行われていれば、その中に紛れ込むことで怪しまれずに済みます。

—

3. パケットの動きを監視する:泥棒が荷物を運び出す瞬間を捉える

では、私たちはどのようにしてこの「情報の持ち出し」に気づけばよいのでしょうか。

一番のポイントは、「外の世界に向かって(アウトバウンド)、突然ポート21で話し始めた通信」をキャッチすることです。通常のサーバー運用であれば、外部の知らないサーバーにFTPで接続しに行くことは滅多にありません。

例えば、ネットワークの境界線にある監視装置(IDS/IPS)で、以下のような動きがないか目を光らせます。

  • 不自然な「USER」や「PASS」: 外部の怪しいIPアドレスに対して、ログインを試行している。
  • 大量の「STOR」コマンド: STORは「ファイルを保存(送信)せよ」という命令です。これが大量に流れていたら、まさに今、データが運び出されている真っ最中かもしれません。

—

4. 実践:ネットワークの「門番」を立てる設定例

理屈がわかったところで、実際にどのようにしてこの通信を制限すればいいのか、具体的な設定例を見ていきましょう。ここでは、多くのLinuxサーバーで使われているiptables(ファイアウォール)を使って、「許可していない外部へのFTP送信を禁止する」設定を考えてみます。

一歩ずつ、コマンドの意味を理解していきましょうね。

# 1. まずは基本ルール:外に出ていく通信(OUTPUT)を原則「通さない(DROP)」と想定します
# (※運用中のサーバーでいきなりやると通信が止まるので、これは考え方の基本です)

# 2. 信頼できる特定のバックアップ先(例: 192.168.100.50)へのFTP通信だけを許可する
# ポート 21 (制御用) を許可
iptables -A OUTPUT -p tcp -d 192.168.100.50 --dport 21 -j ACCEPT -m comment --comment "許可されたバックアップ先への制御通信"

# 3. データの通り道(コネクション追跡機能)を利用して、やり取りが始まった後のデータ転送を許可する
# これにより、ポート 20 などの動的なデータ転送がスムーズに行えます
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -m comment --comment "既に確立された通信の継続を許可"

# 4. 【重要】それ以外の「外の世界」へのポート 21 送信をすべてログに残して遮断する
# 誰がどこに送ろうとしたかを記録することで、後で調査ができます
iptables -A OUTPUT -p tcp --dport 21 -j LOG --log-prefix "FTP_OUT_DENIED: "
iptables -A OUTPUT -p tcp --dport 21 -j REJECT -m comment --comment "未許可の外部へのFTP送信を拒否"

この設定の肝は、「ログを記録する(LOG)」ことと、「特定の相手以外には背を向ける(REJECT)」ことです。これにより、もしマルウェアがデータを外に送ろうとしても、門番が「ちょっと待った!」と止めてくれるわけです。

—

5. より高度な守り:次世代ファイアウォールの役割

最近の高度なネットワーク機器(次世代ファイアウォールやWAF)では、単にポート番号を見るだけでなく、「その通信の中身が本当に正しい手順を踏んでいるか」までチェックしてくれます。

これを「ディープ・パケット・インスペクション(DPI)」と呼びます。
例えば、「ポート21を使っているけれど、中身を解析したらFTPのフリをした別の悪意ある通信だった」というケースも見抜くことができるのです。

初学者の皆さんは、まず「出口対策(エグレス・フィルタリング)」という言葉を覚えて帰ってください。家の中に泥棒に入らせない(入口対策)のも大事ですが、「泥棒が宝物を持って外に出られないようにする(出口対策)」ことが、被害を最小限に抑える鍵になります。

—

結びに:一歩ずつ、堅牢な城を築きましょう

ポート21と20という、古くからある窓口。そこには、インターネットが誕生した頃の「善意」に基づく設計が残っています。しかし、その善意を逆手に取るのが現代のサイバー攻撃です。

1. 不要なポートは閉じる。
2. 外へ向かう通信を監視する。
3. 「いつもと違う」動きをログから見つけ出す。

この3ステップを意識するだけで、あなたの管理するネットワークの安全性はぐっと高まります。

難しい用語に圧倒されそうになったら、いつでも「郵便局の窓口」を思い出してください。パケットの一つひとつは、誰かがどこかへ届けようとしている大切な、あるいは危険な「お手紙」なのです。

これからも、一歩ずつ一緒に学んでいきましょう。ネットワークの世界は、知れば知るほど面白い発見に満ちていますから!

コメント

タイトルとURLをコピーしました