螞蟻集團(tuán)邊立忠:企業(yè)程序安全分析與智能化實(shí)踐
摘要: 螞蟻集團(tuán)基礎(chǔ)安全事業(yè)部DevSecOps工具和平臺(tái)負(fù)責(zé)人邊立忠在2025北京網(wǎng)絡(luò)安全大會(huì)上發(fā)表了《開(kāi)放式程序分析與智能化實(shí)踐》的主題演講,介紹了螞蟻在這一領(lǐng)域的探索與實(shí)踐
程序安全分析是通過(guò)靜態(tài)或動(dòng)態(tài)手段,對(duì)軟件程序的源代碼或運(yùn)行行為進(jìn)行分析,是提前發(fā)現(xiàn)存在安全漏洞或惡意行為等代碼風(fēng)險(xiǎn)的關(guān)鍵技術(shù),是提升程序安全性,降低企業(yè)安全風(fēng)險(xiǎn),滿足合規(guī)要求的重要保障。
相較于程序分析技術(shù)的學(xué)術(shù)研究,程序安全分析在企業(yè)實(shí)際落地過(guò)程中面臨著哪些挑戰(zhàn)?該如何應(yīng)對(duì)?AGI時(shí)代的程序安全分析又有哪些新的機(jī)遇與挑戰(zhàn)?
日前,螞蟻集團(tuán)基礎(chǔ)安全事業(yè)部DevSecOps工具和平臺(tái)負(fù)責(zé)人邊立忠在2025北京網(wǎng)絡(luò)安全大會(huì)上發(fā)表了《開(kāi)放式程序分析與智能化實(shí)踐》的主題演講,介紹了螞蟻在這一領(lǐng)域的探索與實(shí)踐。
【挑戰(zhàn)1】
隨著云原生、AI原生等技術(shù)的快速發(fā)展,各種新興語(yǔ)言在企業(yè)內(nèi)部不斷涌現(xiàn),企業(yè)對(duì)多語(yǔ)言程序分析的需求日益增長(zhǎng),現(xiàn)有大部分工具支持的語(yǔ)言類型有限,且不同語(yǔ)言間的能力水位差異較大。
【挑戰(zhàn)2】
靜態(tài)程序分析技術(shù)誤報(bào)率較高,大型企業(yè)應(yīng)用數(shù)動(dòng)輒上萬(wàn),分析結(jié)果運(yùn)營(yíng)成本過(guò)高,難以落地。
【挑戰(zhàn)3】
現(xiàn)有程序分析工具使用門檻普遍較高,一方面大量分析工具依賴代碼能成功編譯,在企業(yè)落地過(guò)程中較為受限;另一方面用戶自定義開(kāi)發(fā)規(guī)則的門檻較高,擴(kuò)展能力有限。
【挑戰(zhàn)4】
傳統(tǒng)程序分析技術(shù)能理解語(yǔ)法但不理解語(yǔ)義,對(duì)業(yè)務(wù)邏輯型風(fēng)險(xiǎn)的分析能力不足。
●統(tǒng)一多語(yǔ)言分析
●開(kāi)放式
●智能化
統(tǒng)一多語(yǔ)言分析
針對(duì)企業(yè)對(duì)多語(yǔ)言程序分析的迫切需求,螞蟻基于抽象語(yǔ)法樹(shù)(Abstract Syntax Tree,簡(jiǎn)稱AST),設(shè)計(jì)了多語(yǔ)言統(tǒng)一的抽象語(yǔ)法樹(shù)(Unified AST,簡(jiǎn)稱UAST)作為程序分析的中間表示(Intermediate Representation, 簡(jiǎn)稱IR)層。
與其他IR相比,AST包含了更多的語(yǔ)義信息,更適合安全分析場(chǎng)景。同時(shí),生成AST不依賴于程序編譯,無(wú)需構(gòu)建環(huán)境,極大降低了在企業(yè)落地的使用限制。
在UAST的基礎(chǔ)上,螞蟻改進(jìn)了傳統(tǒng)符號(hào)執(zhí)行技術(shù),在執(zhí)行過(guò)程當(dāng)中對(duì)狀態(tài)空間進(jìn)行對(duì)象建模,通過(guò)平衡性能與精度,實(shí)現(xiàn)了具備域敏感、流敏感、上下文敏感和路徑敏感的數(shù)據(jù)流分析能力。
由于數(shù)據(jù)流分析引擎要支持的70%以上的語(yǔ)法特性是多語(yǔ)言通用的,基于UAST建設(shè)數(shù)據(jù)流分析能力,新增一種語(yǔ)言的研發(fā)成本主要集中在對(duì)其特有的語(yǔ)法特性的支持上,總體成本可下降50%以上,也避免了傳統(tǒng)分析工具在不同語(yǔ)言之間存在較大能力水位差異的問(wèn)題。
開(kāi)放式
傳統(tǒng)程序分析工具要么不支持用戶自定義規(guī)則開(kāi)發(fā),要么規(guī)則開(kāi)發(fā)的學(xué)習(xí)門檻極高,需要依賴工具研發(fā)人員。普通用戶難以針對(duì)企業(yè)內(nèi)部的實(shí)際情況,自主進(jìn)行有針對(duì)性的定制開(kāi)發(fā),這既限制了程序分析工具的使用場(chǎng)景,又導(dǎo)致規(guī)則適用度低,誤報(bào)率居高不下。
針對(duì)這一痛點(diǎn),螞蟻提出了“開(kāi)放式”程序分析的理念,并基于這一理念推出了統(tǒng)一多語(yǔ)言查詢語(yǔ)言(Unified Query Language,簡(jiǎn)稱UQL)。UQL是一種類SQL的聲明式語(yǔ)言,其學(xué)習(xí)和使用成本較傳統(tǒng)命令式語(yǔ)言要低很多。
UQL一方面在語(yǔ)法層面兼容了行業(yè)較為流行的codeql,進(jìn)一步降低了用戶的學(xué)習(xí)和使用成本。另一方面,基于UAST的技術(shù)優(yōu)勢(shì),UQL在業(yè)界率先實(shí)現(xiàn)了多語(yǔ)言統(tǒng)一的開(kāi)發(fā)庫(kù),對(duì)用戶實(shí)現(xiàn)了“一次編寫(xiě),多語(yǔ)言通用”,進(jìn)一步降低了用戶在不同語(yǔ)言開(kāi)發(fā)庫(kù)之間的學(xué)習(xí)成本。
智能化
傳統(tǒng)程序技術(shù)的優(yōu)勢(shì)是代碼語(yǔ)法分析能力,包括AST分析以及數(shù)據(jù)流分析等,但無(wú)法理解代碼的業(yè)務(wù)語(yǔ)義,比如在數(shù)據(jù)流分析過(guò)程中,復(fù)雜語(yǔ)義往往會(huì)導(dǎo)致傳統(tǒng)程序分析的斷鏈。
螞蟻嘗試將大模型和傳統(tǒng)程序分析技術(shù)結(jié)合來(lái)解決這一技術(shù)難題。大模型具備優(yōu)秀的代碼語(yǔ)義理解能力,本質(zhì)是大模型具備泛化能力,能“理解”數(shù)據(jù)本質(zhì)規(guī)律,并把這個(gè)規(guī)律泛化到未見(jiàn)的數(shù)據(jù)上,且具備從復(fù)雜數(shù)據(jù)中提取結(jié)構(gòu)化特征和分類的能力。
螞蟻提出并建設(shè)了“大模型代碼語(yǔ)義識(shí)別技術(shù)”,實(shí)現(xiàn)了“變量值推導(dǎo)”“傳播函數(shù)識(shí)別”“復(fù)雜傳播識(shí)別”等能力,給傳統(tǒng)程序分析引擎安裝了“智能外掛”,提升了程序分析引擎的召回率和準(zhǔn)確率。
借助大模型代碼語(yǔ)義識(shí)別技術(shù)實(shí)現(xiàn)的“公共/私有接口識(shí)別” “source點(diǎn)識(shí)別” “sink點(diǎn)識(shí)別” “安全檢查點(diǎn)識(shí)別” “鑒權(quán)邏輯識(shí)別”等能力,在規(guī)則層面解決了邏輯漏洞檢測(cè)、誤報(bào)消除等領(lǐng)域?qū)<乙?guī)則泛化性太差的難題。
與其他大模型的應(yīng)用一樣,大模型代碼語(yǔ)義識(shí)別技術(shù)的實(shí)現(xiàn)和企業(yè)落地也面臨著大模型遵從性問(wèn)題、幻覺(jué),以及上下文大小限制等技術(shù)難題。螞蟻2024年在業(yè)界率先提出的DKCF大模型應(yīng)用可信框架,為大模型專業(yè)應(yīng)用的可靠性提供了指導(dǎo)思想:
●應(yīng)對(duì)大模型遵從性的挑戰(zhàn),把復(fù)雜任務(wù)原子化,大模型對(duì)原子任務(wù)的遵從性好于復(fù)雜任務(wù)。通過(guò)將一系列原子化任務(wù)轉(zhuǎn)換成知識(shí)圖譜,基于知識(shí)圖譜實(shí)現(xiàn)對(duì)原子任務(wù)執(zhí)行順序的核驗(yàn)。
●應(yīng)對(duì)大模型輸出幻覺(jué)的挑戰(zhàn),采用大模型和專家規(guī)則結(jié)合的方式核驗(yàn)原子任務(wù)和整個(gè)任務(wù)的執(zhí)行結(jié)果,其中由大模型核驗(yàn)推理理由、推理線索的合理性,由專家規(guī)則核驗(yàn)代碼結(jié)構(gòu)的合理性。
●應(yīng)對(duì)大模型上下文限制的挑戰(zhàn),使用程序分析技術(shù),提取關(guān)鍵代碼鏈路、摘要鏈路中的關(guān)鍵方法,結(jié)合實(shí)際場(chǎng)景篩選代碼最佳鏈路,大幅壓縮代碼上下文的大小。
通過(guò)結(jié)合大模型和傳統(tǒng)程序分析技術(shù),螞蟻在漏洞檢測(cè)與漏洞輔助修復(fù)等領(lǐng)域的實(shí)踐中取得了顯著成效,漏洞檢測(cè)召回率提升超過(guò)20%、準(zhǔn)確率提升超過(guò)40%,智能輔助修復(fù)漏洞類型覆蓋率超過(guò)50%。
長(zhǎng)按并掃描二維碼關(guān)注公眾號(hào)【YASA程序分析Community】,可詳細(xì)查看螞蟻智能化程序分析技術(shù)在【水平越權(quán)檢測(cè)(代碼審計(jì)智能體)】和【漏洞輔助修復(fù)】?jī)蓚€(gè)場(chǎng)景下應(yīng)用的演示視頻:
相較于程序分析技術(shù)的學(xué)術(shù)研究,程序安全分析在企業(yè)實(shí)際落地過(guò)程中面臨著哪些挑戰(zhàn)?該如何應(yīng)對(duì)?AGI時(shí)代的程序安全分析又有哪些新的機(jī)遇與挑戰(zhàn)?
日前,螞蟻集團(tuán)基礎(chǔ)安全事業(yè)部DevSecOps工具和平臺(tái)負(fù)責(zé)人邊立忠在2025北京網(wǎng)絡(luò)安全大會(huì)上發(fā)表了《開(kāi)放式程序分析與智能化實(shí)踐》的主題演講,介紹了螞蟻在這一領(lǐng)域的探索與實(shí)踐。

企業(yè)程序安全分析面臨的挑戰(zhàn)
邊立忠提到,當(dāng)前企業(yè)程序安全分析主要面臨四大挑戰(zhàn):【挑戰(zhàn)1】
隨著云原生、AI原生等技術(shù)的快速發(fā)展,各種新興語(yǔ)言在企業(yè)內(nèi)部不斷涌現(xiàn),企業(yè)對(duì)多語(yǔ)言程序分析的需求日益增長(zhǎng),現(xiàn)有大部分工具支持的語(yǔ)言類型有限,且不同語(yǔ)言間的能力水位差異較大。
【挑戰(zhàn)2】
靜態(tài)程序分析技術(shù)誤報(bào)率較高,大型企業(yè)應(yīng)用數(shù)動(dòng)輒上萬(wàn),分析結(jié)果運(yùn)營(yíng)成本過(guò)高,難以落地。
【挑戰(zhàn)3】
現(xiàn)有程序分析工具使用門檻普遍較高,一方面大量分析工具依賴代碼能成功編譯,在企業(yè)落地過(guò)程中較為受限;另一方面用戶自定義開(kāi)發(fā)規(guī)則的門檻較高,擴(kuò)展能力有限。
【挑戰(zhàn)4】
傳統(tǒng)程序分析技術(shù)能理解語(yǔ)法但不理解語(yǔ)義,對(duì)業(yè)務(wù)邏輯型風(fēng)險(xiǎn)的分析能力不足。
螞蟻程序安全分析技術(shù)探索與實(shí)踐
據(jù)邊立忠介紹,針對(duì)以上挑戰(zhàn),螞蟻歷經(jīng)多年的技術(shù)攻堅(jiān)與打磨,形成了行業(yè)領(lǐng)先的程序安全分析技術(shù),主要包括三大特性:●統(tǒng)一多語(yǔ)言分析
●開(kāi)放式
●智能化

螞蟻開(kāi)放式統(tǒng)一多語(yǔ)言智能化程序分析技術(shù)大圖
統(tǒng)一多語(yǔ)言分析
針對(duì)企業(yè)對(duì)多語(yǔ)言程序分析的迫切需求,螞蟻基于抽象語(yǔ)法樹(shù)(Abstract Syntax Tree,簡(jiǎn)稱AST),設(shè)計(jì)了多語(yǔ)言統(tǒng)一的抽象語(yǔ)法樹(shù)(Unified AST,簡(jiǎn)稱UAST)作為程序分析的中間表示(Intermediate Representation, 簡(jiǎn)稱IR)層。

螞蟻UAST
與其他IR相比,AST包含了更多的語(yǔ)義信息,更適合安全分析場(chǎng)景。同時(shí),生成AST不依賴于程序編譯,無(wú)需構(gòu)建環(huán)境,極大降低了在企業(yè)落地的使用限制。
在UAST的基礎(chǔ)上,螞蟻改進(jìn)了傳統(tǒng)符號(hào)執(zhí)行技術(shù),在執(zhí)行過(guò)程當(dāng)中對(duì)狀態(tài)空間進(jìn)行對(duì)象建模,通過(guò)平衡性能與精度,實(shí)現(xiàn)了具備域敏感、流敏感、上下文敏感和路徑敏感的數(shù)據(jù)流分析能力。

螞蟻統(tǒng)一多語(yǔ)言數(shù)據(jù)流分析引擎
由于數(shù)據(jù)流分析引擎要支持的70%以上的語(yǔ)法特性是多語(yǔ)言通用的,基于UAST建設(shè)數(shù)據(jù)流分析能力,新增一種語(yǔ)言的研發(fā)成本主要集中在對(duì)其特有的語(yǔ)法特性的支持上,總體成本可下降50%以上,也避免了傳統(tǒng)分析工具在不同語(yǔ)言之間存在較大能力水位差異的問(wèn)題。

通用語(yǔ)法特性與語(yǔ)言相關(guān)特性分布
開(kāi)放式
傳統(tǒng)程序分析工具要么不支持用戶自定義規(guī)則開(kāi)發(fā),要么規(guī)則開(kāi)發(fā)的學(xué)習(xí)門檻極高,需要依賴工具研發(fā)人員。普通用戶難以針對(duì)企業(yè)內(nèi)部的實(shí)際情況,自主進(jìn)行有針對(duì)性的定制開(kāi)發(fā),這既限制了程序分析工具的使用場(chǎng)景,又導(dǎo)致規(guī)則適用度低,誤報(bào)率居高不下。
針對(duì)這一痛點(diǎn),螞蟻提出了“開(kāi)放式”程序分析的理念,并基于這一理念推出了統(tǒng)一多語(yǔ)言查詢語(yǔ)言(Unified Query Language,簡(jiǎn)稱UQL)。UQL是一種類SQL的聲明式語(yǔ)言,其學(xué)習(xí)和使用成本較傳統(tǒng)命令式語(yǔ)言要低很多。

UQL規(guī)則示例
UQL一方面在語(yǔ)法層面兼容了行業(yè)較為流行的codeql,進(jìn)一步降低了用戶的學(xué)習(xí)和使用成本。另一方面,基于UAST的技術(shù)優(yōu)勢(shì),UQL在業(yè)界率先實(shí)現(xiàn)了多語(yǔ)言統(tǒng)一的開(kāi)發(fā)庫(kù),對(duì)用戶實(shí)現(xiàn)了“一次編寫(xiě),多語(yǔ)言通用”,進(jìn)一步降低了用戶在不同語(yǔ)言開(kāi)發(fā)庫(kù)之間的學(xué)習(xí)成本。

UQL基本原理
智能化
傳統(tǒng)程序技術(shù)的優(yōu)勢(shì)是代碼語(yǔ)法分析能力,包括AST分析以及數(shù)據(jù)流分析等,但無(wú)法理解代碼的業(yè)務(wù)語(yǔ)義,比如在數(shù)據(jù)流分析過(guò)程中,復(fù)雜語(yǔ)義往往會(huì)導(dǎo)致傳統(tǒng)程序分析的斷鏈。
螞蟻嘗試將大模型和傳統(tǒng)程序分析技術(shù)結(jié)合來(lái)解決這一技術(shù)難題。大模型具備優(yōu)秀的代碼語(yǔ)義理解能力,本質(zhì)是大模型具備泛化能力,能“理解”數(shù)據(jù)本質(zhì)規(guī)律,并把這個(gè)規(guī)律泛化到未見(jiàn)的數(shù)據(jù)上,且具備從復(fù)雜數(shù)據(jù)中提取結(jié)構(gòu)化特征和分類的能力。
螞蟻提出并建設(shè)了“大模型代碼語(yǔ)義識(shí)別技術(shù)”,實(shí)現(xiàn)了“變量值推導(dǎo)”“傳播函數(shù)識(shí)別”“復(fù)雜傳播識(shí)別”等能力,給傳統(tǒng)程序分析引擎安裝了“智能外掛”,提升了程序分析引擎的召回率和準(zhǔn)確率。
借助大模型代碼語(yǔ)義識(shí)別技術(shù)實(shí)現(xiàn)的“公共/私有接口識(shí)別” “source點(diǎn)識(shí)別” “sink點(diǎn)識(shí)別” “安全檢查點(diǎn)識(shí)別” “鑒權(quán)邏輯識(shí)別”等能力,在規(guī)則層面解決了邏輯漏洞檢測(cè)、誤報(bào)消除等領(lǐng)域?qū)<乙?guī)則泛化性太差的難題。

大模型代碼語(yǔ)義識(shí)別在螞蟻程序安全分析中的應(yīng)用
與其他大模型的應(yīng)用一樣,大模型代碼語(yǔ)義識(shí)別技術(shù)的實(shí)現(xiàn)和企業(yè)落地也面臨著大模型遵從性問(wèn)題、幻覺(jué),以及上下文大小限制等技術(shù)難題。螞蟻2024年在業(yè)界率先提出的DKCF大模型應(yīng)用可信框架,為大模型專業(yè)應(yīng)用的可靠性提供了指導(dǎo)思想:
●應(yīng)對(duì)大模型遵從性的挑戰(zhàn),把復(fù)雜任務(wù)原子化,大模型對(duì)原子任務(wù)的遵從性好于復(fù)雜任務(wù)。通過(guò)將一系列原子化任務(wù)轉(zhuǎn)換成知識(shí)圖譜,基于知識(shí)圖譜實(shí)現(xiàn)對(duì)原子任務(wù)執(zhí)行順序的核驗(yàn)。
●應(yīng)對(duì)大模型輸出幻覺(jué)的挑戰(zhàn),采用大模型和專家規(guī)則結(jié)合的方式核驗(yàn)原子任務(wù)和整個(gè)任務(wù)的執(zhí)行結(jié)果,其中由大模型核驗(yàn)推理理由、推理線索的合理性,由專家規(guī)則核驗(yàn)代碼結(jié)構(gòu)的合理性。
●應(yīng)對(duì)大模型上下文限制的挑戰(zhàn),使用程序分析技術(shù),提取關(guān)鍵代碼鏈路、摘要鏈路中的關(guān)鍵方法,結(jié)合實(shí)際場(chǎng)景篩選代碼最佳鏈路,大幅壓縮代碼上下文的大小。
通過(guò)結(jié)合大模型和傳統(tǒng)程序分析技術(shù),螞蟻在漏洞檢測(cè)與漏洞輔助修復(fù)等領(lǐng)域的實(shí)踐中取得了顯著成效,漏洞檢測(cè)召回率提升超過(guò)20%、準(zhǔn)確率提升超過(guò)40%,智能輔助修復(fù)漏洞類型覆蓋率超過(guò)50%。
長(zhǎng)按并掃描二維碼關(guān)注公眾號(hào)【YASA程序分析Community】,可詳細(xì)查看螞蟻智能化程序分析技術(shù)在【水平越權(quán)檢測(cè)(代碼審計(jì)智能體)】和【漏洞輔助修復(fù)】?jī)蓚€(gè)場(chǎng)景下應(yīng)用的演示視頻:
