我們需要教導人工智慧安全編碼的方式

blog.knowbe4.comhubfsSocial Image RepositoryEvangelist Blog Social GraphicsEvangelists-Roger Grimes-1

我已經寫了幾十年關於需要更好地訓練我們的程式設計師在安全編碼實踐方面的必要性,最近在這裡這裡都有提到。

至少有三分之一的資料洩漏事件是由於利用軟體和韌體的漏洞所造成的,而我們正邁向在今年擁有超過47,000個獨立且公開的漏洞。每天都有至少130個新的漏洞被發現並公開報導,一天又一天。這樣的利用行為實在不少,這樣的修補工作也相當繁重。

而直到現在,我所說的就是我們需要: 

  1. 加強訓練我們的程式設計師在安全編碼的實踐
  2. 編程課程需教授安全編碼的實踐
  3. 雇主應要求具備安全編碼技能的程式設計師

這些都是舊聞了,我們現在不再需要這些了。

我們現在要做的是教導AI如何以更安全的方式編碼。

在所有隨著 AI 而來的生產力提升中,AI 能夠撰寫程式碼(或協助開發者撰寫程式碼)的能力,毫無疑問是當前 AI 成熟度下最大的生產力進展。幾乎所有現存的程式設計師都在使用 AI 來進行程式設計,如果他們還沒開始使用,肯定也會很快跟上。這樣的生產力提升相當驚人。我的程式設計師朋友們表示,使用 AI 後,他們的生產力至少提升了 30% 到 40%。甚至我那些最初對 AI 持懷疑態度的程式設計師朋友們也開始轉變看法。程式設計目前主要是由 AI 驅動的世界,但人類仍然需要參與其中。

訓練我們的程式設計師安全編碼的時機已經過去了。

如果人工智慧正在負責大部分的程式編寫,那麼現在是時候讓人工智慧也得進行安全編碼了。但目前為止,它在這方面表現得並不好。我看到的每一項研究都顯示,人工智慧在安全編碼方面的表現比人類程式設計師更糟。以下是一些例子:

一開始,我對於 AI 可能終於能解決我們的安全漏洞問題抱有很大的期望。當然,我預期 AI 產生的程式碼會存在某種程度的安全漏洞,但我相信自動化的程式碼可以避開那些簡單的問題,並且不斷進行改進以消除剩餘的漏洞。我曾想,過不了多久,大部分軟體、服務及韌體中的安全漏洞都將成為過去式。

哎呀,我真是錯得離譜!

結果發現,目前幫助程式開發的AI,似乎跟人類一樣糟糕,甚至還更糟。從某個角度來看,這也算有道理-垃圾進,垃圾出。怎麼可能指望僅僅根據錯誤百出的程式碼來訓練的AI,能夠產出更少的安全漏洞呢?

可是這有多難呢?拿你的 AI 代碼生成演算法,告訴它不要執行所有已知的常見安全漏洞。要它避免使用弱的程式建構,永遠進行輸入驗證,絕對不要在程式碼中放置硬編碼的憑證,並且避免任何在 OWASP Top 10 中提到的編碼情境。

我知道這聽起來可能比實際上要困難得多,而且毫無疑問,每一間公司和在安全程式碼領域的人士早已掌握這些。我算是遲來的加入者。 

我承認,我是在對著合唱團講話。但我在這裡揭露的是我新的理解。我對這個理解來得晚。我在這裡承認這一點。經過幾十年的呼籲,要求人類進一步接受安全編碼的訓練,我意識到時間已經過去了(有可能),現在是時候主要專注於讓我們的編程AI跟上進度了。

這讓我感到希望。

在多年的努力教導人類更安全地編寫程式卻總是沒成功或做得不夠好的情況下,現在是時候將這個任務交給自動化工具了。如果我們能夠訓練我們的AI避免常見的安全漏洞,未來我們新CVEs的持續清單上的漏洞數量或許會開始下降,而不是不斷增加。

出於某些未知的原因,我們尚未能夠為我們的人類程式設計師提供足夠的安全程式設計技能,至少在所需的數量上存在不足。隨著時間的推移,技術也發生了變化。是時候專注於訓練人工智慧在安全程式設計上的能力了。 

敏銳的讀者會發現,未來的電腦安全將是持續的延續。我們過去主要專注於人類的訓練,然而隨著時間的推移,我們將越來越多地專注於更好地訓練人類所使用的AI代理。

我們的AI代理正在迅速成為我們的延伸,只有透過更好的教育我們的AI,我們才能更有效地保護自己。

文章來源: We Need to Teach Our AIs to Securely Code

You cannot copy content of this page