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