概要
- LinkedIn経由で受け取った リクルーターからの怪しい依頼 体験談
- GitHubリポジトリ 内に仕込まれた バックドア の発見経緯
- 偽装された開発者やリクルーター によるソーシャルエンジニアリング手法
- npm install 実行時に自動発火する 悪意あるスクリプト の危険性
- セキュリティ意識 と コードレビュー手法 の重要性
LinkedIn経由で届いた怪しいリクルートの顛末
- 小規模なCryptoスタートアップ を名乗るリクルーターからのLinkedInメッセージ受信
- 数回のやり取り後、「 壊れたProof-of-Concept」のコードレビュー依頼
- GitHubリポジトリ のURLと「 deprecatedなNodeモジュールの問題を確認してほしい」という指示
- 違和感を覚え、 HetznerのVPSで隔離環境を構築 し、リポジトリをクローン
- Piエージェント をread, grep, find, lsのみ許可した 読み取り専用モード でコードチェック
バックドアの発見とその仕組み
- リポジトリは表向き Reactフロントエンド+Nodeバックエンド 構成
- app/test/index.js (約250行)の中に URL断片を組み立てるコード を発見
- 例:
https://rest-icon-handler.store/icons/77
- 例:
- コメントアウトされたテストに紛れて、 サーバーから受信した任意コードを実行するペイロード を埋め込み
- app/index.js で
require('./test')実行→ app/test/index.js が即座にロード・実行 - package.json の
prepareスクリプトで npm install時に自動実行 される仕組み - 「 deprecatedなNodeモジュール問題を確認してほしい」という指示は、 npm install実行を誘導する罠
偽装されたアイデンティティ
- GitHubコミット履歴 は、実在するフルスタックエンジニアの 名前・メールアドレスを盗用
- 本人に連絡したところ、「全く関与していない」「過去にもなりすまし被害あり」と判明
- リクルーターのLinkedInプロフィール も、著名なアートジャーナリストのものを流用
- 技術的な話題に切り替えると、突然npmやNodeの専門用語を使い始める不自然さ
セキュリティ上の教訓と対応
- npm install 一発で バックドアが作動 するため、レビュー依頼には 慎重な対応が必須
- 疑わしいリポジトリは 隔離環境+読み取り専用ツール で解析するのが有効
- AIエージェントによるコードレビュー は、初心者を装った巧妙なバックドアも短時間で検出可能
- GitHub・LinkedInに通報 したが、現時点でリポジトリは依然公開中
まとめ:誰でも被害に遭う可能性
- ソーシャルエンジニアリング+技術的トラップ の複合攻撃事例
- 疲れていたり急いでいたりすると 不用意にnpm install しがちな点に注意
- LinkedIn経由のリポジトリレビュー依頼 には常に 警戒心 と セキュリティ意識 を持つことが重要
- AIや自動化ツールの活用 で、人的ミスのリスクを軽減可能