AI 寫程式合規稽核指南封面,資安稽核主題

中小企業老闆 AI 寫程式合規稽核完整指南:Cursor / Copilot / Claude Code 4 條法遵紅線、5 個資料外洩情境、3 條稽核模板

恆遠數位編輯團隊14 分鐘閱讀
複製引文

最近我們在自己的 Claude Code、Cursor 內部工作流裡,發現一件讓我們反覆確認的事:

公司的資安政策裡,完全沒有提到 AI Coding 工具。

這件事本身不算新鮮,但當我們把它攤在 IT 主管面前時,對話的走向讓人意外。大多數人的第一反應是「那是工程師的事」,而不是「那是合規的事」。

所以讓我直接問你:如果明天你的工程師把一份客戶訂單資料庫的連接字串貼進 Cursor 聊天框,你的公司有任何機制能在 24 小時內發現嗎?

這篇文章的出發點,是給有決策權的老闆和 IT 主管讀的。工程師可以看,但那些能簽核工具採購、能要求資安政策的人,才是真正的目標讀者。AI 寫程式合規稽核(AI Coding Compliance Audit)這件事,在 2026 年已經從工程師的技術作業,升級成老闆必須主動掌握的治理議題。

GitHub 在 2024 年的 Octoverse 報告 中提到,超過 50% 的企業開發者已在日常工作中使用 AI Coding 工具。這代表每天有數以百萬計的程式碼片段,含括 API 金鑰、客戶資料邏輯、授權驗證流程,正在被貼入各種 AI 模型的 context window。

為什麼 AI 寫程式合規稽核從工程議題升級成老闆議題

2019 年,你不需要替開發工具做合規審計,因為開發工具就是 IDE,頂多是 VS Code 加幾個 plugin。2024 年之後,開發工具等於一個不斷接收 prompt 的語言模型端點。這個差異,決定了整個法遵責任鏈的位移。

傳統 IDE 的邏輯很單純:程式碼在你的 laptop,你的 Git repo,你的 CI/CD pipeline。AI Coding 工具的邏輯則是:程式碼在 AI 供應商的 inference cluster,在雲端 context cache,有時候還在訓練資料集裡。換句話說,每一次你的工程師貼出一段程式碼,就等於做了一次受控(或不受控)的資料傳輸。

這件事為什麼是老闆的事,有三條清晰的理由。

第一,責任在公司而不在工具供應商。 Cursor、GitHub Copilot、Claude Code 的服務條款,通常有「不對使用者送入的輸入資料負保密責任」的免責條款。你的工程師貼了什麼,法律責任落在你的公司。

第二,監管正在跟上。 台灣個資法修正草案(2024 年版本)、歐盟 AI Act 都開始對「以 AI 工具處理個資」的情境設定企業責任。KPMG 做過一份調查,結果很直接:超過 60% 的歐盟企業在 AI Act 正式生效後才開始意識到自己的 AI Coding 工作流有合規缺口。

第三,稽核可追溯是董事會議題。 一旦客戶要求提供程式碼開發的來源記錄(code provenance),或是 IP 歸屬爭議上了法院,你必須能回答:這段程式碼是誰寫的、用了什麼工具、工具有無存取任何機敏輸入。這種可追溯性,靠工程師個人自律根本做不到。

4 條法遵紅線:資料外洩、著作權、開源授權汙染、稽核可追溯

我們整理出中小企業在導入 AI Coding 工具後,最容易踩到的 4 條法遵紅線。這些不是假設情境,是來自實際案例的分類。

法遵紅線

觸發情境

責任方

潛在後果

機敏資料外洩

工程師將 DB 連線字串、API key 貼入 AI 工具 prompt

公司

客戶個資外洩、個資法罰款

著作權歸屬爭議

AI 生成程式碼被客戶主張不可商業授權

開發商(你的公司)

交付物無效、合約違約賠償

開源授權汙染

Copilot 吐出 GPL/AGPL 授權片段混入商業專案

客戶(最終用戶)

整個 codebase 被迫開源

稽核可追溯缺失

無法提供「哪段程式碼由 AI 生成、用了哪個模型」的記錄

公司

合規稽核失敗、法律訴訟舉證不利

這 4 條紅線的共通點是:光靠工程師的個人意識管控,都會在規模化之後失控。一個 10 人開發團隊,每天平均進行 50 次以上的 AI 工具互動。你沒有 policy,就等於沒有管控。

關於開源授權汙染這條紅線,我們推薦參考 FOSSID 的 開源授權合規指南,這是目前對 AI 生成程式碼開源授權問題討論最完整的公開資源之一。

關於 AI 系統採購的 IP 歸屬條款,可以延伸閱讀我們之前整理的AI 系統採購合約 IP 歸屬完整指南,裡面有實際合約條款的紅線範本。

5 個真實資料外洩情境,每一個都比你想的更常見

AI Coding secret scan 稽核流程示意,伺服器資安掃描
AI Coding secret scan 稽核流程示意,伺服器資安掃描

以下 5 個情境,我們在合作客戶的工作流裡,或是業界資安回報裡,都見過類似的版本。不是學術假設,是真實發生過的問題模式。

情境 1:Cursor 貼 Production 資料庫密鑰

工程師在 debug 時,把 .env 裡的 DATABASE_URL(含 production 密碼)直接貼進 Cursor 的 chat window,想讓 AI 幫忙分析連線問題。Cursor 的 context 送出到 Anthropic 或 OpenAI 的 API,這段字串就進了雲端推論環境。

後果:即使 AI 供應商聲稱不會保留推論資料,但 prompt 在傳輸過程中的曝露、以及工程師的行為本身,已構成「未授權傳輸 production 機敏資訊」的合規事件。這不是我們自己說的,GitGuardian 的 State of Secrets Sprawl 2024 報告 顯示,超過 12.8 萬個 secrets 在 GitHub 上被公開推送,其中相當比例源自 developer 的 AI 工具使用習慣。

情境 2:GitHub Copilot 訓練資料回吐

Copilot 在某些情境下會產生與訓練資料高度相似的程式碼片段,包括含有真實 API key 或特定授權片段的程式碼。這個問題在 2023 年已有研究者公開提出,Microsoft 也因此更新了 Copilot 的 filter 機制,但「訓練資料回吐」的風險並未完全消除。

後果:如果工程師沿用 Copilot 吐出的含版權程式碼,並將其整合進客戶專案,著作權責任落在你的公司。

情境 3:Claude Code MCP 過度授權

Claude Code 透過 MCP(Model Context Protocol)連接外部工具和資料來源。若開發者在設定 MCP server 時,將具備 read/write 權限的資料庫工具全開,等於讓 Claude Code agent 擁有不受限制的 production 資料存取。

後果:當 AI agent 在執行任務時,可能無意間讀取、甚至修改客戶資料。這在我們自己的 Claude Code agent harness 設定裡,是第一個要鎖的項目,原則是「最小授權」,每個 MCP 工具只開它完成任務所需的最小權限集。

情境 4:開發者 Laptop 存有 Legacy Repo 明文密鑰

工程師的本機環境,通常存有歷史專案的 .env 檔、legacy AWS credentials、甚至舊版的客戶資料庫備份。當 AI Coding 工具(特別是有本機 file access 能力的 Agentic 工具)被允許掃描整個 project folder 時,這些歷史機敏資料就進入了 context。

後果:一次「請幫我重構這個舊專案」的 prompt,可能把 3 年前的客戶帳號密碼送進 AI 推論環境。

情境 5:Prompt 漏抄客戶 API Key

這是最簡單、也最常見的情境:工程師在寫 prompt 說明背景時,不小心把含有客戶 API key 的程式碼片段直接複製進去,以為只是個環境變數範例。

後果:客戶的第三方服務授權金鑰洩露,後續追查責任時,「誰貼的、什麼時候貼的」完全沒有稽核紀錄可查。這就是稽核可追溯缺失紅線的最典型場景。

要了解更完整的 AI Coding 安全事件分析,可以參考我們整理的AI 程式碼安全完整指南:6 條紅線與 5 大 SOP,裡面包含了 9 秒刪光資料庫的真實事件還原。

稽核模板 A:機敏資訊分級與 IDE Prompt Filter

這套模板的目的是建立一個「上游防護」機制,在機敏資訊進入 AI 工具之前就攔截。適合 IT 主管推行公司政策時使用。

第一步:機敏資訊分級定義

把公司所有可能進入 AI 工具的資訊,按風險等級分三級:

分級

類型

範例

AI 工具使用限制

S1 絕對禁止

生產環境機敏

DB 密碼、API Key、OAuth token、客戶個資

禁止以任何形式貼入 AI 工具 context

S2 需脫敏

業務邏輯資料

資料庫 schema、API 端點結構、客戶 ID 格式

匿名化後方可使用,真實值替換為 placeholder

S3 公開可用

技術框架資訊

使用的 library 版本、UI 元件邏輯、工具設定

可直接使用,但需記錄使用的 AI 工具版本

第二步:IDE Prompt Filter Policy

在 Cursor 的 .cursorrules 或 Copilot 的系統 prompt,加入以下規則聲明(屬於政策紀律層面,依靠制度而非單一技術手段):

「本工作環境禁止將 S1 等級資訊送入任何 AI 模型。所有包含真實憑證、個人資料、或生產環境設定的 prompt,必須先完成脫敏替換。」

配合 .gitignore 把 .env、*.pem、credentials.json 加進全域封鎖清單,並設定 pre-commit hook 掃描 staged files 是否含有常見的 secret pattern(使用 detect-secrets 或 gitleaks)。

關於 AI 系統供應商盡職調查,可以延伸閱讀AI 採購供應商盡職調查 SOP 指南,裡面包含資料處理條款的逐條審查清單。

稽核模板 B:Repo Secret Scan 與 Rotation SOP

AI 程式碼授權合規文件示意,開源授權稽核
AI 程式碼授權合規文件示意,開源授權稽核

這套模板處理的是「已經進去了怎麼辦」的問題,比上游防護更緊急,也是大多數公司最容易跳過的環節。

Repo Secret Scan 工具選型

目前市面上有三個主流工具,各有適用情境:

工具

適用情境

整合方式

免費方案

gitleaks

中小企業,輕量 pre-commit 整合

CLI + GitHub Actions

完全免費,開源

detect-secrets

Python 生態系,自訂 regex 規則強

pre-commit hook

完全免費,開源

GitGuardian

需要集中管理面板、多 repo 掃描

SaaS + GitHub App

5 開發者以下免費方案

Secret Rotation SOP(4 步驟)

一旦發現 secret 可能已洩露(不管確不確定,只要懷疑就啟動),按以下流程執行:

步驟 1:立即 revoke 疑似洩露的憑證,不等確認,先廢先查。

步驟 2:在對應平台(AWS IAM、GitHub Token、Stripe Dashboard)生成新憑證,更新所有使用到該憑證的服務。

步驟 3:清查 Git history,使用 git log 加上 -S 參數搜尋特定 secret pattern,確認洩露範圍。若需要清除歷史記錄,可使用 git filter-repo(注意這會改寫 commit hash,需通知所有協作者)。

步驟 4:記錄本次 incident,含發現時間、洩露範圍、rotation 完成時間(MTTR),作為下次稽核的基準。目標是把 secret rotation MTTR 壓在 4 小時以內。

我們公司自己每天跑 20+ AI 流程,在自己的 Claude Code agent harness 裡,secret scan 是 pre-commit hook 的第一道關卡,任何 S1 等級資訊出現在 staged files 裡,整個 commit 直接 block。這個機制上線之後,我們內部的「意外 secret commit」事件降到了零。

關於酷澎個資外洩事件的 SOP 分析,可以參考我們整理的個資外洩危機處理:員工離職權限撤銷 SOP,這是一個因權限管理失效導致資料外洩的完整案例。

稽核模板 C:AI 生成物歸屬與開源授權合約條款

這套模板處理的是「程式碼出生之後的法律身份」問題。對中小企業老闆來說,這通常是最容易被忽略、但潛在損失最大的一條。

AI 生成程式碼的著作權現狀

台灣著作權法目前沒有明文規定「AI 生成物的著作人」。實務上,各大 AI Coding 工具供應商的立場大致如下:Copilot 聲稱生成物為使用者所有,但免除自身對著作權侵害的責任;Claude Code 與 Cursor 的立場類似。

這意味著:如果 AI 工具吐出一段與某個開源專案高度相似的程式碼,且該開源專案是 GPL 授權,你用了那段程式碼,理論上你的整個 codebase 可能需要開源。這條紅線對做 SaaS 或客製化系統的公司,是存亡等級的風險。

合約條款:對客戶交付的 AI 生成物聲明

建議在開發合約裡加入以下條款(這是模板,需要律師審核後使用):

「乙方在開發過程中可能使用 AI 輔助工具。乙方承諾:(一)對 AI 生成之程式碼進行開源授權掃描,確認無 GPL/AGPL 等 copyleft 授權污染;(二)保存 AI 工具使用記錄,作為程式碼來源追溯之依據;(三)若因 AI 生成物之著作權問題導致客戶損失,乙方負賠償責任。」

關於 SOC 2 Type II 稽核在 AI 供應商採購的應用,可以延伸閱讀SOC 2 Type II AI 供應商採購:12 項稽核重點,裡面包含了對 AI 工具供應商的合規評估框架。

客製化系統程式碼審計的詳細流程,可以參考我們的客製化系統上線前程式碼審計 6 大項目,這篇涵蓋了從授權掃描到安全測試的完整 checklist。

我們的看法是:3 年後 AI 生成程式碼的著作權問題,會成為每一份軟體開發合約的標準條款,因為法院的判例正在累積,一旦第一個大型訴訟確立標準,整個市場的合約規範就會快速收斂。現在提前在合約裡加進這條,成本幾乎為零,等到被迫加的時候,代價就是一次訴訟。

中小企業老闆本季就能落地的 6 個動作

這些動作按執行難度排序,前 3 個不需要工程師資源,後 3 個需要工程師配合,但都是一次性設定。

動作

誰來執行

預估工時

達成指標

1. 建立 AI 工具使用政策文件(含 S1/S2/S3 分級)

IT 主管

2-4 小時

政策文件上線,全員知悉

2. 更新採購合約,加入 AI 生成物條款

老闆 + 法務

1-2 天(含律師審核)

所有新合約含 AI 聲明條款

3. 清查現有 AI 工具訂閱,確認資料處理條款

IT 主管

半天

建立工具清單 + 條款摘要

4. 設定 gitleaks pre-commit hook

工程師

2-4 小時

所有 repo 啟用 secret scan

5. 執行全 repo 歷史 secret scan

工程師

1-2 天

歷史洩露清單 + rotation 完成

6. 設定 AI 工具的最小授權原則(特別是 MCP 設定)

工程師 + IT 主管

1 天

所有 AI agent 工具通過權限審核

這 6 個動作,可以在一個季度內完成,建立起基本的 AI Coding 治理框架。它不能保證 100% 沒有風險,但可以讓你在稽核、客戶問詢、或萬一發生事件時,有據可查、有 SOP 可循。

關於 AI Agent 採購系統的評估方法論,可以延伸閱讀AI Agent 評估方法論:SMB 6 大 KPI 與 90 天驗收清單,這篇提供了從採購到驗收的完整框架。

想聊聊現況?

我們很樂意聽你聊聊現況。如果你正在評估 AI Coding 工具的合規風險,或是需要一份適合自己公司規模的稽核模板,來這裡聊聊。不用準備什麼,帶著你的問題就好。

ℹ️我們怎麼看

AI Coding 合規稽核這件事,現在大多數中小企業的做法是等事情發生再說。我們認為這個策略的成本被嚴重低估了。一次客戶資料外洩事件的損害,遠超過建立整套稽核框架的成本。我們自己在內部工作流上,選擇的路是「把合規稽核工具化」,用 pre-commit hook 和 MCP 最小授權設定,把稽核負擔從工程師的人工判斷,轉移到自動化流程。這個取捨讓我們在新增 AI 工具時,不需要每次都重新評估風險。給你的判斷工具是:如果你的團隊今天有人「意外」貼了一個 API key 進 AI 工具,你多快能知道?

ℹ️我們做過這件事

我們公司自己每天跑 20+ AI 流程,包括 Claude Code agent harness、n8n 自動化和 MCP 工具整合,所以 AI Coding 合規問題是我們每天實際面對的事,不是純理論。恆遠數位行銷有 30+ 企業客製案落地,涵蓋系統開發、AI 導入顧問和資安治理框架建立。如果你想聊聊自己公司的 AI Coding 治理現況,聽你聊聊現況

Q中小企業一定需要正式的 AI Coding 合規稽核嗎?

需要,但規模可以彈性調整。如果你的公司有工程師在用 Cursor、Copilot 或 Claude Code,你就已經有 AI Coding 合規風險了。正式稽核不等於大企業才做的繁重流程,從一份政策文件和一個 pre-commit hook 開始,成本很低,但能把最常見的風險攔掉。

QCursor 和 GitHub Copilot 哪個合規風險比較高?

這個問題的答案取決於你怎麼用,而不是哪個工具本身。Cursor 因為有更強的 agentic 模式和 MCP 整合,在授權邊界上的風險面更廣;Copilot 的訓練資料回吐問題(特別是開源授權汙染)則比較明確。兩者都需要政策管控,不能只靠工具供應商的預設設定。

QAI 生成的程式碼,著作權到底屬於誰?

目前台灣法律沒有明確規定。各大工具供應商的服務條款立場是「生成物屬於使用者」,但同時免除自身對著作權侵害的責任。實務上,建議在開發合約裡明確聲明 AI 工具的使用,並加入開源授權掃描的義務條款,以轉移法律風險。

Qsecret scan 工具需要付費嗎?

不需要。gitleaks 和 detect-secrets 都是完全免費的開源工具,可以整合進 pre-commit hook 和 GitHub Actions CI/CD pipeline。GitGuardian 提供 5 名開發者以下的免費方案,如果需要集中管理面板可以考慮。

QMCP 最小授權原則具體怎麼設定?

原則是:每個 MCP server 只開完成指定任務的最小權限集。如果 AI agent 的任務是讀取資料庫分析資料,就只開 SELECT 權限,不開 INSERT/UPDATE/DELETE。如果任務是讀取文件,就限制 file path 範圍,不讓 agent 存取整個 filesystem。這個設定需要工程師在 MCP server 設定檔裡明確限制,不能依賴 AI 模型自己判斷。

Q如果已經發現有 secret 外洩到 Git repo 歷史,還來得及處理嗎?

來得及,但要立刻執行兩件事:第一,先 revoke 那個 secret,讓它失效。第二,用 git filter-repo 或 BFG Repo Cleaner 把 secret 從 Git 歷史記錄裡清除(注意這會改寫 commit hash)。很多人只做第二步,忘了第一步,但已經外洩的 secret 在網路上可能已經有人複製了,讓原始 secret 失效才是最關鍵的。

分享文章

AUTHOR

恆遠數位編輯團隊

查看作者頁

留言(0)

尚無留言,成為第一個留言的人吧!

需要網站系統架設或軟體開發?

無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。