COLUMN/

wordpress利用者要注意。気づきにくい改ざんの実例と対策

このところ、wordpressサイトの改ざん、不正コードの埋め込みの対応に関する依頼をよく受けています。

症状としてはスパムが多くなった、遅く感じる、サーバ会社から報告があったなどがきっかけですが、共通する症状があり、意外と影響は深刻です。

お心当たりある方もない方も、管理されているサイトをチェックしてみていはいかがでしょうか。

症状は?

ご相談のサイトを調べてみると共通する特徴として、

  • アクセスすると表示スピードが異様に遅くなる
  • Chromeでアクセスすると、覚えのないダウンロードリンクが表示される
  • スパム審査サイトなどからでは判明しない
  • テーマなどサイト内のPHPファイルにコードが埋め込まれている
  • サーバはさくらやロリポップなど一般的な共用サーバ
  • 実際に埋め込まれたのは数カ月以上前

と言ったものがあります。サーバ会社から注意を受けると、サーバ内の他のサイトへの影響を考えて閉鎖される恐れもあるため心配ですね。

今回は、サイトにアクセスすると「font hasn’t found(フォントが見つかりません)」のメッセージが表示され、「 Chrome_Font.exe」などの不正ファイルをダウンロードさせるという手口です。

特にChromブラウザからアクセスがあった場合、影響を受けるとのことです。

PCの設定によっては自動的にダウンロードされる場合もあるようです。

Remove the BrowserMe.exe or Chrome_Font.exe Fleercivet Ad Clicker Trojan

EITest Nabbing Chrome Users with a “Chrome Font” Social Engineering Scheme

影響としては、

  • サイトの表示が異様に遅くなる時がある
  • 迷惑広告や不要なポップアップウィンドウが表示される
  • PCの速度が遅くなり、フリーズが発生したりする
  • 他のウィルスからの被害を受けやすくなる
  • IDやパスワードを盗まれる恐れがある

実際、とあるサイトではwordpressのユーザーが新規に作成され、勝手に投稿がされるという影響にまで及んでいました。
時期的に見て関連性があるかと思われます。

原因は?

FTPやwordpressのIDとパスワードがどこかからか漏れたことがまず考えられます。

または、wordpress自体やプラグインのセキュリティホールからの侵入です。メンテやアップデートが遅れがちの場合、気をつけなければいけないですね。

発見方法

WordPressはPHPファイルで構成されていますが、wordpressと関連のあるPHPファイルに下記のような不正なコードが埋め込まれていました。

一見何かの命令文やスクリプトに見えますが、こう言ったものがないかを確認して見てください。

上記のファイルは最上階層にあるwp-config.phpファイルですが、こう言った重要な設定の記載されているファイルにも書き込みがなされていました。

 

今回はPHPへ書き込みをするタイプのようで、データベースへはこのコードは埋め込まれていなかったがmySQLにまで影響を及ぼすタイプのものであれば、別の対応が必要です。

解決方法

  1. まずはサイト全体のダウンロードとバックアップ。
  2. 上記の不正コードを使い全体を検索し、コードの埋め込まれたファイルを検索。
  3. 「置き換え」を使って、不正コードを全て削除。
  4. 修正したファイルのアップロード。

もしバックアップしているデータがあれば、これをサーバにアップし上書きするだけでもいいかもしれません。

またもし確実にしたい場合は、wordpress.comから最新のwordpressファイルをダウンロードし、上書きすることができます。
その際、設定ファイルやプラグイン、テーマファイル、uploadフォルダ内は上書きしないように気をつけてください。

防御方法

#1.まずはPCのセキュリティを強固なものに。

FTP、mySQL、そしてwordpressのIDやパスワードといった設定情報保管方法も見直しましょう。

なんだかんだ言っても、パスワードを定期的に変更するフローを持っておくのはいいのかもしれません。

#2. サーバのセキュリティ設定を見直しましょう。

サーバから可能であれば、WAF(ファイアーウォール)の導入や、IPアドレス、ログインできるPCへの制限を行ないましょう。もちろんこれには運用上のポリシーとも関係するので、クライアントがいる場合は運用方法の見直しも含めることも忘れずに。

#3.FTPディレクトリ内のファイルの権限をしっかりと確認しよう。

設定情報の含まれている.htaccessやwp-config.phpは特に見直しましょう。

ロリポップの対策ページには、下記の情報が乗せられていました:

サイト改善への対策をお願いします

ディレクトリ、ファイルのパーミッションを以下の値での設定を推奨しております。

HTML・画像ファイル 604 rw—-r–
CGIの実行ファイル 700 rwx——
CGIのデータファイル 600 rw——-
.htaccessファイル 604 rw—-r–
ディレクトリ 705 rwx—r-x

パーミッションの設定を「777 (rwxrwxrwx)」や「666 (rw-rw-rw-)」などに設定されている場合は、「誰でも書き込める」設定となっているため、改ざんが行われる可能性がございます。ご確認の上、上記の値に変更してください。

-「.htaccess」ファイルが書き換えられる事例が多発いたしております。パーミッションが「604 (rw—-r–)」であるかご確認ください。
-「wp-config.php」のパーミッションは「400 (r——–)」に変更をお願いいたします。

#4. WordPressのセキュリティプラグインを入れて設定しよう。

主にログイン対策となりますが、セキュリティプラグインの導入も水際で防ぐことになります。

繰り返しとなりますが、これも運用方法とセットで。壁を一つ作ることは、日々の運用の手間などを一つ増やすことなので、実効性や使い方を考えましょう。

可能なクライアントのサイトにて、私は以下のプラグインを使っています:

SiteGuard WP Plugin – 管理画面への不正ログインを防ぐWordPressプラグイン

#5. wordpressのプラグインは、常に見直そう。

「便利そう」ということで使っていても、日々発見される脆弱性や危機に応じて更新や開発を行っていないプラグインも多々あります。

そういったプラグインから侵入されるケースもあるため、開発が1、2年行われていない場合は代替プラグインの導入をしましょう。


wordpressは、というよりウェブサイトもうほぼ保守運営ありきなのは事実です。

放置していて、後々面倒のタネになってしまうことも少なくありません。

保守というとどうしても後手になってしまいがちですが、せっかくなので全体をクリーンにする機会にしてみては。

サポートもしていますのでお気軽にご相談ください。

 

Yossio Nagata
Web Director / designer

沖縄県与那原町在住。ICT企業のウェブ部門担当、事業会社のインハウスデザイナーを経験。2012年より独立し、企業のウェブ制作、運用を専門に展開。 ロードバイクと山とコーヒーにこだわりを持つ。