大模型技术在恶意软件分析中的实践
本文是星图实验室研究员刘璐、尹斌,在看雪SDC 2024上发表的议题《大模型技术在恶意软件分析中的实践》。该议题阐明了当前恶意软件分析方法面临的问题,针对分析难点和分析需求详细说明了借助大模型技术提高恶意软件分析效率及分析结果等方面的实践。
研究员刘璐和尹斌
目录
背景介绍
技术方案
大模型微调
数据处理
RAG流程
分析案例
研究启发
静态分析:在不运行程序的状态下,对恶意软件进行分析。通常借助各类分析工具对恶意软件进行脱壳处理、逆向分析、特征提取等。 动态分析:在安全可控环境下运行恶意软件,智能触发软件恶意行为。通常使用沙箱、蜜罐等工具,观察软件执行流程。 动静结合:将静态分析方法和动态行为分析结合起来,更充分地鉴定软件恶意行为。例如,使用白加黑手段实施恶意行为的软件,可结合静态提取的证书信息和动态观察到的软件行为,综合鉴定软件的恶意性。 内存取证:将恶意软件运行时的内存数据转储为内存映像,利用分析工具从内存映像中查找恶意行为。
分析结果内容繁多,信息查询效率低,恶意特征判定难; 分析结果包含大量安全领域知识,普通用户难以理解; 缺乏交互式查询,无法对样本做出基于NLP的问答; 难以辅助人工对样本进行个性化的自动分析。
1、大模型选型
2、构造数据集
3、选择微调方法
调参可以采用粗调和细调相结合的方式,先粗略做网格搜索,确定一个比较理想的区间再进行细调,能节约时间; 模型微调可能是持续多天的任务,不能等到最后一天再进行测评,而是需要每隔一些steps就把微调好的模型dump出来及时测评; 模型微调过程中会出现因服务器不稳定等情况导致微调终止,如果终止后从头再微调一遍就太耗时了,所以可以设置resume_from_checkpoint等参数,从某个终止点接着往下进行微调。
4、微调效果
5、实际应用
有了微调的基座模型,怎么样能够让它针对特定的样本做分析呢?那就需要对数据做一些特殊的处理,让大模型能够更好的理解。主要操作是描述转换和LLM润色,因为LLM难以直接理解分析工具给出的元数据,而且不同分析工具所使用的字段命名也不统一,描述转换就是将各类软件分析工具产生的元数据的key和value描述清楚,经过转换模板形成一段文字,利用大模型对自然语言的理解和推理能力,再加上LLM润色调整,这样就会输出用户更容易理解的文本信息。
传统分析工具的分析结果在经过描述转换后,大模型已经能够进行较好的NLP问答,但无法做到多样本关联分析,所以我们决定引入RAG,这样不仅可以实现多样本关联分析,甚至可以结合情报信息进行更深入的分析。
1、代码解读
2、多Agent同源分析
在大模型框架应用于恶意软件分析的实践过程中,我们将遇到的问题和解决方式总结如下:
1、基座LLM样本分析能力弱
开源或商业基座模型一般在专业垂直领域上能力较弱,为了提高模型能力,需要进行LLM微调。同时为了提高模型的可解释性,需要传统分析工具辅助,例如,样本源码和逆向后的代码等,经过描述转换后输入给大模型进行分析。微调过程中需要构建大量高质量数据集。
2、难以做到:实时性+准确性+可追溯
任何一个大模型的知识储备都具有滞后性,例如,GPT-4的训练数据集只到2023年12月,2023年12月以后的信息它就不认识了,难以做到实时准确。借助RAG来补充最新知识库,就能提高整体结果的实时性,也能降低幻觉来提高答案的准确性。对模型的输出做引用标注,就能知道模型回复内容的来源,做到结果可追溯。
3、整体自动化分析能力弱
在基础模型上做了微调后,大模型的自动化分析能力也是并不是很强,所以为了进一步提高它的自动化分析能力,用现有框架做工具调用,例如使用RAG和多个Agent组合的方式,用参数量比较小的模型就能做到比较好的效果。
4、RAG问答不够准确
为了提升大模型的准确性,我们采用了多种方式进行优化。在文本分块时根据语义信息使用不同的长度切块,相同的块必须要有相类似的语义,必须有相同分析工具所分析出来的结果,且同一个块要保证它的信息完整。切出来的基础块做总结或关键词提取后变成小块,分别存储到不同的数据库中,检索时就可以用多种不同的检索方式做多路召回,这样能够检索到更丰富的数据,提高模型的表现能力。语义检索上的不足,也可以对Embedding模型做微调来改进。
1.https://core.ac.uk/download/pdf/325990564.pdf
2.https://arxiv.org/pdf/1710.08189
3.https://community.aws/content/2f1mRXuakNO22izRKDVNRazzxhb/how-to-use-retrieval-augmented-generation-rag-for-go-applications
4.https://www.comet.com/site/blog/advanced-rag-algorithms-optimize-retrieval/
5.https://x.com/qloog/status/1792546826908020967
6.https://huggingface.co/spaces/AIR-Bench/leaderboard
7.https://neurohive.io/en/news/microsoft-autogen-a-framework-for-configuring-llm-agents/
技术支持与反馈
星图实验室深耕沙箱分析技术多年,致力于让沙箱更好用、更智能。做地表最强的动态分析沙箱,为每个样本分析人员提供便捷易用的分析工具,始终是我们最求的目标。各位同学在使用过程中有任何问题,欢迎联系我们。
天穹沙箱支持模拟14种CPU架构的虚拟机,环境数量50+,全面覆盖PC、服务器、智能终端、IoT设备的主流设备架构形态。在宿主机方面,除了Intel/AMD的x86架构CPU和CentOS操作系统之外,天穹沙箱支持海光、飞腾、鲲鹏等x86、ARM架构国产CPU和银河麒麟、中科方德等信创操作系统。
天穹沙箱系统以云沙箱、引擎输出、数据接口等多种形式服务于公司各个业务部门,包括天眼、终端安全、态势感知、ICG、锡安平台、安服等。
天穹内网地址(使用域账号登录):
https://sandbox.qianxin-inc.cn
天穹公网地址(联系我们申请账号):
https://sandbox.qianxin.com
奇安信技术研究院是专注于网络空间安全相关技术的研究机构,聚焦网络空间安全领域基础性或前沿性的研究课题,结合国家和社会的实际需求,开展创新性和实践性的技术研究。
星图实验室隶属于奇安信技术研究院,专注于软件与系统安全的核心技术研究与系统平台研发,对外输出“天穹”软件动态分析沙箱、“天问”软件供应链分析平台、“天象”软件漏洞挖掘系统等核心能力和工具系统。
我们目前正在招聘,工作地点覆盖北京、南京、成都等城市,详情请参见:
https://research.qianxin.com/recruitment/