一家做進口保健品的電商,年營收約 NT$8,000 萬,把官網、會員系統與金流串接全外包給一間三人工作室。合作兩年,網站沒出過大問題,直到某天 Google Search Console 跳出警告:站上被植入了導向博弈網站的隱藏連結。老闆問工程師:「我們的主機密碼、資料庫備份、Stripe 金鑰放在哪?」得到的答案是:「都在那位離職的前工程師的個人筆電和他自己的 GitHub 帳號裡。」這時候才做資安盡職調查,已經太晚了——你要的是一份簽約前就能跑完的清單。
業界迷思:關於外包資安,多數老闆信錯的四件事
迷思一:「小工作室不會被駭,駭客只攻大公司。」真相相反。攻擊者鎖定的是「弱點」不是「知名度」,而中小型網站往往因為沒有更新、共用密碼、沒開多因素驗證而更好打。Verizon 的 2024 Data Breach Investigations Report 指出,超過三分之一的資料外洩涉及第三方(供應鏈)因素,而且這個比例逐年上升。你外包的那家廠商,就是你的第三方。
迷思二:「簽了保密協議(NDA)就等於資料安全。」NDA 管的是「洩漏後能不能告」,不是「會不會洩漏」。它是事後求償工具,不是事前防護措施。真正保護你的是廠商的存取控制、加密與備份實務。
迷思三:「原始碼在我這裡就安全了。」原始碼只是拼圖的一角。你更該問的是:正式環境的機密(金流金鑰、資料庫密碼、API token)存在哪?誰能存取正式資料庫?離職員工的權限有沒有被回收?OWASP 長年把存取控制失效(Broken Access Control)列為 Web 應用的頭號風險類別,這類問題幾乎都出在「人與權限」而非程式碼本身。
迷思四:「他們很專業,一定有做好資安。」「專業」是行銷詞,不是稽核結果。你需要的是可驗證的證據:他們能不能拿出存取紀錄、備份還原測試紀錄、機密管理工具的截圖?講不出來,就是沒做。
核心框架:三層資安盡職調查模型
不要一次問 50 個技術問題把廠商問到防禦,用這個三層漏斗,由外而內逐層驗證:
- 第一層 · 資料在哪裡(Data Locality):正式資料、備份、機密憑證分別存在哪個帳號、哪個雲、哪個人手上?目標是消滅「只在某個人筆電裡」的單點。
- 第二層 · 誰能碰得到(Access Control):多少人有正式環境權限?用不用多因素驗證?離職怎麼回收?目標是把「有鑰匙的人」數到清楚。
- 第三層 · 出事怎麼辦(Incident & Recovery):多久備份一次?還原測試過沒有?被駭的通報流程與時效?目標是確認「最壞情況」有人接得住。
三層各給一個「紅/黃/綠」燈。只要第一層或第二層出現紅燈,先別談功能與報價——那是把房子蓋在流沙上。
三類企業,不同的盡職調查深度
| 企業情境 | 資料敏感度 | 盡職調查深度 | 最該盯的一項 |
|---|---|---|---|
| 10 人內容型工作室(官網+部落格,不存個資) | 低 | 輕量:帳號歸屬+備份確認 | 網域與主機帳號在自己名下 |
| 50 人電商(會員、訂單、金流串接) | 中高 | 完整 14 項清單全跑 | 誰能存取正式資料庫與金流金鑰 |
| 醫療/金融相關(個資特種、法遵要求) | 極高 | 14 項+書面資安政策+稽核日誌 | 加密、稽核軌跡與法遵對應(如個資法) |
同一份清單,敏感度越高、要求的「證據等級」就越高:內容站聽口頭承諾就好,電商要看截圖,醫療金融要看書面政策與日誌。
隱藏成本:跳過盡職調查,帳單會在哪裡回來找你
省下這半天的盡職調查,代價通常藏在這幾筆你當下看不到的支出:
- 資料外洩善後:依規模不同,通報、鑑識、客戶補償動輒 NT$50 萬起跳;若涉及個資,主管機關依個資法可處罰鍰,情節重大者更高。
- 被綁架的搬遷費:帳號都在廠商手上、無交接文件時,換一家廠商的「考古+重建」工時,常見落在 40–120 工時,約 NT$8 萬–24 萬。
- 停機損失:電商旺季主機掛掉、沒人有 root 權限,一天營業額直接歸零;以上述 NT$8,000 萬年營收估,旺季單日損失可達 NT$30 萬以上。
- SEO 復原:被植入惡意連結、遭 Google 標記後的信任修復,常需 2–4 個月才回到原本流量。
- 機會成本:老闆與團隊處理事故的時間,本來能拿去談三張新客戶。
一句話:盡職調查花的是半天,跳過它花的是三個月加現金。
資安盡職調查 KPI 計分卡(10 維度,簽約前逐項打分)
每項 0–2 分(0=答不出、1=口頭承諾、2=拿得出證據),滿分 20。低於 12 分建議暫緩簽約,低於 8 分直接換人。
| 評估維度 | 綠燈(2 分) | 紅燈(0 分) |
|---|---|---|
| 網域與主機帳號歸屬 | 登記在你公司名下,你有管理權 | 在廠商或個人帳號 |
| 原始碼版本控管 | 在你的組織 Git 帳號,有完整歷史 | 只在某人的個人帳號 |
| 正式環境機密管理 | 用密鑰管理工具(如 Vault/環境變數),不進版控 | 寫死在程式碼或聊天室貼過 |
| 存取權限最小化 | 能列出誰有權限、可隨時回收 | 「大家都有 root」 |
| 多因素驗證(MFA) | 主機、Git、金流後台全開 MFA | 只靠密碼 |
| 備份頻率與異地 | 每日自動備份+異地保存 | 「應該有吧」 |
| 還原測試 | 近半年做過還原演練,有紀錄 | 從沒還原過 |
| 相依套件更新 | 有定期掃描與更新流程 | 上線後從沒更新 |
| 離職權限回收 | 有 SOP,能出示紀錄 | 沒流程、憑記憶 |
| 事故通報時效 | 合約載明通報時限(如 24 小時) | 合約沒提 |
ScriptWalker 的對應方案,以及我們不適合的情境
ScriptWalker 是一間專做 Laravel+Flutter 的工作室,資安盡職調查對我們是加分題不是難題,因為我們預設就這樣做事:
- 專案制交付:所有帳號(網域、主機、Git、金流)一律建在客戶名下,我們只拿受邀權限,結案時一鍵移除。
- 月費維護約(Retainer):含每日備份、每季還原演練、相依套件掃描與更新,把上面計分卡的綠燈維持住。
- 顧問型(Advisory):你已有廠商,只想找人幫你跑這份 14 項盡職調查、審對方的資安答卷,我們可以只做這件事。
- 資安健檢一次性:針對既有系統做一次存取盤點+機密掃描+備份驗證。
但有三種情境我們會直說不適合:(一)你要的是「越便宜越好、資安別管」的一次性外包,我們的基本盤會顯得貴;(二)需要 ISO 27001/SOC 2 正式稽核簽證的大型法遵專案,那該找專業稽核機構,不是開發工作室;(三)你希望所有帳號都掛在廠商名下「省事」——我們反而堅持相反,這點談不攏就不必開始。
啟動期遊戲書:把盡職調查排進前 30 天
盡職調查不是簽約前跑一次就結束,它該延續到合作啟動期:
- 簽約前(第 0 天):跑完 14 項清單與 10 維度計分卡,紅燈項目寫進合約當交付條件。
- 第 1–7 天:把所有帳號建/轉到你名下,廠商改用受邀權限;建立機密管理與 MFA。
- 第 8–21 天:設定每日自動備份,做第一次還原演練並留紀錄;盤點誰有正式環境權限。
- 第 22–30 天:跑一次相依套件掃描;把事故通報流程與聯絡窗口寫成一頁 SOP。
- 第 90 天回顧:重跑一次 10 維度計分卡,確認綠燈沒有退回黃燈。
簽約前自我檢查清單
- ☐ 網域是否登記在我公司名下?
- ☐ 主機/雲端帳號的擁有者是不是我?
- ☐ 原始碼在我的組織 Git,還是某個人的私人帳號?
- ☐ 金流金鑰、資料庫密碼存在哪裡?誰看得到?
- ☐ 有幾個人擁有正式環境的存取權限?
- ☐ 主機、Git、金流後台都開了多因素驗證嗎?
- ☐ 備份多久一次?存在哪裡?異地嗎?
- ☐ 近半年做過還原測試嗎?有紀錄嗎?
- ☐ 相依套件多久更新一次?
- ☐ 前一位工程師離職時,權限有被回收嗎?
- ☐ 被駭時的通報流程與時限,合約有寫嗎?
- ☐ 廠商能不能拿出「證據」而不只是口頭承諾?
- ☐ 這份清單的紅燈,有沒有寫進合約當交付條件?
- ☐ 我知不知道「換廠商」時要拿回哪些東西?
常見問題 FAQ
資安盡職調查會不會讓廠商覺得我不信任他,反而破壞合作?
好的廠商反而會鬆一口氣,因為這代表你是「懂得管理外包」的客戶,日後爭議更少。會被這份清單激怒的,通常正是你最該擔心的那家。把它包裝成「我們公司的標準採購流程」,對雙方都體面。
我沒有技術背景,怎麼判斷廠商的答案是真是假?
你不需要看懂技術細節,只需要看「有沒有證據」。要求對方用截圖或畫面示範:讓你看到帳號的擁有者是誰、備份還原真的跑得起來、機密不是貼在聊天室。看得到就是綠燈,講不清楚就是紅燈,這個標準不需要工程背景也能執行。
已經合作中的廠商,現在補做盡職調查來得及嗎?
來得及,而且越早越好。從「帳號歸屬」與「機密存在哪」這兩項開始盤,這是止血點。你不用一次做完 14 項,先把第一層(資料在哪)跑完,通常就能揪出最致命的單點風險。
如果廠商說「這些做法會增加成本」,我該接受嗎?
基本的帳號歸屬、MFA、每日備份、機密管理,是專業開發的預設值,不該另外收費。若被當成加購項目,代表對方平常沒這樣做——這本身就是一個紅燈。合理的額外費用只該出現在「正式稽核簽證」這類真正超出範圍的需求。
行動呼籲
如果你正要簽一紙外包合約,或手上系統的帳號密碼「不知道在誰那裡」,先花 30 分鐘把這份清單跑一次。ScriptWalker 提供免費諮詢,可協助你檢視現有廠商的資安答卷、或針對既有系統做一次存取與備份盤點,把紅燈找出來。
- Email:[email protected]
- 電話:0916-224-047
- LINE:@ufv9089p