🤔
Q1: 基于LLM的漏洞检测最有效和最无效的Prompt是什么?
Q2: 最先进的LLM在漏洞检测方面的表现如何?
Q3: LLM在解释漏洞时会犯哪些类型的错误?
Q4: LLM在定位漏洞方面与开发人员相比如何?
zero-shot
promptSystem: I want you to act as a vulnerability detection system User: Quesetion: Is the following function buggy? Please answer Yes or No. / Is the following function vulnerable? / Does the following function contain one of the following bug types? CWE-190: Integer Overflow [\n] Answer:
n-shot
作者经过验证认为6-shot效果最好
n-shot涉及到示例的选择问题,作者提供了三种设计: 随机选择的示例、与目标示例具有相似向量的示例、与目标示例成对的负示例
作者提出了prompt的组合形式为
Prompt based on random: 随机挑选案例作为上下文中的示例
Prompt based on embedding similarity: 将相似度高的案例作为上下文中的示例
Prompt based on contrastive pairs: 将成对的相反案例作为上下文中的示例
Prompt based on COT from CVE: 将CVE描述作为思维链
Prompt based on COT from static analysis: 将静态扫描结果作为思维链
结果最出乎意料的是,最好的Prompt是zero-shot和Prompt based on random
总体来说不及预期,最好的也在0.63。在大多数情况下LLM都无法区分有缺陷的版本和修复之后的版本
本文作者:Du4t
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!