{
	"id": "ac5a89be-c1a5-48b6-8f89-8f26f2ee2b07",
	"created_at": "2026-04-06T00:21:24.12875Z",
	"updated_at": "2026-04-10T13:11:22.947703Z",
	"deleted_at": null,
	"sha1_hash": "fe6201954e544d5843bcb3e72d164f956c1cd4c1",
	"title": "北からのジョブオファー: ソフトウェア開発者を狙うContagious Interview | セキュリティ研究センターブログ",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 3900606,
	"plain_text": "北からのジョブオファー: ソフトウェア開発者を狙う\r\nContagious Interview | セキュリティ研究センターブログ\r\nBy 竹内 寛\r\nPublished: 2025-02-05 · Archived: 2026-04-05 13:45:05 UTC\r\nはじめに\r\nLinkedInなどのソーシャル・ネットワーキング・サービスや人材マッチングプラットフォームでソフト\r\nウェア開発者に好条件の求人を提示し、インタビューの中でマルウェア\r\n\"BeaverTail\"、\"InvisibleFerret\"に感染させて暗号資産やソースコードなどの開発関連ファイルを窃取する\r\n攻撃キャンペーンが観測されています。その攻撃キャンペーンは\"Contagious Interview\"と呼ばれ、昨年\r\n分析記事が公開されました [1] 。\r\nContagious Interviewは北朝鮮（DPRK）が関与していると考えられており、CrowdStrike社は攻撃グルー\r\nプを\"Famous Chollima\"と呼称し [2] 、その活動を追跡しています。Contaigious Interviewにより多大な被\r\n害が発生した事案（US $72,000相当の暗号通貨を窃取。日本円で約1,000万円) [3]も発生しています。暗\r\n号資産の窃取が目的の一つであるため、ブロックチェーン、Decentralized Finance （DeFi）などのWeb3\r\n関連のソフトウェア開発者が特に狙われる傾向がみられます。\r\nContagious Interviewは現在でも続いており、BeaverTail、InvisibleFerretを改良し日本を含め世界各国の開\r\n発者が狙われているのを観測しています。実際に日本国内でも感染事案を確認しています。\r\n本記事ではContagious Interviewの最近の手口とBeaverTail、InvisileFerretの変更点について解説します。\r\n最近の攻撃手口\r\n攻撃者は企業のリクルーターを装い、ソフトウェア開発者にLinkedInで求人のメッセージを送ります。\r\n実際に攻撃者から送られてきたメッセージも公開されています [4]。\r\nそして技術インタビューに誘い、コードレビューのためにBitBucketからNode Package Manager (NPM)\r\nパッケージをダウンロードするよう依頼します。\r\nこのNPMパッケージを実行すると、パッケージの中に含まれているBeaverTailが実行されて、端末の情\r\n報がアップロードされます。その後、攻撃のステージが進むにつれて、より多くのリモート操作・情\r\n報窃取が可能となる第2ステージのInvisibleFerret、第3ステージのAnyDesk（正規のリモートアクセスツ\r\nール)が実行されます。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 1 of 15\n\n図1. 攻撃の流れ\r\n最近のBeaverTailは、NPMパッケージだけでなく、Qtで開発された偽のビデオ会議アプリのインストー\r\nラー[5]やElectronで開発されたアプリケーションの中に埋め込まれているものも観測しています。\r\nWindows、Linux、macOSで動作するクロスプラットフォームアプリケーションを容易に開発すること\r\nができるため、NPMパッケージに加えてQt、ElectronもBeaverTailの開発に使われたと考えています。\r\n図2. BeaverTailが埋め込まれていたElectronアプリケーション\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 2 of 15\n\nBeaverTail\r\nBeaverTailの目的は、感染機器の情報収集とInvisibleFerretを感染機器に設置することです。NPMパッケ\r\nージの形態では、BeaverTailは、パッケージに含まれるjavascriptファイルの一つに難読化されたコード\r\nで埋め込まれています。\r\n\"chesshub\" パッケージでは、routesディレクトリ配下にあるapi.jsにBeaverTailが埋め込まれていました。\r\n図3. BeaverTailが埋め込まれているapi.js\r\nファイルを開いた時に見つからないよう1行目のコメントの後ろに215個のスペースを入れた後に難読\r\n化されたスクリプトが記述されています。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 3 of 15\n\n図4. api.jsに埋め込まれているBeaverTail\r\nElectronで開発されたアプリケーションでは、Atom Shell Archive Format (ASAR) アーカイブのapp.asarフ\r\nァイルに含まれているmain.jsにBeaverTailが埋め込まれていました。\r\n図5. Electronアプリに埋め込まれているBeaverTail\r\nBeaverTailはホスト名などの感染機器の基本情報、OS、ブラウザで保有している認証情報やブラウザ拡\r\n張機能としてインストールされている暗号資産ウォレット関連ファイルも窃取し、C2サーバへアップ\r\nロードします。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 4 of 15\n\n図6. BeaverTail 認証情報窃取処理\r\n図7. BeaverTail 暗号資産ウォレット関連ファイル窃取処理\r\n最近観測されたBeaverTailでは、窃取対象であるブラウザ拡張機能の暗号資産ウォレットの種類が9から\r\n21に増え、攻撃者が暗号資産の窃取に強い関心があることを示しています。\r\nNo ブラウザ拡張機能ID 拡張機能名 ブラウザ\r\n1 nkbihfbeogaeaoehlefnkodbefgpgknn MetaMask Wallet Chrome\r\n2 ejbalbakoplchlghecdalmeeeajnimhm MetaMask Wallet Microsoft Edge\r\n3 fhbohimaelbohpjbbldcngcnapndodjp BNB Chain Wallet Chrome\r\n4 ibnejdfjmmkpcnlpebklmnkoeoihofec TronLink Wallet Chrome\r\n5 bfnaelmomeimhlpmgjnjophhpkkoljpa Phantom Wallet Chrome\r\n6 aeachknmefphepccionboohckonoeemg Coin98 Wallet Chrome\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 5 of 15\n\n7 hifafgmccdpekplomjjkcfgodnhcellj Crypto.com Wallet Chrome\r\n8 jblndlipeogpafnldhgmapagcccfchpi Kaikas Wallet Chrome\r\n9 acmacodkjbdgmoleebolmdjonilkdbch Rabby Wallet Chrome\r\n10 dlcobpjiigpikoobohmabehhmhfoodbb Argent X - Starknet wallet Chrome\r\n11 mcohilncbfahbmgdjkbpemcciiolgcge OKX Wallet Chrome\r\n12 agoakfejjabomempkjlepdflaleeobhb Core | Crypto Wallet Chrome\r\n13 omaabbefbmiijedngplfjmnooppbclkk Tonkeeper - wallet for TON Chrome\r\n14 aholpfdialjgjfhomihkjbmgjidlcdno Exodus Web3 Wallet Chrome\r\n15 nphplpgoakhhjchkkhmiggakijnkhfnd TON Wallet Chrome\r\n16 penjlddjkjgpnkllboccdgccekpkcbin OpenMask -TON wallet Chrome\r\n17 lgmpcpglpngdoalbgeoldeajfclnhafa SafePal Extension Wallet Chrome\r\n18 fldfpgipfncgndfolcbkdeeknbbbnhcc MyTonWallet Chrome\r\n19 bhhhlbepdkbapadjdnnojkbgioiodbic Solflare Wallet Chrome\r\n20 gjnckgkfmgmibbkoficdidcljeaaaheg Atomic Wallet Chrome\r\n21 afbcbjpbpfadlkmhmclhkeeodmamcflc Math Wallet Chrome\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 6 of 15\n\n感染機器の情報とウォレットの情報をアップロードした後にPythonで開発された2次ペイロードの\r\nInvisibleFerretのダウンローダをダウンロードします。InvisibleFerretはPythonスクリプトであるため、感\r\n染機器のOSがWindowsである場合は、Pythonがインストールされていないケースを想定して\r\nInvisibleFerretが実行できるようPython実行ファイルとライブラリをダウンロードします。\r\nダウンロードURL) http[:]//\u003cC2 IP\u003e:1224/pdown\r\nダウンロードしたPython関連のファイルは、感染機器のユーザホームディレクトリに\".pyp\"ディレクト\r\nリを作成し、その中に保存します。\r\n図8. BeaverTail ダウンロード処理\r\n今年の10月に観測したBeaverTailは、ダウンロードしたInvisibleFerretのダウンローダを感染機器のユー\r\nザホームディレクトリに\".sysinfo\"という名称で保存・実行します。\r\n注意すべき点としてはBeaverTailが実行された時点でmacOSのキーチェーンデータベースファイル、ブ\r\nラウザに保存されてた認証情報（ID、パスワード）、ブラウザ拡張機能ウォレットの秘密鍵が攻撃者\r\nのサーバにアップロードされます。そのため、次のInivisbleFerretがエンドポイントセキュリティ製品に\r\nよってブロックされたとしても認証情報とウォレットの秘密鍵が盗まれた前提での対応が必要です。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 7 of 15\n\nInvisibleFerret\r\nInvisibleFerretは、Pythonで開発されているマルウェアで、複数のPythonスクリプトで構成されていま\r\nす。\r\n1. ダウンローダ\r\n2. バックドア\r\n3. ブラウザ情報を窃取するスティーラー\r\n4. キーロガー\r\n5. AnyDesk \r\nダウンローダとバックドア、キーロガーのコードは難読化されています。\r\n昨年観測されたInvisibleFerretは、XOR -\u003e base64で難読化されていましたが、今年10月に観測したもの\r\nは、zlib -\u003e base64 -\u003e 文字列の順序を逆順に並べ替える これを50回繰り返す難読化に変更されていまし\r\nた。\r\n図9. 難読化されたコード\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 8 of 15\n\n図10. 難読化を解除したコード\r\n難読化を解除するスクリプトはGitHub上で公開しています。こちらでご確認下さい。 \r\n1. ダウンローダ (.sysinfo)\r\nダウンローダは、感染機器のOSに応じてファイルをダウンロード・実行します。\r\n最初に、バックドアをダウンロードし、感染機器のユーザホームディレクトリ内に作成された\".n2\"デ\r\nィレクトリの中に\"pay\"という名前で保存・実行します。\r\n感染機器がWindowsである場合、.n2ディレクトリ内にブラウザの情報窃取を行うスティーラーとキー\r\nロガーをダウンロードし、それぞれ\"bow\"、\"mlip\"という名前で保存・実行します。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 9 of 15\n\n図11. ダウンロードされたInvisibleFerret関連ファイル\r\n図12. InvisibleFerret関連プロセスツリー\r\n2. バックドア (pay)\r\nキーロギングとクリップボードデータの取得をし、８つの遠隔操作コマンドをサポートしています。\r\n1 ssh_cmd 全てのpython.exeプロセスを終了\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 10 of 15\n\n2 ssh_obj コマンド実行\r\n3 ssh_clip キーロギングとクリップボードデータをC2サーバーへ送信\r\n4 ssh_run ブラウザ情報を窃取するスティラーをダウンロード・実行\r\n5 ssh_upload C2サーバへファイルをアップロード\r\n6 ssh_env\r\nC, D, E, F, Gドライブでnode_modulesなど\r\n特定のディレクトリを除いた.envファイル一覧をC2サーバへアップロード\r\n7 ssh_kill ChromeとBraveブラウザのプロセスを終了\r\n8 ssh_any AnyDesk をダウンロード・実行\r\nC2サーバのIPアドレスとポート番号は、スクリプトの中に定義されています。\r\n図13. バックドア C2とポート番号\r\nC2サーバとの通信は、TCPプロトコル上でJSON形式のデータでやりとりをします。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 11 of 15\n\n図14. C2通信データ\r\n3. ブラウザ クレデンシャルスティーラー (bow)\r\nChrome、Brave、Opera、Yandex、Microsoft Edgeブラウザからログイン情報などを窃取し、C2サーバへ\r\nアップロードします。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 12 of 15\n\n図15. bow\r\n4. ブラウザ キーロガー (mlip)\r\nmlipは、昨年観測されたInvisibleFerretから新しく追加されたファイルです。感染機器上の全てのキー入\r\n力を保存するのではなく、Chrome、Braveブラウザに入力したキー情報とペーストしたクリップボード\r\nデータをC2サーバにアップロードします。\r\n図16. mlip\r\n5. AnyDesk (adc)\r\n正規リモート操作ツールであるAnyDeskの設定ファイルを取得、攻撃者がリモートアクセスできるよう\r\nに設定を書き換えてAnyDeskの再起動を行います。Windows環境では、Anydeskが存在していない場合\r\nは、C2サーバからダウンロードします。\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 13 of 15\n\n図17. AnyDesk\r\n終わりに\r\n本攻撃キャンペーンは、ソフトウェア開発者を標的としているため、企業の従業員が通常使用する\r\nWindows以外のmacOS、Linuxで実行可能なNPMやQt、Electronなどのクロスプラットフォームアプリケ\r\nーション開発フレームワークでマルウェアを開発していることが特徴的です。これによりマルウェア\r\nが動作可能な攻撃対象領域を拡大させています。\r\nNPMパッケージはサンドボックス製品で実行できない、NPMパッケージやElectronアプリケーション\r\nは、スクリプトの難読化手法の変更が容易であるなどの理由で、VirusToal上では検知率が高くない検体\r\nも見受けられるためアンチウイルス製品などで検知されない可能性があることも考慮する必要があり\r\nます。\r\nBeaverTail、InvisibleFerretは、パーシステンス（機器再起動後に自動起動する設定）の作成はしないた\r\nめ、感染させた後に迅速にできるかぎりの情報を窃取する手口であると考えています。 \r\n感染防止、暗号資産保護、被害拡大防止の3点の対策について考察します。\r\n感染防止\r\n・会社から貸与されている機器を私用利用しない。\r\n・身元が明らかでない人物からのソフトウェアをダウンロード・実行しない、実機ではなく仮想マシ\r\nン上での実行を検討する。\r\n・ビデオ会議ツールは、普段自身が使用しているものを使うようにする。\r\n暗号資産保護\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 14 of 15\n\n・暗号資産ウォレットの鍵を端末ではなくハードウェアウォレット（HWW）に保管することを検討す\r\nる。\r\n・秘密鍵を複数の鍵に分割し、分散保管するMulti-Party Computation（MPC）ウォレットを提供するサ\r\nービスを利用することを検討する。\r\n被害拡大防止\r\n感染を防ぐために検討しなければ課題が複数あります。\r\n・SNSを介したメッセージのやり取り、ファイルの転送はメールとは異なり機器に到達する前の検知・\r\nブロックが難しく機器に到達する可能性が高い。\r\n・正規サービスであるGitHubやBitBucketからコードをダウンロードするため、通信での検出も難し\r\nい。\r\n・NPMパッケージのインストールする振る舞いを不審であると判断しづらい。\r\nそのため、万が一InvisibleFerretが実行されたとしても迅速な検出・ブロックを実現するEDRのようなエ\r\nンドポイントセキュリティ対策も重要になります。\r\nまた、国内では観測されていませんが、メールセキュリティ製品を回避するためにSkype, WeChatなど\r\nのインスタントメッセージング アプリケーション系由でマルウェアが配布されるのを中国語圏で多く\r\n観測されています。海外拠点を持つ日本企業の方々もメール以外でのマルウェア配送に注視頂ければ\r\nと考えています。\r\nIndicators of Compromise (侵入痕跡)\r\nGitHub上に公開しています。こちらでご確認ください。\r\n参考情報\r\n[1] Hacking Employers and Seeking Employment: Two Job-Related Campaigns Bear Hallmarks of North Korean\r\nThreat Actors\r\n[2] Famous Chollima\r\n[3] https://x.com/DaKingLawson/status/1843508343903801425\r\n[4] https://x.com/DaKingLawson/status/1843508373951778977\r\n[5] Contagious Interview: DPRK Threat Actors Lure Tech Industry Job Seekers to Install New Variants of\r\nBeaverTail and InvisibleFerret Malware\r\nSource: https://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nhttps://security.macnica.co.jp/blog/2024/10/-contagious-interview.html\r\nPage 15 of 15",
	"extraction_quality": 1,
	"language": "JA",
	"sources": [
		"Malpedia"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://security.macnica.co.jp/blog/2024/10/-contagious-interview.html"
	],
	"report_names": [
		"-contagious-interview.html"
	],
	"threat_actors": [
		{
			"id": "7187a642-699d-44b2-9c69-498c80bce81f",
			"created_at": "2025-08-07T02:03:25.105688Z",
			"updated_at": "2026-04-10T02:00:03.78394Z",
			"deleted_at": null,
			"main_name": "NICKEL TAPESTRY",
			"aliases": [
				"CL-STA-0237 ",
				"CL-STA-0241 ",
				"DPRK IT Workers",
				"Famous Chollima ",
				"Jasper Sleet Microsoft",
				"Purpledelta Recorded Future",
				"Storm-0287 ",
				"UNC5267 ",
				"Wagemole "
			],
			"source_name": "Secureworks:NICKEL TAPESTRY",
			"tools": [],
			"source_id": "Secureworks",
			"reports": null
		},
		{
			"id": "4fc99d9b-9b66-4516-b0db-520fbef049ed",
			"created_at": "2025-10-29T02:00:51.949631Z",
			"updated_at": "2026-04-10T02:00:05.346203Z",
			"deleted_at": null,
			"main_name": "Contagious Interview",
			"aliases": [
				"Contagious Interview",
				"DeceptiveDevelopment",
				"Gwisin Gang",
				"Tenacious Pungsan",
				"DEV#POPPER",
				"PurpleBravo",
				"TAG-121"
			],
			"source_name": "MITRE:Contagious Interview",
			"tools": [
				"InvisibleFerret",
				"BeaverTail",
				"XORIndex Loader",
				"HexEval Loader"
			],
			"source_id": "MITRE",
			"reports": null
		},
		{
			"id": "d05e8567-9517-4bd8-a952-5e8d66f68923",
			"created_at": "2024-11-13T13:15:31.114471Z",
			"updated_at": "2026-04-10T02:00:03.761535Z",
			"deleted_at": null,
			"main_name": "WageMole",
			"aliases": [
				"Void Dokkaebi",
				"WaterPlum",
				"PurpleBravo",
				"Famous Chollima",
				"UNC5267",
				"Wagemole",
				"Nickel Tapestry",
				"Storm-1877"
			],
			"source_name": "MISPGALAXY:WageMole",
			"tools": [],
			"source_id": "MISPGALAXY",
			"reports": null
		}
	],
	"ts_created_at": 1775434884,
	"ts_updated_at": 1775826682,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/fe6201954e544d5843bcb3e72d164f956c1cd4c1.pdf",
		"text": "https://archive.orkl.eu/fe6201954e544d5843bcb3e72d164f956c1cd4c1.txt",
		"img": "https://archive.orkl.eu/fe6201954e544d5843bcb3e72d164f956c1cd4c1.jpg"
	}
}