透明化はファンタジー小説に出てくるもののように聞こえるが、適切に実装すれば、コンピューター、ゲートウェイ、個々のPCを隠すために特定のファイアウォール技術、つまりポートノッキングやシングルパケット認証(SPA)を利用できる。
この技術の有効性は、従来のファンタジーにおける透明化の概念と多くの共通点があり、状況によって効果が高い場合も低い場合もある。
ここでは、ポートノッキングとSPAの仕組み、最適な利用場面、利用方法について説明する。
なぜサーバーを隠すのか?
攻撃者は攻撃の初期段階で、ネットワークの脆弱性をスキャンする。ネットワーク上で可視化されているデバイスをスキャンするために、nmapなどのツールやコマンドを使う。IPアドレスを返答するデバイスはすべて標的となり、攻撃者はそのデバイスについてさらに詳しく把握しようとする。
攻撃者はデバイスをスキャンして、開いているポートやOSの情報を調べ、IPアドレスに関連付けられたデバイスの種類(サーバー、PC、ネットワーク機器、周辺機器(プリンター、WiFi接続カメラなど))を特定する。
得られた情報によって、攻撃者が優先する対象と実行する手法の種類が決まる。例えば、サーバーのファイアウォールでポート23が開いている場合、Telnetプロトコルを悪用する攻撃に対して脆弱な可能性がある。
IPアドレスを分かりにくくすれば、攻撃者は隠されたデバイスを見落とすかもしれない。攻撃者がIPアドレスを知っていたとしても、開いているポートを隠せば、攻撃を遅らせたり、断念させたりできる。
関連記事:脆弱性管理ツールのおすすめ
ポートノッキングとSPAはどのようにサーバーを隠すのか?
ポートノッキングとシングルパケット認証(SPA)は、既存のセキュリティスタックに「難読化によるセキュリティ」を追加する。サーバーやゲートウェイがパケット要求に応答するには、まず認証を取得する必要があり、それまでは、通常ならアクティブなIPアドレスや開いているポートの存在を示す返信パケットをサーバーが「デフォルトで破棄」する。これにより、デバイスはネットワークスキャンから見えなくなる。
ポートノッキングでは、通信ポートを開くために、適切なプロトコルであらかじめ決められた順序のパケットが送信されるのを監視するデーモンを、管理者が設定する必要がある。例えば、ポート22でSSHプロトコルによる通信を開くために、TCPポート434、UDPポート6622、TCPポート22122へ128ビットのパケットを送信するという順序を設定できる。
パケットの順序をより複雑にすることで、セキュリティをさらに高められる。例えば、パケット間の特定の時間間隔、異なるパケット長、ノックを受け付ける特定のIP範囲などを指定できる。
同様にSPAでは、オープンソースのfwknopサービスなどをサーバーやゲートウェイにインストールし、特定の指示が含まれた暗号化されたパケットを待ち受ける。このサービスはパケットを復号して検査し、送信された単一の暗号化パケットに、通信に必要なプロトコルやポート番号など、必要な情報がすべて含まれている場合にのみ応答する。SPAはゼロトラストソリューションに組み込まれることが多い。
特定のIPアドレスとの通信が確立されると、そのIPアドレスから送信した送信元だけが認証され、他のIPアドレスからの不正な要求は引き続き破棄される。送信元に特定のソースポートを要求するなど、サーバーにルールを追加することで、SPAのセキュリティをさらに強化できる。
ポートノッキングとSPAの導入に伴うリスク
ポートノッキングやSPAは強力な技術だが、従来のセキュリティの代替ではなく、追加のレイヤーとしてのみ使用すべきだ。また、これらのデーモンが稼働し続けるようにするには、専門家によるセットアップも必要になる。
例えば、ポートノッキングのデーモンがクラッシュすると、正しいコードに対してもサーバーは応答しなくなる。必要に応じて再起動できるよう、別のデーモンでポートノッキングのデーモンを監視すべきだ。
さらに、これらの技術は、知られていないことによって最大の効果を発揮する。多くのデバイスで利用できるが、一般的に使われているデバイスでは優位性が失われる。
ファンタジーの世界で透明化した場合を想像すると分かりやすい。人がどれほど透明になっていても、誰もが虚空に話しかけ、そこへパケットを送り続けていれば、攻撃者にはそこに攻撃可能な何かが存在すると分かってしまう。
同様に、多数の異なるVPNサーバーでリモートデバイスが使うポートノッキングを利用すると、侵害されたユーザーデバイスによって防御が無効化される可能性が高まる。たった1回の誤クリックで、攻撃者はそのエンドポイントにアクセスでき、そこからサーバーのIPアドレス、場合によってはノックの要件まで抜き取られる可能性がある。
サーバーを隠すユースケース
ポートノッキングとSPAには、主に2つのユースケースがある。資産を隠すことと、攻撃時に時間を稼ぐことだ。
難読化
この技術が最も効果を発揮するのは、知られていないことが有利になる状況だ。価値が高い、利用頻度が低い、または特定の従業員グループだけがアクセスするデバイスでは、さらなる難読化を実現するソリューションが特に有効だ。
例を挙げよう。
- 郡保安官事務所のネットワーク上にある証拠保管サーバー
- 次のデータを保存するクラウドベースのデータサーバー:バックアップやセキュリティログファイル。
- 病院の画像診断部門で専用機器を稼働させているWindows XPデバイス
時間を稼ぐ
セキュリティ上の優位性の多くは難読化によって得られるが、ポートノッキングプロトコルやSPAは、より広く抑止策としても利用できる。例えば、内部のDNSサーバーが攻撃者にすぐ発見されることを受け入れる一方で、ユーザーが認証されるまでDNSポートにはDNSクエリにのみ応答させ、その他のコマンドはすべて破棄する、といった設定が可能だ。
攻撃者はサーバーを見つけられるかもしれないが、サーバーのロックを解除するために必要なプロトコルと手順を特定するという追加の障壁によって、より多くの時間を要する。その時間があれば、セキュリティチームが進行中の攻撃に気付いたり、攻撃者がより容易な標的を探しに行ったりする可能性が高まる。
セキュリティの組み合わせ
ポートノッキングとSPAは、他のセキュリティ対策と組み合わせることで、さらに強力になる。例えば、保安官事務所の証拠保管サーバーにSPAを実装するだけでなく、ハニーポットを「証拠保管サーバー」という名前で追加できる。
通常の攻撃スキャンでは隠されたサーバーを見逃し、ハニーポットに注目することになる。ハニーポットにサイバーセキュリティのアラートを設定すれば、基本的な監視でも誤ったサーバーを調べている人物を検知できる。攻撃者を抑止するには対応の速さが重要であり、この組み合わせによって早期警戒が可能になる。
透明化する時が来た?
ポートノッキングやSPAを実装する際の最大の障壁は、技術的な難しさだ。実装を誤ると、権限のないユーザーから見えなくするどころか、サーバーそのものにアクセスできなくしてしまう可能性がある。ユースケースが限られたソリューションとしては、失敗の代償が大きい。このリスクと、専門家による導入に必要な時間を考慮し、多くのIT管理者はこうした技術を見送っている。
しかし、ポートノッキングとSPAは、特定のシステムにセキュリティを追加し、ハニーポットの有効性を高めるうえで非常に有用な選択肢となる。導入コストが高く、すべてのデバイスで効果的に使えるわけではないとしても、ポートノッキングとSPAはいずれも、規模を問わず組織の包括的なセキュリティ対策の一部にすべきだ。
おすすめのActive Directoryセキュリティツール一覧もご覧ください。





