版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于大模型的缺陷靜態(tài)檢測(cè)LLM-basedStaticBugDetection
2024
StaticBugDetection
Software
StaticallyanalyzingthecodeIdentifyingbugs/vulnerabilities
Staticanalysistools
Buggy/correctcode
instance
ML/DLmodels
Data-driven&learning-
based
Recenttrend:LLM-basedbugdetection
Reseachersareveryinterestedin“howeffectivelydoLLMsdetectbugs?”
ItseemsquitepromisingthatLLMscanidentifybugssometimes,
Butstillnotalwaysperfectfortheprecisionandrecallinpracice.
Recenttrend:LLM-basedbugdetection
[1]ZhangC,LiuH,ZengJ,etal.Prompt-enhancedsoftwarevulnerabilitydetectionusingchatgpt.ICSE2
[2]Purba,MoumitaDas,etal.Softwarevulnerabilitydetectionusinglargelanguagemodels.ISSREW2023
[3]Fu,Michael,etal.Chatgptforvulnerabilitydetection,classification,andrepair:Howfararewe?APSE
Thereemergemanystudiesexploring
howdifferentpromptingstrategiescanhelpLLMinbugdection
Craftedinstructions
Fine-tuning
ProjectInformation
LLMs
CWEGeneralKnowledge
AdvancedPromptingStrategies
AST/CFGinPrompt
CoTreasoning
Recenttrend:advancedpromptstrategiesinLLM-basedbugdetection
[1]ZhangC,LiuH,ZengJ,etal.Prompt-enhancedsoftwarevulnerabilitydetectionusingchatgpt.ICSE2
[2]Purba,MoumitaDas,etal.Softwarevulnerabilitydetectionusinglargelanguagemodels.ISSREW2023
[3]Fu,Michael,etal.Chatgptforvulnerabilitydetection,classification,andrepair:Howfararewe?APSE
sapxItlrmuinleoreddswoLidpearfptcaemtoliachCraftedinstMructionsmredon iques
(i.e.,basedonstaticanalysis)?
ProjectInformation
AST/CFGinPrompt
CWEGeneralKnowledge CoTreasoning
Limitationsoftraditionaltechniques
HowLLMsaddressthelimitationsoftraditionaltechniques
Boundaryofknowledge
-E.g.,thespecificationsofAPIsarenotcomprehensivelyincluded
LLMsaregoodatsummarizingtheintentionofcode
Scalabilityissueofanalysismechanism
E.g.,pathexplosionininter-procedureanalysis
LLMscanavoiddivingintosomeprocedurebasedonAPIintention
Generalityissuetospecificdomains
E.g.,manuallyimplementthecheckingrulesforbusiness-relatedbugs
LLMscandetectbuggybehaviorsbasedonnaturallanguagedescription
Thistalkisabout
SynergyofLLMsandStaticAnalysis
UsingLLMstorefiningsouce/sinksandreachabilityanalysis
EnhanceLLMswithBugKnowledgeBase
UsingLLMstobuildandusebug-specificknowledgebase
Thistalkisabout
1.SynergyofLLMsandStaticAnalysis
UsingLLMstorefiningsouce/sinksandreachabilityanalysis
2.EnhanceLLMswithBugKnowledgeBase
UsingLLMstobuildandusebug-specificknowledgebase
CasestudyonResourceleakdetection(Background)
</>
LockManager.acquireLock()
…
If(LockManager!=null)LockManager.releaseLock()
…
Resourcereachabilityvalidation
Anunreachableresourcewouldnotcauseleaksevenwithouttherelease
RARpair:thepairoftheResourceAcquisitionmethodandtheResourceReleaseAPImethod
<res,acquire/release>
e.g.,<LockManager,acquireLock/relaseLock>
CasestudyonResourceleakdetection
ResourceRelease
ResourceAcquire
Unreachable
Constructcontrol-flowpaths
Identifypathsrelatedtoresource
Checktheresourcereachability
Checkiftheresourceisreleased
KeyChallenges Existingstaticanalysistools
AccurateRARpairsPool
PredefineasetofRARpairsandperformstringmatch
IncorrectRARpairsIncompleteRARpairs
PreciseResourceReachabilityValidation
Predefineseveralrules(e.g.,res!=null)
Falsepositive/negativeMissingunreachablepaths
Falsepositive
Challengesinprecisecontext-sensitiveandintuitivereasoning
Limitation1:Incomplete/IncorrectRARpairpool
PredefineasetofRARpairsandperformstringmatch
KeyChallenges
IncorrectRARpairsIncompleteRARpairs
CompleteRARPairPool
Falsepositive/negative
Existingstaticanalysistools
AhugenumberofRARpairsinopen-sourceprojects:e.g.,738RARpairsrelatedtotheLockresource
FalseNegative(lowrecall):
ItisinfeasibletodetectresourceleaksthatarerelatedtoRARundefinedintheinitialRARpairpool
Challenge1:howtobuildageneralresourceleakdetectiontoolthatcouldcoverawiderangeofRARparsindiverseprojects?
Limitation2:Mechanicalresourcereachabilityvalidation
PreciseResourceReachabilityValidation
Predefineseveralrules(e.g.,res!=null)
Missingunreachablepaths
FalsePositive
Misspotentialreachabilityvalidationchecke.g.,!res.Disabled()
FalsePositive(lowprecision):
Theunreachableresourcewithoutreleasewouldbeconsideredasresourceleak.
Challenge2:howtobuildageneralresourceleakdetectiontoolthatcouldpreciselyidentifytheresourcereachabilityvalidationindiverseprojects?
ResourceAcquire
ResourceRelease
Unreachable
FalseAlarms
Motivation:toimproveexistingstaticanalysisapproaches
Challenge2:howtobuildageneralresourceleakdetectiontoolthatcouldpreciselyperformtheresourcereachabilityvalidationindiverseprojects?
Predefined RulesDomainKnowledge
Challenge1:howtobuildageneralresourceleakdetectiontoolthatcouldcoverawiderangeofRARparsindiverseprojects?
Miningresource-relatedknowledgefromthemassivecorpusinopen-sourcesoftware.
Enhancingexistinganalysis-basedapproacheswiththeminedknowledgeforabetterunderstandingofthecodeintention.
Models
Resourcemanagementknowledgebase
(e.g.,RARpairs,reachabilitycheckingoperations)
OverviewofMIROK
Miningresource-relatedknowledgefromthemassivecorpusinopen-sourcesoftwaretoimproveresourceleakdetection
Evaluation:theimprovementoverbasicstaticanalysis
MIROKmines1,313newAbs-RARpairsfrom1,454,224Javamethods(89.2%arevalid)
MIROKinstantiates6,314RARpairsin2,261Mavenlibraries (93.3%arevalid)
OurminedRARpairsarereleasedforthecommunityandcouldbeintegratedintoexistingresourceleakdetectiontools.
MIROKdetects761leaksv.s.baselinesdetects168
73.4%(188)aremanuallycheckedastruepositive
Benchmark:46,389JavacodesnippetsinStackOverflow
OurMethod:Rule-basedmatchingbasedon1,197validAbs-RARpairs
Baseline:Rule-basedmatchingbasedon26seedAbs-RARpairs
Benchmark:10compilableJavaprojectsfromGitHub
OurMethod:Findbugs*=Findbugs+6,314RARpairsminedbyMIROK
Baseline:originalFindbugs
Results:
Findbugs*:15reports,7aretruebugs(PRwasaccepted)
Findbugs:9reports,4aretruebugs
OverviewofINFERROI
Step1:UseLLMtoidentifyresource-orientedcode
Step2:Providestaticanalysiswiththeidentifiedresource-orientedcodeforresourceleakdetection
INFERROI:LLM-basedintentioninference
PrompttemplateinINFERROI
TheanswerreturnedbyGPT-4
Formalized
ACQUIRE(client,167),RELEASE(client,186),VALIDATE(client,185)
Resource-orientedintention
INFERROI:enhancingstaticanalysiswithidentifiedintention
Alternatively: theinferredintentioncanberepresentedintheformatacceptedbyexistingstaticanalysistools(e.g.,representingasthesource/sinkspecificationqueryinCodeQL)
Evaluation:onexistingresourceleakdetectiondatasets
INFERROIcoveragesawiderangeofresourcetypes.
INFERROIachievesabesttrade-offbetweenbothdetectionrateandfalsealarms.
Evaluation:detectunknownresourceleaksonopen-sourceprojects
Inthe100methodssampledfromopen-sourceprojectsinGithub, InferROIreports16resourceleaksand12areannotatedastruebugs(7bugsareconfirmedbydevelopers)
AcceptedPRs
Evaluation:comparedtobasicGPT-4
DirectlyapplyingGPT-4withoutcombiningwithanalysistechniqueshasveryhighfalsepositives
Thistalkisabout
1.SynergyofLLMsandStaticAnalysis
UsingLLMstorefiningsouce/sinksandreachabilityanalysis
2.EnhanceLLMswithBugKnowledgeBase
UsingLLMstobuildandusebug-specificknowledgebase
UsingexistingbugstoboostLLM-basedbugdetection
Similarbugsrecurduringsoftwareevolutionoramongsimilarsoftware
SimilarCodeContext
SimilarRootCause
SimilarFixingSolutions
ProvidingrelevantexistingbugsintheinputconetxtofLLMs(Usingthein-contextlearningcapabilitiesofmodels)
UsingexistingbugstoboostLLM-basedbugdetectionviaRAG
[1]ASurveyonRAGMeetingLLMs:TowardsRetrieval-AugmentedLargeLanguageModels
Step2:Puttingtheretrievedinfointheinputpromt
RAGhasshownpromisingeffectivenessinmanysoftwareengineeringtasks
Assertiongeneration
Step1:Retrievingtherelevantinfofromtheknowledgebase
Codecompletion
Programrepair
…..
AclassicpipelineofRAG(Retrieval-basedAugmentationGeneration)[1]
Challenges:usingexistingbugstoboostLLM-basedbugdetectionviaRAG
[1]ASurveyonRAGMeetingLLMs:TowardsRetrieval-AugmentedLargeLanguageModels
HowtousetheretrievedbugstopromptLLMs?
Directlyappendintheinput?
InferenceMechanism
Howtofindthemostrelevantbugs?
Codesimilarity?
RetrievalMechanism
KnowledgeBase
KeyComponentsinRAG
Howtorepresentexistingbugsintheknowledgebase?
Justcodesnippets?
AclassicpipelineofRAG(Retrieval-basedAugmentationGeneration)[1]
Motivatingexamples
Betterretrievalstrategyisrequired
Whenonlyretrivingonlybasedoncodesimialrity
Itisverylikelytogetsemanticallyorfunctionallydifferentbugs
Motivatingexamples
Whenonlyputtingtherelevantbuggycodeintheprompt,It’shardforLLMstogetthecorrelationbetweentheretrievedbugandthegivencode
Betterin-contextpromptingstrategyisrequired
Ourinsight
RootCause
Represent
Functionality
ExistingBugs
Summarize
Knowledge-levelrepresentation
Cluster
FixingSolution
Insteadofstraightforwardcodesnippets
furtherrepresentingexistingbugswithinhigh-levelknowledgeof
naturallanguagedescriptions
Toretrievethelexically-differentbutsemantically-similarbugs
TofaciliatethecomprehensioncapabilitiesofLLMsfortheinput
Vul-RAGApproachPipeline:Knowledge-levelRAGforvulnerabilitydetection
Vul-RAGPipeline
Step1:ConstructingaknowledgebugofexistingCVEs
Step2:Retrievingtherelatedvulnerabilityknowledgeforthegivencode
Step3:reasoningwhetherthegivencodeisvulnerablebasedontheretrievedknowledge
Step1:Constructingknowledgebase(off-line)
Step2:Retrievingrelevantvulnerabilityknowledge
QueryGeneration:theabstractpurpose,detailedbehavior,andthecodeitself
CandidateKnowledgeRetrieval:three-dimensionsimilary
CandidateKnowledgeRe-ranking:re-rankcandidateknowledgeitemswith
theReciprocalRankFusion
Step3:DetectionReasoning
Ifthegivencode:
withthesimilarvulnerabilitycauses
withouttherelevantfixingoperationsitwillbeconsidered
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能農(nóng)業(yè)物聯(lián)網(wǎng)解決方案設(shè)計(jì)與實(shí)施合同4篇
- 2025年度園林景觀工程植物材料供應(yīng)與售后服務(wù)合同范本4篇
- 2025版土地使用權(quán)購(gòu)買委托協(xié)議3篇
- 2025年承德貨運(yùn)從業(yè)資格證
- 2025版商業(yè)街區(qū)商鋪?zhàn)赓U合同范本2篇
- 2025年度國(guó)際知識(shí)產(chǎn)權(quán)授權(quán)及交易合同范本(二零二五版)3篇
- 2025版外資企業(yè)股權(quán)轉(zhuǎn)讓及知識(shí)產(chǎn)權(quán)許可合同3篇
- 2025版小企業(yè)職工勞動(dòng)合同(新規(guī))執(zhí)行細(xì)則3篇
- 二零二五年度輕型飛機(jī)買賣及培訓(xùn)合同4篇
- 二零二五年度廠房拆遷項(xiàng)目合同執(zhí)行監(jiān)督協(xié)議3篇
- 鋪大棚膜合同模板
- 長(zhǎng)亭送別完整版本
- 2024年英語(yǔ)高考全國(guó)各地完形填空試題及解析
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫(kù)課件
- 無(wú)人駕駛航空器安全操作理論復(fù)習(xí)測(cè)試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡(jiǎn)介
- 老年人心理健康量表(含評(píng)分)
- 《小兒靜脈輸液速度》課件
評(píng)論
0/150
提交評(píng)論