跳到主要內容
影片

專坑開發者的假工作邀約:我的兩次經歷、FBI 列出的危險訊號,以及應對方法

2026 年 6 月,一個假客戶的測試專案把惡意程式藏在一個 npm 相依套件裡,在我的 Mac 上跑了好幾天;10 月,又一個假客戶要我把一道指令貼進終端機。一支 53 秒的科普影片:攻擊手法、FBI 列出的危險訊號,以及能擋住它的三個習慣。

發布於
閱讀
約 5 分鐘
標籤
  • security
  • malware
  • developer
  • explainer
目錄
  1. 6 月:測試專案本身就是惡意程式
  2. 10 月:不開鏡頭,「裝一下這個會議軟體」
  3. 一套已知的手法
  4. 為什麼瞄準的是人
  5. 危險訊號
  6. 補救方法
  7. 之後我做了什麼
  8. 來源

一句話總結: 2026 年,假「客戶」兩次想讓我執行他們的程式碼。6 月那次得逞了:測試專案把惡意程式藏在它的一個 npm 相依套件裡,跑了好幾天,沒有任何防毒軟體出聲。10 月那次我拒絕了。兩次走的都是 FBI 認為與北韓有關的同一套手法;沒有人正式認定我這兩次是誰做的,但它們和這套手法吻合。FBI 的建議:不要在工作電腦上執行面試程式碼,非執行不可就用一台獨立的虛擬機,並透過另一個管道查證徵才方是誰。

6 月:測試專案本身就是惡意程式

完整經過請見我之前的文章 我在 Upwork 上兩次撞上北韓駭客的假面試。簡單說:一個自由接案平台上的「客戶」給了我一道程式測驗。

「He sent over a Node.js test project called "Online_Store". The malicious code was hidden in one of its npm dependencies.」(他傳來一個叫「Online_Store」的 Node.js 測試專案。惡意程式碼就藏在它的一個 npm 相依套件裡。)

我好一陣子都沒察覺:「By the time I noticed, it had been running in the background for days.」(等我發現時,它已經在背景跑了好幾天。)

而且什麼都沒有警告我:「neither macOS's built-in XProtect nor traditional antivirus made a sound, either time.」(macOS 內建的 XProtect 和傳統防毒軟體,兩次都毫無反應。)

10 月:不開鏡頭,「裝一下這個會議軟體」

四個月後,來了一個新「客戶」,這次來自一家假公司。視訊通話時,「He kept his camera off」(他一直沒開鏡頭)。接著,「we had to switch to a meeting app called "Zeff"」(我們得改用一個叫「Zeff」的會議軟體),而要安裝它,我得「run a curl | bash command in the terminal, or download a DMG. I didn't install it.」(在終端機裡執行一道 curl | bash 指令,或者下載一個 DMG。我沒裝。)

指令和網址都不會出現在影片和本文裡:這裡談的是如何識破誘餌,而不是它會裝上什麼。

一套已知的手法

回頭看,兩次嘗試的形狀一樣:「Both attacks followed the same playbook: contact, build trust, the ask, the payload. The second time, I stopped at the payload.」(兩次攻擊走的是同一套劇本:聯繫、建立信任、提出要求、投放惡意程式。第二次,我在投放惡意程式那一步停下了。)

FBI 曾對這種形狀發出警告。它的公共服務公告 PSA 240903 題為「North Korea Aggressively Targeting Crypto Industry with Well-Disguised Social Engineering Attacks」(北韓以偽裝巧妙的社交工程攻擊猛烈鎖定加密貨幣產業)。我的兩次經歷和它描述的模式吻合;沒有人正式認定它們的來源,所以我不會說是北韓駭了我。

為什麼瞄準的是人

幣安遭竊後,Aikido 的 Mackenzie Jackson 在接受 BBC 訪問時描述了一種轉變。用 BBC 的話來說:「He says hackers have shifted from going after company infrastructure to going after the machines of the people who run it.」(他說,駭客已經從攻擊公司的基礎設施,轉向攻擊維運這些設施的人所用的機器。)

至於手段:「Jackson says techniques vary, but include tricking workers into installing malware under the pretext of a job interview, or interfering with code that developers rely on.」(Jackson 說,手法各不相同,但包括以求職面試為藉口誘騙員工安裝惡意程式,或者竄改開發者所依賴的程式碼。)

Jackson 描述的是常見手法,並不是在說幣安是怎麼被攻破的。

危險訊號

FBI 把這一條列為指標之一:「Requests to conduct a "pre-employment test" or debugging exercise that involves executing non-standard or unknown Node.js packages, PyPI packages, scripts, or GitHub repositories.」(要求進行「到職前測驗」或除錯練習,其中涉及執行非標準或來路不明的 Node.js 套件、PyPI 套件、腳本或 GitHub 儲存庫。)

從我自己的兩次經歷,還能再加兩條:一個始終不開鏡頭、想改用一個你從沒聽過的軟體的「客戶」;以及要你把一道指令貼進終端機的要求。

補救方法

  1. 不要在工作電腦上。 FBI:「Avoid taking pre-employment tests or executing code on company owned laptops or devices.」(避免在公司所有的筆電或裝置上進行到職前測驗或執行程式碼。)
  2. 非執行不可,就隔離開來。 FBI 的建議,簡單來說:在一台沒有連上公司的裝置上使用虛擬機,或者使用測驗方提供的裝置。
  3. 透過另一個管道查證。 FBI:「Develop your own unique methods to verify a contact's identity using separate unconnected communication platforms.」(建立你自己獨有的方法,透過互不相連的獨立通訊平台查證聯絡人的身分。)

之後我做了什麼

事後,我做了一個工具:「So I built a small macOS menu bar app called Tsuba」(所以我做了一個 macOS 選單列小工具,叫 Tsuba)。它的想法是:「before unfamiliar code runs for the first time, it takes a look for you.」(陌生的程式碼第一次執行之前,先替你看一眼。)Tsuba 免費而且開源。它排在上面這些習慣之後,而不是取代它們。

來源

影片以程式碼製作動畫,腳本在 AI 協助下撰寫;上面每個事實都對照來源查證過。示意的部分:專案目錄樹和那個標紅的相依套件、「未發現威脅」的盾牌、視訊通話,以及打了碼的終端機指令。本文說明的是風險和補救方法,不是攻擊的具體步驟。影片為英文。影片用 Shotloop 製作:我做的免費 Mac 應用程式,用程式碼做科普短片,一個鏡頭一個鏡頭地修改。

追蹤我

我會持續分享正在做的專案、實驗和心得。

YouTube 上發影片,X 上發短筆記。這裡的每篇文章都會連結到兩邊。

YouTube