Forum
J! JAPAN TOP
ようこそ, ゲスト
ユーザ名: パスワード: 自動ログイン

トピック: サイト改ざん被害の報告と注意喚起

サイト改ざん被害の報告と注意喚起 1 年 8 ヶ月 ago #5016

  • ecohama
  • ecohama さんのアバター
  • Offline
  • Junior Boarder
  • Joomla 1.5から3.xへマイグレートしました。
  • 投稿数: 37
  • カルマ: 0
Joomla! 3.4.8で作ったサイトが改ざんされる被害に遭いました。Joomla!サイトオーナーの皆さんへの注意喚起の意味で、サイト改ざんの経緯と対策をまとめておきます。

--
Joomla!バージョン:3.4.8
PHPバージョン:5.5.28
MySQLバージョン:5.1.73
サーバ情報:CoreServer
URL(公開可能であれば):ここでは、Xと仮称
状況:下記に説明
実際に表示されるエラーログ:なし
---

経緯

1月1日から1月5日にかけて、Joomla!サイトXの /administrator に対して、.dynamic.ttnet.com.tr.reverse.superonline.net から集中的にアクセスがありました。これらのいずれかによって1月5日にログインされ、Joomla!のプログラムの defines.php の最終行に以下のコードで始まる不審なコードが書き込まれました。
//istart

function is_valid_url(&$url)

さらには、同一サーバ上の他のJoomla!やその他のCMSのプログラムも同様に改ざんされました。サーバ会社から提供されたアクセスログを見ると、サーバの管理画面とFTPは破られていないので、改ざんの経路は最初に破られたJoomla!サイトであることは間違いありません。そのため、どうやって他のサイトのプログラムまで書き換えられたのかは不明です。

1月6日にサーバ会社が不審なコードを検知し、不審なコードが含まれるファイルすべてを実行不可能なパーミッションに書き換えました。この時点ですべてのCMSサイトは管理画面も含めて全く表示不能になりました。その後、サーバ会社から以下の対策を指示され、順次実行しました。
  • サーバ管理画面とFTPのパスワード変更
  • サーバ上の全データをダウンロードした上でローカルPC上のバックアップファイルとの比較調査
  • サーバ上の全データの削除
  • サイトの復旧とCMS管理画面のIDとパスワードの変更

対策
  • Joomla!のプログラムを最新版に維持
  • 2段階認証(Google認証)は必ず常時ON
  • 容易に推測されるID(例:admin, webmaster等)の不使用
  • .htaccess と .ftpaccess で不審なアクセス元をブロック
  • Joomla!やエクステンションの更新後は必ずローカルPC上にバックアップ

サーバ会社から提供されたアクセスログを見ると、URLにjoomlaという文字列が含まれているサイトが集中的に狙われました。どうやら確実にJoomla!で作られているサイトを狙い撃ちしてきたと推測できます。Joomla!サイトではプログラムを最新版にキープすることがセキュリティ上最低限必要なことと思われます。

ところが、今回改ざんされたサイトは、Joomla! 3.4.8(当時の最新版)に更新されていました。ということは、最新版でも管理画面のガードが甘いと破られるということです。ここは大きな反省が3つあります。

1つ目は、まとめてサイトを手直しするのに、2段階認証を切ってしまったことです。ログイン、ログアウトを繰り返すときは、2段階認証が億劫なので、つい切ってしまったのですが、ONに戻すのを完全に忘れていました。常時2段階認証ONが基本です。

2つ目は、容易に推測されるIDを使っていたことです。これでは、IDはすぐに特定されてしまいます。

3つ目は、パスワードの使い回しです。パスワードは容易に推測されない英数字の組み合わせで11桁でした。仮に英字は大文字か小文字のどちらかにヤマを張ったとしても、3611通りものパターンが存在するので、どのように破られたのかは不明です。私が猛烈に反省しなければいけないのは、ここで破られたIDとパスワードを他のCMSの管理画面にも使っていたことでした。これで被害が拡大したのではないかと推測されます。

もしCMSの管理画面のURLへのアクセスが急増していることが確認できるようなら、そのアクセス元のアドレスを .htaccess と .ftpaccess でブロックしておいたほうがよいでしょう。

Joomla!は、エクステンションも含めてプログラムを管理画面上で更新できて便利なのですが、そのためにローカルPCにバックアップを取る癖がなくなります。これで、今回のサイト改ざんでは痛い目に遭いました。ついJoomla!やエクステンションのプログラム更新後は、Akeebaにバックアップさせて、それっきりにしていました。これだとサーバに不審なコードが仕込まれたとき、サーバ上のバックアップを復旧に使ってよいかどうか判断できず、全く無意味でした。そこで、ローカルPCに残っている古いデータをアップロードしてから、エクステンションをインストール、設定していく羽目になりました。この方法では、必ずしもすべてが正常に動作するわけではないため、復旧に膨大な時間を取られました。Joomla!管理画面上でプログラムを更新した後は、面倒でもFTPでローカルPC上にバックアップしておくことが必要です。

以上、Joomla!サイト改ざん被害の経緯と対策でした。ご参考まで。
最終編集: 1 年 7 ヶ月 ago : ecohama. 理由: 2段階認証の設定方法を解説したページにリンク
ゲストの書き込みは許可されていません。

サイト改ざん被害の報告と注意喚起 1 年 8 ヶ月 ago #5017

  • hanji
  • hanji さんのアバター
  • Offline
  • Junior Boarder
  • 投稿数: 27
  • 感謝を受け取りました 6
  • カルマ: 1
Goyat 吉田です。

この掲示板では、しばらくお休みをしていました。
今回のハッキングは、ブルートフォース攻撃で管理画面から進入されたと言うことですね。
管理画面ログインIDとパスワードがハッカーに見つかってしまったために細工をされた。

IDは、英数字と日本独自の2バイトコードの文字を混ぜると良いです。海外からのハッカーは日本独自の文字の知識がないからです。分かっても時間稼ぎはできます。
さらに、管理画面URLをAdmin Exileを使って変更することです。これだけでもかなり防御できます。

参考まで。
ゲストの書き込みは許可されていません。
次のユーザが感謝しました: ecohama

サイト改ざん被害の報告と注意喚起 1 年 8 ヶ月 ago #5018

  • ecohama
  • ecohama さんのアバター
  • Offline
  • Junior Boarder
  • Joomla 1.5から3.xへマイグレートしました。
  • 投稿数: 37
  • カルマ: 0
ご助言いただきましてありがとうございます。

長年Joomla!を使ってきましたが、ログインIDに2バイト文字が使えるなんて知りませんでした!
また、AdminExileも試してみました。管理画面ディレクトリを入力するとトップページにリダイレクトされるんですね。管理画面ディレクトリ/index.php まで入力すると管理画面にアクセスできてしまいますが。

今回の手口がブルートフォース攻撃かどうかは不明です。アクセスログを見ても三日三晩コンスタントにアクセスしてきたわけではなく、断続的なアクセスでした。この程度のアクセスでよく11桁のパスワードが破れたもんだなと不思議なくらいです。ただ、以前に特定のIPアドレスからアクセスが急増したときには、サーバ会社から警告されたのですが、今回は何の警告もありませんでした。正月休みというアクセスが激減しサーバ会社の監視も手薄になる時期だったので、ブルートフォース攻撃をされたとしても、サーバの負荷に影響を与えるほどではなかったということなのかもしれません。

いずれにしても、Joomla!サイトを狙った攻撃であることは間違いないので、このような知見をご紹介いただけるのはありがたいです。
最終編集: 1 年 7 ヶ月 ago : ecohama. 理由: AdminExileの設定方法を解説したページにリンク
ゲストの書き込みは許可されていません。

サイト改ざん被害の報告と注意喚起 1 年 8 ヶ月 ago #5021

  • hanji
  • hanji さんのアバター
  • Offline
  • Junior Boarder
  • 投稿数: 27
  • 感謝を受け取りました 6
  • カルマ: 1
Goyat 吉田です。

>管理画面ディレクトリ/index.php まで入力すると管理画面にアクセスできてしまいますが。

xxxxx.com/administrator/index.php ではサイトからログアウトしていればトップページに戻りますよ。管理画面からログアウトしていないでやっているのではないでしょうか。AdminExileを使ったサイトで確認しましたが、管理画面からログアウトしていればトップページにリダイレクトされます。

Brute-forceアタックには色々あります。大量に攻撃してくる場合と、1時間に1回と気長にやってくる攻撃があります。

私は、万が一のために有料のSecuritycheckProを使っています。そろそろ、そちらのサイトも有料のセキュリティーエクステンションを導入する時期ではないでしょうか。
セキュリティの壁は、幾つもある方が良いですね。
ゲストの書き込みは許可されていません。

サイト改ざん被害の報告と注意喚起 1 年 7 ヶ月 ago #5023

  • ecohama
  • ecohama さんのアバター
  • Offline
  • Junior Boarder
  • Joomla 1.5から3.xへマイグレートしました。
  • 投稿数: 37
  • カルマ: 0
ご返信いただきましてありがとうございます。

管理画面ではなく正しくはログイン画面でした。誤解を招く書き方で失礼いたしました。ログアウトしていなければログイン画面が表示されるはずはないため、その推測には該当しないと思われます。
今日テストしてみたら、index.phpもリダイレクトされました。さらにテストしてみたら、ログアウト直後のようなブラウザにキャッシュが残っている時か何かに限って、元の管理画面URLでログインできるようですね。

今日になって気付きましたが、このAdminExileには、特定のIPアドレスのブロック機能やブルートフォース攻撃を受けたらメールで通知する機能があるんですね。

この機能をきちんと設定したら、確実にブルートフォース攻撃元のIPアドレスがメールで通知されること、さらにIPアドレスブロック機能が効いていることを確認しました。

このエクステンションは、Joomla!サイトにはマストですね。このような知見を共有いただきましてありがとうございます。
最終編集: 1 年 7 ヶ月 ago : ecohama. 理由: AdminExileの設定方法を解説したページにリンク
ゲストの書き込みは許可されていません。