本の虫

著者:江添亮
ブログ: http://cpplover.blogspot.jp/
メール: boostcpp@gmail.com
Twitter: https://twitter.com/EzoeRyou
GitHub: https://github.com/EzoeRyou

アマゾンの江添のほしい物リストを著者に送るとブログ記事のネタになる

筆者にブログのネタになる品物を直接送りたい場合、住所をメールで質問してください。

AVGのクソみたいなChrome拡張の脆弱性

Issue 675 - google-security-research - AVG: "Web TuneUP" extension multiple critical vulnerabilities - Google Security Research - Google Project Hosting

アンチマルウェアソフトウェアのAVGが、クソみたいな脆弱性を含むChrome拡張を、Chrome拡張のインストールを阻止する仕組みを意図的に迂回して無理やり入れた挙句、脆弱性を生み出していたそうだ。しかも、脆弱性の指摘に対する修正案がお粗末すぎる。このようなセキュリティ的にお粗末な対応をするところが出しているセキュリティ用のソフトウェアは一切信用できない。読者の中にAVGを利用しているものがいたら、即刻に消すべきだろう。

ユーザーがAVG AntiVirusをインストールすると、"AVG Web TuneUp"という拡張idがchfdnecihphmhljaaejmgoiahnihplgnのChrome拡張が無理やりインストールされる。webstoreの統計によると、900万人のアクティブChromeユーザーがこの拡張を有効にしている。

この拡張は様々なJavaScript APIをChromeに追加する。どうやら、これによって、拡張は検索設定や新しいタブページをハイジャックできる。インストール方法はとても複雑で、このような拡張APIの悪用を防ぐために設けられたchromeのマルウェアチェックを迂回している。

とにかく、APIの多くがぶっ壊れている。添付した攻撃サンプルは avg.comのcookieを盗むことができる。また、閲覧履歴などの個人情報をインターネット上に公開させることができる。任意のコード実行につながるような脆弱性が含まれていてもおかしくはない。

Chromeの開発者は、怒りのメールをAVGに投げるが、返ってきたAVGの主張する「修正」は、拡張コードの実行を、以下のような条件で制約をかけるものであった。

var match = event.origin.match(/https?:\/\/.*\.avg\.com/i);

if (match ! null {
...
}

このコードの意図は、拡張の動作をAVGのoriginのみに制限するものだが、正規表現は極めて悪く書かれていて、例えば、"https://www.avg.com.www.attacker.com"のようなoriginも受け付けてしまう。かつ、AVGのWebサイトにXSS脆弱性が存在した場合、誰でも拡張によってもたらされた「機能」を利用できてしまう。

Chrome開発者がそのような返答メールを返したところ、こんどは、拡張の動作を"mysearch.avg.com" and "webtuneup.avg.com"をoriginとする場合のみに制限するとんちんかんな「修正」を送ってきた。これ以上改善の見込みがないと判断したChrome開発者は、以下のようなメールを投げつける。

見てみたが、この方法は動くだろう。ただし、ホワイトリストしたドメインがXSSやmixed contentを含む場合、誰でも脆弱性を活用できてしまう。

残念なことに、そういう脆弱性を発見するのは難しくない。私はWebセキュリティ専門家ではないが、数分探すだけで、以下を見つけた。

http://webtuneup.avg.com/static/dist/app/4.0.5.0/interstitial.html?risk=%3Cimg%20src=x%20onerror=alert(1)%3E&searchParams=%7B%22lang%22%3A%22en%22%2C%22pid%22%3A%22pid%22%2C%22v%22%3A%22vv%22%7D

わかりやすく説明してやると、このドメイン下にXSSバグが存在する限り、すべてのAVGユーザーは、銀行、メール、その他すべての個人情報が流出してしまう。そのため、このドメイン下は入念に保守と検証をする必要がある。

御社はホワイトリストされたドメインに対してプロのWebセキュリティ検証を行うという条件下で、この修正は動くだろうよ。

セキュリティ用のツールを開発しているところがこんなマヌケな「修正」を送ってよこすとは。AVGは一切信用できない。ちなみに、avg.comのXSS脆弱性は、未だに修正されていない。

思うに、もはやアンチマルウェアソフトウェアの時代は終わった。というのも、結局既知のマルウェアに特有のシグネチャを検出するのは何の訳にも絶たない。マルウェアを作り出すのはそれほど難しくはないからだ。マルウェアに特有の挙動を仮想環境上で動かして調べるというのも、誤爆が多く役に立たない。

それどころか、アンチマルウェアソフトウェアの殆どは、カーネルモードで動作するコードを追加したり、カーネルAPIをフックしたり、カーネルを書きかえたりする。それによって、新たな脆弱性を追加している。追加のソフトウェアは追加のリスクという古き良き教訓は忘れ去られてしまったのだろうか。

それに、この拡張によって一体どのようなセキュリティが確保されるというのか。筆者には、AVGが検索クエリーなどの個人情報を収集して販売するための機能にしか思えない。すると、AVGはマルウェアにほかならない。