核心概念
大型語言模型可以有效地學習代碼依賴性和上下文細微差異,從而提高在C/C++漏洞引入提交識別任務上的性能。
摘要
本文提出了CodeLinguaNexus (CLNX),一個用於增強大型語言模型在C/C++漏洞引入提交識別任務上性能的中間件框架。CLNX通過兩個階段的自然化過程來實現這一目標:
結構級自然化:CLNX首先將複雜的C/C++程序結構線性化,並縮短其長度,以提高大型語言模型的理解能力。
標記級自然化:CLNX將C/C++中與自然語言差異較大的特殊符號轉換為自然語言表示,進一步增強大型語言模型的理解。
實驗結果表明,CLNX顯著提高了大型語言模型在C/C++漏洞引入提交識別任務上的性能,並且CLNX裝備的CodeBERT達到了新的最佳水平。此外,CLNX裝備的CodeBERT在現實世界的開源軟件中發現了38個漏洞,證明了CLNX幫助大型語言模型報告0-day C/C++漏洞的能力。
統計資料
在過去10年中,C/C++佔開源軟件漏洞的52.13%。
在1,703個代碼庫中,84%包含至少一個已知的開源漏洞,48%包含高風險漏洞。
引述
"大型語言模型(LLMs),特別是基於BERT架構的模型,已經展示了其在漏洞識別方面的潛力,這得益於它們的雙向編碼器架構,能夠同時考慮上下文語義。"
"目前的研究主要集中在進一步在大量代碼數據集上預訓練LLMs,這是資源密集型的,並且效率挑戰。"