サードパーティ製Webプラグインに潜む問題

2019年4月16日

オンラインショップ、情報ポータル…さまざまなWebサイトが、既製の開発者向けツールセットを利用可能なプラットフォームをベースに作られています。当社のブログも、そんなWebサイトの1つです。こういったツールは一般に「プラグイン」の形で提供され、利用者が必要に応じて追加できるようになっています。この仕組みのおかげで、特定のツールや機能が必要になったとき、いちいちツールを開発しなくて済みます。しかし、その一方で、サードパーティが開発したプラグインをWebサイトに取り入れれば取り入れるほど、何らかの不都合が起こるリスクが高まります。

プラグインの問題

「プラグイン」は、Webサイトに機能を追加したり機能を向上させたりするための小さなソフトウェアモジュールです。SNSウィジェットを表示するもの、統計を集めるもの、アンケートをはじめとするさまざまなコンテンツを作成するものなど、ざっと挙げてもさまざまなタイプがあります。

Webサイトにインストールされたプラグインは自動的に実行され、動作に何か不具合が生じないかぎり(要は、誰かが不具合に気付かないかぎり)、静かに動作を続けます。ここに、プラグインの危険性が潜んでいます。開発元が自社のプラグインを放棄したり別の開発元に売り渡したりしても、利用者側で気付くことはほとんどありません。

穴だらけのプラグイン

何年間もアップデートされていないプラグインには、脆弱性が修正されないまま残っている可能性が高いものです。これをサイバー犯罪者が悪用し、Webサイトを掌握したり、キーロガーや仮想通貨マイナーなど自分が望むものをWebサイト上にダウンロードしたりする可能性があります。

アップデートが提供されている場合でも、Webサイトの所有者がアップデートを見落とすことも多く、また、プラグインのサポートが終了して何年もたっているのに脆弱なプラグインがそのまま残っている場合もあります。

プラグインの開発元が脆弱性を修正することもありますが、何らかの理由でこの修正パッチは自動的にインストールされません。たとえば、プラグインモジュールの開発元がアップデートのバージョン番号を単純に変更し忘れるような場合もあります。こうなると、アップデートを自分で確認することをせず自動アップデートに頼っている場合、プラグインはアップデートされず古いままとなります。

プラグインのすり替え

Webサイトコンテンツ管理プラットフォームの中には、サポートの終了したプラグインをダウンロードできないようにするものもあります。しかし、開発元やプラットフォームは、利用者のWebサイトから脆弱なプラグインを削除できません(英語記事)。これが、混乱やさらなるトラブルを招きます。

さらに、放棄されたプラグインがプラットフォーム自体ではなく、公に利用可能なサービスに保管されていることもあります。開発元がサポートを打ち切った場合やプラグインモジュールを削除した場合でも、このプラグインを使用しているWebサイトは、プラグインがあったコンテナにアクセスを続けます。一方、サイバー犯罪者は、この放棄されたコンテナを取得するかまたは複製して、Webサイトにプラグインではなくマルウェアをダウンロードさせることができます。

Amazon S3クラウドストレージにホスティングされたツイートカウンター「New Share Counts」の一件は、まさにこれでした(英語記事)。このプラグインの開発元は、自社のWebサイトでサポートの終了を告知したのですが、800 を超える利用者がこのメッセージを読んでいませんでした。

しばらくしてプラグインの開発元がAmazon S3にあったコンテナを閉鎖すると、そこへサイバー犯罪者が飛びつきました。犯罪者たちはまったく同じ名前のコンテナを作成し、その中に悪意あるスクリプトを保存したのです。このプラグインを使い続けていたWebサイトは、新しいコードをロードし始めました。このコードは、ツイート数のカウンターではなく、アンケートに答えると賞品を受け取れると約束してフィッシングページへと誘導するものでした。

所有者の変更に気付かない利用者

プラグインを放棄するのではなく、開発元が売却することもあります。そして、買い手を慎重に選ぶ開発元ばかりではありません。つまり、サイバー犯罪者は実に簡単にプラグインを手に入れることができるという意味でもあります。そうなると、次のアップデートの機会に、Webサイトへとマルウェアが配布されることでしょう。

こういったプラグインを検知することは非常に困難で、見つかるかどうかは偶然に頼るほかない場合も多いのです。

Webサイトで使用しているプラグインを追跡管理しよう

以上のとおり、インストールされたプラグインを通じてWebサイトを感染させる方法は多数あります。しかし、コンテンツ管理プラットフォーム側でこれらすべてに対応できるわけではありませんから、自社Webサイト上のプラグインのセキュリティに関しては、利用者である皆さん自身でチェックすることをお勧めします。

  • Webサイトで使用しているプラグインとその保管場所の情報をリストにまとめましょう。また、このリストを定期的にチェックし、アップデートしましょう。
  • 使用しているサードパーティプラグインの開発元や、プラグインの配布に使われているWebサイトから通知が来たら、内容を必ず確認しましょう。
  • プラグインは常に最新の状態に保ちましょう。サポートが終了した場合には、すみやかに別のものに乗り換えましょう。
  • 何らかの理由で自社Webサイトが不要となり、今後も利用する予定がない場合には、コンテンツのほかプラグインもすべて忘れずに削除してください。そのままにしておくと、脆弱性の影響が及び(英語記事)、これを悪用したサイバー犯罪者に会社のセキュリティを侵害されるのは時間の問題です。
  • 一般に公開されたWebサイトを扱う従業員に対しては、最新のサイバー脅威に対処できるようなトレーニングの実施を検討しましょう。Kaspersky Security Awarenessなどのトレーニングサービスをご活用ください。