【ITニュース解説】Someone Spammed My DEV Post. I Traced It to a Wombat.
2026年09月10日に「Dev.to」が公開したITニュース「Someone Spammed My DEV Post. I Traced It to a Wombat.」について初心者にもわかりやすく解説しています。
ITニュース概要
DEV記事のスパムコメントを追跡すると、正規の就職支援サービスへのアフィリエイト誘導だった。マルウェアはなく、インフラは雑だが、生成された偽アカウントやウォンバットのアイコンなど、低コストで年間数件の成約で費用を回収でき、根絶は難しい。
ITニュース解説
ある開発者が自身で運営するブログサイトに投稿した記事のコメント欄に、一つ奇妙な投稿がなされた。その内容は「手動での求人応募はもうやめよう」「AIが毎日代わりに処理する」「すぐに面接を受けられる確率を上げる」といった、一見すると便利なサービスを宣伝するものだった。しかし、その末尾には意味不明な数字と文字が並ぶ短縮URLが記され、投稿者は文章の内容とは全く関係のない、低品質なスパムによくある特徴を示していた。
このスパムコメントに興味を持った開発者は、その短縮URLがどこにつながっているのかを詳しく調べてみることにした。URLを直接クリックすることは危険なので、まずは「curl」というコマンドラインツールを使い、リダイレクト先の情報だけを取得する安全な方法を取った。すると、その短縮URLは最初「zenviapro.store」という怪しいドメインに転送され、そこからさらに「loopcv.pro」という別のURLへとリダイレクトされていることが明らかになった。
最終的にたどり着いた「loopcv.pro」は、求人応募の自動化を提供する「SaaS(Software as a Service)」、つまりクラウドベースの正規の有料サービスだった。フィッシングサイトやマルウェアを配布するサイトではない。そして、このURLの末尾には「?via=md」という見慣れないパラメータが付加されていた。これは「Rewardful」というサービスが提供する「アフィリエイト」のための紹介コードであり、このコード経由でLoopCVのサービスに登録があると、紹介者に報酬が支払われる仕組みであることが判明した。つまり、今回のスパムコメントは、マルウェアを仕掛けるのではなく、アフィリエイト報酬を得るための宣伝活動だったのだ。
このアフィリエイトスパムの背後にあるインフラを詳しく調べると、その運用がいかに杜撰であるかが浮き彫りになった。「zenviapro.store」のリダイレクトサーバーは、「Express」というウェブアプリケーションフレームワークのデフォルト設定がそのまま使われており、本来は非表示にすべき「X-Powered-By: Express」という情報が丸見えだった。また、リダイレクト時に表示されるメッセージもフレームワークの初期設定のままで、トップページにアクセスするとデフォルトの「Cannot GET /」というエラーが表示された。これは、専用のウェブサイトを用意する手間すら省かれた、ごく単純なリダイレクト機能しか持たないサーバーであることを示している。
さらに、URLに含まれる「whose=yahoo」のようなパラメータは、キャンペーンの出所を追跡するためのものに見えたが、実際にはどんな値を入力しても同じリダイレクト先へと転送される、全く意味のない飾りであることが判明した。また、悪質なサイトがユーザーエージェント(アクセスしているデバイスやブラウザの種類)によって表示内容を変える「クローキング」という手法も一切使われていなかった。これらの事実は、このオペレーターが複雑な技術的知識を持たず、最低限の機能だけを実装していることを物語る。
しかし、雑さばかりではない。このドメインのメールサーバーは「beeservices.shop」という別のドメイン名を使い、両方のドメインが同じIPアドレスを共有していた。これは一つのサーバーで複数の役割をこなす、ある程度の効率性を追求した運用形態である。そして、メールサーバーの起動時に表示される「HELOバナー」には、現在のドメイン設定と一致しない古いドメイン名が含まれていた。これはサーバーを再構築せずに、設定だけを一部変更したことによる痕跡で、オペレーターの手抜かりを示す「指紋」となった。
スパムコメントを投稿したアカウント「jaylonstiedemannterry78-993」も詳しく調べられた。そのプロフィールは空白で、投稿記事もゼロ、唯一の活動が今回のスパムコメントだった。アカウント名から不自然さを感じた開発者が、その単語の出所を調べたところ、「Faker.js」という開発者がテスト用のダミーデータを生成するのに使うライブラリの英単語リストから選ばれた単語を組み合わせたものであることが判明した。さらに、名前の組み合わせ方から、このオペレーターが約690億通りの偽名を自動生成できることを突き止めた。これにより、ユーザー名をブロックリストに登録しても追いつかないことが示された。
アバター画像もユニークだった。AIが生成した架空の人物像や、デフォルトのアイコンではなく、19世紀に描かれたウォンバットの科学的イラストが使われていたのだ。これもまた、人間的な要素を排除し、公開されている素材をランダムに利用していることを示している。
このアカウントとドメインの「熟成」期間も注目すべき点だった。ドメインとDEVアカウントは、わずか6日違いで登録された後、約6ヶ月間も放置されてから初めて利用された。これは、新規に作成されたドメインやアカウントが持つレピュテーション(評判)上のリスクを回避するために、意図的に時間を置いてから使用する「エイジング」という手法で、オペレーターが一定の運用上の知識を持っていることを示唆する。杜撰な技術的実装と、こうした巧妙な運用上の知識が混在している点は興味深い。
さらに調査を進めるため、このスパムに関連するIPアドレスやドメイン名でGitHubを検索したり、悪性ドメインのブロックリストを調べたりしたが、いずれもヒットしなかった。これは、このキャンペーンがマルウェアやフィッシングといった「技術的な脅威」に焦点を当てる従来のセキュリティツールの検出閾値を下回っていることを示している。つまり、これらのツールは「監視されていない」という正しい結果を返しているのだ。
ただし、似た名前のドメインが別のフィッシングキャンペーンで使われているのを発見したが、レジストラやDNSなどの情報が異なり、無関係であることが判明した。名前が似ているだけでオペレーターが同じだと判断するのは誤りだという教訓を得た。
GitHubでは、LoopCVの正規のアフィリエイトリンクが多数見つかった。しかし、それらのリンクには「toolify」や「sang-kwon」といった、紹介者を特定できるようなトークンが使われていたのに対し、今回のスパムに使われたのは「md」という匿名性の高い2文字のトークンだった。これは、リダイレクトサーバーの雑な作りやウォンバットのアバターとは対照的に、紹介者への追跡を防ぐための、唯一と言える「意図的なセキュリティ対策」であり、オペレーターが「支払いの部分」はしっかり守っていたことを示唆している。
このアフィリエイトスパムがなぜ存在するのかを理解するには、その経済的側面を分析する必要がある。LoopCVのアフィリエイト報酬は、顧客一人あたり年間75ドルから600ドルに達する可能性がある。一方、ドメイン登録とホスティングを含む年間運用費用は、せいぜい38ドルから180ドル程度だ。この計算から導き出されるのは、わずか1〜3件の成約で年間費用が回収でき、それ以降は全て利益になるという事実だ。
この「低コスト・高利益」の構造こそが、この種のスパムがインターネット上から消えない根本的な理由である。内容が稚拙でも、技術的に杜撰でも、アバターがウォンバットでも関係ない。わずかな成約があれば継続が可能であり、従来のセキュリティツールでは検出されないため、永遠に活動を続けることができる。
このキャンペーンの真の被害者は、スパムコメントのターゲットとなった開発者ではない。真の被害者は、そのブランドイメージをスパムに利用され、評判を損なわれる正規のサービス「LoopCV」である。LoopCV側がこのキャンペーンを認識している証拠は見つかっていないが、オープンなアフィリエイトプログラムが悪用されるリスクを抱えているのだ。
この問題の解決策は、LoopCV自身が持つ。「?via=md」のような不審な紹介トークンは、そのベンダー側で停止させることが可能である。アフィリエイト規約を強化し、不審なトラフィック源からの登録を監視し、違反アカウントを迅速に停止することが、この種のスパムを根絶するための最も効果的な手段となる。
今回の調査を通じて明らかになったのは、インターネット上の脅威が必ずしも高度なマルウェアや複雑なエクスプロイトであるとは限らないということだ。むしろ、安価で合法、そして経済的な動機に支えられた、一見すると些細なスパムが、最も根深く、既存の防御システムでは対応しにくい存在となっている。技術的な巧妙さよりも、経済的な現実が、インターネット上のスパムを永続させる最大の要因なのである。