2017-02-22

アンチウイルスソフトウェアの利用者は過失が問われるべき

Google and Mozilla's message to AV and security firms: Stop trashing HTTPS | ZDNet

GoogleとMozillaの調査によれば、世の中のほとんどのアンチウイルスソフトウェアは通信内容を傍受するためにブラウザーに対してMITMを仕掛けている。

MITM(Man In The Middle)とはTLS(HTTPS)接続の証明と暗号を無効化するための方法で、中間者攻撃とも呼ばれる。

HTTPSにはふたつの役割がある。通信内容の暗号化と、通信相手と通信内容の証明だ。

通信内容が暗号化されていない場合、秘密の情報(クレジットカード番号など)が途中で通信を傍受している悪意ある攻撃者に筒抜けになってしまう。それを防ぐために通信を暗号化したいところだが、それだけでは不十分だ。

まず、通信相手が本人である保証がないし、通信内容は本人のものである保証もない。通信経路の途中で傍受できるということは、当然書き換えもできるはずだ。

通信相手が本人であり、通信内容が途中で改変されていないことを示すための証明方法がある。これで問題は全て解決したかというと、そうでもない。

通信をしたい二者の間に中間者が挟まって、二者のどちらにもHTTPSで使われている証明を行うことで、どちらとも相手と通信しているように錯覚させることができる。これを中間者(Man in the middle)攻撃という。

ただし、この中間者攻撃というのは、通常はうまくいかない。何故ならば、中間者の証明書を信頼しなければならないからだ。

ところで、アンチウイルスソフトウェアは、コンピューターの中で管理者権限で動くソフトウェアである。アンチウイルスソフトウェアは自分の証明書を信頼させることができる権限を持っている。すると、アンチウイルスソフトウェアはMITMができる。

なぜアンチウイルスソフトウェアがMITMをするかというと、通信内容を傍受して、悪意あるソフトウェアが紛れ込んでいないかを監視するためだ。そのため、アンチウイルスソフトウェアの中間者攻撃の意図に悪意はない。しかし、その実装は雑である。

多くのアンチウイルスソフトウェアは、中間者攻撃の実装に不具合や脆弱性を抱えている。その結果、ユーザーのセキュリティが弱められる。

さらに、アンチウイルスソフトウェアは管理者権限で動作し、カーネルも含む他のソフトウェアにコード注入する。これも脆弱性をうみだす。

ましてや、現代の悪意あるソフトウェアは単にパターンマッチやヒューリスティックによる検出で対応しきれない。

アンチウイルスソフトウェアを実行することはセキュリティを高める事にはならず、逆に下げることになる。したがって、アンチウイルスソフトウェアを使った結果セキュリティを弱め、コンピューターに悪意あるコードの実行を許し、他人に被害を与えた場合、アンチウイルスソフトウェアを実行している人間は過失が問われるべきである。

アンチウイルスソフトウェアは詐欺なので直ちに使用を中止すべきである。

10 comments:

Anonymous said...

自動車保険でも同じ論理展開できる。
保険に入ってる安心感が事故を招くから即刻禁止すべきである。

Anonymous said...

過失が問われるべきだとしたら、アンチウイルスソフトウェアを作成した人間ではないのかな。

Anonymous said...

『この中間者攻撃というのは、通常はうまくいかない。何故ならば、中間者の証明書を信頼しなければならないからだ』
ところがどっこい企業だとそうでもない。
ファイアウォールが通信の瞬間に即席で証明書を偽造して割り込み、その証明書の署名は予め社畜PCに仕込んだルート証明書に対応する秘密鍵で行うという。
エンドポイントセキュリティーとは何だったのか・・・

江添亮 said...

>証明書の署名は予め社畜PCに仕込んだルート証明書に対応する秘密鍵で行う
それは普通にOSやブラウザーに付属の信頼済み証明書と変わらない。

Anonymous said...

> アンチウイルスソフトウェアは、コンピューターの中で管理者権限で動くソフトウェアである。アンチウイルスソフトウェアは自分の証明書を信頼させることができる権限を持っている。

管理者権限で動くことと、証明書を信頼させることができることとは、何の関係もない。
証明書を信頼させることができるのは、アンチウイルスソフトウェアが独自のルート証明書をインストールしていて、そいつで随時証明書を偽造しているから。

↓これと同じ
> ファイアウォールが通信の瞬間に即席で証明書を偽造して割り込み、その証明書の署名は予め社畜PCに仕込んだルート証明書に対応する秘密鍵で行うという。

ちなみに、LenovoとDellは、このルート証明書を全マシン同じものを使うという超アホなことをやっていた。

Anonymous said...

全く同じことがOSなどにも言える。やはり信用すべきは人間の温かみなのだ。

Anonymous said...

オープンソースなら信じるというわけではないが
クローズドソースのものは基本アホが書いたシロモノだと思うことにしている

Anonymous said...

管理者権限で動くソフトウェアだからアンチウイルスソフトウェアは自分の証明書を信頼させることができる……?
言ってることがまるで分からんぞ
この江添とかいうやつはセキュリティのセの字も分かってない技術者だから、こいつが書いたセキュリティ関連の記事は信頼すべきでない

Anonymous said...

あるマシン上で管理者権限で動くソフトウェアは
そのマシン上で走るあらゆるソフトウェアに
任意の証明書を信頼させることができるわな
何が理解できないのか理解ができない

Anonymous said...

> 江添亮 said...
> >証明書の署名は予め社畜PCに仕込んだルート証明書に対応する秘密鍵で行う
> それは普通にOSやブラウザーに付属の信頼済み証明書と変わらない。
プロキシないしは透過プロキシぶっこんでMITMする専用の証明書をインストールすることと、
ローカルでMITMするための証明書をインストールすることの違いに拘る理由が分からない。
中間者自体の脆弱性で汚染されるのがプロキシサーバかローカルかの違いはあるが、そこがやられたらもう大差ないだろう。
何らかのアプリケーションインストーラを差し替えてトロイにすれば終わり。インストールは管理権限で行う。
そもそも、ブラウザプロセスの中に割り込んで処理すれば証明書をインストールする必要もないです。

・・・ああ、そういえば。GoogleはChromeにコードインジェクションするアンチウィルスソフトウェアをMicrosoftの物以外拒否するようになるそうです。
MSは対象の動作に悪影響を及ぼさないように作っているが、他のは問題を起こすものばかりでクラッシュ率も上がってしまうからだとか。
ちったぁマシになるんですかね。