
(限額60人,人數超過開放旁聽)
2026 年,一隻名為 Axios的 npm 蠕蟲在數小時內感染了上百個熱門套件——惡意程式碼在 npm install 的當下就執行,等傳統掃描發現時,憑證早已外洩、CI 早已中招。問題的本質是:等你「掃描」時,恶意包已經跑過了。 如果現在有一個惡意版本正要進入你的專案,你能在它被下載前就攔住嗎?
本工作坊讓你親手完成這件事。你會先建置一個 npm 專案、把 build-info 發佈到 Artifactory;接著我們會在安全的沙盒環境中重現一次惡意套件攻擊,讓你親眼看到惡意 postinstall 執行的瞬間;然後你將用 JFrog Curation 建立 Custom Condition 與 Policy,在下載源頭把這個惡意版本擋下,並在 CLI 與 UI 中驗證攔截行為與排查方式。
走出教室時,你會帶走一份可以週一就貼進自己組織的 Curation Policy、一套 automation 腳本,以及一張供應鏈事件的一頁式 runbook。
• 親手攔下一次攻擊:先看到惡意 postinstall 在安裝當下執行,再用 Curation 在下載源頭把它擋住,徹底理解「預防」為何勝過「事後偵測」。
• 一份可直接套用的政策:帶走一組 Curation Custom Condition 與 Policy,回去就能套用到自己組織的 remote repository。
• 一套可重複使用的資產:automation 腳本 + 一頁式供應鏈事件 runbook,下次遇到惡意套件知道怎麼處理。
• 看懂證據鏈:理解 build-info 如何串聯產物、相依套件與環境資訊,成為稽核與追溯的依據。
• 熟悉工具鏈:用 JFrog CLI 透過 Artifactory 完成 npm 解析與部署,並掌握被阻擋時的基本排查方式。
1.開場:一場真實的供應鏈攻擊(5 分鐘)
從Axios蠕蟲講起——惡意版本發布後,多快就跑在開發者筆電與 CI 上。先讓你「怕」,再讓你親手把它擋住。
2.環境確認與倉庫建立(15 分鐘)
用提供的 JFrog instance 和automation 腳本建立所需 npm repositories。
3.實作一:建置與發佈 build-info(20 分鐘)
jf npm-config、jf npm install、jf npm publish、build-publish;在 UI 中檢視 build-info 串起的相依與環境資訊。
4.實作二:重現攻擊 → 用 Curation 攔截(30 分鐘)
先(在沙盒中)讓「惡意版本」通過一次,親眼看到 postinstall 的危害;接著建立 Custom Condition 與 Policy、套用到 remote,重新執行 install,看著畫面跳出 BLOCKED,並在 CLI 與 UI 中驗證與排查。
5.進階挑戰:擋下更刁鑽的版本(10 分鐘)
自己動手把政策從「單一版本」擴展到 version range 或其他條件——快手可挑戰,現場交流不同寫法。
6.總結、帶得走的成果與 Q&A(10 分鐘)
回顧「中招 → 攔截」的全程;給出 take-home repo、runbook 與「週一就能做的事」清單;對經營/決策角度的價值(稽核證據、事後清理成本)做 3 分鐘收束,讓旁聽者也有收穫。
中階
中文