050-3591-2338

受付時間 9:00~18:00

10分以内にご返信

無料で相談する

Case

対応事例

  • ホーム
  • 対応事例
  • defunctを定期起動する不正プロセスのマルウェア駆除事例|救急WEB
CASE STUDY

defunctを定期起動する不正プロセスのマルウェア駆除事例|救急WEB

複数のWordPressサイトを運用するサーバーで、defunctが動作していない場合に起動する処理と、実際に稼働していたdefunctプロセスを確認しました。1時間ごとのcronや.profileからBase64化されたコマンドを実行する構成があり、不正プロセスと関連設定の削除・修正、29サイトのWordPress環境に対する脆弱性対応や更新を実施しました。

対応概要

項目内容
対応サイト数29サイト
対応時期2025年5月22日~5月27日
不正プロセスdefunctを実行するプロセスを確認
定期実行1時間ごとにBase64化されたコマンドを復号・実行する設定
実行時の名称[mm_percpu_wq][rcu_preempt]
不正ファイル.profile
WordPress主に6.8.1、1サイトで5.8.2から6.8.1へ更新
確認された脆弱性Custom Post Type Date Archives、Contact Form 7
不正インデックス29サイトすべて「なし」

調査で確認された内容

サーバー全体の調査では、defunctというプロセスの有無を確認し、動作していない場合に実行ファイルを起動する処理が確認されました。

この処理はcronに登録されており、0 * * * *の設定で1時間ごとに実行される構成でした。コマンド本体はBase64でエンコードされ、base64 -d | bashによって復号・実行されるようになっていました。

さらにホームディレクトリの.profileにも同系統の実行処理が追加されていました。WordPress側では29サイトの本体・プラグイン・テーマを確認し、脆弱性への対応と必要なバージョン更新を実施しました。

確認された不正プロセス

今回の案件で特徴的だったのは、単に不審なファイルが配置されていただけではなく、defunctを継続的に起動するための実行設定と、実際に稼働しているプロセスが確認された点です。

defunctの有無を確認して起動する処理

cronに登録されていたBase64文字列を復号すると、最初にdefunctプロセスが存在するかを確認し、存在しない場合に実行ファイルを起動する構成になっていました。

処理の中心となっていた内容は次のとおりです。

処理確認された内容
実行間隔0 * * * *により1時間ごとに実行
プロセス確認pkill -0を使用してdefunctの動作状況を確認
コマンド実行Base64文字列をbase64 -dで復号しbashで実行
実行ファイルWordPressテーマディレクトリ内のdefunctを指定
参照ファイル同ディレクトリのdefunct.datを指定
実行時の名称exec -a[mm_percpu_wq]を指定

pkill -0による確認と||を組み合わせており、defunctが確認できない場合に後続の起動処理が実行される構成でした。

また、実行時にはexec -aによって[mm_percpu_wq]という名称が指定されていました。

.profileにも別の起動処理を確認

ホームディレクトリの.profileにも、同様にBase64化されたコマンドを復号して実行する記述が追加されていました。

こちらもdefunctの有無を確認したうえで、動作していない場合にホームディレクトリ配下の.config/htop/defunctを起動する構成です。

項目確認された内容
設定ファイル.profile
実行ファイル.config/htop/defunct
参照ファイル.config/htop/defunct.dat
プロセス確認defunctが動作しているか確認
実行時の名称exec -a[rcu_preempt]を指定

cron側の[mm_percpu_wq]とは異なり、.profile側では[rcu_preempt]という名称が指定されていました。

稼働中のdefunctプロセスも確認

プロセス情報の調査では、2つのPIDについて、/proc/[PID]/exeの参照先がWordPressテーマ配下のdefunctになっている状態が確認されました。

参照先は次の形式です。

/wp-content/themes/twentytwentytwo/inc/patterns/defunct

いずれも確認時には(deleted)と表示されていました。これは実行ファイルが削除された後も、該当プロセスが動作していた状態を示しています。

今回の対応では、これらの不正プロセスと関連する実行設定を削除しました。

サイトごとの調査・対応内容

サイト1

WordPress本体は6.8.1で変更せず、SWELLテーマを更新しました。

サイト2

WordPress本体は6.8.1で変更せず、脆弱性が確認されたCustom Post Type Date Archives 2.7.1を削除しました。

サイト3

WordPress本体6.8.1とプラグインの状態を確認しました。本体のバージョン変更は実施していません。

サイト4

WordPress本体は6.8.1で変更せず、Lightning G3 Pro UnitとVK Blocks Proを更新しました。

サイト5

WordPress本体6.8.1とプラグインの状態を確認しました。本体のバージョン変更は実施していません。

サイト6

WordPress本体は6.8.1で、バージョン変更は実施していません。

サイト7

WordPress本体は6.8.1で、バージョン変更は実施していません。

サイト8

WordPress本体は6.8.1で変更せず、VK All in One Expansion UnitとYoast SEOを更新しました。

サイト9

WordPress本体6.8.1とプラグインの状態を確認しました。

サイト10

WordPress本体は6.8.1で、バージョン変更は実施していません。

サイト11

VK All in One Expansion UnitとYoast SEOを更新しました。WordPress本体は6.8.1から変更していません。

サイト12

Contact Form 7 5.5.6を6.0.6へ更新するなど、複数のプラグインを更新しました。

サイト13

WordPress本体を5.8.2から6.8.1へ更新しました。あわせてElementor、Custom Post Type UI、Yoast SEOなども更新しています。

サイト14

Contact Form 7 5.6.3を6.0.6へ更新したほか、Advanced Custom Fields、Elementor、Autoptimizeなど多数のプラグインを更新しました。

サイト15

VK All in One Expansion Unitのバージョン変更、Yoast SEOとLightningテーマの更新を実施しました。

サイト16

不正プロセスに関連するdefunctの参照先がWordPressテーマ配下で確認された環境です。WordPress側ではプラグインとLightningテーマの更新も実施しました。

サイト17

WordPress本体は6.8.1で変更せず、SWELLテーマを更新しました。

サイト18

WordPress本体は6.8.1で変更せず、SWELLテーマを更新しました。

サイト19

WordPress本体は6.8.1で変更せず、Lightningテーマを更新しました。

サイト20

WordPress本体は6.8.1で変更せず、SWELLテーマを更新しました。

サイト21

WordPress本体6.8.1とプラグインの状態を確認しました。

サイト22

WordPress本体6.8.1とプラグインの状態を確認しました。

サイト23

WordPress本体6.8.1とプラグインの状態を確認しました。

サイト24

WordPress本体は6.8.1で変更せず、Yoast SEOとSWELLテーマを更新しました。

サイト25

WordPress本体は6.8.1で、バージョン変更は実施していません。

サイト26

WordPress本体6.8.1とプラグインの状態を確認しました。

サイト27

WordPress本体は6.8.1で変更せず、Lightningテーマを14.20.3から15.29.7へ更新しました。

サイト28

WordPress本体は6.8.1で変更せず、SWELLテーマを更新しました。

サイト29

WordPress本体6.8.1とプラグインの状態を確認しました。

確認された不正ファイル

ファイル確認された内容
.profileBase64化されたコマンドを復号し、defunctの確認・起動を行う処理が追加されていた

.profileに追加されていた不正な実行処理について、削除・修正を実施しました。

なお、不正プロセスの調査ではdefunctおよびdefunct.datを参照する処理も確認されています。

確認された脆弱性

プラグイン調査時バージョン確認された内容
Custom Post Type Date Archives2.7.1JVNDB-2025-002269。2.7.1以前が対象
Contact Form 75.5.6、5.6.3CVE-2023-6449。5.8.3以前が対象

Custom Post Type Date Archives 2.7.1が使用されていたサイトでは、対象プラグインを削除しました。

Contact Form 7については、対象となる5.5.6および5.6.3が確認され、6.0.6への更新を実施しています。

実施したマルウェア駆除・復旧作業

  • defunctとして動作していた不正プロセスの削除
  • defunctを1時間ごとに確認・起動するcron設定の削除
  • .profileに追加された不正な実行処理の削除・修正
  • Base64化された不正な実行設定の確認
  • 脆弱性が確認されたプラグインの削除・更新
  • WordPress本体・プラグイン・テーマの確認と更新
  • 未使用・不要プラグインの整理・削除
  • 29サイトの不正インデックス登録状況の確認

WordPress・プラグイン・テーマの確認・更新内容

WordPress本体は、サイト13で5.8.2から6.8.1へ更新しました。その他のサイトでは6.8.1を確認し、本体のバージョン変更は実施していません。

主な更新・変更内容は以下のとおりです。

対象作業前作業後
サイト1:SWELL2.6.52.15.0
サイト2:Custom Post Type Date Archives2.7.1削除
サイト4:Lightning G3 Pro Unit0.22.10.29.4
サイト4:VK Blocks Pro1.38.0.11.104.0.0
サイト8:VK All in One Expansion Unit9.108.1.09.108.2.2
サイト8:Yoast SEO25.125.2
サイト11:VK All in One Expansion Unit9.108.2.09.108.2.2
サイト11:Yoast SEO25.125.2
サイト12:Contact Form 75.5.66.0.6
サイト12:Custom Post Type UI1.11.21.17.3
サイト13:WordPress本体5.8.26.8.1
サイト13:Custom Post Type Permalinks3.4.43.5.3
サイト13:Custom Post Type UI1.9.21.17.3
サイト13:Elementor3.6.03.29.0
サイト13:Yoast SEO16.725.2
サイト14:Advanced Custom Fields5.12.36.4.2
サイト14:Akismet Anti-Spam4.2.25.4
サイト14:All In One WP Security4.4.115.4.0
サイト14:All-in-One WP Migration7.647.94
サイト14:Autoptimize3.0.33.1.13
サイト14:BBQ Firewall2022051720250324
サイト14:Code Snippets3.2.03.6.8
サイト14:Contact Form 75.6.36.0.6
サイト14:Custom Post Type UI1.12.11.17.3
サイト14:Custom Post Type Widgets1.5.11.5.2
サイト14:Elementor3.7.43.29.0
サイト14:Flexible Table Block2.7.33.5.0
サイト14:ImageMagick エンジン1.7.21.7.13
サイト14:Intuitive Custom Post Order3.1.33.1.5.1
サイト14:Page Links To3.3.63.3.7
サイト14:Smash Balloon Instagram Feed6.0.66.9.1
サイト14:TS Webfonts for SAKURA RS3.1.03.1.4
サイト14:VK Filter Search Pro1.10.142.15.1.0
サイト14:WP Multibyte Patch2.92.9.2
サイト14:WP Statistics13.2.614.13.4
サイト14:WPForms Lite1.7.61.9.5.2
サイト14:Xserver Migrator1.6.11.6.6
サイト14:Yoast SEO19.6.125.1
サイト14:zipaddr-jp1.331.38
サイト15:VK All in One Expansion Unit9.108.2.29.108.2.0
サイト15:Yoast SEO25.125.2
サイト15:Lightning15.29.615.29.7
サイト16:VK All in One Expansion Unit9.108.2.09.108.2.2
サイト16:Lightning15.29.615.29.7
サイト17:SWELL2.6.52.15.0
サイト18:SWELL2.6.52.15.0
サイト19:Lightning15.29.615.29.7
サイト20:SWELL2.6.52.15.0
サイト24:Yoast SEO25.125.2
サイト24:SWELL2.6.52.15.0
サイト27:Lightning14.20.315.29.7
サイト28:SWELL2.6.52.15.0

不正インデックスへの対応

29サイトについて不正インデックスの登録状況を確認しました。

対象サイトでは不正インデックスの登録は確認されず、不正インデックスの削除作業は発生していません。

対応結果

defunctとして稼働していた不正プロセスと、その起動に使用されていたcron・.profileの実行設定を削除・修正しました。あわせて、WordPress環境で確認された脆弱性への対応と必要なバージョン更新を実施しています。

今回の事例では、WordPressディレクトリのファイル確認だけでなく、稼働中のプロセス、cron、ホームディレクトリの設定ファイルまで調査対象としました。

この事例で特徴的だった点

今回確認された処理では、defunctが動作しているかを確認し、確認できない場合に再度起動する構成が組まれていました。さらに、cron側では[mm_percpu_wq].profile側では[rcu_preempt]という名称をexec -aで指定して実行する処理が確認されています。

また、実際のプロセス情報からWordPressテーマ配下のdefunctを参照するプロセスも確認されており、不正な実行設定だけでなく、稼働中のプロセスまで確認・削除した案件です。

再発防止について

WordPress本体・プラグイン・テーマを継続的に更新するとともに、マルウェア感染が確認された場合はWordPressディレクトリだけでなく、cronや.profileなどのサーバー設定、稼働中のプロセスについても確認することが重要です。

定期的なバックアップ、マルウェア検査、既知の脆弱性への対応を継続することで、異常発生時の調査・復旧を行いやすい状態を維持できます。

WordPressのマルウェア感染でお困りの方へ

救急WEBでは、WordPressのマルウェア駆除、サイト改ざんの調査・復旧、不正ファイルや不正プロセスの削除、cronや設定ファイルに追加された不審な実行処理の調査、脆弱性対応、不正リダイレクト・不正インデックスへの対応を行っています。

複数のWordPressサイトを同一サーバーで運用している環境についても、各サイトだけでなくサーバー側の設定やプロセスを含めて確認し、必要な復旧・セキュリティ対応を実施します。

WordPressのトラブルでお困りですか?

エラー・表示不具合・マルウェア感染・アップデートなど、WordPressに関するトラブルは救急WEBへご相談ください。

無料で相談する