このサイトの「ホームページ」

『PHPサイバーテロの技法──』 まずは攻撃方法を学ぶ : 亜細亜ノ蛾 で紹介した本を読んで、セキュリティの勉強中です。よくよく考えたら、このサイト上には放置してある Web アプリケーションが結構あります。MT の事ばかり情報を集めてきましたが、放置してある Web アプリケーションに脆弱性があった場合、いくらでも悪意のある攻撃を受ける可能性があります。──いままで目立った被害がないのは、単なる幸運と考えた方がいいですね。というか、現在進行形で情報を抜き取られている可能性も……。

ということで、このサイトの顔であるトップページからセキュリティ対策を施すことにしました。誰も(スパマ以外は)知らないと思いますが、このサイトの「ホームページ(入り口)」は XOOPS v2 で作られています。──まぁ、現在(数年前から)リニューアル中でたいした物は置いてませんが。

亜細亜ノ蛾 - Go for the gold!!亜細亜ノ蛾 - Go for the gold!!

今日までトップページは XOOPS 2.0.7 で構築していました。──これって結構古いのかな、と XOOPS の日本公式サイトを見てみました。

XOOPS Cube日本サイト - Simple, Secure, ScalableXOOPS Cube日本サイト - Simple, Secure, Scalable

──ん? いつの間にか、XOOPS v2.x 系は「XOOPS Cube」という名称になっている? と思って XOOPS Cube日本サイト - ダウンロードを見てみると、

  • XOOPS v2.0.x 系 : XOOPS v2
  • XOOPS v2.1.x 系 : XOOPS Cube

という名称のようです。XOOPS v2 の最新バージョンは「XOOPS 2.0.16a JP」とのこと。──「XOOPS 2.0.7 < XOOPS 2.0.16a JP」なのが微妙に違和感がありますが、「7 < 16」ということですね。かなり古いバージョンで放置していたことが判りました。さっそく対策として、XOOPS をバージョンアップすることにしました。

──まさかこんなに苦労するとは思いもよらず……。

asiamoth てきな XOOPS アップグレード

「XOOPS 2.0.7」(自分の場合)から「XOOPS 2.0.16a JP」(最新バージョン)にアップグレードする方法を紹介します。必要なファイルはすべて、上記の「ダウンロード」ページにあります。

まずは公式のアップグレード方法です。

  1. 「XOOPS 2.0.7→2.0.10 JP」をダウンロード、上書きアップロードする
  2. 「XOOPS 2.0.10/2.0.10.1/2.0.10.2 JP →2.0.11 JP」をダウンロード、上書きアップロードする
  3. 「XOOPS 2.0.11/2.0.11.1 JP→2.0.12 JP」をダウンロード、上書きアップロードする
  4. 「XOOPS 2.0.13 JP→2.0.13a JP」をダウンロード、上書きアップロードする
  5. 「XOOPS 2.0.13/2.0.13a JP→2.0.14 JP」をダウンロード、上書きアップロードする
  6. 「XOOPS 2.0.14/2.0.14a JP→2.0.15 JP」をダウンロード、上書きアップロードする
  7. 「XOOPS 2.0.15 JP→2.0.16a JP」をダウンロード、上書きアップロードする

ちょ w しかし、これはネタではありません。それぞれのアップグレードに必要なファイルしか同梱されていないので、一つでも手順を抜かすとアップグレードに失敗する、はずです。XOOPS 2.0.7 よりも古いバージョンを使っていた場合は……。

しかも、XOOPS Cube日本サイト - 重要ニュース : XOOPS 2.0.16a JPリリースに書いてあるアップグレード方法をみると、 XOOPS 2.0.14 JPより前のバージョンからのアップグレードから延々と「こちらのニュース記事をご参照ください」でたらい回しにされます。ちょっとこれは、ヒドいなぁ。

で、泣きながら(嘘)上記の手順でアップロード完了したのですが──トップページが真っ白になりました。幸いにして管理画面にログオン状態でアップロードしたので、管理画面は操作可能なのですが、何をやってもトップページや Wiki が見られない。すべてのモジュールが閲覧不可、まったく何も出力されない状態になっていました。

ということで、実際に自分が行ったアップグレード方法は、

  1. 「XOOPS 2.0.16a JP コアパッケージ(安定版)」を ダウソロード
  2. 何も考えずに上書き うp
  3. 運を天に任せて待つ

──で、けっきょく上手く行きました。アップグレードの場合に重要なのは“mainfile.php”を保守することですね。この中にデータベースへの接続情報などが入っています。

XOOPS Protector

XOOPS ユーザは、前述の PHPサイバーテロの技法―攻撃と防御の実際の著者、GIJOE 氏のサイトは必見です。

PEAK XOOPS Support&Experiment - XOOPS site for my test and support で公開されている XOOPS v2.x 用モジュール「XOOPS Protector」は是非とも導入しましょう!

このモジュールでは、以下の攻撃を防ぎます。

  • DoS
  • 悪意あるクローラー(メール収集ボットなど)
  • SQL Injection
  • XSS (といっても、ごく一部のパターンだけですが...)
  • システムグローバル変数汚染
  • セッションハイジャック
  • ヌルバイト攻撃
  • ディレクトリ遡り攻撃
  • いくつかの危険なCSRF (XOOPS 2.0.9.2以下に存在するもの)
  • Brute Force (パスワード総当たり)
  • 拡張子偽装画像ファイルアップロード (すなわち、IE Content-Type XSS)
  • 実行可能なファイルをアップロードする攻撃
  • XMLRPC関連

これらの攻撃からあなたのXOOPSを守り、ログに記録します。

PEAK XOOPS Support&Experiment - Xoops Protector 2.57

[2] このページの一番上へ戻る