MALWARE GUIDE
nochain-sw.js / nochain/sw.jsとは?WordPressマルウェアが検出されない事例
この記事でわかること
- 症状から疑うべきマルウェアの特徴
- 初動でやるべき安全確認と切り分け
- 再発を防ぐための対策ポイント
WordPressで不正リダイレクトや警告が出ているのに、セキュリティプラグインでは「異常なし」と出ることがあります。今回確認した事例では、中心にいたファイルは nochain/sw.js でした。関連して nc-dropin.php、sw.js、nochain-sw.js も確認しています。
この記事は、実際に対応したWordPressマルウェア復旧事例をもとにまとめています。公開にあたり、サイトを特定できるパス、日付、時刻、IPアドレス、プラグイン名、送信情報は伏せています。コードも動かない形にしています。
見つかったファイル
wp-content/
nc-dropin.php
sw.js
nochain-sw.js
nochain/
sw.js
確認できた範囲では、nochain/sw.js は訪問者のブラウザにService Workerとして残り、ページ表示に割り込むような動きをしていました。
Service Workerとは、ブラウザ側で動く仕組みのひとつです。本来は表示速度の改善やオフライン対応などに使われますが、悪用されると、ページ表示に割り込んだり、ブラウザ側に不審な処理を残したりすることがあります。
通常のPHPマルウェアのように、サーバー上のファイルだけを見れば終わるタイプではない可能性があります。HTMLに別のスクリプトを差し込み、外部からコードを読み込み、管理者には見えにくくする作りが確認できました。
無毒化したコード例
// 無毒化した例。実際の接続先や送信情報は伏せています
function harmlessSample() {
// 管理画面やログイン画面では動かない
if (location.pathname.match(/wp-admin|wp-login/)) return;
// ログイン済みユーザーには出にくい
if (document.cookie.match(/wordpress_logged_in_/)) return;
// 外部からコードを読み込む作り
const remoteCode = "[REDACTED]";
// 実行部分は危険なので削除しています
}
ポイントは、管理者が見たときに症状が出にくいことです。
「自分の環境では問題ない」「管理画面では異常がない」と見えても、一般訪問者側では別の動きをしている可能性があります。
なぜセキュリティプラグインで検出されなかったのか
WordPressマルウェアでは、外部サーバーから追加コードや転送先を取得するタイプは珍しくありません。いわゆるC&C的に、外部から動きを変えられる仕組みを持つものもあります。
ただし今回の nochain/sw.js は、一般的なC&Cサーバーに命令を取りに行く単純な形というより、Service Worker、CDN、RPCを組み合わせ、WordPress側には中継役の仕組みだけを置くタイプに近いと考えられます。
今回のファイル内には、WordPress本体を直接壊すようなコードや、マルウェア本体そのものが分かりやすく置かれていたわけではありません。訪問者のブラウザ側でService Workerとして動き、外部から取得したコードをページに差し込めるようにする「入口」に近い作りでした。
そのため、セキュリティプラグインがWordPress内のファイルだけを見ても、実際に悪さをする本体や転送先をつかみにくかった可能性があります。
このタイプの改ざんでは、次のような悪用が考えられます。
- 偽の警告画面やサポート詐欺ページを表示する
- 別サイトや広告ページへ不正リダイレクトする
- ウォレット接続や暗号資産関連の詐欺ページへ誘導する
- 訪問者ごとに違うコードを読み込ませる
- 管理者には見せず、一般訪問者だけに症状を出す
- ブラウザ側にService Workerやキャッシュの痕跡を残す
今回確認した範囲では、検出されにくくするための特徴もありました。
- nochain/sw.js がService Workerとして動く
- wp-admin や wp-login.php を避ける
- ログイン済みCookieを避ける
- 外部からコードを取得する
- ブラウザ側のCache Storageにも痕跡が残る可能性がある
つまり、悪い処理の本体がWordPress内に丸ごと置かれているとは限らず、通常のファイルスキャンだけでは見つけにくいタイプだった可能性があります。
セキュリティプラグインが無意味という話ではありません。入口の対策としては有効です。ただし「異常なし」と表示されたからといって、改ざんが残っていない証明にはなりません。
特に nochain-sw.js、nochain/sw.js、nc_skip、nc: で始まるLocal Storageキーが出ている場合は、ファイルだけでなくログとブラウザ側の確認も必要です。
侵入手口・ログで分かったこと
アクセスログでは、ある日時にWordPress管理画面へ入られたように見える流れがありました。
※公開用に、日付、時刻、IPアドレス、設置ディレクトリ、プラグイン名は伏せています。
2026/05/18 02:14:11
xxx.xxx.xxx.xxx POST /wp-login.php
Status: 302
2026/05/18 02:14:13
xxx.xxx.xxx.xxx GET /wp-admin/
Status: 200
2026/05/18 02:14:28
xxx.xxx.xxx.xxx POST /wp-admin/update.php?action=upload-plugin
Status: 200
2026/05/18 02:14:35
xxx.xxx.xxx.xxx GET /wp-admin/plugins.php?action=activate&plugin=wp-xxxxxxxxxxxxxxxx/wp-xxxxxxxxxxxxxxxx.php
Status: 302
ログイン後に管理画面へ入り、プラグインをアップロードし、有効化したように見えます。単に外部からファイルを置かれたというより、WordPressの認証を突破された、または管理者セッションを使われた可能性があります。
1秒でログイン画面から管理画面へ画面推移して、ファイルをアップロードしています。
疑うべき原因は、パスワードの使い回し、ブラウザ保存パスワードやCookieの流出、管理者PCの感染、サーバーパネルやFTP/SFTP情報の流出などの可能性が高いです。
プラグインの脆弱性を突かれた侵入手口とは違います。
海外でも似た事例がありました
この改ざんは、国内のサイトだけの話ではない可能性があります。むしろ外国が多いと思われます。
海外でも、nochain-sw.js に似た不審なJavaScriptの報告が見つかっています。また、いくつかの海外サイトでは、今回の事例と似たブラウザ保存データの名前がCookieポリシー内に掲載されていました。
断定はできませんが、似た痕跡が複数サイトに出ているため、広い範囲で使われたWordPress改ざん手口である可能性があります。
参考URL
- https://gridinsoft.com/online-virus-scanner/url/upsbatteryshop-co-uk
【URL安全性評価ページ】英国の通販サイトに対する評価ページで、ユーザー投稿欄に nochain-sw.js や不審なJavaScriptについての報告があります。 - https://thomasker.com/politica-cookies/
【Cookieポリシーページ】スペイン語のCookieポリシーで、nc: で始まるLocal Storageキーや nc_skip が掲載されています。 - https://www.assocaseari.it/cookie-policy-ue/
【Cookieポリシーページ】イタリア語のCookieポリシーで、今回確認したものと同じ形式のLocal Storageキーと nc_skip が記録されています。 - https://volanteus.com/privacy-policy/
【プライバシーポリシーページ】英国サイトのプライバシーポリシーで、検索結果上では同様の nc: 形式のLocal Storageキーが掲載されていたことを確認できます。
感染しないための対策
- WordPress管理者に2段階認証を入れる
- 管理者パスワードを使い回さない
- 不要な管理者ユーザーを削除する
- 使っていないテーマ・プラグインを削除する
- プラグインアップロード権限を持つ人を絞る
- FTP/SFTP、サーバーパネル、DBのパスワードも見直す
- 管理者PCの保存パスワードとブラウザ拡張機能を確認する
今回のような改ざんでは、サーバー側だけ見ても足りません。
よくある質問
セキュリティプラグインで異常なしなら安全ですか?
安全とは限りません。外部コード、Service Worker、管理者回避を使う改ざんは、通常のスキャンだけでは見つからないことがあります。
自己対応できますか?
軽い改ざんなら可能な場合もあります。ただし、認証突破やService Workerが絡む場合は、ファイル、DB、ログ、ブラウザ側まで確認が必要です。
ファイルを消せば終わりますか?
終わらないことがあります。侵入経路、管理者アカウント、バックドア、Service Workerが残っていると再発します。
相談したほうがいいサイン
- セキュリティプラグインでは異常なしなのに表示がおかしい
- 管理者では再現しないが、訪問者から不審な表示を指摘された
- Google警告、広告不承認、検索結果の改ざんが出ている
- 復旧したはずなのに、また改ざんされる
「異常なし」と表示されても、違和感が残るなら確認したほうがいいです。WordPressの改ざんは、静かに残っていることがあります。