diff --git a/docs/design.md b/docs/design.md index e69de29..9440f4e 100644 --- a/docs/design.md +++ b/docs/design.md @@ -0,0 +1,81 @@ +# 项目设计文档 - 后门检测系统 + +## 静态代码后门检测 + +**功能描述**: +这个脚本用于扫描指定路径下的代码文件,检测潜在的危险函数调用,支持 `.py`, `.js`, `.cpp` 文件。 + +**主要组件**: + +- `read_file_content(file_path)`: 读取文件内容。 +- `remove_comments(code, extension)`: 移除代码中的注释。 +- `find_dangerous_functions(file_content, file_extension)`: 检测并标记危险函数的使用与威胁等级。 +- `output_results(results, output_format, output_file)`: 输出检测结果到指定格式和路径。 + +**输入**: + +- 代码路径(文件或目录)。 +- 输出文件路径和格式(通过命令行参数指定)。 + +**输出**: + +- 安全分析报告,可选格式为 HTML、Markdown、TXT 或 PDF。 + +**设计考虑**: + +- 动态识别文件类型并适应不同的注释规则。 +- 使用正则表达式检测潜在的危险函数调用。 +- 使用 ReportLab 库生成 PDF,提供丰富的文档布局。 + +**使用示例**: + +```bash +python backdoor_detection.py ./src -o ./output/report.pdf +``` + +--- + +## 依赖版本漏洞检测 + +**功能描述**: +这个脚本用于检测项目依赖中是否存在已知的安全漏洞。它通过读取一个包含漏洞信息的文件和项目的 `requirements.txt`,对比确定哪些依赖项是不安全的。 + +**主要组件**: + +- `load_vulnerable_packages(filename)`: 从给定的文件中加载包含漏洞的包信息。 +- `load_requirements(filename)`: 从项目的 `requirements.txt` 文件中加载依赖信息。 +- `output_results(filename, results, format_type)`: 根据指定格式输出检测结果。 +- `check_vulnerabilities(requirements, vulnerabilities, output_file)`: 核心功能,对比依赖与漏洞信息并生成报告。 +- `output_results(filename, results, format_type)`: 根据用户需求设置扫描结果输出格式。 + +**输入**: + +- 依赖漏洞文件路径。 +- 项目 `requirements.txt` 文件路径。 +- 输出文件路径和格式(通过命令行参数指定)。 + +**输出**: + +- 报告文件,格式可以是 HTML、Markdown、TXT 或 PDF。 + +**设计考虑**: + +- 使用 `argparse` 处理命令行输入。 +- 使用 `packaging` 库来处理和比较版本号。 +- 使用异常处理来确保文件读写操作的安全性。 + +**使用示例**: + +```bash +python requirements_detection.py vulnerabilities_data.txt requirements.txt -o ./output/report.md +``` + +--- + +### 结论 + +这两个脚本为后门检测项目提供了两个不同的安全检查角度:一个是外部依赖的安全性,另一个是内部代码潜在的安全漏洞。通过将这两种功能结合,可以提供一个全面的安全审计工具,以保障项目的安全性。 + +--- + +以上就是针对后门检测系统的项目设计文档。通过这样的设计,项目团队可以更好地了解系统的运作方式和如何使用系统进行安全检测。 diff --git a/docs/idea.md b/docs/idea.md index 0ba5f6a..b018920 100644 --- a/docs/idea.md +++ b/docs/idea.md @@ -6,7 +6,7 @@ 工具开发:使用正则表达式和模式匹配来搜索代码中的可疑结构或者片段。 -参考项目: https://github.com/SonarSource/sonarqube +参考项目: [https://github.com/SonarSource/sonarqube] ## 控制流分析 @@ -20,7 +20,7 @@ 实施策略:开发脚本或工具来自动化检查外部库的可信度和更新记录。 -这个网站可以搜索依赖中是否存在漏洞: https://security.snyk.io/package/pip/ +这个网站可以搜索依赖中是否存在漏洞: [https://security.snyk.io/package/pip/] ## 异常行为检测 diff --git a/docs/tech_notes.md b/docs/tech_notes.md index e69de29..4c7bed3 100644 --- a/docs/tech_notes.md +++ b/docs/tech_notes.md @@ -0,0 +1,51 @@ +# 技术说明文档 - 后门检测系统 + +本文档详细说明了后门检测系统中使用的技术和库,以及这些技术的应用方式和原理。 + +## 1. Python 编程语言 + +本项目主要使用 Python 编程语言编写。Python 是一种解释型、高级和通用的编程语言。Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或关键字)。详细信息可参考:[Python 官网](https://www.python.org/) + +## 2. `packaging` 库 + +`packaging` 库提供了版本号解析和比较的功能,非常适合用于处理和比较软件包的版本号。在本项目中,它被用来解析 `requirements.txt` 文件中的依赖版本,并与已知的漏洞版本进行比较,以判断是否存在安全风险。 + +- **主要应用**:比较依赖包版本是否在漏洞版本范围内。 +- **官方文档**:[packaging on PyPI](https://pypi.org/project/packaging/) + +## 3. `reportlab` 库 + +`reportlab` 是 Python 中强大的 PDF 生成库,允许快速创建复杂的 PDF 文档。在此项目中,`reportlab` 用于生成具有格式化文本和布局的 PDF 报告。 + +- **主要应用**:生成 PDF 格式的报告,包括带有标题、段落和间距的文档结构。 +- **官方文档**:[ReportLab User Guide](https://www.reportlab.com/docs/reportlab-user-guide.pdf) + +## 4. `argparse` 库 + +`argparse` 库是用于解析命令行参数和选项的标准库。它让开发者能够轻松地编写用户友好的命令行接口,程序可以从 `sys.argv` 中提取出所需的命令行参数。本项目中使用 `argparse` 来接收用户指定的文件路径和输出格式。 + +- **主要应用**:解析命令行输入,获取用户指定的文件路径和输出选项。 +- **官方文档**:[argparse — Command-line option and argument parsing](https://docs.python.org/3/library/argparse.html) + +## 5. 正则表达式 (`re` 模块) + +正则表达式在本项目中用于从配置文件中提取出软件包名称和版本范围。`re` 模块提供了对正则表达式的全面支持,允许进行复杂的字符串搜索、匹配及替换。 + +- **主要应用**:解析和处理文本数据,特别是在加载漏洞信息和分析代码文件时用于提取特定模式的字符串。 +- **官方文档**:[re — Regular expression operations](https://docs.python.org/3/library/re.html) + +## 6. 文件处理 + +文件的读取和写入是通过 Python 的内置功能进行的,确保了项目能够处理外部数据文件和输出结果到指定的文件中。 + +- **主要应用**:读取漏洞数据文件和依赖文件,输出结果报告到文本、Markdown、HTML 或 PDF 文件。 + +## 7. 代码和风险分析 + +项目中实现了基本的静态代码分析功能,用于识别和报告潜在的安全风险函数调用,如 `system`、`exec` 等。 + +- **技术说明**:通过正则表达式匹配高风险函数的调用,评估代码文件的安全性。 + +通过这些技术的综合应用,后门检测系统能够为用户提供全面的安全检测功能, + +帮助识别和预防安全风险。这些技术的深入了解和正确应用是确保系统有效运行的关键。 diff --git a/docs/usage.md b/docs/usage.md index e69de29..c905362 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -0,0 +1,81 @@ +# 使用说明文档 - 后门检测系统 + +本文档提供了后门检测系统的使用方法,包括依赖版本漏洞检测和静态代码后门检测两部分。这将帮助用户正确执行安全检测,并理解输出结果。 + +## 安装需求 + +在开始使用本系统之前,请确保您的环境中安装了以下依赖: + +- Python 3.6 或更高版本 +- `packaging` 库:用于版本控制和比较 +- `reportlab` 库:用于生成 PDF 报告 + +您可以通过以下命令安装必要的 Python 库: + +```bash +pip install packaging reportlab +``` + +## 下载和配置 + +- 克隆或下载后门检测系统到您的本地环境。 +- 确保脚本文件 (`requirements_detection.py` 和 `backdoor_detection.py`) 在您的工作目录中。 + +## 运行依赖版本漏洞检测脚本 + +**命令格式**: + +```bash +python requirements_detection.py <vulnerabilities_file> <requirements_file> -o <output_file> +``` + +**参数说明**: + +- `<vulnerabilities_file>`: 包含漏洞信息的文件路径。 +- `<requirements_file>`: 项目的 `requirements.txt` 文件路径。 +- `<output_file>`: 指定输出结果的文件路径和格式,支持的格式有 `.txt`, `.md`, `.html`, `.pdf`。 + +**示例**: + +```bash +python requirements_detection.py vulnerabilities_data.txt requirements.txt -o output/report.md +``` + +## 运行静态代码后门检测脚本 + +**命令格式**: + +```bash +python backdoor_detection.py <code_path> -o <output_file> +``` + +**参数说明**: + +- `<code_path>`: 代码文件或目录的路径。 +- `<output_file>`: 指定输出结果的文件路径和格式,支持的格式有 `.txt`, `.md`, `.html`, `.pdf`。 + +**示例**: + +```bash +python backdoor_detection.py ./src -o output/report.pdf +``` + +## 结果解读 + +- 输出结果将根据指定的格式保存在您指定的文件中。 +- 结果中会标注出每个文件中发现的高风险和中风险函数调用位置。 +- 对于依赖检测,结果将标明每个依赖包的安全状态,包括存在安全风险的依赖及其版本。 + +## 常见问题处理 + +- 确保所有路径都正确无误,避免因路径错误导致文件读取失败。 +- 如果输出格式指定错误,系统将默认输出为 `.txt` 格式。 +- 确保安装了所有必要的依赖库,以避免运行时错误。 + +## 支持 + +如果您在使用过程中遇到任何问题,或需要进一步的技术支持,请联系开发团队或访问我们的Git仓库以获取帮助和最新信息。 + +--- + +以上是后门检测系统的使用说明文档。请按照这些步骤进行操作,以确保您能有效地使用本系统进行安全检测。