2024基于大模型的缺陷靜態(tài)檢查_第1頁(yè)
2024基于大模型的缺陷靜態(tài)檢查_第2頁(yè)
2024基于大模型的缺陷靜態(tài)檢查_第3頁(yè)
2024基于大模型的缺陷靜態(tài)檢查_第4頁(yè)
2024基于大模型的缺陷靜態(tài)檢查_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論