Chrome拡張でキーロガーが作れそうなことの確認と危険を避けるために拡張のソースを読む方法
Chrome拡張でamazonのURLを短くするヤツを作ったときに感じた危険を実感するために、キーロガーを実装してみました。
また、このような悪意のあるツールを避けるために、ソースを見る方法を紹介します。
キーロガーのサンプル実装
manifest.jsonは拡張の構成を記述するファイルです。
content_scripts
でページを開いたときに注入するスクリプトを指定します。
matches
で対象となるURLを指定できますが、すべてにマッチする<all_urls>
も指定できます。
{
// 省略
"permissions": ["activeTab"],
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["contentScript.js"]
}],
// 省略
"manifest_version": 2
}
今回注入したスクリプトはこれです。
keydownで打ち込まれたキーを取得し、consoleに表示しているだけですが、これを外部に流せばキー入力をどこかに伝えることができてしまいます。
便利なツールにこっそりとバンドルされたら、大変なことになりそうです。
最初は便利なツールとして広まったが、売却されてマルウェアになった、いうニュースもありました。
document.addEventListener('keydown', function (e) {
console.log(e.code);
});
Chrome拡張のソースコードを確認したい
拡張はめちゃくちゃ便利ですが、危険なこともできるので、ヤバいコードが入っていないか確認する手段を持っておきたいところです。
自PCで直接みる
Macだと~/Library/Application\ Support/Google/Chrome/Default/Extensions
以下に入っています。変なアルファベットの並びのディレクトリが並んでいますが、これはインストールしている拡張のIDです。中を覗いてみるとソースが入っています。
Chrome extension source viewer (CRX Viewer)
先の方法はインストールしたあとのものでしたが…Chrome extension source viewer (CRX Viewer)はインストール前に見れます。
拡張のURLを入力して、ポチッとするだけです。
最後に
Chrome拡張は便利で、自分もいくつかインストールしています。ですが、悪意があれば悪いことも簡単にできてしまうことがわかりました。
それを避けるために、実際にインストール前後でコードを確認する方法も紹介しました。(みんなにも知らせて、目ン玉の数を増やそう!という作戦です。)
これからも楽しくChrome拡張を使っていきたいと思います。
Discussion