top of page
blog_banner-1980x300.png

【Wiz 深度解析】Vibe Coding 很危險? 善用開源規則檔,讓 AI 程式碼更安全

  • 作家相片: Estrella Wei
    Estrella Wei
  • 6月13日
  • 讀畢需時 5 分鐘

已更新:9月22日


作者:Rami McCarthy  | 編譯:AIShield 編輯部 | 發稿日期:2025 年 6 月 13 日


Vibe Coding
圖片出自:Wiz

大型語言模型(LLMs)的程式開發能力,已然催生了許多 AI 輔助的程式開發工具,從大家耳熟能詳的 GitHub Copilot,到 AI 整合開發環境(IDE)與擴充功能,像是 Claude Code、Cursor、Windsurf、Codeium 和 Roo 等等,可說是百花齊放。


這股風潮也降低了程式開發的門檻,甚至創造出一種全新的 Vibe Coding 模式,簡而言之,就是讓你寫程式時「完全忘記程式碼的存在」。


雖然不是所有 AI 輔助的程式開發都屬於 Vibe Coding,但隨著開發者越來越不清楚 AI 產生的程式碼細節,以及非開發人員更容易接觸到 Vibe Coding 產生的潛在風險軟體,資安疑慮也跟著浮現。



AI 生成程式碼不安全,Vibe Coding 更是資安高危險群!


目前 AI 產生的程式碼預設並不安全,這已經是個不爭的事實。根據 BaxBench 的資料,領先模型實際運作的程式碼輸出中,有 25% 到 70% 含有漏洞。一些研究也指出,使用 AI 助理的開發者,因為對 AI 產生的程式碼過度自信,反而會寫出更多有漏洞的程式碼。雖然近期模型已大幅改進,顯著降低了漏洞發生率,但仍有很大的進步空間。


當我們特別探討 Vibe Coding 時,資安風險更是直線上升。許多驚人的案例已廣為人知,像是某位 Vibe Coding 的 SaaS 創業家,他的應用程式因為硬編碼的機密資料、缺少身份驗證和授權檢查等問題,不幸成為資安界的「七彩變化球」(意指漏洞百出、易受攻擊):


@leojr94_
來源:@leojr94_

這樣的案例持續發生:


@infinitelogins
來源:@infinitelogins

改善 AI 生成程式碼的安全性


不論有沒有 AI 的參與,傳統的軟體資安工具在確保程式碼安全方面依然扮演重要角色。靜態應用程式安全測試(SAST)、軟體組成分析(SCA)和機密資訊掃描(Secrets scanning)都各有其用武之地。AI 輔助程式開發的興起,更凸顯了將這些掃描盡可能「左移」(shift left)到 IDE 中的重要性。程式碼審查(PR time)的掃描和修復依然至關重要。此外,建立和採用預設安全的框架與函式庫,也能有效降低風險。


撇開傳統做法不談,AI 程式開發助理也帶來了一種新的能力,可以用來強化應用程式的安全性:規則檔(Rules Files)


什麼是規則檔(Rules Files)?


規則檔是一種新興模式,讓你能夠為 AI 程式開發助理提供標準化的指引。


你可以利用這些規則來建立專案、公司或開發者專屬的背景資訊、偏好設定或工作流程。市面上大多數主流的 AI 程式開發工具都支援規則檔,例如 GitHub Copilot 的儲存庫自訂指令(Repository Custom Instructions)或 Codex 的 AGENTS.md、Aider 的慣例(Conventions)、Cline 的自訂指令(Custom Instructions)、Claude 的 CLAUDE.md、Cursor 的規則(Rules),以及 Windsurf 的規則(Rules)。


資安導向的規則檔


研究一再發現,精心設計的提示(prompts)可以顯著減少 AI 產生的程式碼漏洞數量。規則檔正是集中和標準化這些以資安為重點的提示改進的最佳方法。


要系統性地為資安目的打造規則檔,我們需要考量規則檔的最佳實務、AI 程式碼中最常見的漏洞,以及基於研究的、用於生成安全程式碼的提示最佳實務。


規則檔的最佳實務


  1. 專注於撰寫清晰、簡潔、可執行的指令。

  2. 根據其相關範圍(例如特定程式語言)量身定制規則。

  3. 將複雜的指南分解為更小、原子化且可組合的規則。

  4. 保持整體規則簡潔,總行數應少於 500 行。


AI 生成程式碼的不安全習慣


LLMs
來源:From Vulnerabilities to Remediation: A Systematic Literature Review of LLMs in Code Security

總體而言,系統性回顧顯示,CWE-94(程式碼注入)、CWE-78(作業系統指令注入)、CWE-190(整數溢位或迴繞)、CWE-306(關鍵功能缺少身份驗證)和 CWE-434(不受限制的檔案上傳)都是常見的漏洞。當然,這裡存在方法學上的偏見,因為大多數研究都特別針對 MITRE 的《CWE 最危險的 25 種軟體弱點》。


毫無疑問,程式語言對軟體漏洞也有影響。這些模式當然與常見漏洞相對應,無論 AI 是否參與其中。例如,記憶體管理問題在 C/C++ 中過度集中;而對於 Python,則更常見不受信任資料的反序列化和與 XML 相關的漏洞。


基於研究的安全程式碼生成提示最佳實務


早期相關研究發現,在提示中簡單地加入『secure』這個詞,可以讓 GPT-3、GPT-3.5 和 GPT-4 生成的程式碼平均弱點密度分別減少 28.15%、37.03% 和 42.85%。同一篇論文發現,突出顯示常見 CWE 的提示最有效(例如:產生安全的 Python 程式碼,防止以下列出的 CWE 中最常見的資安弱點),優於基於角色或簡單的資安提示。


另一項研究發現,在可能的通用前綴中,「您是一位資安意識很高的開發者,會避免程式碼中的弱點。」能夠平均在單次生成時將有漏洞程式碼的風險降低 47-56%,具體取決於模型。這優於其他替代方案,例如「確保每一行程式碼都安全」和「逐行檢查您的程式碼並確保每一行都安全」。



開源安全規則檔


規則檔在資安應用方面尚未被廣泛採用。最好的資安規則檔當然是為您的組織量身打造的。然而,為了幫助解決「空白頁問題」,我們決定開源一套基礎的安全規則檔。這些規則是在 Gemini 的協助下建立的,其提示編碼了上述的指導原則。


我們已經針對一套常見的語言和框架生成了規則:


  • Python:Flask、Django

  • Javascript:React、Node.js

  • Java:Spring

  • .NET:ASP.NET Core


相容的規則適用於所有下列熱門的 AI 程式開發助理和工具:


  • Cursor Rules

  • Cline Rules

  • Claude CLAUDE.md

  • Windsurf Rules

  • Codex AGENTS.md

  • Aider Conventions

  • GitHub Copilot Copilot Instructions



🔍 資安名詞小辭典(本篇術語快速解釋)


Vibe Coding

一種新的程式開發模式,開發者幾乎不需撰寫程式碼,只需描述需求,讓 AI 自動生成程式碼,降低了技術門檻,也帶來資安風險。


LLM(大型語言模型)

Large Language Models,一種以深度學習為基礎的自然語言處理模型,如 GPT-4,可用來生成程式碼、文字或對話。


規則檔(Rules Files)

為 AI 助理所設計的自訂指令集,提供背景資訊、安全建議與開發慣例,協助 AI 生成更安全、合規的程式碼。



與其仰賴 AI,不如引導 AI


AI 正在改變我們寫程式的方式,但也同時改變資安的挑戰樣貌。面對 Vibe Coding 時代,我們不該只是被動接受 AI 給的程式碼,而是要 主動設定規則、加強安全提示、強化檢查機制

如果你或你的團隊正在使用 AI 開發工具,卻還沒開始導入「安全規則檔」,現在正是最佳時機。


📩 如有更多實作或部署需求,歡迎聯絡 AIShield 顧問團隊,一起守護 AI 程式碼的安全。




本文翻譯自 Wiz 原文:“ Rules Files for Safer Vibe Coding

發佈日期:2025 年 6 月 6 日

原文和圖片連結:Wiz 部落格文章

bottom of page