IT二刀流にはプロモーションが含まれています。

WordPressのwp-configへのアタック対策

世界地図

WordPressでブログを公開して運用していると、日々いろいろな危険やリスクが存在します。

今回はWordPressの設定ファイルwp-config.phpへの攻撃を防ぐ方法です。

ウェブサーバにApacheを使用している場合の対応方法です。

wp-configへの攻撃

ウェブサーバのログを確認していると、毎日のようにwp-configに不正なアクセス(アタック)があります。

多い日には1日500件を超えるアクセス数になることも。

基本的には404(ページがない)になるんですが、めげずに拡張子等を変えてアクセスしまくりです。

下記がアタックのあった日のアクセスログです。

wordpress.url 接続元IP - - [21/Aug/2023:16:00:21 +0900] "GET /wp-config HTTP/1.1" 200 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:37 +0900] "GET /wp-config.backup HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:38 +0900] "GET /wp-config.bak HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:39 +0900] "GET /wp-config.bkp HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:40 +0900] "GET /wp-config.cfg HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:42 +0900] "GET /wp-config.conf HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:43 +0900] "GET /wp-config.data HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:44 +0900] "GET /wp-config.dump HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:45 +0900] "GET /wp-config.good HTTP/1.1" 404 - "-" "リファラー"
wordpress.url 接続元IP - - [21/Aug/2023:16:00:46 +0900] "GET /wp-config.htm HTTP/1.1" 404 - "-" "リファラー"

※上記のログは一部変更してます。

目的は何なのか?

目的はwp-configに書いてあるDB接続情報などを盗むことです。

こんな個人のブログを乗っ取って何がしたいのかはわかりませんが。

wp-config.phpとは

wp-config.phpはWordPressのDB接続情報などが書いてあるファイルです。

この情報が漏れてしまうと、DBに直接アクセスされるなどの危険があります。

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'demo' );

/** Database password */
define( 'DB_PASSWORD', 'demo' );

/** Database hostname */
define( 'DB_HOST', 'ip' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );
~

基本的には大丈夫

ただwp-config.phpは基本的にはアクセスがあっても大丈夫です。

PHPで書かれているため、https://{URL}/wp-config.phpでアクセスされても真っ白な画面が表示されるだけです。

apacheやnginxのphp接続設定に不備がなければ・・・

wp-config.php不正アクセス対策

ただ、万が一のために対策を施します。

403エラー(閲覧禁止)のステータスを返せば「対策してるんだぞ!」って牽制にもなります。

.htaccessで対応

WordPressは.htaccess使えることが前提なので、そこにwp-config.php対策をします。

.htaccessにWordPressの設定が既に書いてあるので「# END WordPress」コメントの下に追記します。

“BEGIN WordPress” から “END WordPress”の間に書くとWordPressが上書きするので注意です。

使用しているApacheのバージョンが2.2系か2.4系かで設定が異なります。

.htaccessは書き方間違えるとすぐ500エラー(Internal Server Error)になるので注意です。

Apache2.2系(それ以前)

「deny from all」でwp-config.phpへのアクセスをブロックします。

<Files "wp-config.php">
  order deny,allow
  deny from all
</Files>

Apache2.4系

「Require all denied」でwp-config.phpへのアクセスをブロックします。

<Files "wp-config.php">
  Require all denied
</Files>

アクセス時の画面

これでwp-config.phpへのアクセス時は403になります。

これで安全??

これでwp-config.phpにアクセスしても403ではじかれるようになりました。

しかしこれで安全なのでしょうか?

冒頭のアクセスログを思い出してください。

wp-config.backup、wp-config.bak、wp-config.dumpなどのファイルにアクセスしています。

やつらはwp-config.phpが見れるなんて思っていません、それ以外のファイルが目的なのです。

wp-config.phpを変更するときにサーバー上に「wp-config.bak」や「wp-config.202307」とかでバックアップを保存していないですか?

それをそのまま公開ディレクトリに放置していないですか?

これが非常に危険なのです。

wp-configのバックアップが危険

「wp-config.bak」や「wp-config.202307」などのファイルはブラウザでアクセスされると中身が表示されます。

wp-config.phpが真っ白に表示されるのは.phpの拡張子だからです。

Apacheは.phpファイルをPHPと判断しています。

通常wp-config.phpにはecho()やver_dump()などの出力関数は含まれていないので、何も表示されません。

しかし「wp-config.bak」や「wp-config.202307」などはphpとは判断しません。

そのためファイルの中身をすべて表示してしまいます。

これが狙われています。

wp-config全部403

この攻撃の対策は、サーバ上にバックアップを放置しないことです。

とはいえ、不安もありますし、複数人で運用していると誰かがやらかす可能性もあります。

wp-configと名の付くファイルは全てブロックすると安心です。

「*」を使用することでwp-config.phpもwp-config.bakもwp-config.202307なども全部403にします。

Apache2.2系(それ以前)

「deny from all」でwp-config*へのアクセスをブロックします。

<Files "wp-config*">
  order deny,allow
  deny from all
</Files>

Apache2.4系

「Require all denied」でwp-config*へのアクセスをブロックします。

<Files "wp-config*">
  Require all denied
</Files>

まとめ

WordPressでブログを公開して運用していると、日々様々な危険に遭遇します。

個人ブログでも容赦なく攻撃してきます。

予算が許すならWAFなどを導入して対策したほうがスムーズかと思いますが、趣味ブログでそこまでの予算は難しいです。

ちなみにwp-config.phpはプログラムの設定ファイルで、インターネットからアクセスできなくてもWordPressの動作には問題ないです。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

ゲーム業界の転職ならマイナビクリエイター

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集