GSS資安電子報0214期 【安全程式碼:ChatGPT 協助程式碼開發?小心變得更不安全】

訂閱電子報
2023年八月25日(五) AM 09:00
翻譯及整理:叡揚資訊 資訊安全事業處

       

  從帶有破壞式創新技術的 AI 工具上市以來,不少開發的程式人員或業餘愛好者紛紛利用這些技術,僅須一個指令即可完成所有程式開發的任務。對此,資安專家以許多情況為例,直言這些由 AI 產生的程式碼不但品質堪憂且漏洞百出,若為缺乏資安意識的人士所用,恐衍生大量不安全的應用程式與網站開發,進而衝擊毫無戒心的消費者。

  此外,也有充分了解資安的人士將它們用於不義之處。每當令人讚嘆的 AI 技術問世時,似乎都難逃出現負面教材的命運。同樣的技術往往會淪為惡意手段,例如網路釣魚、「深偽」(Deepfake)詐騙影片、惡意軟體創作與常見的腳本小子(script kiddie)惡作劇。而如今,在 AI 技術的加持下,這些非法行為能在更短的時間內完成,且進入門檻也更低。

  當然,網路上總有不少誘餌式標題文章大讚這類發明具有革命性意義,或至少非常人所能及。而在大型語言模型(LLM)式的 AI 技術勢將改變工作各層面(不單只是軟體開發)之際,我們有必要停下腳步,仔細思考背後所潛藏的風險。

  而作為程式編碼的左右手, ChatGPT 或許壞就壞在過於「人性化」。

      

編碼模式乏善可陳卻又不可或缺

  儘管 ChatGPT 帶給人類眾多驚奇與奧妙,但毫不意外地,經過數十年既有程式碼與知識庫的訓練,它在瀏覽程式碼時會與人類落入同樣的陷阱。為了解決這個問題,除了乏善可陳卻又不可或缺的的編碼模式外,它得不仰賴一個具備良好資安意識的使用者,向 AI 提出適當的問題與正確的「詠唱(Prompt)」,最終才「可能」得以藉由 AI 編寫出安全的程式碼範例。

  即便如此,若從安全性的角度來看,我們仍無法確保, ChatGPT 所提供的程式碼片段準確且功能正常。使用 ChatGPT 的人都知道, AI 很容易出現憑空捏造、虛假且具有誤導性的答案,我們稱之為「幻覺(hallucination)」,像是程式在被要求執行某些特定 JSON 作業時, ChatGPT 虛構出不存在的資料庫,進而招致「幻覺搶註(hallucination squatting)」。換言之,威脅者將滿心歡喜地利用某些惡意軟體,藉以假冒 ChatGPT 力推的虛構資料庫。

  最終,我們都得面對這樣一個現實:整體而言,我們從未期待開發者具備足夠的資安意識,而業界需要開發者編寫安全程式碼時,也未要求他們做好充分準備。這點將隨著 ChatGPT 接收大量訓練數據而更加明顯。至少在初期,我們可以預期產出的安全性結果同樣差強人意。對此,開發者必須能在辨識出安全性程式錯誤後自行修復,不然就是設計出更好的詠唱(Prompt),以取得更穩健可靠的程式碼。

  這個論點已在史丹佛大學團隊的研究中獲得應證。他們透過第一批大規模使用者研究實驗,觀察使用者如何與 AI 程式編寫助理互動,處理及解決各式各樣的安全相關功能。

  除了上述問題外,我們的未來勢必還會充斥其它不可避免的 AI 威脅。因此,開發者比任何時候都更需要精進資安技能,並對程式碼品質抱持更高標準,不論它們來自何方。

   

立意良善卻釀成資料外洩災難

  AI 編碼工具大受歡迎的情況如今已不足為奇,尤其是當前開發者必須面對更多的責任、更緊迫的交期,同時又肩負公司所賦予的創新重任。然而,即便立意良善,利用 AI 編寫程式碼時,若缺乏資安意識,開發者無法辨識生成後程式碼的安全性,後續必然會衍生棘手的資安問題。換言之,所有開發者皆可透過 AI/ML 工具編寫更多程式碼的同時,安全風險高低將因人安全意識水平而異。因此,企業必須能深切體察到,儘管人員未經專業訓練也能更快產出編碼,但背後的技術債累積速度也會隨之增加。

  甚至當我們 4 月針對 ChatGPT 進行初步測試時,赫然發現它會犯下非常基本的錯誤,甚至有導致災難性後果之虞。當我們要求它利用 MySQL 資料庫以 PHP 建立一套登入流程時,它很快地便完成函數程式碼。然而,它卻預設將密碼以純文字的形式儲存於資料庫、以代碼的方式儲存資料庫連接驗證,並使用了可能導致 SQL 注入式攻擊的編碼模式(儘管它的確也對輸入參數進行一定程度的篩選後,才產生此錯誤)。換言之,無論從哪個角度來看,都是新手才會犯的錯誤:

圖片1

Source: Pieter Danhieux and Matias Madou

  儘管我們可透過更進一步且精確的「詠唱(prompt)」確保錯誤獲得修正,但這需要大量的資安知識方能成事。任憑這些工具被廣泛使用,就像是放任一群資淺工程師負責您的專案。倘若這個程式碼被用來建立敏感的基礎結構或處理個資,難保不會成為一顆令人提心吊膽的定時炸彈。

  當然,正如資淺工程師的技術會隨著時間更加純熟, AI/ML 能力亦可望有所改善。到了明年,它或許就不會再犯下如此明顯又粗淺的安全錯誤。然而,鑒於它仍有導致安全錯誤之虞,我們還是得大幅提升自身資安技能,以便追蹤更加嚴峻、隱蔽且棘手的安全漏洞。    

   

尋找與修復安全漏洞:人類準備尚嫌不足,又遇 AI 拉大差距

  儘管業界熱烈討論「測試左移」(shift-left testing)已有數年之久,但大多數企業仍得面對「開發團隊極度缺乏實用資安知識」的現實。因此,我們必須加倍努力,提供最合適的工具與教育訓練,協助他們步上軌道。

  就現況而言,人類對於眼前的安全性程式錯誤仍未作好準備,更遑論 AI 所衍生的全新挑戰。以詠唱注入(prompt injection)和幻覺搶註(hallucination squatting)為例,這些全新的攻擊媒介頗有野火燎原之勢。鑒於 AI 技術將是未來開發者編寫程式碼的重要軍火庫,教育他們如何安全且有效地運用這些生產利器的勢頭已刻不容緩。

相關文章

ISO 27001:2022 新規上路,叡揚資安聯手 Secure Code W...

ISO 27001:2022 改版新增的重點之一是要求開發者具備安全程式能力。叡揚資訊協助企業取得 ISO 認證有豐富經驗,加上針對開發人員的資安課程備受好評,搭配能提供課程訓練與檢測團隊能力的 Secure Code Warrior 平臺,正是企業落實安全開發、取得 ISO 27001:2022 認證的最佳夥伴。
2023/12/12

叡揚資訊推 Secure Code Warrior 培訓平台 一起成為保衛程式安...

鑒於國家發展之資安人力需求及「教育部資訊安全人才培育計劃」等,引進全球領先的Secure Code Warrior安全程式培訓平台
2023/06/15

Secure Code Warrior 攜手叡揚資安 為台灣企業注入安全文化DN...

現今企業爆發資安威脅主因,多半源自軟體應用系統漏洞所致。耕耘台灣資安市場多年的叡揚資訊, 2022 年起便引進深受全球用戶肯定的 Secure Code Warrior 學習平台,助台灣開發人員以簡單有效方式,持續提升整體資安意識,進而改善軟體開發專案品質。
2023/06/13

新聞中心 - 叡揚建構資安意識 安全達人養成計劃熱門 - 叡揚資訊

叡揚資訊去(2022)年首度開放民眾免費使用國際線上安全培訓學習平台Secure Code Warrior 21天,舉辦首屆「安全達人養成計劃暨資安戰士挑戰賽」,引起資訊界熱烈迴響,超過400人參與,今年再度免費開放Secure Code Warrior 40天,並於5月17日舉辦資安戰士挑戰賽,今年破了去年記錄,報名參與平台學習人數近600人,且逾100人從台灣各地齊聚台北參加資安戰士挑戰賽。
2023/05/19