6

AIGC 在安全领域的思考和尝试 - AI安全助手

 1 year ago
source link: https://paper.seebug.org/2085/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

作者:wolf
原文链接:https://opensec-cn.github.io/#/articles/2

受限于本人的思考深度和技术水平,无法保障以下内容和结论的绝对真实,仅为分享个人观点供学习参考。

0x0 背景

随着ChatGPT在2022年底发布,AI正式出圈火爆全网,各行各业都开始思考和尝试如何利用AI来辅助或代替人工作。而互联网巨头的加入,更加速了这个过程,涌现出大量利用AIGC改进的产品,例如微软的Microsoff 365 Copilot、new bing,Google的bard、Workspace,还有其他初创公司或开源的:自动开发网站、自动开发APP、自动3D设计、AI修图、数字人、AutoGPT等等,持续半年每周都涌现出令人惊喜的AI产品,作为一个安全从业者,也有一定的工程能力,看得我心痒痒,决定在安全领域也尝试一番。

为什么这次值得尝试呢:

  • 此次以OpenAI的GPT3.5/4和Anthropic的Claude为首的大语言模型(LLM),拥有很强的知识库和逻辑推理能力(至于为什么出现了推理能力,有专业的文章解读),具有极高上限和应用空间,用阿里巴巴集团CEO张勇的话来说,AI时代“所有产品都值得用大模型重做一次”。
  • 顶尖的大模型已对外开放了API或计划开放,即使没有人工智能的专业知识也能很快上手使用。
  • AI行业的工程师非常open且正处于大爆发时间,有大量的开源项目可以参考学习。
  • 深度体验过GPT3.5/4的同学应该能感受到其智能程度,在这种里程碑事件和AI改变生活的年代,已足够让人着迷。

0x1 调研

当前大语言模型有两种应用路线

  1. 通过其本身就拥有的巨量知识库和语言组织能力,再加上私有知识库的方式,作为各细分领域的问答机器人。
  2. 利用其对话能力和逻辑推理能力,调用第三方程序,实现通过自然语言来进行操作。

其一的路线在文字类的工作上应用是强大的,几乎无所不能,但在非文字类是较为受限的,因为它只能通过文字形式跟你描述,无法帮你更进一步的工作,因为在工程领域知道怎么做只是第一步且大部分情况下都是知道怎么做,但更重要的是需要有人去执行,所以只能相对的代替搜索引擎,在整体生产力的提升上是有限的。 二路线为当前较为专业的应用方式,例如new bing,其原理即调用搜索结果再根据原有知识库进行整理回答,还有offer全家桶、Workspace、AutoGPT、Chat2DB,均为此原理,根据用户输入的自然语言,由AI转换为操作指令控制专业程序,当前最强的ChatGPT也在3月份增加了插件功能,此路径给了AI应用无限的可能,但对模型的逻辑推理能力有很高的要求。

由此,在安全领域上,一路线我能想到的就是学习阶段和搜索非擅长的知识领域时,能起到一定的作用,但并不能与Google等搜索引擎有多少效率的提升,且全球TOP的搜索引擎也都接入了AI解读能力,由此我认为此方向是意义较小的。 所以我更倾向于看好二路线,通过AI调用专用工具或者在已有的专业工具上进行改造,改变人和程序的交互的方式,由原本的专业操作流程变为自然语言表达需求,大大降低了专业门槛,如同当初的GUI操作系统出现,降低了电脑的入门难度,由原本只有高端工程师才会使用变化到现在几十亿人用电脑来作为生产力工具,也如同当初横空出世的iphone手机,由硬件按钮进入纯屏幕操作时代,APP/游戏的体验上升了一个量级,对此,我预言后续的网站、APP、程序可能会专门给AI提供相对标准的接口。

AI如何操控第三方程序

这里就不展开描述,可以参考AutoGPT和langchain项目或者使用OpenAI接口的function能力,目前已经进入行业标准化时段,至于最后谁能统一这个标准,拭目以待。

而在模型的选择上,目前也有2条路线

  1. 开源方案,例如:ChatGLM、Llama、Vicuna、falcon、Alpaca等等几十个
  2. 商业API,例如:OpenAI、Anthropic、文心一言等

经过简单测试,开源方案目前只在路线一表现可以,二线路难以满足,目前能满足二路线的大模型是少之又少。

0x2 落地

安全领域哪些场景可以落地呢?在专业模型上已经有不少的应用场景,例如:防火墙、流量分析、人机对抗(人机验证/过人机验证)、代码泄露检测等等,但目前看仅少有的场景真实发挥了技术优势,其余的颇有阿斗与赵云七进七出曹营的味道,鉴于现在的趋势看,AI还是将会慢慢的增强或代替常规技术方案。 不过不管从原理、性能还是效果上看,在此纬度上大语言模型的能力是不如专业模型的甚至不如常规的技术方案的,当然这也不是它的应用方式,只是强大的知识库和逻辑能力让他看起来无所不能,都能秀上两把。 故我认为目前只有2种有价值的落地方式:

  1. 让AI学会使用大量的安全工具/服务,通过自然语言让其协助你完成琐碎的工作,作为你的助手。
  2. 改造现有的安全产品,增加自然语言操作入口,通过对话驱动AI操作产品实现想要的动作,降低专业产品的使用门槛。

受限于当前所有AI产品均有的token上限和其他瓶颈,难以同时满足1和2,只能在全面和精细权衡。 很遗憾之前维护的开源项目因为工作和风险原因烂尾了,第二个落地方式只能放弃了,最后决定尝试做一个会操作大量安全工具和服务,通过对话即可让AI帮我们完成一些较为简单琐事的工作,就像你的助手一样,所以暂且就叫他AI安全助手把。

0x3 效果

经过多个晚上的开发和调教,实现了以下能力:

  1. 通过对话理解你背后的需求,使用相应的插件来辅助回答你
  2. 支持双向文字、图片、文件的交互
  3. 单次对话同时识别并执行多个插件
  4. 上下文关联能力,多个工具组合使用
  5. 支持添加自定义插件,且插件数量无限制

talk is cheap show me the code,真实效果如下:

使用第三方服务

例子:dnslog测试

截屏2023-06-14 00.39.36.png

使用第三方工具

例子:查询/扫描端口

截屏2023-06-19 21.06.35.png

什么都可以

建立漏洞靶场/漏洞测试/修复建议一条龙

截屏2023-06-23 17.39.51.png

截屏2023-06-23 17.40.01.png

截屏2023-06-23 17.42.38.png

例子:加解密/解编码

截屏2023-06-16 21.44.01.png

例子:找漏洞/解读漏洞/找EXP

截屏2023-06-19 21.20.17.png

截屏2023-06-19 21.21.22.png

不需要具体的操作命令(用什么去做什么),而是告诉他需求,他能理解并挑选合适的插件来回答你

截屏2023-06-20 21.34.56.png

碰到底线问题它也会拒绝

截屏2023-05-28 23.38.52.png

单个对话可识别执行多个任务并综合回答

截屏2023-06-20 21.46.03.png

上下文关联

截屏2023-06-23 15.05.28.png

截屏2023-06-23 15.05.39.png

非文本交互

除了支持文字交互,也支持文件、图片的方式 搜集子域名,打包成文件(可以看到AI可以理解v2ex就是指v2ex.com)

截屏2023-06-19 21.28.24.png

访问网站,然后截图给你

截屏2023-06-19 21.30.07.png

当然这个交互是双向的 发送apk给AI助手,让他帮你反编译,可以看到有时候它会说将执行但实际上没有使用插件,这个时候跟它说请执行就可以。

截屏2023-06-20 21.02.48.png

AI能使用的安全工具决定了它的能力范围,所以支持灵活的插件扩展是必须的。 这里实现了在线的Python插件扩展,且只需要遵守最基本的格式即可,其他自由发挥,AI能立马就学会使用他。

截屏2023-06-20 22.48.15.png

0x4 价值/意义

根据以上的例子可以看到AI可以使用工具来完成你的任务,这与自动化程序和常规的IM机器人有什么差异呢?

  1. 输入的信息不需要固定的标准格式和明确的工具,自然语言描述你的需求即可,什么情况下使用什么工具来解决问题本身也是一种专业技能,而AI庞大的知识库可以让他做出专业的选择。
  2. 能力扩展,AI可以理解你提供的插件并自己判断在什么时候使用它,它的专业能力由你提供给他的专业工具决定,有很大的上限空间。
  3. 工具(即插件)返回的结果无需格式化,不管是字符串,还是JSON,还是工具控制台打印的信息,AI都能很好的理解并解释结果。
  4. 超强的原生知识库和上下文理解能力,在上面的例子可以看到,描述v2ex时它知道你要的是v2ex.com,说百度首页它也知道是baidu.com,它会利用自己的知识库来从你的语言描述中尝试补全工具(插件)所需的参数,这是自动化程序和IM机器人无法比拟的。

所以AI助手的意义就是你可以把它当作你的员工,用正常分配工作的方式安排事情给他,他会自己去尝试用各种工具来完成(当前实验的这个版本还达不到,但此从技术角度是可行的),说不定将来有这么一天,在钉钉或企业微信上与你协同工作的同事原来都是一个个的AI机器人,而你还无法识别出来。

0x5 计划

由于每天只有晚上1-2个小时可以开发,进度缓慢,目前还只是个有趣的玩具,但我相信再过几个月,随着AI能使用的安全工具和服务越来越全面,将是一个真正能帮你提高生产力的助手。 项目已部署到http://secasst.com,鉴于当前项目还不够完善和部分能力存在风险,先进行小范围的测试,对此项目有兴趣的可以联系我(wx: _ywolf email:wolf_cn#outlook.com),我会给你邀请码。 目前大语言模型的生态还在快速发展中,此测试项目背后的技术也在快速变化,例如前几天openai就出了function功能,降低了操作工具的门槛,说不定过几天就有针对如何更好调用第三方程序的微调模型,所以在背后的技术方案较为稳定后,这个项目在Github开源也是选项之一(主要看实际反馈,如果最后发现意义不大那就放弃)。

0x6 总结

  1. 语言大模型(LLM)涌现出的推理和逻辑能力是最重要的能力指标,智能的标志,生产力的来源。
  2. 本次AI革命是真实存在且正在快速发展,除了此例子的文本领域外,在图片、语言、视频也都在快速发展且效果显著,特别是在图片领域已经非常强大,非概念炒作,AI代替部分工作岗位是可以预见到的。
  3. 除了模型本身在快速发展,AI的应用也同步进行,目前做得快的冒出来的产品就有几百款,可能在未来几年就能在各个场景感受到AI带来的变化。

Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/2085/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK