ESET/マルウェア情報局
「WordPress」利用時のリスクとその対策
本記事はキヤノンマーケティングジャパンが提供する「マルウェア情報局」に掲載された「今一度、おさらいしておきたいWordPressのセキュリティ」を再編集したものです。
2020年11月に発表されたウェブサイト向けCMSの世界シェアでは、WordPressが圧倒的な1位となっている。2003年にリリースされたこのオープンソースのソフトウェアは、ウェブ制作におけるデファクトスタンダードになったといえるだろう。しかしその分、悪意のある第三者に狙われやすくなっている。この記事では、WordPress利用時のリスクとその対策について詳しく解説する。
WordPressとは
WordPressは無料で利用できるウェブサイト向けのCMS(コンテンツ・マネジメント・システム)で、その導入によりHTMLやCSSを直接編集することなく、ウェブサイトを更新することができる。プログラムが公開されているオープンソースのソフトウェアであり、世界で最も利用されているCMSとされる。
CMSの世界シェア|Q-Success(2020年11月 ) https://w3techs.com/technologies/history_overview/content_management/all
オープンソースかつ利用するユーザー数も多いことから、インターネット上に関連情報が多数掲載されている。日本語で書かれた記事も多く、国内での利用を後押ししている。
なぜWordPressが狙われるのか
WordPressは攻撃者にとって格好のターゲットとなっている。その理由として、以下の4つが挙げられる。
・CMSにおいて世界シェアNo.1のユーザー数
先述の通り、WordPressは世界シェアNo.1のCMSであり、多くのウェブサイトがWordPressを導入している。ユーザー数が多いということは攻撃のターゲットも多いということ。攻撃者にとって、ユーザー数が多いほど、脆弱性を見つけ出す費用対効果は高くなる。
・インターネット上における圧倒的な情報量
ユーザー数が多いことから、WordPressはインターネット上にそのノウハウなどの情報が多数公開されている。そのなかにはITリテラシーが高くないユーザーでもウェブサイト制作ができるほど、詳しく書かれたものも少なくない。ITリテラシーが高くないユーザーは相対的にセキュリティへの意識も低く、攻撃者にとっては格好のターゲットといえる。また、オープンソースであるがゆえ、そのシステムの詳細を攻撃者が容易に把握できることも、要因のひとつだろう。
・外部からアクセス可能な管理画面
WordPressはデフォルトのままインストールされている場合、ドメインの末尾に「/wp-login.php」と入力することで、管理者用のログイン画面が表示されてしまう。つまり、攻撃者は容易に管理画面のURLを推測できるということになる。管理画面を特定されると、ブルートフォース攻撃などの攻撃を受けやすくなるという懸念が残る。
・簡単に導入可能なテーマやプラグイン
WordPressは利便性の高いサードパーティのプラグインやテーマが多数提供されており、数クリックするだけでユーザーは簡単に導入できる。導入が容易である反面、不要になったプラグインや、アップデートされないプラグインなどが放置されがちとなる。放置されたプラグインやテーマに脆弱性が生じることで、被害に遭遇する危険性が高まる。
WordPressの利用において想定されるリスク
WordPressが攻撃にあった場合、想定されるリスクを列挙する。
・不正アクセス
管理画面へ不正アクセスされるリスクがある。WordPress本体のプログラムだけでなく、プラグインの脆弱性、あるいは管理者が利用する端末のマルウェア感染によっても、不正アクセスは引き起こされる可能性がある。WordPressの管理画面ではコンテンツの改変をはじめ、さまざまな操作が可能であり、場合によっては大きなトラブルに発展する危険性もある。
・ウェブサイトの改ざん
上述のように、WordPressが不正アクセスされることで、ウェブサイトの改ざんがなされる恐れがある。管理者が意図しない不正なコンテンツに書き換えられる、あるいは詐欺サイト等へのリンクを設置されるなどのリスクが考えられるだろう。自社のウェブサイトへアクセスしたユーザーが、別の悪意のあるウェブサイトへ転送され、マルウェア感染や詐欺被害に遭う可能性もある。
・情報漏えい
個人情報等がサーバー上にある場合は、それらが窃取される危険性がある。また、不正アクセス等によって窃取されたパスワードが、他のサービス等で使い回されていた場合は、別のプラットフォームからの情報漏えいなどといった、二次被害につながるケースもあり得る。
・意図せず犯罪の起点になる
ウェブサイトが改ざんされることで、自社サイトがユーザーを攻撃する犯罪の温床になってしまう。ランサムウェアの配布、クリプトマイニングへの加担、あるいはDDoS攻撃の踏み台にされるといった可能性が考えられる。
WordPressへの代表的な攻撃手法
一般的に、攻撃者はひとつではなく、複数の手法を組み合わせる。代表的な攻撃手法を解説する。
偽のウェブページへユーザーを誘導し、不正なスクリプトを仕込んだURL等をクリックさせることによって、ウェブページの改ざんや管理者権限の不正取得などを行なう。
インジェクション(injection)は直訳すると「注入」という意味になる。WordPressのデータベースを操作するSQL文に不正なコード等を注入し、データの操作や破壊を行なう。
パスワードなどを解読する攻撃手法で、総当たり攻撃とも呼ばれる。ユーザーIDを固定し、パスワードのあらゆる組み合わせを試行することで、認証の突破を狙う。
・ディレクトリトラバーサル
ディレクトリトラバーサルは別名パストラバーサル攻撃とも呼ばれる。脆弱性を悪用し、ファイルの保存場所であるパスを不正に操作することによって、本来アクセスできない設定ファイル等へアクセスする手法である。
・コンテンツインジェクション
脆弱性を悪用し、認証を受けることなくウェブページを改ざんする攻撃手法。過去にはWordPress本体でこの脆弱性が発覚している。
WordPressで実際に起きた被害事例
WordPressは狙われることが多く、事例は数多く存在する。その中でも特徴的なものを3つ紹介する。
・2015年に発覚した「Fancybox for WordPress」の脆弱性
2015年、警視庁のサイバー攻撃分析センターが国内において複数のウェブサイト改ざんを検知した。WordPressのプラグイン「Fancybox for WordPress」の脆弱性を突いた攻撃とされている。XSSによって不正なコンテンツやスクリプトが混入される危険性があった。
・2017年に発覚した「REST API」の脆弱性
2017年にはWordPress 4.7に「REST API」の脆弱性が発覚した。特定のリクエストをサーバーに送信することで、認証をすり抜けウェブサイトを改ざんする、コンテンツインジェクションが可能な状態だった。この脆弱性によって、世界で155万ものウェブサイトが改ざんの被害を受けたと報告されている。
・2018年に発覚した「WP GDPR Compliance」の脆弱性
2018年、EUのGDPR(一般データ保護規則)に対応するためのプラグイン「WP GDPR Compliance」に脆弱性が発見された。当時10万件以上のWordPressに同プラグインは導入されており、権限昇格の脆弱性によって、管理者権限をはく奪、ウェブサイト乗っ取りの被害に遭う危険性があった。
WordPressのセキュリティを高める10の方法
WordPressにはさまざまなリスクが存在する。では、どのように対策すればよいのだろうか? ここではWordPressのセキュリティを高める10の方法について解説する。
1)バージョンの管理(プラグインを含む)
WordPress本体、プラグイン、テーマのバージョンは常に最新版にアップデートしておくこと。2013年のWordPress 3.7以降、自動アップデートがデフォルトになっているものの、アップデートされるのはマイナーバージョンとセキュリティアップデートのみとなっている。メジャーアップデートやプラグインのアップデートは手動で行なう必要があるため、アップデート漏れがないようにしておきたい。
2)不要なプラグインの削除
不要なプラグインは極力削除すること。ユーザー数の少ないプラグインなどは、利用途中でアップデートがなされなくなるものもある。これらのプラグインは早めに判断し、削除しよう。また有効にしておらず無効(未使用)のプラグインに脆弱性があった場合も、攻撃のターゲットとなる可能性があるため、こちらも注意が必要だ。
3)定期的なバックアップ
WordPressの定期的なバックアップも重要な対策となる。サーバー側へのバックアップだけでなく、ローカル側へのバックアップも行なうよう心がけたい。仮にプラグインやWordPress本体のアップデート時に、重大な障害が生じた場合でも復旧することが可能だ。
4)ログのチェック
定期的なログのチェックも忘れないようにしよう。ログを定期監視することで、早いタイミングで異常が検知できる。チェックする際には生ログをダウンロードする方法もあるが、専用のプラグインも提供されているので活用するようにしたい。
5)パスワード管理
管理画面にログインするパスワードにはポリシーを設け、使い回しは絶対に避けること。パスワード設定の基本だが、15桁以上の長さにはしておきたい。同じアカウントを複数名で共有して利用するケースも見受けられるが、これも極力避けるようにしてほしい。
複数人でアカウントを共有する場合、推測されやすいパスワードになる傾向があるだけでなく、仮にインシデントが発生した場合にその特定だけでも時間を要してしまう。このような事態を回避するためにも、ユーザーごとにアカウントを作成し、個別にきちんと管理するようにしたい。アカウントを別にすることで、操作ログなどを確認し、インシデントが発生した場合の原因究明を行なうこともできる。
6)セキュリティ用プラグインの導入
WordPressにはセキュリティを高めるための各種プラグインが提供されている。例えば、一定時間内に複数のログイン試行があった場合に管理画面を非表示にするといった対策が可能だ。ログイン画面のURLを変更する、二要素認証の導入などもプラグインで用意されている。「SiteGuard WP Plugin」のように、ログインURLの変更、管理画面のアクセス制限、ログイン履歴の閲覧などをまとめて提供しているプラグインもあるので利用するといいだろう。
7)管理画面へのアクセス制限
管理画面に対し、IP制限をかけることで、接続元を限定することも有効な対策のひとつだ。社内ネットワークからのアクセスに限定すれば、利便性は下がるものの安全性は大きく向上する。安全性が最優先される場合に検討する余地はある。
8)セキュリティソフトを従業員の端末に導入
管理、運用する従業員の端末には必ずセキュリティソフトを導入するようにしたい。近年、マルウェアが巧妙化し、さまざまな経路から感染が広がっている。セキュリティソフトを導入することで感染リスクを大きく低減させることができる。マルウェアの感染がきっかけで管理者情報が漏えいし、FTP経由で不正アクセスされるケースも少なくない。
9)WAFの導入
WordPressを設置しているウェブサーバーとの接続経路上にWAF(Web Application Firewall)を導入するのも有効な対策のひとつだ。代表的なWAFのひとつとして知られるSiteGuardでは、サイバー攻撃の危険性からWordPressなどのウェブアプリケーションの脆弱性をダイレクトに保護する。WAFにありがちな誤検知を「カスタム・シグネチャ検査」で防ぎながら、パターンマッチングによって高い精度で危険な兆候を検知し、接続を遮断することができる。
10)VPNの導入
自宅や外出先など、社外から管理画面にアクセスする必要がある際は、VPN(Virtual Private Network)を使うことで通信時の安全性が高まる。通信の暗号化により情報の盗聴や改ざんを防ぐことができるが、利用時のリスクもあるため適切に理解した上で利用するようにしたい。
高まるウェブサイトの価値ゆえに適切な対策を
個人や企業などあらゆる意思決定における参照情報として、インターネット上のコンテンツは広く利用されるようになっている。企業にとって、ウェブサイトはまさに「情報資産」といえるような時代となった。仮に、改ざん等によって自社のウェブサイトが第三者への攻撃に悪用されてしまった場合、罪に問われる可能性もゼロではない。コンプライアンスやBCPといった観点も含め、事業継続に大きな影響をもたらす存在となっている。
ウェブサイトを取り巻く状況が大きく変わってきているからこそ、それらを守るためのセキュリティ対策が重要だという認識を強く持つようにしてほしい。