Joomla で作ったサイトの管理画面で、記事やモジュールを保存しようとすると「Forbidden(403)」と表示されて保存できない。そんなことはありませんか。
この原因の一つが、サイトを攻撃から守るための仕組み(WAF)です。私たちがお預かりしているサーバーでは、ModSecurity と OWASP CRS という WAF でサイトを守っています。WAF は、怪しい通信を止めてくれる大切な仕組みですが、管理画面で書いたふつうの HTML まで「攻撃かもしれない」と判断して止めてしまうことがあります。たとえば、文字に色や大きさを付けた本文や、太字のすぐ後ろにかっこが続く文などです。
Joomla には、公式の対策がありませんでした
WAF には、WordPress や Drupal のための公式の「除外」の設定が用意されています。ところが、Joomla のためのものはありません。そのため、これまではサイトごとに個別の設定で対応していました。
Joomla 用の設定を作り、公開しました
そこで、Joomla の管理画面のための設定を、WAF の追加機能(プラグイン)の形にまとめました。
設定をかけるのは、できるだけ狭い範囲だけです。
- ログインした管理者が、管理画面から保存するときだけ
- 記事・モジュール・カテゴリ・サイトの設定の、本文の欄だけ
- 止めすぎていた一部の規則だけ
サイトの表側や、ほかの種類の攻撃は、これまでどおり WAF が検査します。管理画面の保存は止まりにくくしながら、サイトの守りは保ったままにしています。
作ったものは GitHub で公開しています(futsure0/joomla-rule-exclusions-plugin)。技術的なくわしい内容は、SecureHatters のコラムでご紹介しています。先日のWordPress 向けの対策に続く、2 つ目の取り組みです。
Joomla をより安全に使うために
- Joomla 本体や拡張機能を、こまめに更新する
- 管理画面には、IP の制限や 2 段階認証などで、別に守りをかける
対象は Joomla 3.x の標準の画面です。独自の拡張機能を使っている場合など、個別の対応が必要なこともあります。「管理画面の保存が止まる」「サイトの守りを見直したい」といったお困りごとがあれば、お気軽にご相談ください。
Futsure Co., Ltd.