Lenovo社は、彼らのアドウェアがコンテンツを透過的にユーザに届けることを可能にするために、Superfishと呼ばれるSSLセッションを「補完する」アプリケーションを彼らの販売するPCに搭載していました。しかし、脆弱なセキュリティ設計のせいで、ユーザが中間者攻撃の脅威にさらされることとなってしまいました。
目次
Superfishの仕組み
Superfishの利用するプログラム”Visual Discovery”は、ユーザがブラウザで表示させたイメージなどを読み取り、それに似た商品やサービスの広告を表示させるものです。他のアドウェアと似た特徴のように思えますが、SSLセッションを維持してセキュリティ警告を出さないようにするため、SuperfishはこれらのイメージをHTTPSセッションの上で提供しているのです。その場でSSL証明書を生成し、それをローカルのSSLプロキシで使用することによって、見かけ上は同一のドメインで、Visual Discoveryサーバからコンテンツを送信することを可能としていました。
典型的な中間者攻撃
中間者攻撃は、攻撃者がユーザと目的のサイトの間に侵入することによって成立します。以下の図はhttps://www.bank.comにおける中間者攻撃の例です。通常このようなことが起こった場合、ユーザは目的のサイトに直接接続していないことをいくつかの方法で知ることができます。例えば:
- URLが似たような別のものに変更されている(例:https://www.bank1.com)
- 安全でないコンテンツが含まれていることを示す警告が表示される
- 攻撃者がSSL証明書を自身で作成しているため、証明書が信頼できないという警告が表示される
中間者攻撃を効果的にするルート鍵の悪用
Superfishのルート証明書とその暗号化された秘密鍵は該当するすべてのLenovoのPCに格納されていますが、ルート鍵は常に安全なオフライン環境で保管されるべきであるにも関わらず、これはひどい実装です。「この秘密鍵の暗号化に使用されているパスワードを破るのに時間はかからない」とErrata Security社CEOのRob Graham氏は述べています。
Extracting the SuperFish certificate By Robert Graham
これによってルートの秘密鍵はどこからでも入手可能になり、攻撃者がインターネット上のいかなるサイトに対しても、Lenovoのシステムによって信頼されたSSL証明書を作成することが可能になりました。https://www.bank.comが信頼するSSL証明書を利用しているのであれば、実は攻撃者と通信をしているということにユーザが気づく手段は無いでしょう。特に公共のWi-Fiスポットは、攻撃者にとってユーザと目的のサイトの間に侵入するのが簡単です。
コード署名を使った攻撃の場合
Superfishルートは鍵用途が限定されていないため、マルウェアに署名してLenovo製品に秘かにインストールするといった使い方も可能です。現状マルウェアが発見されたという報告は無いものの時間の問題であり、見つかれば問題の修正の緊急性がより高まるでしょう。
影響範囲
Chris Palmer氏のレポートによると、Lenovo社は、この問題の対象は2014年の10月から12月までに出荷された製品を購入したユーザのみに限られ、影響範囲は小さいとする声明を発表したとのことです。しかしながら別の報告では2014年中頃からが対象とされています。
Lenovo PCs ship with man-in-the-middle adware that breaks HTTPS connections [Updated]
Lenovo製品を利用されている場合、まずはMicrosoftのRoot CAキーストアの中にSuperfish CAが入っているか確認してください。IEの場合、「ツール」=>「インターネットオプション」=>「コンテンツ」=>「証明書」=>「信頼されたルート証明機関」の順で確認ができます。入っている場合は即座に削除する必要があります。こちらのページでチェックツールが利用可能です。
セキュリティリスクの最小化
影響を受けたユーザは対象のアプリケーションをアンインストールできます。また、Windowsサービス(Visual Discovery)を停止して、悪用されているルートを信頼しているという根本的なセキュリティ問題を解消しないアドウェア機能自体を無効化することもできます。中間者攻撃の可能性については動画でも解説しています。Lenovo社は対策に取り組んでおり、現時点で脆弱性を永久かつ完全に解消するパッチをすでに提供しているかもしれません。Microsoft、Google、その他ブラウザベンダーもブラックリストを更新しており、ブラウザ内のこのルートを失効しています。
Lenovo CTO admits company 'messed up,' publishes Superfish removal tool
とりあえず、ユーザ自身でも以下のような対策が可能です。
- Window Updateを実施(Window Defenderの更新版をリリース済みの可能性があります)
- アプリケーション「Superfish」をアンインストール
- Microsoftのルートキーストアから「Superfish root CA」を削除
- アプリケーションとルート証明書を取り除く方法はこちら
- 今後利用するウェブブラウザとしてFirefoxを検討する(Firefoxは自社でキーストアを利用しており、「Superfish Root」は信用されていません。ただしFirefox利用者も同様にこの脆弱性の被害が報告されていますので注意が必要です。詳細は以下のURLをご覧ください)
Lenovo Is Breaking HTTPS Security on its Recent Laptops
関連する他のアプリケーション
Superfishが広告配信のための証明書の挿入の仕組みに使用しているプラットフォームは、Komodia社という会社から提供されています(秘密鍵のパスワードも同様です)。この会社のSDKはSuperfishだけでなく他の製品(参照)でも利用されています。それぞれの製品は独自の秘密鍵と、それを暗号化する共通のパスワードをバンドルしています。これにより、Qustodio、Komodia社のKeep My Family SecureやKurupira Webfilterといった他のソフトウェアでも同様の攻撃を受ける可能性が取り上げられています。
次の対処策
中間者攻撃の被害を受けたと思われる場合、訪問したサイトで入力したパスワードを変更し、重要なアカウントに関して不審な点がないかを注視してください。
関連リンク
The Lenovo shipping laptops with pre-installed adware that kills HTTPS
Lenovo Is Breaking HTTPS Security on its Recent Laptops
Extracting the SuperFish certificate
Lenovo caught installing adware on new computers
Lenovo PCs ship with man-in-the-middle adware that breaks HTTPS connections [Updated]