「MODx」タグアーカイブ

MODxのReflectにRFIの脆弱性が見つかりました

MODx CMS "reflect_base" File Inclusion Vulnerability (Secunia)

MODx 0.9.2と、それ以前の全バージョンに同梱されているスニペットReflectにRFI(Request for Information)の脆弱性が発見されました。この脆弱性を衝かれると、ファイルのアップロードや悪意のあるスクリプトの実行を許してしまうことになります。1秒でも早く対応してください。対応方法は次のとおり。

0.9.6.2 security problem with reflect snippets (MODx Forum)

問題になるファイルは"snippet.reflect.php"。このファイルの名前を"a.txt"のような実行できない形式に変更するか、サーバ上から削除してください。Reflectを使用している場合でも、"snippet.reflect.php"を削除してかまいません。スニペット本体は既にDB内に書き込まれており、運用上無くても問題ないからです。このファイルは運用者のソース参照用のためだけに存在しているます。ですから、本来はサーバ上にアップしておくこと自体が望ましくないと言えます。

このセキュリティアナウンスが勧告された即日から、滅多に人が来ないサイトでさえ、1日に2000件近くもReflectへの不正アタックが続いています。クラッカーである彼、もしくは彼らは、BOTネットを駆使して多数のIPから攻撃を仕掛けてきました。これではIPベースのアクセス制御は無意味に等しいです。幸い、日頃からセキュリティポリシーを厳し目に設定してたおかげで、このアタックの大半は実質的な被害もなく未然に防げました。しかし、今回が幸運だっただけで、いつ破られるとも知れません。皆さんも、これを機にサーバのセキュリティを今一度見直してみてはいかがでしょうか。

MODxサブドメイン対応版0.9.6.2

MODx 0.9.6.2をマルチドメインに対応させるパッケージをアップデートしました。

MODxマルチドメイン対応版

Subsites the MAD [HACK] Ver.2.1.0962(MODx Ver.0.9.6.2版)

詳しい特徴などは以前の記事を参照してください。

それにしても、この時期にアップデートが来るとは思いもせず油断してました。0.9.6系はいつまでメンテナンスされるのでしょう。現在、この改造版を私自身が一切使用していない関係で、もしかしたら、保守は今回限りになるかもしれません。

MODx 0.9.6.2セキュリティfixの注意点

2008年09月18日追記:MODx 0.9.6.2にアップデートすると文字化けが発生します。そのままドキュメントの編集をするとDBのデータが破壊されます。近々パッチが適用されると思われますので使用は控えましょう。詳細は文字化け報告スレへ。

小規模サイトに最適なCMS MODxのバージョン0.9.6.2が、日本時間2008年09月17日にリリースされました。今回のアップデートは、以前発表があった新仕様のMODx0.9.7系(Rev版)ではなく、旧仕様のMODx 0.9.6系のセキュリティフィックスがメインです。主な修正点は以下のとおり。

0.9.6.2 HTTP_REFERER Checks and Potential CSRF Vulnerabilities (MODx Security Notices)

  • CSRFの可能性
  • HTTP_REFERERチェックの強化

後者の修正HTTP_REFERERチェックはONにすることが推奨されています。設定は、[Tools (ツール)]-[Configuration (MODx設定)]の[Site (サイト)]タブの最下段から可能です。もっとも、HTTP_REFERERは簡単に詐称可能なので、この設定を過信しないようにしましょう。あくまで応急処置です。次期MODxでは、これらの脆弱性を根本的に対策するそうです。上記以外の変更点はリリースノートを参照して下さい。

また、HTTP_REFERERチェックをONにすると、環境によってはマネージャにログイン出来なくなる可能性があります。そのときは、セキュリティソフト等のリファラー送信を許可して下さい。それでも解決出来ないという状態であれば、次の方法でHTTP_REFERERチェックをOFFにしてください。

データベースのsystem_settingsテーブルにあるsetting_name = 'validate_referer'を探し、値を0に戻す。その後、siteCache.idx.phpを開き、以下の行を修正します。

//修正前
$c['validate_referer'] = "1";
//修正後
$c['validate_referer'] = "0";

MODxを狙うクラッキングが横行しています。早めにアップデートをしましょう。

MODx0.9.7はマルチサイト対応になるらしい

次期MODx0.9.7はマルチサイトに対応するのか?という質問を頂いたので調査してみました。

0.9.7-Alpha Release Announcement (MODx公式)

完璧なカスタマイズ性

  • 1コアのインストールで複数サイトを運用
  • root以外の場所へのコアのインストール
  • managerやassetsディレクトリを名称変更可能
  • 管理画面のカスタマイズ

上記の通り、どうやら対応されるようです。私が公開しているマルチドメイン用ハックは0.9.7でお役御免となることでしょう。

では、使用感は次期バージョンでどうなるのか。youtubeの動画をご覧下さい。

分かりにくいですが、Ajaxを駆使してブラウザを意識しない滑らかな操作感を実現しています。技術者でなくても直感的に管理が可能だと思われます。逆に、システム構成が大幅に変更されたため、コアの深いところを触ろうとすると躓くかもしれません。

説明はこれくらいにして、実際に使用してみましょう。ここでは開発版のためのインストール方法を解説します。

  1. 開発版MODx0.9.7のダウンロードMODx0.9.7 svnリポジトリから全ファイルをダウンロードしてください。tortoiseSVN等のSVNクライアントがあると便利です。
  2. 設定ファイルの書き換え
    /_build/build.config.sample.phpを参考に/_build/build.config.phpを作成してください。内容のXPDO_DB_USERとXPDO_DB_PASSに使用するDBアカウントを設定しましょう。
  3. アップロード
    全てのファイルをサーバにアップロードしてください。ht.accessは.htaccessにリネームしたものとそうでないもの両方をアップ。
  4. 下準備
    次にセットアップ前の下準備をします。/_build/transport.core.phpにアクセスしてください。0.9.7から導入のcore.transport.zipが作成されます。もし、エラーが出るようであれば、この手続き以降safeモードを解除して実行してみてください。ただし、セキュリティが大幅に低下するため、外部サーバを使う場合は、体験が済んだら早急に元に戻しておいてください。
  5. セットアップスクリプトの起動
    ここからセットアップの始まりです。/setup/にアクセスしてください。MODx0.9.6に近い手順でインストールが完了すると思います。
  6. 管理画面へログイン
    インストール最後にログインを促されてもスクリプトエラーが起きるかもしれません。無視しましょう。管理画面へのアドレスを入力し、そちらからログインすれば問題ありません。

以上で開発版MODx0.9.7のインストールが完了しました。一足先に使い勝手を体験し、使いにくい部分やバグがあれば、どんどん公式へ報告しましょう。今なら正式版へ反映されるかもしれません。