/CodeAuditor

python代码审计工具

Primary LanguagePythonApache License 2.0Apache-2.0

CodeAuditor

python代码审计工具

PyCodeAuditor

CodeAuditor 是一个 Python 代码审计工具,能够遍历指定目录中的所有 Python 文件,并根据预设的规则库进行代码审计,最后生成审计报告。

安装

本工具目前未提供安装包,你可以直接克隆代码库到本地使用。同时,你需要安装 tqdm 进度条库。

# 克隆代码库
git clone https://github.com/TTSecTeam/CodeAuditor.git

# 进入代码库目录
cd CodeAuditor

# 安装 tqdm
pip install tqdm

+------+     +----------------+     +------------------+     +----------------+     +-----+
| User | --> | Code Parser    | --> | Rule Execution   | --> | Report Generator| --> | CLI |
|      |     | (AST creation) |     | Engine           |     |                 |     | /UI |
+------+     +----------------+     +------------------+     +----------------+     +-----+
                                     ^
                                     |
                                     |
                             +----------------+
                             |  Rule Library  |
                             | (Plugin System)|
                             +----------------+


架构设计

代码解析器(Code Parser):该模块的任务是接收输入(可能是一个文件,一个文件夹,甚至是一个git仓库),并将其中的Python代码转换为可供后续处理的形式。在Python中,通常可以通过使用ast库来解析代码,将代码转换为抽象语法树(AST)。

规则库(Rule Library):规则库包含了用于识别问题的所有规则。每个规则都会定义一种特定的问题类型,包括问题的描述、如何检测问题,以及可能的修复建议。规则可能需要查找特定类型的AST节点,或者分析节点的某些特性。

规则执行引擎(Rule Execution Engine):规则执行引擎会对每个规则进行遍历,对于每个规则,引擎会遍历AST的所有节点,查找匹配该规则的问题。对于每个找到的问题,引擎将创建一个报告,其中包含问题的位置,相关的规则,以及可能的修复建议。

报告生成器(Report Generator):报告生成器会收集规则执行引擎的所有报告,然后生成一个总的报告。这个报告可以以各种格式呈现,比如纯文本,HTML,或者JSON。报告中应该包含每个找到的问题的详细信息,以及整体的统计信息。

CLI/UI:用户需要一种方式来使用这个工具,这可能是一个命令行界面,或者一个更复杂的图形用户界面。这个界面需要让用户能够选择要检查的代码,选择要使用的规则,以及查看生成的报告。

插件系统(Plugin System):为了提高工具的可扩展性,可以添加一个插件系统,允许用户或第三方开发者添加自己的规则或修改现有规则。插件系统应该提供一个简单的API,让开发者能够方便地定义新的规则,包括问题的检测和修复。