セキュリティ
ちょっとした工夫で、うっとうしいSamsung製テレビの広告や一部のトラッキングを遮断できます。ただし、ファームウェアが更新されるまでの期間限定です
eMudhraの秘密鍵漏えいはセキュリティ上の大惨事となりましたが、その一方で、その気になればスマートTVのうっとうしい広告をブロックすることもできます。
スマートTVの広告にうんざりしている、ある程度の知識のあるユーザーにとって幸いなことに、チェコのソフトウェア開発者Daniel Vrátil氏がすでに作業を済ませ、プロジェクトをGitHubで公開しています。自分の広告まみれのテレビで試したい人は、このプロジェクトを使い、対応機種を追加するための作業を進めることができます。
Vrátil氏はブログで、これまでPi-hole(Raspberry Pi上でも動作するDNSベースの広告ブロックソフトウェア)を使ってSamsung製スマートTVの広告をブロックしていたと説明しています。ところが、eMudhraの証明書漏えい騒動が起きたちょうどその頃、自宅ラボをいじっている最中に設定を誤り、広告が復活してしまったといいます。
まず、eMudhraをめぐる騒動の背景を整理します。インドに拠点を置く同社は、公的に信頼されるHTTPS認証局(CA)を運営しており、これまでに6,000万枚を超えるデジタル証明書を発行したとしています。先月お伝えしたとおり、eMudhraは暗号鍵の保護に十分な注意を払っていませんでした。8つの中間CA秘密鍵が極端に脆弱だったことが判明し、そのうち1つは数字の「4」、残りも2桁または3桁の数字で、ほとんど労力をかけずに推測できるものでした。
eMudhraはその後、CA事業から撤退しました。証明書の発行は事業のごく一部にすぎず、大きな問題ではないと説明しています。同社は原因について、鍵を生成するために導入したものの、同社のハードウェアでは処理しきれなかった不適切なソフトウェアスクリプトにあるとしています。
これが実際に意味するのは、誰でもeMudhraの証明書を偽造してWebサイトになりすまし、悪意ある行為に及べるということです。同時に、eMudhraの証明書を今も信頼しているデバイスを入手できたセキュリティ研究者にとっては、その通信の仕組みを存分に調べられるということでもあります。Vrátil氏が活用したのが、まさにこの点でした。
eMudhraの秘密鍵は、漏えいが明らかになった直後に、オープンソースのmitmproxyに追加されました。mitmproxyは、善用も悪用もできる、完全にインタラクティブなHTTPSプロキシです。これと、侵害されたeMudhra証明書を今も信頼している2022年製のSamsung製スマートTVを組み合わせれば、HTTPS通信を検査したり、特定のリクエストを任意のサーバーにリダイレクトしたりできます。
Vrátil氏によると、テレビのホーム画面にある広告を家族の写真に差し替える作業は、かなり簡単だったといいます。
「幸運なことに、Samsungは私のテレビ向けに証明書を失効させるアップデートをまだ配信していませんでした」とVrátil氏はブログに書いています。「そのおかげで、テレビの全通信をmitmproxy経由にして、テレビがやり取りするドメインやエンドポイントの一覧を取得できました。リクエストとレスポンスのペイロードの構造も確認できました」
調べてみると、広告の通信フローはごく単純でした。テレビ上の操作内容が広告サーバーに送信され、サーバーがJSON形式のレスポンスに基づいてホーム画面に広告を表示する仕組みです。Vrátil氏は、侵害されたeMudhraの署名鍵を使ってSamsungの広告ドメイン向けの証明書を生成し、それらのドメイン宛てのリクエストを自宅ネットワーク内のサーバーに振り向けるようルーターを設定しました。これにより、広告を自宅のNASから配信する家族写真に差し替えることができました。さらに、トラッキングデータを含む広告ドメイン宛てのその他のリクエストを、Samsungのサーバーに転送せず、ブラックホールに捨てるコードも追加しています。
前述のとおり、このプロジェクトはGitHubで公開されています。eMudhra証明書への対応が残っているテレビであれば試せますが、自分の機器がどのように広告を取得しているかを解析し、コードを調整する作業は自分で行う必要があります。
「ワンクリックで使えるような設定ではありません」と、Vrátil氏はThe Registerへのメールで述べました。同氏は多くの人に試してほしいとしていますが、自分の機器への対応を追加するプルリクエストを公開リポジトリに送った人は、まだ誰もいません。
なお、この方法が通用するのは、脆弱なデバイスがeMudhra証明書を信頼し続けている間だけです。早めに試す必要があるといえそうです。とはいえ、サポートが終了したスマートTVは、そうした更新を受け取れないかもしれません。その場合、所有者が広告をブロックしても、機器は証明書の脆弱性にさらされたままになります。
「侵害されたeMudhra証明書は、特にセキュリティ更新が提供されなくなった組込みデバイスについて、ネットワークリクエストを理解し、なりすます多くの可能性を開きます」と、Vrátil氏は語りました。「テレビのホーム画面の広告を家族の写真に差し替えるのは楽しいことですが、この脆弱性には、はるかに悪質な使い道も数え切れないほどあります」
Vrátil氏自身は、いずれ自分の手法を使えなくするファームウェア更新を、どうすれば阻止できるか模索しているところです。ただし、同氏が指摘するように、更新を阻止することはそれ自体がセキュリティリスクになります。
「最新の信頼ストアに照らして接続を検証するプロキシ経由でテレビの通信を流したいと考えています。そうすれば、テレビの通信を傍受されたり、今回のプロジェクトで私がやっているようにレスポンスを偽装されたりするのを、少なくとも緩和できます。ただ、それでは他に考えられるセキュリティリスクは防げないので、トレードオフになります」と同氏は説明しました。
現時点では、どちらの悪用を選ぶかは好み次第といえそうです。脆弱性を利用して広告と一部のトラッキングをブロックする代わりに、テレビを傍受の危険にさらすか。それとも、メーカーに広告を配信させ、視聴習慣のデータを収集させるか。侵害されたCAをテレビが信頼し続けることに頼らなくても、広告をブロックするより安全な方法はあります。®