ブラウザ拡張機能

ブラウザ拡張機能(ブラウザかくちょうきのう、英語: browser extension)とは様々な方法でウェブブラウザの機能を拡張するためのコンピュータプログラムである。ブラウザやバージョンによっては、プラグイン英語: plug-in)もしくはアドオン英語: add-on)といった同じ意味の用語と使い分けられることがある。一部の拡張機能ではHTMLJavaScriptといったウェブ技術を活用して開発されている[1]。また、例としてツールバーの追加など、表示できるウェブサイトの内容に直接影響を与えること無くウェブブラウザのユーザインタフェースを変更することが出来る。

歴史

[編集]

マイクロソフトは1999年にリリースしたInternet Explorer 5より[2]Mozilla Firefoxはリリース開始となった2004年より、Operaは2009年リリースのバージョン10より、Google Chromeは2010年リリースのバージョン4より、Apple Safariは2010年リリースのバージョン5より拡張機能に対応するようになった。拡張機能の構文はブラウザによって非常に異なっており、少なくともあるブラウザで動作しても他のブラウザで動作しないことがある。検索エンジンツールでは、この問題を回避する試みとしてMycroftによるマルチタグ戦略でブラウザを問わずに動作する検索エンジンデータベースアドオンが存在する[3]

インストール

[編集]

多くのブラウザではユーザが目的の拡張機能を探したり、人気のある拡張機能の一覧を見ることができるオンラインのストアサイトがある。Google Chrome[4]、Mozilla Firefox[5]、Safari[6]はそれぞれ自前のストアサイトを持っているものの非公式のストアサイトもある[7][8]

機能

[編集]

ブラウザ拡張機能の用途は多岐にわたる。

ツールバー

[編集]

ブラウザツールバーとはブラウザのウインドウ内に配置されるツールバーで全てのメジャーブラウザで対応しており、ブラウザのグラフィカルユーザインタフェース (GUI) や機能を拡張する方法として開発されている。

プラグイン

[編集]

プラグインはアプリケーションプログラミングインタフェース (API) を使ってブラウザに特定の機能を追加する。APIでサードパーティーはブラウザとやり取りできるプラグインを開発することが出来る。当初のAPIはNPAPIだったが、その後GoogleはChromeでPPAPIインタフェースを導入した。

プライバシー

[編集]

ほとんどのブラウザにおいて拡張機能を使ってプライベートブラウジングでユーザのオンラインプライバシーを守ることができ、様々な種類のユーザブラウジングプライバシーを制御したり脅威から防護することができる多種多様な拡張機能がある。

一方で、拡張機能を使用すること自体が個人情報漏洩に繋がることがある[9]

プライバシーに関連する拡張機能のほとんどは第三者によるユーザへの追跡を防ぐ機能、広告やスクリプトをブロックする機能、良い動作を確実にする受動的なセキュリティツールの3種類に分かれる[10]

開発

[編集]

実際のブラウザ拡張機能の開発は特定ブラウザに対応した拡張機能の開発になる。各ブラウザごとに拡張機能の構築に必要な固有のアーキテクチャとAPIがあり、異なるコードや技術が求められるが、開発フレームワークによってそれぞれ1つのみのコードとAPIのみでクロスブラウザ対応拡張機能を構築することが出来るようになりブラウザごとに異なるバージョンの拡張機能を開発する必要はなくなった。これらのフレームワークの例として、Internet Explorer、Firefox、Chrome、Safari、Operaに対応したクロスブラウザの拡張機能を構築できるAdd-ons Framework[11]やInternet Explorer、Firefox、Chrome、Safariに対応したクロスブラウザの拡張機能を構築できるCrossrider開発フレームワークがある[12]

また、Extension Maker[13]というクロスブラウザ拡張機能開発環境もあり、上記2つのフレームワークとは異なり、コードを記述する必要はなく、既存ブロックから拡張機能を開発することが出来る。

望まない動作

[編集]

ブラウザ拡張機能はブラウザによって全てにアクセスしたり、ウェブページに広告を挿入したり、第三者のサーバにバックグラウンドのHTTPリクエストを送ったりすることができるため、ブラウザ拡張機能がそれを悪用する事が可能である。ウェブページはウェブのセキュリティモデル(特に同一生成元ポリシー)で制限されている。

結果として、ブラウザ拡張機能の中には説明と異なり、インストールしたユーザの意図に反した動作をするのがある。実はマルウェアである拡張機能もあり、ユーザに知識がない場合アンインストールが困難なアドオンであるブラウザ拡張機能をインストールさせる不要バンドルソフトウェア英語版をダウンロードさせるソフトウェアもある[14]

2012年、セキュリティ研究者がマルウェアのリモートコントロール部分としてウェブページの内容変更や実行ファイルのダウンロード、アカウントの乗っ取り、一部ウェブサイトで必須になっている二段階認証セキュリティ機能を突破ができるブラウザ拡張機能を開発したとしている[15]

2013年5月、マイクロソフトはブラジルでChromeとFirefox対応拡張機能の中にFacebookのプロファイルを乗っ取るものがあったと発表した[16]

一部のGoogle Chrome拡張機能開発者は、売りに出された拡張機能を買収し第三者企業のために拡張機能の中に新たなアドウェアを組み込む不要なアップデートをこっそり行うように改造している[17][18]。2014年1月、Googleは規約違反として2つの拡張機能をChromeのブラウザサービスから除去した。除去を決定した拡張機能は「Add to Feedly」と「Tweet This Page」で、拡張機能開発者が第三者に拡張機能を売却した後に拡張機能に不要なポップアップ広告が付いたことをユーザが気づくようになった[19]

Googleが所有するウェブサイトにアクセスするウェブブラウザの5%はコンピュータプログラムによってページに広告が挿入されているとされる[20][21][22]

脚注

[編集]

出典

[編集]
  1. ^ "What are extensions?". 2014年2月18日閲覧
  2. ^ "Browser Extensions". 2010年6月5日閲覧
  3. ^ "Mycroft project". 2011年10月27日閲覧
  4. ^ "Chrome Web Store". 2014年3月15日閲覧
  5. ^ "Mozilla Firefox Add-ons". 2014年3月15日閲覧
  6. ^ "Safari Extensions". 2014年3月15日閲覧
  7. ^ Eg: "Safari Add-ons". 2015年3月1日閲覧
  8. ^ "Opera Extensions". 2015年3月1日閲覧
  9. ^ 500個ものChrome拡張機能が個人情報を盗んでいたことが判明、被害者は170万人を超える”. GIGAZINE. 2020年3月10日閲覧。
  10. ^ "LifeHacker". {{cite web}}: Cite webテンプレートでは|access-date=引数が必須です。 (説明)
  11. ^ "Add-ons Framework". 2013年12月19日閲覧
  12. ^ "Crossrider". 2013年4月28日閲覧
  13. ^ "Extension Maker". 2013年10月13日閲覧
  14. ^ "PUP Criteria". Malwarebytes. 2015年2月13日閲覧
  15. ^ "Researcher to demonstrate feature-rich malware that works as a browser extension". 2015年3月15日閲覧
  16. ^ "Browser extension hijacks Facebook profiles". 2015年3月15日閲覧
  17. ^ "Adware vendors buy Chrome Extensions to send ad- and malware-filled updates". Ars Technica. 2014年1月20日閲覧
  18. ^ Bruce Schneier (21 January 2014). "Adware Vendors Buy and Abuse Chrome Extensions". {{cite web}}: Cite webテンプレートでは|access-date=引数が必須です。 (説明)
  19. ^ Winkler, Rolfe. "Google Removes Two Chrome Extensions Amid Ad Uproar". blogs.wsj.com. Wall Street Journal. 2014年3月17日閲覧
  20. ^ "Ad Injection at Scale: Assessing Deceptive Advertisement Modifications" (PDF). {{cite web}}: Cite webテンプレートでは|access-date=引数が必須です。 (説明)
  21. ^ http://www.pcworld.com/article/2920012/superfish-injects-ads-in-one-in-25-google-page-views.html
  22. ^ http://www.cio.com.au/article/574450/superfish-injects-ads-one-25-google-page-views/

関連項目

[編集]

外部リンク

[編集]