目錄
相關部落格
引言:人工智慧程式碼安全及其新興風險
大型語言模型 (LLM) 和人工智慧輔助編碼工具在加速開發週期、降低成本和提高生產力方面具有巨大潛力。然而,這種加速也伴隨著代價:人工智慧產生的程式碼引入了重大的安全風險,其中許多風險仍未被充分理解、緩解措施不足且監管缺失。由於目前用於評估、保護和管理人工智慧驅動軟體開發的框架和方法有限,因此難以識別和修復人工智慧生成程式碼中固有的漏洞。
人工智慧(AI)程式碼產生模型容易產生不安全的程式碼;然而, 研究表明 使用者普遍認為人工智慧產生的程式碼比人工生成的程式碼更值得信賴,但目前針對如何識別和解決人工智慧生成程式碼中問題的框架卻十分有限。這導致企業在識別和解決人工智慧生成程式碼問題方面存在嚴重的盲點,從而面臨巨大的安全漏洞和風險。
例如,以下研究探討了人工智慧生成程式碼的安全性問題程度:
- 在 130 個程式碼範例中 使用 InCoder 和 Github Copilot 產生的程式碼樣本,經過人工檢查,分別有 68% 和 73% 的程式碼樣本有漏洞。
- ChatGPT 用於生成 我們使用五種不同的程式語言編寫了 21 個程序,並進行了 CWE 測試。結果表明,最初只有 5 個程序是安全的。只有在明確提示修改程式碼後,另外 7 個程式才產生了安全的程式碼。
- 平均48% 五個不同的LLM產生的程式碼中至少包含一個可能導致惡意利用的漏洞。
儘管有這些結果,但初步跡象表明,使用者認為人工智慧產生的程式碼比人類編寫的程式碼更安全。這種對人工智慧生成程式碼的「自動化偏好」意味著用戶可能會忽略仔細的程式碼審查,並接受不安全的程式碼。例如,在 2023年產業調查 在 537 名技術和 IT 工作人員及管理人員中,76% 的人認為 AI 程式碼比人類編寫的程式碼更安全。
是什麼讓人工智慧程式碼變得脆弱?
生成式人工智慧系統存在多種已知的漏洞,容易受到對抗性攻擊。這些漏洞包括資料投毒攻擊(攻擊者污染模型的訓練資料以誘發預期行為)和後門攻擊(攻擊者透過預先設定的觸發短語提示模型,試圖產生特定輸出)。在程式碼產生領域,資料投毒攻擊可能表現為攻擊者篡改模型的訓練數據,以提高其產生導入惡意軟體包或庫的程式碼的可能性。
對模型本身發起的後門攻擊,只需一個觸發器即可顯著改變模型的行為,即使開發者試圖移除該觸發器,這種改變也可能持續存在。這種行為改變可能導致輸出結果違反開發者對模型設定的限制(例如「不要建議與惡意軟體相關的程式碼模式」),或洩漏不必要的敏感資訊。研究人員指出,由於程式碼產生模型是基於來自數量有限且未經清理的程式碼庫的大量資料進行訓練的,攻擊者可以輕易地將包含惡意程式碼的檔案滲透到這些程式碼庫中,或者故意引入包含漏洞程式碼的新程式碼庫。
根據程式碼產生模型的介面或鷹架的不同,可能會出現其他形式的對抗性攻擊,例如間接提示注入。在這種攻擊中,攻擊者試圖指示模型以某種方式運行,同時將這些指令對合法用戶隱藏起來。與直接提示注入(也稱為「越獄」)不同,後者是指使用者透過以特定方式提示產生模型來攻擊它,而間接提示注入則要求模型從第三方來源(例如網站)檢索包含隱藏指令的受損資料。
在程式碼產生環境中,能夠引用外部網頁或文件的 AI 模型可能無法區分合法提示和惡意提示,這可能會導致它產生呼叫特定軟體包或遵循不安全編碼模式的程式碼。
最後,如果賦予程式碼產生模型廣泛的權限,它們可能會更加有效和實用,但這反過來也會使它們成為潛在的攻擊途徑,因此必須進一步加強安全防護。在專業環境中,大多數人工智慧產生的程式碼可能都經過包含內建測試和安全評估的開發流程,但人工智慧公司正在積極研究相關策略,以賦予模型(包括程式碼編寫模型)更大的自主權和與環境互動的能力。
生成式人工智慧系統,尤其是用於程式碼生成的系統,本身就容易受到各種對抗性攻擊,包括資料投毒、後門篡改和提示注入。這些攻擊利用訓練資料、模型行為和外部依賴項中的漏洞,使攻擊者能夠引入惡意程式碼或繞過安全機制。 safe警衛。人工智慧模型無法一致一地區分合法輸入和惡意輸入,這進一步加劇了這些風險,尤其是在模型與外部資源互動或擁有廣泛權限的情況下。
人工智慧生成程式碼最佳實踐框架
實施一套最佳實務能夠幫助組織降低風險、確保合規性並維持有效的安全措施。以下是維護安全的AI產生程式碼的合規性框架建議。
| 項目類別 | 練習 | 目標 | 行動步驟 | 結果 |
| 測試和驗證 | LLM 及其輸出的測試 | 識別漏洞並確保人工智慧產生的程式碼的一致性和安全性 | 進行對抗性測試,模擬各種真實世界的提示,並驗證極端情況。 | 最大限度降低不安全輸出的風險並提高程式碼一致性 |
| 工具集成 | 使用 SAST 和 SCA 工具 | 偵測原始碼、相依性和執行環境中的漏洞 | 將工具嵌入 CI/CD 管線,自動執行掃描,並修復已發現的問題。 | 貫穿整個開發生命週期的全面安全保障 |
| 智能門鎖 | 實施基於角色的存取控制(RBAC) | 限制對人工智慧系統和敏感功能的未經授權訪問 | 定義細粒度的角色和權限,強制執行分段,並維護詳細的存取日誌。 | 最大限度降低濫用風險並加強問責制 |
| 政策與合規性 | 使用合規模板自動執行策略 | 符合組織和監管要求 | Deploy 提供符合 GDPR、HIPAA 和 PCI DSS 標準的模板,並根據安全標準驗證輸出結果。 | 始終遵守政策並減少違規行為 |
| 可追溯性 | 維護軟體監管鏈 | 確保人工智慧生成程式碼的可追溯性和問責制 | 追蹤程式碼來源、修改和部署情況,並使用治理工具標記偏差。 | 增強了追蹤漏洞和維護審計能力 |
| 韌性措施 | 納入漸進式交付與回滾策略 | 偵測並緩解生產環境中的漏洞 | 執行金絲雀測試、藍綠部署,並針對已發現的問題啟用自動回滾。 | 降低漏洞對生產系統的影響 |
| 集中管理 | 使用統一平台管理工具和流程 | 簡化安全工作流程,監控風險,優先補救 | 匯總 SAST、DAST 和 SCA 數據,實現工作流程自動化,並透過儀表板提供視覺化資訊。 | 提高營運效率、降低風險、強化團隊協作 |
裡維埃wing Tools 和流程 Digital.ai
Digital.ai Release 和部署y 整合了一套全面的工具、警報和策略,以維護保護 AI 生成程式碼的最佳實踐。以下是列表: Digital.ai相關的開箱即用整合和原生功能,用於加強 AI 生成程式碼的安全性。
Digital.ai的 AI 生成代碼安全集成
- Application Security 測試XXXXXXX – Checkmarx 提供 SAST 掃描,Black Duck 執行 SCA 掃描。
- 政策執行 – Open Policy Agent (OPA) 在 CI/CD 管道中實作策略即程式碼。
- 持續交付 – ArgoCD 和 Argo Rollouts 可實現持續漸進的交付以及 GitOps 工作流程。
Digital.aiAI生成程式碼安全性的原生功能
- 基於角色的訪問控制 – 在執行合規性要求的同時,強制執行 LLM 和使用者之間的最小權限原則。
- 審計和合規跟踪 – 檢視所有工具、使用者和環境中的活動,同時評估其對合規性達成的影響。
- 分析和工作流程 – 評估環境和安全趨勢,分配任務,促進工作流程,以解決出現的問題並執行合規要求。
綜合用例:強化人工智慧程式碼安全性
透過整合上述工具、配置警報和實施策略, Digital.ai Release 以及 Deploy 確保人工智慧產生的程式碼安全、合規且運作高效。這一點在所有潛在用例中都得到了進一步檢驗。 Release 以及 Deploy, 如下所列。
Application Security 測試XXXXXXX
- Checkmarx 的 SAST 可掃描 AI 產生的程式碼,尋找應用程式中的不安全模式。這些掃描配置為在 CI/CD 管線中程式碼提交後自動觸發,從而為開發人員提供即時回饋,並最大限度地降低下游漏洞的風險。
- Black Duck SCA 可識別 AI 模型推薦的第三方依賴項中的漏洞。這些依賴項通常是已知存在 CVE 漏洞的程式庫或惡意網域搶注的軟體包,會在管線的建置階段進行掃描。透過及早標記並修復風險依賴項,該銀行確保了不安全的庫被排除在生產環境之外。
合規執行
- 開放策略代理程式 (OPA) 提供策略即程式碼功能,並與 CI/CD 管線整合。策略使用 Rego 編寫,可自動執行 GDPR、PCI DSS 和內部治理框架等關鍵標準。這基於風險的嚴重程度、預設的調查和恢復措施,以及對最佳實踐和合規性要求的符合性。例如,OPA 策略可能會阻止 AI 產生的 API 的部署,除非它們強制執行 HTTPS 並實施強大的存取控制以符合合規性要求。此外,OPA 也會驗證執行時間配置,以確保敏感資料在傳輸和預存程序中均已加密。策略還限制了高風險庫(定義為 CVE 評分高於 7.0 的庫)的引入,從而確保遵循安全開發的最佳實踐。
- 基於角色的存取控制 (RBAC) 透過為與 AI 系統和部署管道互動的使用者定義細粒度權限來降低風險。開發人員只能在隔離環境中產生和測試程式碼,而安全團隊則被授予審查、稽核和批准輸出的權限。管理員可以修改策略、管理工具並監督部署。這種權限劃分最大限度地減少了意外或惡意濫用 AI 產生程式碼的可能性,而詳細的存取日誌則為系統內執行的每一個操作提供了問責機制。
- Digital.ai的監控儀表板提供組織安全態勢的集中視圖,匯總來自 SAST、SCA 和可觀測性工具的資料。警報功能可設定為在出現高風險漏洞、政策違規或執行時間問題時通知團隊。合規性範本提供可重複的工作流程,以強制執行合規性標準。此外,軟體監管鏈追蹤從 AI 產生的輸出到部署的每一次變更,確保可追溯性和合規性。例如,如果 AI 產生的腳本引入了漏洞,監管鏈會識別出具體的提示和相關依賴項,使銀行能夠有效率地解決根本原因。
用例總結
此整合流程可在軟體開發生命週期的每個階段識別漏洞,從而確保合規性並維持運作穩定性。策略確保符合監管標準,而基於角色的存取控制 (RBAC)、治理工具和監管鏈則提供了問責制和可審計性。自動化工作流程減少了手動操作,簡化了維運流程,並加快了修復速度。透過利用這些工具,人工智慧產生的程式碼受到保護,風險得以最小化,合規性要求也得以遵守。