.htaccessの仕組み
.htaccess は、Webサーバーに「このフォルダへのアクセスが来たら、こう動いてほしい」と指示するための設定ファイルです。置いたフォルダと、その下のフォルダに効きます。日本の多くのレンタルサーバーで使われている Apache や LiteSpeed というWebサーバーで使われ、Nginx のように .htaccess を使わないサーバーもあります。
たとえるなら、建物の各フロアの入口に置かれた「案内係への指示書」です。「この部屋は関係者以外立ち入り禁止」「このお客さまは別の建物へ案内する」といった指示を書き換えられると、訪問者は持ち主の意図しない場所へ連れて行かれます。
ファイル名が .(ドット)で始まるため、FTPソフトやファイルマネージャーでは、初期設定で表示されない「隠しファイル」として扱われることがあります。
WordPressサイトでの例
WordPressは、きれいなURL(パーマリンク)を実現するために .htaccess を使っています。# BEGIN WordPress から # END WordPress までの部分が、WordPressが自動で書き込む設定です。
改ざんされたサイトでは、次のような書き換えが見られます。
- 検索から来た人だけを転送する:検索エンジンから来た訪問者やスマートフォンの利用者だけを、詐欺サイトへ飛ばす設定が追加される。直接URLを入力して開く持ち主は気づきにくい、典型的な不正リダイレクトです
- 不正なファイルを守る:たくさんのフォルダに
.htaccessが置かれ、正常なPHPファイルは動かないのに、攻撃者のファイルだけは動くように設定される - 不正なファイルを実行させる:画像のような名前のファイルをPHPとして実行させる設定が追加される
.htaccess を書き換えられた場合、サイト内にWebシェルなどの不正なファイルも置かれていることが少なくありません。
確認方法
- FTPソフトなどで隠しファイルを表示する設定にして、
.htaccessの中身を確認する # BEGIN WordPressの範囲外に、RewriteRuleやRewriteCondなどの見覚えのない設定が書かれていないか確認するwp-content/の中など、本来は置いた覚えのないフォルダに.htaccessがないか確認する(プラグインが作る正常なものもあります)- 更新日時が、自分で設定を変えた覚えのない日時になっていないか確認する
.htaccess は1文字の誤りでもサイト全体が表示されなくなることがあるため、編集の前に必ず元のファイルを保存してください。
対策
wp-content/uploads/など、PHPを実行する必要のないフォルダで、PHPの実行を禁止する- wp-config.php など、外から直接開かれる必要のないファイルへのアクセスを禁止する
.htaccessの変更に気づけるよう、改ざん検知の仕組みを入れる
書き換えられた .htaccess を元に戻しても、書き換えた不正なファイルや侵入経路が残っていると、すぐに再び書き換えられます。繰り返し書き換えられる場合は、専門業者に相談してください。



