WP-CLIでWordPressコア・プラグインの改竄検知と修復する方法

WP-CLIのコマンドでWordPressコアや公式ディレクトリ内プラグインの改竄検知をすることが出来ます。また根本的な解決ではありませんが、改竄されたコア・プラグインを修復することも可能ですので合わせて書いていきたいと思います。

WordPressコアの改竄チェック・改竄テスト・修復

WPコアの改竄チェック

$ wp core verify-checksums

下記のメッセージが返ってくれば改竄はなく問題がない状況です。

Success: WordPress installation verifies against checksums.

WPコアの改竄テスト

悪意のある改竄ではなく何もしないコードを2~3 “wp-login.php” と “wp-load.php” に入れた後にコアチェックをおこないます。

$ wp core verify-checksums

変更を加えたファイルと同じファイルが検知されることが確認出来ました。

Warning: File doesn't verify against checksum: wp-login.php
Warning: File doesn't verify against checksum: wp-load.php
Error: WordPress installation doesn't verify against checksums.

修復

WPコアを修復するには下記コマンドでコアを上書きして修正します。

$ wp core download --force
Downloading WordPress 5.3.2 (en_US)…
Using cached file '/home/xxxx/.wp-cli/cache/core/wordpress-5.3.2-en_US.tar.gz'…
Success: WordPress downloaded.

修復後確認

$ wp core verify-checksums

正常な状態に戻っていることが確認できました。

Success: WordPress installation verifies against checksums.

WordPress公式プラグインの改竄チェック・改竄テスト・修復

WPプラグインの改竄チェック(単体)

“wp plugin verify-checksums” の後にプラグイン名を指定してチェックします。

$ wp plugin verify-checksums akismet
Success: Verified 1 of 1 plugins.

WPプラグインの改竄チェック(一括)

“–all” オプションをつけることで一括でチェックが出来ます。

$ wp plugin verify-checksums --all
Success: Verified 3 of 3 plugins.

WPプラグインの改竄テスト

数行何もしないコードを埋め込み再びチェックをしてみました。

$ wp plugin verify-checksums akismet

変更を加えたプラグインがリストアップされます。

+-------------+-------------+-------------------------+
| plugin_name | file        | message                 |
+-------------+-------------+-------------------------+
| akismet     | akismet.php | Checksum does not match |
+-------------+-------------+-------------------------+
Error: No plugins verified (1 failed).

修復

WPコアのときと同様に対象プラグインをインストール(ダウンロード)して上書きします。

$ wp plugin install akismet --force
Installing Akismet Anti-Spam (4.1.3)
downloads.wordpress.org/plugin/akismet.4.1.3.zip からインストールパッケージをダウンロード中…
パッケージを展開しています…
プラグインをインストールしています…
プラグインの古いバージョンを削除しています…
プラグインの更新に成功しました。

修復後確認

$ wp plugin verify-checksums akismet

正常な状態に戻っていることが確認できました。

Success: Verified 1 of 1 plugins.

動作環境情報

WP-CLI

$ wp --info
OS:     Linux 4.4.0-169-generic #198-Ubuntu SMP Tue Nov 12 10:38:00 UTC 2019 x86_64
Shell:  /bin/bash
PHP binary:     /opt/php-7.3.8/bin/php
PHP version:    7.3.8
php.ini used:   /opt/php-7.3.8/etc/php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/xxxx/xxxxxx/public_html/agsys
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

その他

エックスサーバー(x10)
WordPress 5.3.2 
PHP7.2.17

最後に

今回WordPressコア・公式プラグインの改竄チェックと修復方法について書きましたが、対象はあくまで公式のコアとプラグインのみでそれ以外のテーマや独自カスタマイズ部分が改竄された内容は対象外になりますのでご注意願います。

コメント

タイトルとURLをコピーしました