superfishの教訓

その昔(というほど古くはないが)、superfishなる凶悪なマルウェアの存在が確認された
詳しくはちょっと調べてもらえれば分かる話なのだが、いわゆるMITM(中間者攻撃)を
SSLを使用したページに対しても行えるというものであった
最初に聞いた時は、「んなアホな?!」だったのだが、下手な手品と一緒で、タネを聞けば愕然とする代物であった
要は、オレオレ証明書ならぬオレオレ認証局のroot証明書をプリインストールしていたというもの

ユーザがSSLhttps)アクセスを試みようとすると、オレオレ認証局はオンザフライで(ユーザが向かっている
fqdnを持つ)オレオレ証明書を作り出し、ユーザに提示する

通常であれば、こうした証明書を提示されたブラウザが「正規の証明書ではありません」という警告を出し、
ユーザが気づくというシナリオなのだが、今回はオレオレ認証局のroot証明書が存在するため、ブラウザは
エラーを出さない

まさか、そんな破廉恥なことは考えもしないよね、という常識の裏をついたという点では画期的ではあった

ところで、これと似たような話を聞いたことがないだろうか?
Superfishから遅れること約1年?同じテクノロジを企業向けに転用したと思われる製品が登場している。
懸念のRoot証明書のインストールはどうするのかって?この手の製品を採用する余裕がある企業なら既に何らかの
中央集権システムは構築済みでしょう。
この手の製品がSuperfishより進化している点は、宛先によって、MITMを行うかどうかの判断を決めるという点
があげられる。
これにより、MITMを行っていることを気づかれにくくすることができる
さて、これに気づくにはどうするか
マトリックスの中にいることをどうやって気がつくかという話のようだが、そんなに難しい話でもない

単純にブラウザの鍵マークをクリックして、証明書の発行元が確実な誰かであるかを確認する
(もしくは証明書ストアの汚染の心配のないVMを用意してみるというのも手ではあるが、こうした手法が塞がれている
場合も当然あり得る)
ただ、これはいちいちめんどいよね、ということで、何とか自動化したいものではあるわね
curlを使ってみるのはアリかもしれんね
という話だが、まぁ、これではCLIにはなったが、自動化というにはちょっと、という話ではある
さて、どうしたものか