忘れたくても忘れられないのですが、どこかに記録しておけばまた同じようなことがあった際に冷静に対処できる気がしたので書き残そうと思います。
※守秘義務もありますので、企業名などは伏せさせていただきます。
事の始まり
週明け月曜日の朝、「弊社で管理している企業様のコーポレートサイトの管理画面にログインできない」と社内デザイナー兼ディレクターから私に連絡が来ました。
このサイトは私が入社する前に前任者の方がWordPressにて2021年頃に構築し、WordPress本体もプラグインもアップデートがなされていないもので、同じ場所にいた私になんとなく話を持ちかけられたという背景があります。
各種ログイン情報などはスプレッドシートにて管理していますが、そもそもログインページ自体にアクセスができませんでした。
詳しく調べてみる
ログインページが表示できないことに加え、土曜日から日曜日にかけてGoogle Search Consoleのユーザーに不審なユーザーが25名ほど追加されたという通知メールも確認しました。
また、サーバーに上がっているファイルを見てみると、「アップした覚えもなく、こんな拡張子のファイルあるわけない」という感想のものが複数のディレクトリで確認しました。
この時点で、「よくわからんが、何かやばい」という感情になりました。
加えて、このサーバーには他にもサブドメイン運用で4つのサイトが存在しており、どれもが汚染されている形跡がありました。
対応してみる
会社に属している以上、背を向けて逃げ出すことが叶いません。
構築担当者でもない私が対応できるか不安でしたが、「やるだけのことはせねば」という気持ちでした。
時系列がバラバラかもしれませんが、対応したことは以下の通りです。
- 企業担当者に状況説明してもらうようにディレクターに情報共有
- 社内関係者に現状報告
- Google Search Consoleのユーザーの削除
- サーバーから不審なファイルをダウンロードし手元に保存
- 不審なファイルを削除
- 社内にて対応策の検討と実施
大きく6つの対応をしました。
情報共有
サブドメインも含めて計5サイトが正常に閲覧できなくなっているという旨を先方に共有しました。
現状報告
「とりあえず私が対応するので何かあったらお力添えを」という感じのメッセージを社内の関係者に周知しました。
ユーザーの削除
意味のない文字列のユーザー名とメールアドレスで追加されているユーザーを削除しました。
不審なファイルを保存
全部控えられたかは分かりかねますが、確認できたものは手元にダウンロードしました。(ダウンロードして良かったのかも分かりませんが)
開いても良さそうなphpファイルを確認してみると
<FilesMatch "^(?!index\.php$|class-IX\.php|class-akismet-admin\.php|privacy-policy\.php$).*\.php$">
Order allow,deny
Deny from all
</FilesMatch>
複数のディレクトリの.htaccessに、上記のような特定のファイル以外へのアクセスを禁止する記述があり、これによりWordPressコアファイルへのアクセスが妨害(管理画面に入れなくなる)されました。
不審なファイルを削除
削除実施後はログインページには入れ、控えてあるログイン情報にてログインは成功しました。
ですが、登録の覚えのないユーザーが管理者権限で登録されており、最悪なことにお問い合わせにて個人情報を取得しているサイトでもありました。
「管理者権限でログインされ、サーバーにも入られている」ということは極論なんでもできてしまう状況にあります。
対応策の検討と実施
「新規でレンタルサーバーを契約し、そこで作り直す」という結論になり、「それを構築するまではお問い合わせだけに特化した静的ページを用意する」という対応をすることになりました。
お問い合わせは外部サービスを用意し、それ以外の大枠は私が当日中に用意しました。
ソースコード自体はGitHubにて管理していましたが、データベースも汚染されている可能性もあると判断しましたので、データベース情報に関連するものは一から入力していく方針になりました。
後日談
紆余曲折ありましたが、なんとか5サイト復活できました。(データベース情報は除きますが)
落ち着いたタイミングで色々調べてみると、Google Search Consoleの「検索パフォーマンス」からいろんな事がわかりました。
- インドネシアからのアクセスが増加している
- 不審なユーザー追加があった土日のアクセス数も増加している
- 特定の記事詳細ページのアクセス数が増加している
- その記事が、あるスロットゲームでもらえるボーナスの検索結果で表示されている
などが分かりました。
これらのことから、「海外のギャンブルサイトの入り口に利用されていた可能性」が推測できるかと思います。
反省
「会社としてリリースしたり運用を任せられているサイトには責任を持ち、誰がどのサイトの担当者であるか明確にしておく必要がある」と改めて確認できました。
入社前のサイトなんて知る由もないのですが、こういった引き継ぎも大事ですし、後からその担当者が泣かなくて済みます。
今回は攻撃者の目的上大事にはならずに済みましたが、個人情報が抜き取られる悪用される可能性もあり、この一部始終のやり取りは先方様に報告書として提出しました。
中小企業は特に狙われやすいらしいので、今後も気をつけていきます。
