成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AI 生成的代碼真的安全嗎?

譯文 精選
人工智能 應用安全
AI 生成的代碼存在著各項安全風險,本文通過討論,希望能給你提供確保安全態(tài)勢的有力參考。

譯者 | 陳峻

審校 | 重樓

軟件開發(fā)編程曾經(jīng)被認為只有具備深厚專業(yè)知識與技能的程序員才能勝任的工作。不過,現(xiàn)在貌似任何人都可以利用自然語言工具來實現(xiàn)并完成與此同時,過去那些需要數(shù)天、甚至數(shù)月才能開發(fā)出來的功能現(xiàn)在完全可以在 AI 模型的代碼加持在幾分鐘內(nèi)開發(fā)出來。例如,OpenAICodex 和 GoogleBERT 都是接受過 Web 博客編程Stack overflow 等方面任務的培訓。

目前,許多前衛(wèi)技術(shù)嘗鮮者、以及新晉的 SaaS 提供商都在利用 AI 工具來使產(chǎn)品更加智能。SaaS 程序員也在不斷探索基于 AI SaaS 工具的生成式代碼輸出不過,一些智能模型通過數(shù)學概率演算創(chuàng)建代碼同時,也被發(fā)現(xiàn)會產(chǎn)生幻覺,甚至呈現(xiàn)了虛假的信息。學術(shù)界曾進行過一項研究并發(fā)現(xiàn):由AI 生成的代碼,往往會包含OWASP 10 大經(jīng)典漏洞,而且有近 40% 的代碼存在安全漏洞

哪些會導致 AI 生成的代碼不安全?

常言道,編程標準的遵循和代碼的質(zhì)量決定了軟件的安全性。可是,AI 模型主要是根據(jù)互聯(lián)網(wǎng)上不同程度的可用信息,加以訓練來生成代碼。因此,代碼質(zhì)量、可靠性、安全性等方面都可能與人類開發(fā)生成的代碼有所不同。例如,由 Web 開發(fā)示例訓練出的模型,很可能包含著欠缺的數(shù)據(jù)驗證實踐。而當模型生成的代碼采用相同的不良實踐時,這種驗證上的不足很可能會導致系統(tǒng)中后續(xù)運行過程中的安全問題。

5表明代碼包含安全漏洞的指標

無論參數(shù)量級是百萬還是十億,已知的模型都會產(chǎn)生幻覺以此做出錯誤的預測。普通的開發(fā)人員在審閱由 AI 生成的代碼時,他們很可能會錯過那些細微影響嚴重的安全漏洞。然而,對于那些完全了解設計和開發(fā)模式的資深開發(fā)人員來說,他們則可以從如下方面及時發(fā)現(xiàn)漏洞并與 SaaS 安全最佳實踐保持一致。

1. 強制執(zhí)行類型推理和輸入驗證

如今,現(xiàn)代化的框架和代碼嚴重依賴接口枚舉的方式,進行各種推理和驗證。這在某種程度上保證了代碼能夠準確地完成其任務保證安全性。然而,除非我們準確指導 AI 生成代碼,否則它不會去執(zhí)行各種縝密的推理。而且,即使在我們精心設計了提示,類型不匹配和驗證執(zhí)行也可能無法與用例匹配請參見如下代碼段因此,為了能夠查找和修正代碼中的錯配之處,開發(fā)人員必須充分了解其對應的代碼以及具體的業(yè)務要求。

def reciprocal(user_input):
 # Insecure implementation with no type inference or validation
 result = 100 / user_input
 return result

2. 類/對象之間的非標準狀態(tài)和上下文共享

眾所周知,程序公共/私有/受保護(Public/Private/Protected 方式共享各種對象。高階功能函數(shù)和類往往通過直接訪問公共/受保護變量來執(zhí)行計算進而繼承對象狀態(tài)。如果在實施或執(zhí)行中出現(xiàn)了錯誤,那么應用的安全性以及性能瓶頸就會隨即出現(xiàn)請參見如下代碼段對此,SaaS 開發(fā)人員必須認真審查共享狀態(tài)和上下文管理邏輯,以確保正確安全的代碼實現(xiàn)

class InsecureClass:
 def __init__(self, owner, balance, password):
 self.owner = owner # Public attribute
 self._balance = balance # Protected attribute
 self.__password = password # Private attribute
 # Public def
 def get_balance(self):
 return self._balance
 # Protected def
 def _update_balance(self, amount):
 self._balance += amount
 # Private def
 def __validate_password(self, input_password):
 return self.__password == input_password
 # Insecure def exposing private data
 def insecure_password_exposure(self):
 return self.__password

3. 數(shù)據(jù)處理和共享技術(shù)的弱實施

系統(tǒng)中的各項服務往往需要通過網(wǎng)絡共享和接收信息。現(xiàn)如今,安全連接和數(shù)據(jù)處理對于基于云服務的系統(tǒng)來說尤為重要就代碼而言,我們在需要通過分布式數(shù)據(jù)網(wǎng)絡讀取、處理和共享組織中的敏感數(shù)據(jù)時,必須采用強大的處理協(xié)議和安全技術(shù)防止數(shù)據(jù)被截獲因此,在使用 AI,SaaS 開發(fā)人員必須在成熟的應用程序中杜絕在架構(gòu)層面上數(shù)據(jù)不安全共享下面的代碼段便是一個典型的例子:

#Insecure Data Sharing
@app.route("/user/<int:user_id>", methods=["GET"])
def get_user(user_id):
 user = users.get(user_id)
 if user:
 return jsonify(user) # All user data exposed, including secrets
# Insecure Data Handling
@app.route("/update_email", methods=["POST"])
def update_email():
 data = request.json()
 user_id = data.get("user_id")
 new_email = data.get("new_email")
 if user_id in users:
 users[user_id]["email"] = new_email # No validation of new_email
 return jsonify({"message": "Email updated successfully"})

4. 密鑰和身份驗證處理不足

復雜的網(wǎng)絡環(huán)境中,實施嚴格的基于角色的訪問控制(RBAC保障合理的身份與權(quán)限匹配關(guān)系,保持隱私合規(guī)性的必要條件。程序代碼由AI大語言模型(LLM)生成時,默認機制便是通過基礎(chǔ)的身份驗證便可提供程序連接和授權(quán)顯然,這種簡單的解決方案不足以在有新的網(wǎng)絡威脅出現(xiàn)時仍保持必要的安全態(tài)勢請參見如下代碼段為此,開發(fā)人員在新增自定義函數(shù)與功能時,必須進行全面測試,以確保密鑰的安全性和身份驗證處理得到了妥善的實施。

# Insecure authentication
@app.route("/login", methods=["POST"])
def login():
 data = request.json()
 email = data.get("email")
 password = data.get("password")
 for user_id, user in users.items():
 if user["email"] == email and user["password"] == password:
 return jsonify({"message": "Login successful", "user_id": user_id})

5. 過時的依賴項和已棄用的功能

如今由社區(qū)創(chuàng)建的開源庫和框架在代碼中占比并不少不過,由于可供AI訓練的數(shù)據(jù)的局限性,以及可能并非最新,這便導致了AI 編程模型訓練過程中,其知識停滯不前,無法獲悉最新的版本隨著技術(shù)的發(fā)展,許多功能將過時,一些依賴跟不上版本的迭代請參見如下代碼段因此,SaaS 開發(fā)人員需要仔細審查并確保使用有效的依賴項,進而保障整體的安全性以及功能上的適用性

import md5 # Outdated library
def insecure_hash_password(password):
 # Insecure password hashing done using the deprecated MD5 algorithm.
 return md5.new(password).hexdigest()

使用AI 生成代碼的安全提示

說到底,由大語言模型的高級編碼所生成的代碼,需要符合既定的安全和編程標準總體而言,我們可以通過如下5個方面,采取簡單的檢查確保 AI 生成代碼安全與合規(guī)

  1. 與安全和架構(gòu)團隊一起進行代碼審查并將其作為軟件開發(fā)生命周期的標準部分。
  2. 將自動化安全測試和驗證步驟集成到版本控制工具中。
  3. 在測試 KPI 中包含依賴關(guān)系和合規(guī)性檢查。
  4. 采用帶有靜態(tài)和動態(tài)安全測試工具的零信任技術(shù)架構(gòu)。
  5. 利用 DevSecOps 的優(yōu)秀實踐和防范影子 AI。

使用Github Action處理不安全的 AI 生成代碼

無論人工多么仔細地審查和審計AI生成的代碼,人為疏漏還是存在的。因此,我們需要一些預定義的檢查,以便在代碼進入版本控制系統(tǒng)立即對其開展測試和驗證。在此,我們可以引入 Github Action,自動運行安全和質(zhì)量檢查請參見如下代碼段

name: Simple Security Checks for AI generated Code
on:
 push:
 branches:
 - main
 pull_request:
 branches:
 - main
jobs:
 security-and-quality-check:
 runs-on: ubuntu-latest
 Steps:
 - name: Repository checkout
 uses: actions/checkout@v3
 - name: Python setup
 uses: actions/setup-python@v4
 with:
 python-version: ">=3.9"
 - name: Dependency installation
 run: |
 python -m pip install --upgrade pip
 pip install bandit pytest
 - name: Identifying insecure libraries and patterns
 run: |
 echo "Checking for insecure patterns..."
 if grep -r "md5.new(" .; then
 echo "ERROR: Insecure MD5 hashing detected. Use hashlib.sha256 or bcrypt instead."
 exit 1
 fi
 echo "No insecure patterns detected."
 - name: Scanning for security vulnerabilities
 run: |
 echo "Running Bandit security scanner..."
 bandit -r .
 - name: Running unit tests
 run: |
 echo "Running unit tests..."
 pytest test/unit --cmodopt=local
 - name: Notifying on failure
 if: failure()
 run: |
 send_slack_notification(“Unsafe code merge detected, fix immediately”)

結(jié)

綜上所述,大語言模型可謂 SaaS 開發(fā)人員使用自然提示語言生成代碼和信息的用工具之一不過,它們會帶來了各項安全風險,并且有時會提供不適合企業(yè)需求的性能代碼。對此,SaaS 開發(fā)人員應加倍小心。希望上述討論能夠給你提供確保AI生成代碼安全態(tài)勢的有力參考并能在你的日常工作中被實踐

譯者介紹

陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經(jīng)驗,善于對內(nèi)外部資源與風險實施管控,專注傳播網(wǎng)絡與信息安全知識與經(jīng)驗。

原文標題:Is Your AI-Generated Code Really Secure?,作者:Daniel

責任編輯:華軒 來源: 51CTO
相關(guān)推薦

2021-05-13 10:40:16

ThreadLocal代碼Java

2024-02-20 21:49:29

AI前端代碼

2015-11-05 12:02:10

2022-01-04 08:00:00

面部識別安全技術(shù)

2009-03-21 21:24:42

2022-04-22 13:38:26

區(qū)塊鏈加密貨幣安全

2017-11-02 16:03:12

2024-10-21 17:17:48

2018-11-12 00:19:32

2018-11-11 11:16:38

AI天貓比價

2021-06-08 10:23:12

人工智能人臉識別Deepfake

2009-04-10 23:28:00

2012-05-16 18:16:20

2012-05-17 11:16:09

2024-09-20 14:25:35

2012-05-31 09:56:54

云安全

2019-08-22 10:35:10

SSL協(xié)議安全

2015-05-25 10:24:19

2023-11-29 08:03:05

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区在线不卡 | 在线免费观看黄色av | 日本视频在线 | 日日干日日操 | 成人在线免费 | www.99热.com| 色视频在线观看 | 日韩午夜影院 | 国产精品久久久久久久毛片 | 中文字幕一区二区三区四区五区 | 国产aⅴ| 99re6在线视频精品免费 | 黄色国产在线播放 | 操久久 | 久久久国产一区二区三区 | 日本黄色片免费在线观看 | 欧美日韩国产一区二区三区 | 精品国产乱码久久久久久图片 | 91国内精品久久 | 日本电影韩国电影免费观看 | 亚洲精品久久嫩草网站秘色 | www.亚洲视频 | 欧美xxxx色视频在线观看免费 | 欧美日韩亚 | 亚洲精品粉嫩美女一区 | 国内自拍偷拍一区 | 性视频网 | 99久久久国产精品免费消防器 | 成人午夜精品一区二区三区 | 中文字幕在线观 | 亚洲一区二区久久 | 在线观看黄色大片 | 色资源在线视频 | 免费视频99 | 91精品国产综合久久久久久丝袜 | 欧美区日韩区 | 成人av一区 | 午夜激情视频 | 视频一区二区在线 | 欧美一区2区三区4区公司 | 国产一区二区在线免费 |