点击蓝字 关注我们
基于LLM的被动扫描工具:
burpGpt
随着人工智能技术的快速发展,chatgpt这类生成式AI应用已经逐渐渗透进社会的方方面面。作为渗透测试人员,我们也在思考该如何使用大语言模型提高我们的测试效率和质量。近日在调研具备AI能力的安全测试工具时,发现一款名为burpGpt的burpsuite插件工具,于是本人在其社区免费版的基础上二开,以适配自己的测试习惯。本文旨在分享该工具的思路,感兴趣的同学可以研究并开发适合自己的工具。
burpGpt
首先感谢burpGpt分享了其社区版的代码,为我们提供了一种应用思路,其官方网站为:https://burpgpt.app/,开源代码地址为:https://github.com/aress31/burpgpt,需要开发者自己构建jar包。
结构原理
burpGpt的结构原理并不复杂,结构图如Fig.1所示。该工具是一款被动扫描工具,主要功能是将通过burpsuite的网络流量发送给大语言模型,由大语言模型代为分析可能遗留的漏洞,并将结果提交给burpsuite。
Fig.1 burpGpt结构原理
如Fig.2所示,该工具的代码结构也相对比较简单,这里主要讲解MyBurpExtension、GPTClient和MyScanCheck三个类。
Fig.2 代码结构
1
MyBurpExtension
该类主要是进行基础设置,主要的参数如Fig.3所示,包括apikey、modelIds、maxPromptSize以及prompt,MyBurpExtension类会将这些参数传递给GPTClient。
Fig.3 MyBurpExtension主要参数
这里主要需要注意prompt参数,该参数为:
Please analyze the following HTTP request and response for potential security vulnerabilities, specifically focusing on OWASP top 10 vulnerabilities such as SQL injection, XSS, CSRF, and other common web application security threats.
Format your response as a bullet list with each point listing a vulnerability name and a brief description, in the format:
- Vulnerability Name: Brief description of vulnerability
Exclude irrelevant information.
=== Request ===
{REQUEST}
=== Response ===
{RESPONSE}
这个prompt是要求大语言模型分析请求包和返回包可能存在OWASP TOP 10漏洞,用户也可以对该prompt进行修改优化,毕竟好的prompt可以增强模型的理解能力和生成能力,提高分析结果的稳定性和可靠性。
2
GPTClient
该类中的getCompletion方法将prompt传递给大语言模型,并获取到返回包,如Fig.4所示。
Fig.4 GTPClient---getCompletions
实际上该方法并没有被直接调用,而是被方法identifyVulnerabilities间接调用的,identifyVulnerabilities同时在该类中会构造GPTRequest对象,在该类中这个被构造出来对象的主要作用是将被扫描的请求包与返回包导入到prompt中并传递给getCompletions方法,identifyVulnerabilities方法如Fig.5所示。
Fig.5 GPTClinet---identifyVulnerabilities
3
MycheckScan
该类其实是实现了burp api的ScanCheck,Override passiveAudit方法,如Fig.6所示。
Fig.6 MycheckScan---passiveAudit
其中2中的identifyVulnerabilities构造的GPTRequest对象也会在这里传递给createAuditIssuesFromGPTRespone方法。
分析结果
这里我们用了某个数据包来做测试,结果如Fig.7所示:
Fig.7 分析结果
该分析结果误报率很高,个人认为主要问题在于在当前应用下大语言模型只做了分析而没有做主动验证。
展望
burpGpt社区版提供的思路的可落地性比较强,但是存在误报率高的问题,而且使用OpenAI也意味着会将流量泄露给公共大模型,有可能导致信息泄露。
为了进一步解决该问题,我们可以引入本地大模型,同时使用LangChain Agent等开发工具,实现大语言模型去主动验证自己发现的问题。
往期精彩合集
● 2024世界智能产业博览会开幕,联想全球安全实验室浅谈从传统PC安全到AIPC安全的进化过程
● 联想展示顶尖安全技术创新 亮相Black Hat ASIA 2024
● Intel® Neural Compressor CVE-2024-22476 漏洞分析
● 浅谈安卓应用安全
● BlackHat 2024 Asia Windows技术 MagicDot学习分享
长
按
关
注
联想GIC全球安全实验室(中国)