AiCodeAudit-基于Ai大模型的自动代码审计工具

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 本文介绍了基于OpenAI大模型的自动化代码安全审计工具AiCodeAudit,通过图结构构建项目依赖关系,提高代码审计准确性。文章涵盖概要、整体架构流程、技术名词解释及效果演示,详细说明了工具的工作原理和使用方法。未来,AI大模型有望成为代码审计的重要工具,助力软件安全。项目地址:[GitHub](https://github.com/xy200303/AiCodeAudit)。

文章目录

概要

    利用 AI 大模型进行代码审计,可以显著提高审计效率,扩大漏洞[覆盖率](https://so.csdn.net/so/search?q=%E8%A6%86%E7%9B%96%E7%8E%87&spm=1001.2101.3001.7020),降低人工成本,并帮助开发人员编写更安全的代码。然而,AI 大模型在代码审计中的应用仍处于早期阶段,面临着模型解释性、误报率、数据安全等挑战。未来,随着技术的不断发展和完善,AI 大模型有望成为代码审计领域的重要工具,为软件安全保驾护航。

    AiCodeAudit是基于[OpenAI](https://so.csdn.net/so/search?q=OpenAI&spm=1001.2101.3001.7020)大模型开发设计的自动化代码安全审计工具,利用图结构构建项目之间的依赖引用信息,相比于现有的基于RAG的代码审计设计方案,基于知识图谱的代码审计可以充分利用图的结构特性,使得大模型理解代码之间复杂的调用逻辑,从而提高代码审计的准确性。

项目地址:GitHub - xy200303/AiCodeAuditContribute to xy200303/AiCodeAudit development by creating an account on GitHub.https://github.com/xy200303/AiCodeAudithttps://github.com/xy200303/AiCodeAudit

整体架构流程

   ![](https://i-blog.csdnimg.cn/direct/5952ae375b0b406b9ee83b2f46c2158d.jpeg)

1. 项目结构解析 (Project Structure Parsing)

步骤:读取项目文件:工具首先读取项目的源代码文件。
格式化源码并进行标记:对读取的源代码进行格式化处理,并添加必要的标记以方便后续分析。
构建项目结构树:基于格式化后的源代码,构建一个表示项目结构的树状模型。

2. 依赖关系分析 (Dependency Analysis)

步骤:项目基本代码单元分解:将项目的基本代码单元(如函数、类等)进行分解。
生成调用关系:分析这些基本代码单元之间的调用关系。
构建项目依赖树:基于调用关系,构建一个表示项目依赖关系的树状模型。
生成项目依赖图谱:将依赖关系可视化为图谱,便于进一步分析。

3. 审计结果生成 (Audit Result Generation)

步骤:构建格式化模板:根据项目依赖图谱和调用关系,构建一个用于生成审计结果的模板。
自定义审计提示词:根据特定的审计需求,添加或修改审计提示词。
生成审计结果:基于格式化模板和审计提示词,生成详细的审计报告。
保存审计结果:将生成的审计报告保存到指定的位置或数据库中。

    Agent_1 负责项目的基本代码单元分解和依赖关系分析,生成项目依赖图谱。  
    Agent_2 则负责基于依赖图谱生成审计结果,并保存这些结果。  
    通过这种方式,自动化代码审计工具能够高效地分析代码结构和依赖关系,并生成详细的审计报告,帮助开发者识别潜在的问题和优化点。

技术名词解释

    知识图谱:知识图谱是一种基于知识的结构化表示方法,用于描述和组织世界上的知识。它可以将知识按照一定的逻辑关系连接在一起,形成一个图形化的知识网络。知识图谱通常由实体、属性和关系组成。实体是指具体的事物或概念,如人物、地点、事件等;属性是描述实体的特征,如姓名、年龄、地理位置等;关系是连接两个实体之间的关联关系,如父子关系、工作关系等。通过将这些实体、属性和关系相互连接,知识图谱可以为用户提供丰富的知识查询和推理服务。知识图谱在自然语言处理、信息检索、智能问答等领域都有广泛的应用。

    Agent:Agent是指一种软件程序,它可以代表用户执行特定任务或提供特定服务。例如,聊天机器人可以被视为代理程序,它可以代表用户进行对话。

效果演示

1.项目依赖安装

    从Github下载项目源码,安装项目依赖库。

pip install -r requirements.txt

2.配置OpenAI接口和密钥

    打开目录下的config.yaml文件,修改自己的OpenAI接口地址和Api_Key。

3.运行并使用项目

    利用Pycharm打开后修改main.py的目标目录路径或者直接使用下述命令使用即可。
python main.py -d ./项目目录 -o ./output

下面是Pycharm运行的效果

小结

    本文讲述了代码审计工具AiCodeAudit的使用方法,该工具目前还只是演示版本,欢迎各位大佬指点。
相关文章
|
5天前
|
人工智能 自然语言处理 IDE
6 款 AI 工具,助力写出更优质代码
6 款 AI 工具,助力写出更优质代码
89 3
6 款 AI 工具,助力写出更优质代码
|
2天前
|
人工智能 Linux iOS开发
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
162 100
|
6天前
|
人工智能 自然语言处理 API
OpenDeepResearcher:开源 AI 研究工具,自动完成搜索、评估、提取和生成报告
OpenDeepResearcher 是一款开源 AI 研究工具,支持异步处理、去重功能和 LLM 驱动的决策,帮助用户高效完成复杂的信息查询和分析任务。
125 18
OpenDeepResearcher:开源 AI 研究工具,自动完成搜索、评估、提取和生成报告
|
3天前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
197 13
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
5天前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
472 13
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
1天前
|
人工智能 数据可视化 搜索推荐
免费+数据安全!手把手教你在PC跑DeepSeek-R1大模型,小白也能秒变AI大神!
本地部署AI模型(如DeepSeek R1)保障数据隐私、节省成本且易于控制,通过Ollama平台便捷安装与运行,结合可视化工具(如Chatbox)及Python代码调用,实现高效、个性化的AI应用开发与使用。
44 2
免费+数据安全!手把手教你在PC跑DeepSeek-R1大模型,小白也能秒变AI大神!
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Baichuan-M1-14B:AI 助力医疗推理,为患者提供专业的建议!百川智能开源业内首个医疗增强大模型,普及医学的新渠道!
Baichuan-M1-14B 是百川智能推出的首个开源医疗增强大模型,专为医疗场景优化,支持多语言、快速推理,具备强大的医疗推理能力和通用能力。
151 16
Baichuan-M1-14B:AI 助力医疗推理,为患者提供专业的建议!百川智能开源业内首个医疗增强大模型,普及医学的新渠道!
|
16天前
|
人工智能 自然语言处理 语音技术
FilmAgent:多智能体共同协作制作电影,哈工大联合清华推出 AI 驱动的自动化电影制作工具
FilmAgent 是由哈工大与清华联合推出的AI电影自动化制作工具,通过多智能体协作实现从剧本生成到虚拟拍摄的全流程自动化。
180 10
FilmAgent:多智能体共同协作制作电影,哈工大联合清华推出 AI 驱动的自动化电影制作工具
|
3天前
|
人工智能 安全 开发工具
Repomix:8.1K Star!轻松将整个代码库打包为AI友好格式的开源工具,使代码库更易于AI理解
Repomix 是一款强大的工具,能够将整个代码库打包成AI友好的单个文件,支持多种输出格式和安全检查。
50 9
|
2天前
|
人工智能 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
20 4