いろいろやってみるにっき

なんとか自分の会社を立ち上げるところまで漕ぎ着けた、てきとーに生きている奴の日記

関連記事を探すときは、読んだ記事と同じカテゴリをクリックしてください。

記事のカテゴリは記事タイトル下に表示されています。カテゴリ一覧はサイドバーにあります。


Superfishがやっている中間者攻撃、こんな感じでヤバイ

lenovoのPCにプレインストールされていたSuperfishというアドウェア。いやアドウェアというレベルではなく、マルウェアというレベルで色々利用者の情報がダダ漏れということで騒ぎになった。

対象PC

lenovo製PCのすべてでは無く、2014年9月~12月に出荷された下記のモデル。幸いオレはそんな最新PCは持っていないし、ThinkPadシリーズは含まれないので手元にSuperfishが無く、不幸にもSuperfishの細かい検証はできない。

Superfishが搭載されて出荷されたモデル:
G シリーズ: G410, G510, G710, G40-70, G50-70, G40-30, G50-30, G40-45, G50-45
U シリーズ U330P, U430P, U330Touch, U430Touch, U530Touch
Y シリーズ: Y430P, Y40-70, Y50-70
Z シリーズ: Z40-75, Z50-75, Z40-70, Z50-70
S シリーズ S310, S410, S40-70, S415, S415Touch, S20-30, S20-30Touch
Flex シリーズ: Flex2 14D, Flex2 15D, Flex2 14, Flex2 15, Flex2 14(BTM), Flex2 15(BTM), Flex 10
MIIX シリーズ: MIIX2-8, MIIX2-10, MIIX2-11
YOGA シリーズ: YOGA2Pro-13, YOGA2-13, YOGA2-11BTM, YOGA2-11HSW
E シリーズ: E10-30

Superfishの削除方法の対訳

騒ぎになった当初は色々な情報が出たが、lenovoが公式で用意したのでそちらをリンク。証明書を削除するだけではなく、Superfishから削除するという手順である。

一応ページは日本語になっているが、使われている検索文字列やスクリーンショット英語版Windowsのものなので、そのままの手順ではなかなか操作したい画面に辿り着かない。対訳と日本語版Windowsでの操作手順を書いておく。

Superfishのアンインストール

下の「Programs and Features」は、日本語Windowsのコントロールパネル内では「プログラムと機能」である。検索ではなかなか辿り着かないと思うので、コントロールパネルを開きアイコン表示にしていたら「プログラムと機能」を選ぶ。カテゴリ表示の場合は「プログラム」の下にある「プログラムのアンインストール」を選ぶ。

http://support.lenovo.com/jp/ja/documents/~/media/images/2015/HT102634_03.ashx?la=ja

 日本語版Windowsだとこういう感じ。Superfishが無いPCなのでGhostscriptをクリックした状態(オレンジの下線)。赤枠に「アンインストール」が表示される。

f:id:shigeo-t:20150221034726p:plain

Superfish証明書のアンインストール

証明書削除は下記のような「certlm」を起動する。やはり検索からでは難しい。

http://support.lenovo.com/jp/ja/documents/~/media/images/2015/HT102634_06.ashx?la=ja

起動するプログラムはcertlm.mscなので、[Windowsキー]+[R]の「ファイル名を指定して実行」から直接呼び出したほうがいいだろう。

f:id:shigeo-t:20150221040517p:plain

UAC(ユーザアカウント制御)で(一瞬画面が暗くなるやつ)で、Microsoft 管理コンソールを起動してよいか確認されるので[はい(Y)]を押すとcertlmが起動される。

f:id:shigeo-t:20150221040819p:plain

「信頼されたルート証明機関」の「証明書」をクリックすると、ストアされている証明書の一覧が表示される。上のスクリーンショットではオレが作ってストアしたオレオレ証明書ESXi上に可用性構成のリモートデスクトップサービスを立ち上げる その1 - いろいろやってみるにっきなどで作成したもの)を選んでみた。削除するためには上の×ボタンを押せばよい。

ヤバイ中間者攻撃(MITM)

削除手順を確認したら、日本語版Windowsでは全く辿り着かない方法だったので前置きが長くなった。lenovoブランドのPC買う層は一部のパワーユーザを除けば、値段で選んだらたまたま今回のSuperfish内蔵モデルwを買ってしまったという、あまりPCに詳しくない人が大多数だろう。あの手順だと多分、リンダ困っちゃう(古

というわけでようやく本題である。Superfishだけではないのだが、あの手のプログラムをインストールされてしまうと、無理矢理脆弱性を作り込まれて中間者攻撃されてしまう。

今回のSuperfishの振る舞いだが下記の通りである。

  1. 広告をブラウザ(Internet ExplorerChrome)で表示した先に挿入する。
  2. 【ヤバイ】それをどの画面でもできるようにオレオレSuperfish証明書を「信頼されたルート証明機関」にストアし、httpsサイトでもオレオレSuperfish証明書を使うように制御する

#1のようにSuperfishが出したい広告を、どの画面でも出してくるのは相当ウザい。ただそこまではウザいという話なのだが、すでに危険性もはらんでいる。その挿入された広告に何も仕込まれていないとは言えないからだ。でも#2は本当にヤバイ。たとえばみずほ銀行三菱東京UFJ銀行では法人インターネットバンキング(以下、法人IBと略する)で発覚したようだが、銀行が発行した法人IB用の証明書では無く、法人IB用証明書に成り代わったSuperfish証明書でアクセスに行くため『今回は』法人IBが表示できなかったというものである。成り代わられたので認証エラーが発生したわけである。

今回は法人IBのログイン画面に辿り着かなかったが、Superfishをさらに悪用するマルウェアが作られると、ニセのログイン画面を表示したり、その際にログイン情報を窃取することが可能になる。

中間者攻撃(MITM攻撃:Man in the Middle Attack)は、正規の通信の間に入り込んで悪さをする。

f:id:shigeo-t:20150221044616p:plain

正規の通信が上の図のように行われるとすると、MITMの時は下の図のようになる。本来はもう少し(悪意の)参加者が多いのだが、C&Cサーバとかexploitサイトとか色々書くと情報過多なので簡略化している。

f:id:shigeo-t:20150221044947p:plain

ヤバいのは、ちょっとPC上の情報が洩れましたという程度の話では済まない点である。上の例ではバンキングマルウェアを例としたので、PCを介して銀行口座からお金を持って行かれる。しかも操作者は振込操作をした時点では攻撃されていることに気付かない。

今回騒ぎになったSuperfishは、みずほやBTMUの法人IBでは動かなかったが、そこにでっかいセキュリティホールがあることを明示している。Superfishを悪用するバンキングマルウェアが出てきたら、簡単に銀行口座からお金を抜ける。みずほやBTMUだけでなく、法人IBの場合は同じように金融機関発行の証明書をストアさせるところが他にもあるはず。アナウンスしてないけど大丈夫なんだろうか。

通常このようなマルウェアは、攻撃対象のPCに色々な手を使って入り込もうとしている。しかしSuperfishのようにベンダのプレインストールで踏み台を作られたら、簡単に入り込める。上に対訳を書いた手順のように証明書をストアする場合はUACが動くわけだが、ベンダがプレインストールしているんだもの。楽に攻撃できる。

 

通常、攻撃に使用するオレオレ証明書をインストールするタイプのマルウェアは、マルウェア自体が管理者権限を奪取してUACが動かないようにするものもあるので、気を付けるとするとEV SSL証明書かどうか、もしくは自分がストアした証明書かどうかの確認が必要。各ブラウザでの確認は、過去エントリを参照頂きたい。 

MITMサイトが挟まってhttps通信をしている場合、本来使われるべきEV SSL証明書もしくは自分がストアした証明書ではない証明書が使われる。おかしいなと思ったらまずは通信をやめて確認したほうがよい。手っ取り早くはネットワーク接続をカットである。LANケーブルを抜くとかWi-Fi接続をオフるとか。ブラウザで見える範囲の通信だけとは限らないので。 

アナライジング・マルウェア ―フリーツールを使った感染事案対処 (Art Of Reversing)

アナライジング・マルウェア ―フリーツールを使った感染事案対処 (Art Of Reversing)

 

参考サイト 

Lenovo製PCに入っている極悪アドウェア「Superfish」はどれだけヤバイのか? - GIGAZINE

Lenovo製品にプリインストールされているアドウェアSuperfishに関連する情報をまとめてみた。 - piyolog

Lenovo PCs ship with man-in-the-middle adware that breaks HTTPS connections [Updated] | Ars Technica

Check if you trust the Superfish CA (Superfishが入っているかどうかチェックできる)