Amazonはユーザーのネットショッピングをサポートするための拡張機能として「Amazonアシスタント」をリリースしており、このツールを積極的に宣伝しています。AmazonアシスタントはAmazonと他のショッピングサイトの価格を比較したり注文した商品の到着日時を通知したりしてくれる便利ツールなのですが、「Amazonアシスタントを通してAmazonはユーザーのウェブ上のあらゆる行動をトラッキングすることができる」とセキュリティ研究者が指摘しています。

How Amazon Assistant lets Amazon track your every move on the web | Almost Secure

https://palant.info/2021/03/08/how-amazon-assistant-lets-amazon-track-your-every-move-on-the-web/

AmazonアシスタントはFirefoxやChrome、Opera、Edgeといったさまざまなウェブブラウザ向けに提供されている拡張機能です。詳細な数字は公表されていませんが、すべてのブラウザを合算するとAmazonアシスタントユーザーは1000万人を超える、とセキュリティ研究家のウラジミール・パラント氏は指摘しています。



Amazonアシスタントは基本的にはAmazonでの注文を追跡したり、ほしい物リストを管理したりすることができるという拡張機能です。また、Amazon以外のウェブサイトで見つけたアイテムをほしい物リストに追加したり、Amazonで購入する場合はいくらで購入可能かをチェックしたりすることも可能。



パラント氏がAmazonアシスタントのコードを分析したところ、この拡張機能はユーザーが何を表示し、どのくらいの時間ページを表示し、ウェブ上で何を検索し、どのアカウントにログインしているのか、といったあらゆる動作を追跡することが可能になっていることが明らかになったそうです。また、ユーザーがAmazonアカウントからログアウトしたりCookieを削除したりしても、一度ログインしていればユーザーIDとユーザーがウェブ上で取った動作を紐づけて記憶することができる模様。

他にもAmazonアシスタントはブラウザが保存する任意のウェブサイトのCookieにアクセスできるようになっています。ただし、記事作成時点ではAmazonアシスタントが「ユーザーがログインしたことを認識するため」だけにCookieにアクセスしているとのこと。

さらに奇妙なことに、Firefox版のAmazonアシスタントのみ、他の拡張機能へのアクセス権が付与されるように設計されている模様。これにより、理論上はFirefox版のAmazonアシスタントが他の拡張機能をアンインストールすることも可能です。

パラント氏は「拡張機能が広範囲におよぶ特権を要求することは珍しいことではありません。使用されていない特権を要求する拡張機能も珍しくありませんが、GoogleはChromeウェブストアのポリシーで不要に広範な特権を要求することを明示的に禁止しています。さらに珍しい点として、Amazonアシスタントが求める特権のほとんどすべてがAmazon Web Services(AWS)に転送されていることが挙げられます」と記しました。



AmazonアシスタントがAWSに許可するAPIは以下の通り。

・getPlatformInfo:拡張機能とサポートされている機能に関する情報の取得

・getFeatureList:同上

・openNewTab:ポップアップブロッカーの影響を受けずに新しいタブでページをポップアップ表示

・removeTab:指定されたタブを閉じる

・getCookieInfo:任意のウェブサイトのCookieを取得

・BulkGetCookieInfo:同上

・createDesktopNotification:デスクトップ通知を表示

・createContextMenuItem:拡張機能のコンテキストメニュー項目を管理

・deleteAllContextMenuItems:同上

・deleteContextMenuItemById:同上

・renderButtonText:拡張機能のアイコンに「バッジ」を表示

・getStorageValue:拡張ストレージ/設定にアクセスします

・putStorageValue:同上

・deleteStorageValue:同上

・setPlatformCoreInfo:同上

・clearPlatformInfoCache:同上

・updatePlatformLocale:同上

・isTOUAccepted:同上

・acceptTermsOfUse:同上

・setSmileMode:同上

・setLocale:同上

・handleLegacyExternalMessage:同上

・getActiveTabInfo:タブに関する情報(タブID、タイトル、アドレス)を取得

・createSandbox:フレーム(任意のアドレス)を任意のタブに挿入し、通信

・createLocalSandbox:同上

・createSandboxById:同上

・modifySandbox:同上

・showSandbox:同上

・sendMessageToSandbox:同上

・InstrumentSandbox:同上

・getSandboxAttribute:同上

・destroySandbox:同上

・scrape:さまざまな方法を使用して、任意のタブからデータを抽出

・listenerSpecificationScrape:同上

・getPageReferrer:同上

・getPagePerformanceTimingData:同上

・getPageLocationData:同上

・getPageDimensionData:同上

・getUWLItem:同上

・registerAction:任意のタブの特定の要素のイベントをリッスン

・deregisterAction:同上

・applyStyle:任意のタブの特定の要素にCSSスタイルを設定

・resetStyle:同上

・InstrumentWebpage:任意のタブでページに関する情報を照会し、要素をクリックし、インプットを送信し、keydownイベントを送信

・createElement:指定されたID、クラス、スタイルで任意のタブに要素を作成

・closePanel:拡張機能のドロップダウンパネルを閉じる

・reloadExtension:拡張機能を更新し、保留中の更新をインストールする

同じように動作するショッピングサポート拡張機能は他のショッピングサイトでも確認されており、これらはAmazonアシスタントのように広範にわたる権限を要求します。そのため、一般的にショッピングサポート拡張機能をインストールすることは、ユーザーのプライバシーを危険にさらすことにつながります。

しかし、このプライバシーの危機は避けられないものではないとパラント氏は指摘しており、一部のJavaScriptファイルを削除して不要な機能を削ることで、コードの簡素化とパフォーマンスの向上を図ることができると記しました。

Amazonアシスタントのようなショッピングサポート拡張機能が、無駄に多くの特権を与えられるように設計されて点について、パラント氏は「変更をより迅速に実行するために必要という理由で正当化されています」と指摘。実際、拡張機能を構成する9つのコンポーネントのうち5つは5〜6カ月前に更新されたまま放置されており、2週間以内に更新されたコンポーネントはわずか2つのみだそうです。

なお、パラント氏はAmazonアシスタントのコード分析がすべて完了したわけではないと記し、記事作成時点ではユーザーの訪れたウェブサイトのアドレスではなくアクセスしたページのドメイン名のみを転送していることが確認できていると述べました。



Amazonアシスタントはウェブブラウザ上で様々な権限を要求します。これ自体は多くの拡張機能と同じですが、その後、AWSに特権へのアクセスを提供している点が他とは異なる点であるとパラント氏は指摘。AWSに提供される特権により、最悪の場合、Amazonユーザーはウェブ上でのすべての行動を追跡され、アカウント関連情報を抽出される危険があります。

記事作成時点でAmazonがプライバシーポリシーで規定されている以上の追跡を行っていることは確認できていないそうですが、「ウェブコンテンツは動的なものであるため、この状況が続くことを保証する方法はありません」とパラント氏。さらに、AmazonがAmazonアシスタントを用いてユーザーをスパイしたとしても、それを検出することは困難であるとも指摘しています。

最後に、Amazonアシスタントのように広範な特権を要求する拡張機能をFirefoxおよびOperaでは禁止されており、ChromeやEdgeではポリシー違反となる可能性があるとパラント氏は指摘しました。