botnet感染時に活躍したCarrier Grade Captive Portalのはなし
BSI(ドイツ連邦政府の情報通信・セキュリティを取り扱う部門)の方から,Carrier Grade Captive Portalの話があったので書き留めておきます.一般的にCaptive Portalは公衆無線LANにおけるケースが広く認知されているので,それと区別をつけるため,「Carrier Grade」と言っていると思われます.
ドイツ国内でのbotnet感染
BSIが国内のISPに対し,botnetの一部になっているユーザーのIPアドレス,タイムスタンプ,その他ユーザー情報を報告しました.(BSIにとってISPの力を借りなければ,動的アドレスを持つユーザー個人に接触することが難しいからです)
この時,ISPはユーザーに感染を通知するための手段として,メール,郵便またはCarrier Grade Captive Portalの3つを持っていました.この状況下で最も効率的にユーザーに感染を通知し,システムをクリーンにしてもらう方法はCaptive Portalだったそうです.
NetCologne社の"ForcedPortal"
上記のような事態に対し,ドイツのISPのうちの一つであるNetCologneは以下のような「Forced Portal」を設けました.これは以下のような動作をします.
- 管理システムがユーザーの感染を検知すると,CPE顧客ルーターの接続(PPPOE接続)が切断され,すぐに新たなPPPOE接続が開始されます.
- 新たなPPOE接続と共に,CPE顧客ルーターは新たなDNSサーバーのアドレス,ゲートウェイを取得し,Carrier Grade Captive Portalに接続します.
- この新たな接続ネットワーク内では,全てのトラフィックはHTTP/HTTPS proxyでCaptive Portalへ向けられます.Captive Portalはインフォメーションページとして機能し,今回の場合では,感染の状況やシステムをどのようにクリーンするかの説明が,Captive Portalに誘導された顧客に対し表示されます.
# ComcastのCaptive Portalと似たタイプのCaptive Portalかも?(IETF97におけるプレゼン参照)
問題
HTTP接続はだいたい問題ありませんが,HTTPS接続時に問題があるそうで,特にGoogle Chromeにおいて,顧客がHSTSまたはHSTSプリロードでドメイン名へ接続しようとした際に,最初のHTTP接続がされないそうです. HTTPS接続をする際,ブラウザがMITM(中間者攻撃)を検知し,顧客向けの情報ページが表示されず,顧客にエラーページが表示されることもなく,代わりにカスタマーサポートセンターへ大量のCallがかかってくるという事態に...
また,各OSベンダーによるDetection StrategyはCarrier Grade Captive Portalでは全く機能しないとのことです.なぜなら,公衆無線LANなどとは違い,上記の状況下では,CPE顧客ルーターが新たなPPPOE接続を開始した時に,インターネットへの全ての接続がルーターにより切断されているため,クライアントによるCaptive Portalの検知機能が動かないそうです.
以上,事件簿みたいになっちゃいましたが,公衆無線LAN以外の場面でも使われているCaptive Portalがあるということを知っていただけるといいかな,と思い書きました.