ドメインフロンティングについて
目次
◆はじめに
◆ドメインフロンティング概要
◆ドメインフロンティング用途
◆はじめに(本旨でないため適宜読み飛ばしていただいて大丈夫です)
GCC(グローバルセキュリティキャンプ)2023の応募課題に、ドメインフロンティングについてものがあり、その際色々調べたので供養ついでに。あとドメインフロンティングについての日本語記事はいくつかあるものの、デコイルーティングのそれは見当たらなかったので。
◆ドメインフロンティング(domain fronting)概要
一言で言うと、
Domain Frontingとは、異なる層(HTTPSリクエストにおけるSNI(Server Name Indication)とHostヘッダ)で使用されるドメイン名が異なることを利用して利用者が真に通信を行いたいサーバへリクエストをルーティングする手法である。Domain FrontingはCDNと関連して機能する。具体的には、
引用「Measuring CDNs susceptible to Domain Fronting」※
1.まず、クライアント(主に攻撃者)は、偽の目的地のドメイン(SNIに示されているもの)に向けられたように見えるリクエストを発行する。
2.CDNエッジサーバが、まだキャッシュされていないリソースのリクエストを受け取る。
3.CDNエッジサーバがリクエストを復号化し、Hostヘッダを読み取りHostヘッダに記載されたドメイン(≠SNIに記されたドメイン)にリクエストを転送する。
4.クライアントが真に通信を行いたい通信先(Hostヘッダに記載されたドメイン)と通信ができる。
このテクニックのミソは、通信を監視する者に見える(つまり平文で送信されている)層であるDNSリクエストとSNIには、legitsite.comが表示される。一方、TLSによって暗号化されているHostヘッダevilsite.comは検閲者からは見えない。これにより、真に通信を行いたいサーバをSNIで表現されたフロントドメイン(偽の目的地)に隠すことができる。
検証については、こちらで紹介されているのでご参考に。
ドメインフロンティング用途
直観的にマルウェアのC2通信なんかに利用がすぐに思い浮かぶと思う。ただ他にも、政府によるインターネットの検閲が厳しい国での検閲回避の為のツール(TelegramやSignalなど)としても使われるらしい。また、Eヘルスシステムでの応用もあり、個人の医療データへの不正アクセスの低減策としてDomain Frontingを適用するといったものである。要するに、攻撃者がC2通信の内容を監視側から隠すように、システム管理側が機密情報関連の通信を攻撃者から隠すといったものである。個人的に攻撃者が使う技術を防御側が使うというのは、なんかRPG(倒した敵が仲間になる的な)っぽくてアツい。
Discussion