前提
コネクトバック通信とは、内部ネットワークの端末が主体的に外部サーバーに接続する手法を一般的に表すものですが、この記事では特にサイバー攻撃を目的として行われるコネクトバック通信について書いています。
コネクトバック通信とは?
サイバー攻撃を目的として行われるコネクトバック通信(Reverse Connection / Reverse Shell) は、マルウェアなどに感染した内部ネットワークにある端末(被害者のPCなど)から、攻撃者のサーバーに対して接続を行う通信手法です。
通常、外部から内部ネットワークのマシンに直接接続すること(インバウンド通信)は、ファイアウォール(FW)やネットワーク設定によってブロックされます。
しかし、コネクトバック通信を利用すると、内部から外部への通信(アウトバンド通信)を経由して、攻撃者が内部マシンを遠隔操作できるようになります。
一般的なファイアウォールの動作
企業や個人のネットワークでは、FWが以下のようなルールで動作することが多いです。
内部から外部への通信(アウトバウンド通信)は許可
外部から内部への通信(インバウンド通信)は制限またはブロック
例えば:
- 内部PC → インターネット(Webサイト、API通信など) → 許可される
- 外部サーバー → 内部PC(リモートシェルやサーバーへの接続) → ブロックされる
これは、外部からの不正アクセスを防ぐための基本的なセキュリティ対策です。
※ 内部から外部への通信を許可する理由は、Web、メール、クラウドといった業務上必要となる外部との通信があるため
コネクトバック通信のしくみ
攻撃者がマルウェアに感染した内部ネットワーク内のマシンを遠隔操作したい場合、上記のようなFWの設定があると外部から直接アクセスできないため、SSHなどによる通常のリモート接続は使えません。
そこで、「感染した内部マシンが自ら攻撃者のサーバーに接続する」 ことで、FWのルールを回避します。
これがコネクトバック通信です。
具体的な手順
- 攻撃者のサーバーで待ち受け(リスナーを起動)
- 内部マシン(感染したPCなど)から攻撃者のサーバーに接続
→ 内部からのアウトバウンド通信なので、FWはブロックしない。 - 接続が確立されると、攻撃者はシェルを操作できる
→ これにより攻撃者はFWの内側に侵入し、内部マシンを自由に操作できる
対策
このような攻撃を防ぐためには、以下のような対策が有効のようです。
- そもそも内部PCなどがマルウェアに感染しないよう対策する
- 未許可の外部サーバーとの通信を禁止する
- ネットワークの通信ログを監視して異常な通信を検知する
まとめ
応用情報技術者試験の学習をしていて、コネクトバック通信に関する問題が出題されました。FWなどネットワークに関する知識があまりなく、コネクトバック通信を使うことでFWをすり抜けられる理屈を知りたくて調べてみました。
最後まで読んでくださりありがとうございました。