厳しい監視下に置かれたChrome拡張機能

Blog Single

数日前のことですが、10月17日にChrome70がリリースされました。
Androidでも昨日から更新されています。
リリース前から情報サイトなどに掲載されていた情報で気になっていたこと。

GoogleがChromeのエクステンションを安全にするために来年から制限を厳しくする

Chrome拡張機能の制限が厳しくなったと。
どこがどう厳しくなったのか、非常に簡単ではありますがまとめておきたいと思います。

ユーザーによるアクセス制限

これまでユーザーデータの読み取りのpermissionを持った拡張機能をインストールする際に、
「その権限を許可して良いか」という、以下のようなダイアログが表示されていました。

これだと全てのサイトにおける読み取りを許可してしまいますが、
Chrome70からはサイト単位で承認をかけられるようになるようです。

User Controls For Host Permissions: Transition Guide – Google Chrome

ただこの機能は運用が遅れているようで現在ではまだ使用できませんでした…
使えると楽しみにしていたのに←

難読化コードの拡張機能禁止

そもそも難読化コードとは?

難読化コード Obfuscated code
コンピュータプログラムにおいて、その内部的な動作の手続き内容・構造・データなどを人間が理解しにくい、あるいはそのようになるよう加工されたソースコードやマシンコードのこと。
Wikipediaより抜粋

言葉の通りの意味ですが、なぜこの難読化コードが禁止になったのか。
Googleによると、公開されている拡張機能のうち7割が難読化コードを使用していて、
悪意あるコードを隠蔽するために利用されていたとのこと。
個人的には誰にでも理解できるように書いてしまうと隙を狙われやすいようにも思いますが、
あくまでコードをレビューする側が怪しいと思うようなコードを避けろ、ということのようです。
どの程度で難読化コードと判断され怒られるのか、ちょっと試してみたい気はしますね…
怒られるのは嫌なのでしませんが←
もちろん、どの場面においても難読化がダメというわけではありません。
とりあえずChrome拡張機能では下手に難読化しないのが吉ですね。

今後の予定

来年の1月には、先ほどの難読化コードを使用した拡張機能が強制で削除されていくようです。
一体どれだけの数の拡張機能が削除されるのでしょうか…少し気になるところです。

また来年から、開発者アカウントの二段階認証が必須になるようです。
アカウントの盗難を防ぐためのようで、実際これまでにも開発者アカウントをハッキングされ不正コードを仕込んだバージョンがアップロードされるという事態があったそうです。

Google Chromeの人気拡張機能に不正なコード混入、作者にフィッシング詐欺攻撃 – ITmedia エンタープライズ

開発者側は少し手間が増えるかもしれませんが、ユーザーに安全に使用してもらうためにもここは仕方なさそうですね。

さらに、拡張機能で使用するManifestのバージョン3が導入されるようです。

最後に

Chrome拡張機能は便利ですが、プライバシー面で危ない点はいくつもありますし、今回のセキュリティ強化としての変更はありがたいですね。
今後どうなっていくのか非常に気になる点も多いので来年以降も注目したいところです。
もし拡張機能をChromeウェブストアに公開している方は、今一度コードのご確認を!

参考

Posted by Mao Miyaji
千葉にある夢の国を愛して止まない、元「魚のお姉さん」のエンジニア。PHP, TypeScriptメインで、暇さえあれば色々な言語を一かじり。

Other Posts: