Joomlaは2005年、Mamboコンテンツ管理システム(CMS)のフォークとして公開されました。9100万回以上もダウンロードされ、Mamboを凌ぎあらゆるサイズのウェブサイト向けのユビキタスプラットフォームになりました。
昨年Sucuriは侵害されたサイト36,000件以上についてまとめた報告書「Hacked Website Report」を発表しましたが、それによると最も感染しやすいCMSの第2位にJoomlaが上がっており、1位は WordPress 、3位はMagentoとなっています。Joomlaのサイトは、セキュリティの設定ミス、サードパーティ拡張機能の脆弱性、旧弊なコアソフトウェアを実行しているサーバなどのため、しばしばブラックハットの魅力的なターゲットとなっています。
Joomlaのサイトが侵害されると、ユーザは危険に曝され、取り返しがつかないほど信用を失うきっかけとなります。それを念頭に置き、悪質な行為からJoomlaのサイトを守るための8つのヒントを見てみましょう。
1.Joomlaのコアを常に最新バージョンにする
まず第一に、最新の安定したJoomlaのビルドが実行されていることを確認します。公式リリースのたびに、新機能と機能上のバグ修正、そして最も大切なことですが、セキュリティの脆弱性に関するパッチが当てられます。アップデートのダウンロードが可能な場合、コントロールパネルのバックエンドに通知が表示されます。
アップグレードパッケージは、Joomlaのダウンロードサイトからもアクセス可能です。アップデートの前には必ずサイトをバックアップし、手動で処理を行う場合は、手順をよく理解しましょう。
2. 拡張機能を常に最新バージョンにする
Joomlaのコアは更新しても、サードパーティの拡張機能は確認しましたか?脆弱なプラグインは、CMSベースのサイトを標的とするハッカーにとって一般的な攻撃経路となります。
公式の拡張機能ディレクトリで入手できるプラグインは、新しいバージョンが入手可能な場合、コントロールパネルに通知が表示されるアップデートシステムを使用するよう要求されるようになります。外部開発者は、このアップデートシステムを考慮して拡張機能を作成する必要があります。このため最新のパッチは必ず、定義済みのアップデートサーバからプルダウンされます。
3.使用されていない、また既知の脆弱な拡張機能を削除する
サードパーティのコードを増やせば、攻撃対象範囲は広くなります。コントロールパネルの拡張機能マネージャーにアクセスしてサイトにインストールされているプラグインを頻繁に監査し、使用されていないものは削除します。
また、公式の脆弱な拡張機能リスト(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のサイトを保護するための簡潔な説明、影響評価、修復の詳細が含まれています。
参考文献
- Joomlaセキュリティチェックリスト
- Joomllaセキュリティとパフォーマンス FAQ よくあるご質問
著者について:ヤシン・ソリマン。イギリス出身のセキュリティアナリスト。ウェブアプリテストとレッドチーム演習業務、サイバー犯罪と新技術関連の記事多数、情報セキュリティに精通している。ツイッターのアカウントはこちら@SecurityYasin。
編集部注:このゲスト著者の記事に記載された内容は、著者の意見であり、必ずしもトリップワイヤの意見を反映するものではありません。