ソースポートランダマイゼーション (ソースポートランダマイゼーション) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

ソースポートランダマイゼーション (ソースポートランダマイゼーション) の読み方

日本語表記

ソースポートランダマイゼーション (ソースポートランダマイゼーション)

英語表記

Source Port Randomization (ソース ポート ランダマイゼーション)

ソースポートランダマイゼーション (ソースポートランダマイゼーション) の意味や用語解説

ソースポートランダマイゼーションは、TCP/IPプロトコルを用いたネットワーク通信において、通信を開始するクライアント側が使用する送信元ポート番号を、予測困難な方法でランダムに選択するセキュリティ技術である。この技術の主な目的は、攻撃者が通信に使用されるポート番号を推測することを困難にし、それによって特定の種類のサイバー攻撃、特にDNSキャッシュポイズニングなどのなりすまし攻撃を防止することにある。かつてのオペレーティングシステムでは、送信元ポート番号が連番や決まった範囲から順番に割り当てられることが多く、攻撃者にとって予測が容易であった。この脆弱性を解決するために、送信元ポート番号の選択にランダム性を持たせる本技術が導入され、現在ではほとんどのオペレーティングシステムで標準的な機能として実装されている。 この技術を理解するためには、まずTCP/IP通信におけるポート番号の役割を把握する必要がある。IPアドレスがネットワーク上のコンピュータを特定するための住所だとすると、ポート番号はそのコンピュータ内で動作しているどのアプリケーションやサービスと通信するかを指定するための、いわば部屋番号に相当する。ポート番号は0から65535までの範囲で利用され、特定のサービスが通信を待ち受けるために予約されたウェルノウンポート(例: HTTPの80番ポート)と、クライアントがサーバーへ接続する際に一時的に使用されるエフェメラルポート(動的ポート)に大別される。ソースポートランダマイゼーションが対象とするのは、このクライアント側で動的に割り当てられるエフェメラルポートである。 ソースポートランダマイゼーションの具体的な仕組みは、OSがクライアントの通信要求に応じて送信元ポート番号を割り当てる際に、単純な連番や固定的なアルゴリズムを用いるのではなく、擬似乱数生成器などを利用してエフェメラルポートの範囲内からランダムに番号を選択するというものである。一般的にIANAが推奨する49152から65535の範囲がこの動的ポートとして使用される。これにより、連続した通信であっても、使用される送信元ポート番号に関連性がなくなり、第三者が次の通信で使用されるポート番号を予測することは極めて困難になる。この予測困難性が、ネットワークセキュリティを大幅に向上させる鍵となる。 ソースポートランダマイゼーションが特に有効な攻撃対策として知られているのが、DNSキャッシュポイズニングである。これは、DNSサーバーのキャッシュに偽の情報を注入し、利用者を悪意のある偽サイトへ誘導する攻撃手法である。攻撃者は、標的となるDNSキャッシュサーバーに対して、自身が応答を偽装したいドメイン名の名前解決を依頼させる。そして、標的のDNSサーバーが正規の権威DNSサーバーへ問い合わせを行うタイミングで、攻撃者は権威DNSサーバーになりすまし、大量の偽の応答パケットを送りつける。この偽の応答が正規の応答よりも先に受け入れられるためには、いくつかの条件が一致しなければならない。その重要な要素が、DNSクエリごとに割り振られる16ビットのトランザクションIDと、問い合わせ元のクライアント、この場合はDNSキャッシュサーバーが使用する送信元ポート番号である。 ソースポートランダマイゼーションが導入される以前は、送信元ポート番号が固定、あるいは予測可能な範囲で順番に割り当てられていたため、攻撃者が推測すべき値は実質的にトランザクションID(最大65536通り)のみであった。これは、現代のコンピュータの処理能力をもってすれば、短時間での総当たり攻撃が十分に可能であった。しかし、ソースポートランダマイゼーションが適用されると、攻撃者はトランザクションIDに加えて、ランダムに選択された送信元ポート番号も同時に推測する必要が生じる。エフェメラルポートの範囲を約16000通りと仮定すると、攻撃者が当てるべき組み合わせの数は約65536通りと約16000通りの積、すなわち10億通り以上に跳ね上がる。これにより、偽の応答パケットが正規のものとして受け入れられる確率が劇的に低下し、DNSキャッシュポイズニング攻撃の成功は非常に困難になる。 現在、Windows、Linux、macOSをはじめとする主要なオペレーティングシステムでは、ソースポートランダマイゼーションは標準で有効化されている。システムエンジニアとしては、この機能がOSレベルで提供される基本的なセキュリティ対策の一つであることを理解し、ネットワーク機器の設定、特にファイアウォールやNAT装置がこのランダム性を阻害しないように注意を払うことが求められる場合がある。このように、ソースポートランダマイゼーションは、通信の基本要素であるポート番号の選択方法を工夫するだけで、ネットワーク全体の安全性を大きく高める、地味ながらも非常に重要な技術なのである。

ソースポートランダマイゼーション (ソースポートランダマイゼーション) とは | 意味や読み方など丁寧でわかりやすい用語解説