前言
前段时间迷上了联动ai做代码审计,看了很多大哥们写的论文比如gptscan的原理,又或者fuzzgpt,又如google的naptime项目原理。
如naptime原理图
也尝试训练了一些,但是后面又删了,觉得没有意义,没有价值。
正文
结合个人做安全研究来看的话还是有蛮多需要删减的东西以及思考的东西的,因为如果其实ai联动代码审计最大的意义其实是自动化,也就是说time更少以及广度的准确性OK。
缺点呢就是深度不够。
所以如果是基于个人侧去做安全研究的话,而不是去开发一个产品面向用户的话,更care的是深度挖掘以及漏,而不是追求更高的准确性以及time。
因为个人做安全研究的话,本质就是挖别人挖不到的0。
因此对于引用的很多自动化debugger框架或许在个人研究上意义就没那么大了,因为在研究过程中会发现,对于很多深度的漏洞,基本上都不是单链组成的,因此这种而言几乎没有意义。
因此个人侧的安全研究而言,应该更关注调试代码自动化生成以及调试案例代码生成。
也就是更加入手白盒fuzz的思路,如分析完调用栈后,把相关调用方法分析出来,然后联动ai去自动化提取出相关代码,生成代码测试demo以及一堆fuzz规则,然后看看是否crash。
可以类似于jazzer这种java测试项目。
即类似于二进制中的fuzz工具类似的思路,只是变成了适配其他语言的。
即大概的demo思路
source分析-->filter分析-->sink分析-->相关代分析-->调用栈函数提取-->ai生成白盒测试demo(不太确定的代码漏洞)-->ai fuzz生成测试规则-->导致crash(获取绕过的代码)
总结
别把引入模型分析代码看得无所不能,其实并没有想象的那么强大。
产品是产品,个人研究是个人研究,可以研究思路,但是按照自己的思路玩才是最重要的。
原文始发于微信公众号(goddemon的小屋):浅谈个人研究侧的ai代码审计思路
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论