【警告】インドネシア発SEOポイズニング攻撃の全手口と防御策 — 医療サイト21件同時侵害の実例
はじめに
2026年8月12〜13日、当社(株式会社メディフェイス)が管理する医療系Webサイト21件が同時にハッキングされました。
攻撃者の目的はシンプルです。「日本の正規医療サイトをGoogleに違法賭博サイトとして認識させ、患者を賭博サイトに誘導する」こと。
本記事では、攻撃の全手口・IOC・検出・防御方法を公開します。同様の被害を受けている医療機関・企業のエンジニアに届けば幸いです。
攻撃の全体像
[攻撃者] 103.20.83.86 (Indonesia, Biznet Networks)
|
| PHPバックドア (fgh.php) 設置
v
[被害サーバー] 自社サーバー
├─ medi-face.co.jp
├─ fraise-clinic.com
├─ z-sangyoui.com
└─ ... 計21サイト
|
| Schema.org LD+JSON 賭博コード注入 (WordPress DB)
| GSC 不正トークン埋め込み
v
[Cloudflare Pages なりすましサイト]
├─ medi-face.pages.dev ← Cloudflareがアクセス制限済み
├─ fraise-clinic.pages.dev ← Cloudflareがアクセス制限済み
├─ jutsu-seribu-bayangan.pages.dev ← Cloudflareがアクセス制限済み
└─ wewillrockyou.pages.dev ← Cloudflareがアクセス制限済み
|
v
[違法賭博サイト]
├─ bringmetolife.store (affiliate: cSyJDyLy)
└─ terreagoodboy.store (affiliate: MKPA2AD00002)
タイムライン
| 日時 | イベント |
|---|---|
| 2026-08-12 深夜 | 攻撃開始 / fgh.php 設置 |
| 2026-08-12〜13 | WordPress DB 賭博コード注入(21サイト) |
| 2026-08-13 午前 | 被害検知(GSC表示回数が1日439,514回に急増) |
| 2026-08-13 | バックドア削除・コード除去完了 |
| 2026-08-13 | JPCERT/CC 報告 / Cloudflare abuse 報告 / Netcraft 報告 |
| 2026-08-14 | Cloudflare が4件すべてを制限(jutsu-seribu-bayangan / wewillrockyou / medi-face.pages.dev / fraise-clinic.pages.dev) |
| 2026-08-14 | 警視庁サイバー犯罪対策課 被害届提出 |
攻撃手法の詳細
1. PHPバックドア(fgh.php)
ファイルマネージャー型Webシェル。HTTPSリクエスト経由でサーバー上のファイルを任意に操作できる。
検出方法:
# ファイル名による検索
find /home/ -type f -name "fgh.php"
find /home/ -type f \( -name "shell.php" -o -name "cmd.php" -o -name "c99.php" \)
# コンテンツパターン検索
grep -rl "eval(base64_decode\|FilesMan\|eval(gzinflate" /home/ --include="*.php"
# wp-config.phpより新しいPHPファイルを検索(攻撃後に設置されたファイル)
find /home/ -name "*.php" -newer /home/user/site/wp-config.php
被害サーバーのパス:
[被害サーバーのWordPressルート]/fgh.php ← 設置確認済み(削除完了)
2. SEOポイズニング(Schema.org LD+JSON注入)
WordPressのDBに直接アクセスし、wp_postsテーブルのpost_contentに以下のようなLD+JSONを挿入。
注入されたコードのパターン:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "Product",
"name": "SULEBET | SANJITOTO | AIRBET88",
"description": "Daftar slot online terpercaya di Indonesia...",
"offers": {
"@type": "Offer",
"url": "https://bringmetolife.store/?ref=cSyJDyLy",
"priceCurrency": "IDR"
}
}
</script>
このコードは<script type="application/ld+json">タグ内に埋め込まれているため、
ページ上には何も表示されず、Googlebotだけが読み取る。
DB内での検出(WP-CLI):
wp db query \
"SELECT ID, post_title, LEFT(post_content, 100) \
FROM wp_posts \
WHERE post_content LIKE '%bringmetolife%' \
OR post_content LIKE '%cSyJDyLy%' \
OR post_content LIKE '%SULEBET%';" \
--path=/path/to/wordpress
クリーンアップ:
for PATTERN in "bringmetolife.store" "terreagoodboy.store" "cSyJDyLy" "MKPA2AD" "SULEBET" "SANJITOTO"; do
wp search-replace "$PATTERN" "" --all-tables --quiet \
--path=/path/to/wordpress
done
3. ジオクローキング
IPアドレスで訪問者を判定し、Googlebotには賭博コンテンツを、一般ユーザーには正常ページを返す。
// 攻撃者が仕込んだジオクローキングの概念
fetch('https://ipapi.co/json/')
.then(r => r.json())
.then(data => {
if (data.country_code === 'ID' || isCrawler(navigator.userAgent)) {
// 賭博コンテンツを表示
injectGamblingContent();
}
});
これにより:
- 日本からのアクセス → 正常ページが表示される(被害に気づきにくい)
- Googlebot → 賭博コンテンツがインデックスされる
4. Cloudflare Pagesなりすましサイト
攻撃者が作成したなりすましサイト(全てCloudflare Pagesの無料枠):
medi-face.pages.dev → 当社ブランド偽装(RESTRICTED ✅)
fraise-clinic.pages.dev → 提携クリニック偽装(RESTRICTED ✅)
jutsu-seribu-bayangan.pages.dev → 中継リダイレクト(RESTRICTED ✅)
wewillrockyou.pages.dev → 中継リダイレクト(RESTRICTED ✅)
なりすましサイトの内容:
- Cloudflare Pages の無料枠を使用(コスト0)
- 正規クリニック名を含む日本語タイトル
- 実際のページはインドネシア語の賭博コンテンツへのリダイレクト
5. Google Search Console不正操作
手口:
- 改ざんしたページのHTMLに以下を埋め込む:
<meta name="google-site-verification" content="2Z_wOjQcGzVd53eRds3fVWKSAaDsyNsUl7AsNymx4tc" /> - 攻撃者のGoogleアカウントでGSCに被害者ドメインを追加
- 検索インデックスを操作して賭博コンテンツを優先表示
検出:
grep -rl "2Z_wOjQcGzVd53eRds3fVWKSAaDsyNsUl7AsNymx4tc" /home/
# GSCにログイン後
# 設定 → ユーザーと権限 → 不審なユーザーを確認・削除
IOC(Indicators of Compromise)
# 攻撃元IP
103.20.83.86 # Biznet Networks, Indonesia (AS17451)
114.10.65.118 # Telkom Indonesia (AS7713)
103.236.188.241 # Indonesia
182.10.98.57 # Indonesia
31.56.30.60 # Iran
# 悪意のあるドメイン(Cloudflare Pages)
medi-face.pages.dev
fraise-clinic.pages.dev
jutsu-seribu-bayangan.pages.dev
wewillrockyou.pages.dev
# 違法賭博ドメイン
bringmetolife.store
terreagoodboy.store
# アフィリエイトID
cSyJDyLy
MKPA2AD00002
# GSC不正トークン
2Z_wOjQcGzVd53eRds3fVWKSAaDsyNsUl7AsNymx4tc
# バックドアファイル名
fgh.php
# C2チャネル
api.telegram.org
被害を受けていないか確認するチェックリスト
WordPressサイト管理者向け
# 1. バックドアファイルの検索
find /home/ -name "fgh.php" -o -name "shell.php" -o -name "cmd.php" -o -name "c99.php"
# 2. uploads内のPHPファイル確認
find /path/to/wp-content/uploads/ -name "*.php"
# 3. DB内の賭博コード検索
wp db search "bringmetolife" --all-tables
# 4. 最近更新されたPHPファイルの確認
find /home/ -name "*.php" -mtime -7
# 5. .htaccessの不正RewriteRule確認
grep -r "bringmetolife\|terreagoodboy\|jutsu-seribu" /home/ --include=".htaccess"
Google検索での確認:
site:自社ドメイン SULEBET
site:自社ドメイン SANJITOTO
site:自社ドメイン slot online
→ 結果が出たら被害あり
対応・報告先
| 機関 | URL/連絡先 |
|---|---|
| JPCERT/CC(インシデント対応依頼) | https://www.jpcert.or.jp/form/ |
| 警察庁サイバー犯罪相談 | #9110 |
| Cloudflare abuse | https://www.cloudflare.com/abuse/ |
| Netcraft フィッシング報告 | https://report.netcraft.com/ |
| Google スパム報告 | https://search.google.com/search-console/report-spam |
おわりに
本件は「小規模な医療サイトが狙われた」話ではありません。同一攻撃者が21サイトを同時に侵害した組織的な攻撃です。
WordPressを運用している医療機関・クリニック・企業のエンジニアの方は、今すぐ上記のチェックリストを実行してください。
IOCの詳細・完全技術論文はGitHubで公開しています: https://github.com/ToruCHIKAZAWA/MF-2026-0812
情報提供・類似被害情報: info@medi-face.co.jp
医療機関向け関連記事(medi-face.co.jp)
技術者以外の医療関係者(院長・事務長)向けに、同じ攻撃をより平易に解説した記事を公開しています。