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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: 本文介绍了基于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的使用方法,该工具目前还只是演示版本,欢迎各位大佬指点。
相关文章
|
1天前
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
6天前
|
人工智能 自然语言处理 搜索推荐
AI大模型:职业教育在探索中的新航标
随着AI技术迅猛发展,AI大模型正成为职业教育变革的重要驱动力。职业院校积极探索AI大模型在教学中的应用,如广东科学技术职业学院的“知行大先生”大模型,助力助学、助教、助训、助管。然而,当前仍面临理解表面化、低水平重复等挑战。为解决这些问题,需紧贴行业需求,加强教师培训,并通过GAI认证提升个人AI应用能力,推动职业教育高质量发展。未来,期待更多AI大模型融入教学,培养适应社会需求的高端技术技能人才。
|
6天前
|
存储 人工智能 Cloud Native
小鹏汽车选用阿里云PolarDB,开启AI大模型训练新时代
PolarDB-PG云原生分布式数据库不仅提供了无限的扩展能力,还借助丰富的PostgreSQL生态系统,统一了后台技术栈,极大地简化了运维工作。这种强大的组合不仅提高了系统的稳定性和性能,还为小鹏汽车大模型训练的数据管理带来了前所未有的灵活性和效率。
|
9天前
|
人工智能 数据可视化 安全
Manus AI 站在巨人(大模型)肩膀上的AI助手
3月6日,Manus AI震撼登场,它不仅是一个聊天机器人,更是全能AI助手。能帮你筛选简历、进行房产调研、自动编写代码和数据分析,甚至创建并部署交互式网站。创始人是中国90后肖宏,毕业于华中科技大学。目前服务器已爆满,敬请期待其强大功能。
|
10天前
|
数据采集 人工智能 自然语言处理
中文法律AI大模型!LaWGPT 一键生成法律文书,司法考试通过率提升50%
LaWGPT 是南京大学推出的中文法律大语言模型,基于 LLaMA 模型进行二次预训练,融入大量中文法律知识,适用于法律咨询、文书生成、司法考试辅助等多种场景。
151 22
中文法律AI大模型!LaWGPT 一键生成法律文书,司法考试通过率提升50%
|
11天前
|
机器学习/深度学习 人工智能 JSON
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
Resume Matcher 是一款开源AI简历优化工具,通过解析简历和职位描述,提取关键词并计算文本相似性,帮助求职者优化简历内容,提升通过自动化筛选系统(ATS)的概率,增加面试机会。
77 18
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
|
11天前
|
人工智能 弹性计算 自然语言处理
5分钟部署,解锁100种和AI大模型的交互可能
阿里云弹性计算推出了一套高效、易用的个人AI大模型部署方案,帮助用户快速搭建专属的AI主页,开启智能化新体验,真正的实把“AI玩出花”。
|
12天前
|
机器学习/深度学习 人工智能 安全
AI大模型安全风险和应对方案
AI大模型面临核心安全问题,包括模型内在风险(如欺骗性对齐、不可解释性和模型幻觉)、外部攻击面扩大(如API漏洞、数据泄露和对抗性攻击)及生成内容滥用(如深度伪造和虚假信息)。应对方案涵盖技术防御与优化、全生命周期管理、治理与行业协同及用户教育。未来需关注动态风险适应、跨领域协同和量子安全预研,构建“技术+管理+法律”三位一体的防护体系,推动AI安全发展。
|
12天前
|
人工智能 弹性计算 自然语言处理
5分钟部署,解锁100种和AI大模型的交互可能
在AI技术飞速发展的今天,个人大模型的部署与应用面临复杂流程和高门槛。阿里云推出高效、易用的个人AI大模型部署方案,支持多模型集成、灵活扩展和定制化主页,帮助用户快速搭建专属AI主页,实现智能化新体验,真正把“AI玩出花”。
|
13天前
|
人工智能 数据可视化 前端开发
Probly:开源 AI Excel表格工具,交互式生成数据分析结果与可视化图表
Probly 是一款结合电子表格功能与 Python 数据分析能力的 AI 工具,支持在浏览器中运行 Python 代码,提供交互式电子表格、数据可视化和智能分析建议,适合需要强大数据分析功能又希望操作简便的用户。
196 2