.png)
EC2 インスタンス T2.medium があり、Apache を実行しており、仮想ホストが 4 つ (サイトが 4 つ) あります。時々、突然 CPU が非常に高いレベルに達し、攻撃の可能性があります。
WordPress ファイルの一部が変更されていることがわかりました。
誰がそれらのファイルに書き込んだかを確認するにはどうすればよいでしょうか? CPU のログをチェックして、どのプロセスが CPU に影響を与えているかを確認するにはどうすればよいでしょうか? 使用できる CloudWatch メトリックはありますか?
私たちは、アップデート、AWS Inspector と lynis の実行、ssh 構成ファイルの変更など、サーバーの強化を行ってきました。
誰がどのようにしてこれらの WordPress ファイルにアクセスし、変更したかを確認する方法はありますか?
他にどのような強化方法をお勧めしますか?
答え1
ここでいくつか質問があります。
ファイルに書き込みを行ったのは誰か
オペレーティング システムはこの情報をログに記録しませんが、いくつかの手がかりがあります。
- 変更日
- ファイルの権限
ファイルの変更日を使用して、Apache アクセス ログの検索を絞り込みます。少なくとも、POST
その時間付近のリクエストとログインをチェックします。たとえば、次の例ではすべてのログイン試行が表示されます。
zgrep 'POST /wp-login.php' /var/log/apache2/*access*
その後、ファイルの変更時刻から取得した時間範囲で出力をフィルタリングできます。
変更されたファイルが特定のシステム ユーザーのみ書き込み可能な場合、それらのシステム ユーザーによって変更されたとほぼ確信できます。
どのプロセスがCPUを占有しているか
この情報はデフォルトではログに記録されません。サーバーを「ライブ」で監視することが現実的でない場合 (たとえば top を使用)、さまざまなログ ツールを使用できます。これはサーバー障害に関する質問ですこの目的のためにさまざまなツールが推奨されています。
ハッキングされたかどうかを判断する
これはより大きなトピックですが、WordPress ファイルの変更について言及されたので、まずはこれらの変更が悪意のあるものであるかどうかを判断することから始めます。WordPress マルウェア スキャナーを実行し、、eval(base64_decode(
php Web シェルなどの悪意のあるパターンを探します。確信が持てない場合は、粘り強く徹底的に調べ、必要に応じてさらに質問を投稿してください。
攻撃者がどのようにアクセスしたかを判断する
サイトがハッキングされたと確信できる場合は、攻撃者がどのようにしてアクセスしたかを特定することができます。最も可能性の高い2つの方法は、管理者ユーザーアカウントへのログイン経由、または脆弱性経由です。ほとんどの場合、高い確度で特定することは困難です。しかし、既知の脆弱性、特に公開されたエクスプロイトがあり、リモートコード実行を可能にするソフトウェアを実行している場合は、これが非常に可能性が高いです。また、WordPress管理者ユーザーの認証情報が弱い場合、またはその認証情報が漏洩したであれば、これは非常に可能性が高いです。
さらなる強化
サーバーが侵害されたと思われる場合は、この問題に関する標準的な答え。
答え2
これは完全な回答ではなく、sceox による回答の補足です。
見るべきはWordpressの強化、 そしてWordpress ファイルの権限。
私は次のように設定しています:
- 1人のユーザー/グループがファイルを所有する
- PHP は、プラグインやテーマなどの Wordpress ファイルを読み取ることはできますが、書き込むことはできません。アップロード フォルダに書き込むことができるため、Wordpress GUI を使用して画像をアップロードできます。これにより、インターネット上のいかなるものでも Wordpress ファイルを侵害することが非常に困難になります。
- 私は、Wordpress CLI午前 2 時に Wordpress とプラグインのアップデートを実行します。
- 新しいプラグインはすべて、Wordpress CLI を使用してインストールする必要があります。それほど便利ではありませんが、はるかに安全です。
これは私が使用しているスクリプトで、cronジョブで実行されます。
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
echo
echo Wordpress Update and Permissions Script Starting
echo "$(date) Wordpress update and backup started" >> /var/log/me/my-wordpress-upgrades 2>&1
# Function to upgrade wordpress
function upgrade_wordpress() {
# set up folders in the formats needed
dir=$1
uploads=$1/wp-content/uploads
echo Upgrading Wordpress core, plugins, themes in ${dir}
sudo -H -u www-user bash -c "wp core update --path=$dir"
sudo -H -u www-user bash -c "wp plugin update --all --path=$dir"
sudo -H -u www-user bash -c "wp theme update --all --path=$dir"
echo Setting wordpress permissions to 755 files and 644 folders
find ${dir} -type d -exec chmod 755 {} \;
find ${dir} -type f -exec chmod 644 {} \;
chmod 440 ${dir}/wp-config.php
echo Making uploads folder ${uploads} writable by the web server
chown -R www-data:www-data ${uploads}
echo Wordpress upgrade for $1 complete
echo
echo
}
echo Setting /var/www permissions to www-user:www-data
chown -R www-user:www-data /var/www/
# Run Wordpress update for each wordpress install
upgrade_wordpress /var/www/blog1
upgrade_wordpress /var/www/blog2