サードパーティのコードを増やせば、攻撃対象範囲は広くなります。コントロールパネルの拡張機能マネージャーにアクセスしてサイトにインストールされているプラグインを頻繁に監査し、使用されていないものは削除します。
また、公式の脆弱な拡張機能リスト(VEL)もしっかりと見直すべきです。VELにはセキュリティに不備がある既知のJoomlaの拡張機能でパッチが存在しないものについての概要が示されています。
既知の脆弱な拡張機能は必ず削除しなければなりません。Joomlaは内部アプリケーションで使用するためのVELのJSONフィードも提供しています。
4. 特権ユーザを監査する
Joomlaはデフォルトで特権を持つ次の3つのユーザグループにコントロールパネル領域へのアクセスを許可しています。
- マネージャー(Manager)―バックエンドのコンテンツ作成機能とシステム情報へのアクセス
- アドミニストレータ(Administer)―ほとんどの管理機能へのアクセス。ただしグローバルオプションを除く
- スーパーユーザ(Super User)―完全に制御可能なすべての管理機能へのアクセス
サイトの特権ユーザのリストを定期的に見直し、いつ最後にログインしたのか確認します。誰もが自分の仕事を実行するのに必要最低限の権限を持ち、余計なものを持たないようにするという最小特権の原則に従います。
5.ディレクトリインデックスを無効にする
Webサーバがデフォルトファイルをディレクトリ内で見つけられないindex.phpやindex.htmlなどの場合は、フォルダのコンテンツリストを表示するようにフォールバックすることがあります。MITREによる解説のように、ディレクトリインデックスの特定のリスクとその影響は、リスト上のファイルによって異なります。
Joomlaのサイトでは、拡張機能やテーマ、そしてサーバ自体が保持する情報が誤って公開される可能性があります。公開されたファイルには、認証情報の組み合わせ、またはデバッグ機能が含まれていることもあり、ハッカーがこれを使用してサイト内でより高度な特権を持つようになると深刻な被害がもたらされます。
Apacheでディレクトリインデックスを無効にするには、Joomla Webルートに移動してOptions -IndexesをHtaccessファイルに追加します。IISサーバでは、マネージャコンソールの 「ディレクトリブラウジング」で、有効なチェックボックスをすべてオフにします。
6. 二要素認証を有効にする
主なCMSの中では、Joomla が一番最初にコア機能としての二要素認証(2FA)を実装しました。バージョン3.2以降では、Joomlaの管理者はコントロールパネルのユーザ管理にアクセスし、ユーザアカウント用の2FAを有効にすることが出来ます。
このモジュールはソフトウェアベースのOTPクライアント(Google Authenticatorなど)とYubiKeyハードウェアデバイスをサポートします。二要素認証はフロントエンドまたはバックエンドのみに限定することも、両方での使用を義務付けることもできます。
二要素認証は優れた防御手段であり、特にマネージャー、アドミニストレータ、スーパーユーザなどの特権ユーザは利用すべきです。
7.サイト内の悪質なコンテンツをモニタする
「Googleセーフブラウジング」は、毎日何十億ものURLを積極的に調べ、悪質なコンテンツを扱う危険なウェブサイトを特定します。
Joomlaのサイトのステータスを定期的に確認し、問題が検出された場合はすぐに対処してください。侵害された可能性のあるwebサイトを調査する時は、オンデマンドのVirusTotalのURLスキャナを使って感染方法を絞り込みます。
8. Joomla公式のセキュリティアナウンスを購読する
Joomlaは脆弱性に関する勧告をセキュリティアナウンスメントのページに公表しています。FeedBurner経由で電子メール通知を購読するか、RSSフィードを最適なリーダーに追加すると、コアソフトウェアの解決された問題に関する最新情報が得られます。
それぞれの勧告には、Joomlaのサイトを保護するための簡潔な説明、影響評価、修復の詳細が含まれています。
参考文献
著者について:ヤシン・ソリマン。イギリス出身のセキュリティアナリスト。ウェブアプリテストとレッドチーム演習業務、サイバー犯罪と新技術関連の記事多数、情報セキュリティに精通している。ツイッターのアカウントはこちら@SecurityYasin。