2023年12月的时候就已经在使用llm来做代码审计了。简单研究过向量数据库+llm来实现,但是随着我对ai的理解加深,我觉得这条思路可能不是我想要的。
2024年成熟了点 理解了需要复杂架构的agent才可以实现。 然后简单的做了一个大窗口的复杂的问答的demo来实现了小体积的代码仓库的漏洞识别。
但是随之也发现了一些问题,比如常见的rag的幻觉,llm会瞎编一个文件路径和函数,会不准确,但是都有办法来解决 比如强行让他cot输出过程可以提高准确率。不要过分的理想主义,因为除了幻觉,包括rag无法正确识别你的组件的作用 比如security.stopxxx,可能是一个防止sql注入的库,但是对于大模型来说,它的知识主流在2024年初,openai在2023。他们不能识别到最新的组件和库。上下窗口有大小限制。依赖长上下文之间的逻辑关系,单纯的图+三元组无法理解,毕竟你仔细研究过“中文”,你就理解语言语法最小的信息传递单位怎么可能是三元组能表达的了的?
这里的几个制约性因素其中还包括大模型coder能力的成熟度,虽然可以在上层用prompt实现一些类似神经网络的推理 比如 dspy,来实现高准确率的推理,但是同时也带来的过拟合的问题,泛化能力不是一般的差劲。
后面就是cursor诞生了,它的圣诞让我觉得我研究白盒不存在任何意义。
因为能写代码就可以审计和理解代码,传统的代码审计随着coder模型的训练会无限接近于单步推理的100%水平,然后原子化封装即可。整个LLM都在朝着"LLM自举"方向前进,任何阻挡、嘲讽这条道路的人都会和蝼蚁一般湮灭在历史长河里,不存在任何意义。
所以我就不研究这个了,因为这个方向的天花板被coder模型的成熟度制约,一般公司没有能力去研发一个更强的coder llm,何况丰富的数据才可以实现coder模型,也就是主流的sota模型做出来的coder模型才是最强的。但并非应用层的公司没什么可做的,看起来好像只能问答一下。只是需要更多的创新探索成本
所以当前辅助和审计代码,你只要下载一个免费的trae 然后倒入你的框架,设置好system prompt ,你可以参考我设置的上一篇关于windsurf的使用办法来实现全局的一些便利性配置。
原文始发于微信公众号(xsser的博客):用LLM来实现白盒代码审计
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/3794460.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论