2312702-NBTKNguyen/10_Yara_Python

GitHub: 2312702-NBTKNguyen/10_Yara_Python

一个基于 Python 和 YARA 的恶意代码扫描工具,通过哈希与规则双重检测并提供桌面界面与日志管理,解决本地文件安全检测与签名同步问题。

Stars: 0 | Forks: 0

# 应用程序中的 YARA 库用于检测恶意代码 **课程:** Python 编程 **学生:** Nguyễn Bá Thiều Khôi Nguyên - Hồ Quốc Long ## 1) 程序描述 这是一个使用 Python 编写的恶意代码扫描应用程序,结合了以下功能: - 使用 YARA 规则集识别文件中的行为/恶意代码签名。 - 将哈希值(MD5/SHA1/SHA256/SHA3-384)与签名数据进行比对。 - 提供桌面界面以操作文件/目录扫描、查看日志和结果以及历史记录。 - 集成数据库以存储签名数据和扫描历史。 ### 主要功能 - 扫描单个文件或整个目录。 - 通过两层检测: - Hash Match:将哈希值与已同步的签名数据进行匹配。 - YARA Match:根据 rules 目录中的 YARA 规则进行匹配。 - 按文件显示检测结果(检测到 / 清洁 / 错误)。 - 将扫描报告保存到 logs 目录。 - 通过 MalwareBazaar API 同步签名数据。 ## 2) 环境要求 - 操作系统:Linux/Windows/macOS - Python:建议 3.11+ - pip 和虚拟环境 ## 3) 分步运行指南 ### 步骤 1:克隆源代码 ``` git clone https://github.com/2312702-NBTKNguyen/10_Yara_Python.git cd LapTrinhPython_DoAnGiuaKy_Yara ``` ### 步骤 2:创建并激活虚拟环境 Linux/macOS: ``` python3 -m venv .venv source .venv/bin/activate ``` Windows(PowerShell): ``` python -m venv .venv .venv\Scripts\Activate.ps1 ``` ### 步骤 3:安装所需库 ``` pip install -r requirements.txt ``` ### 步骤 4:创建 .env 文件 在项目根目录基于 `.env.example` 创建 .env 文件并填写相应值。 注意: - 如果没有 MB_AUTH_KEY,仍可使用 YARA 规则进行扫描。 - 如果缺少密钥,从 MalwareBazaar 同步签名的功能将报错。 ### 步骤 5:运行应用程序 ``` python main.py ``` ### 步骤 6:界面操作 1. 选择要扫描的文件或目录。 2. (可选)点击“同步签名”以从 MalwareBazaar 更新哈希数据。 3. 点击“扫描”开始。 4. 监控: - 结果表格中的 Results。 - 日志面板中的 Log。 - 历史面板中的 History。 5. 扫描完成后点击“导出报告”以在 logs 目录中打开报告。 ## 4) 项目结构 ``` LapTrinhPython_DoAnGiuaKy_Yara/ |-- config.py # Cấu hình ứng dụng, đọc biến môi trường |-- main.py # Điểm vào chương trình |-- requirements.txt # Danh sách thư viện Python |-- pyproject.toml |-- README.md | |-- data/ | `-- malware_signatures.json # Dữ liệu signatures sau khi đồng bộ | |-- data_tools/ | |-- __init__.py | |-- data_loader.py # Khởi tạo dữ liệu signatures vào CSDL | `-- db_setup.py # Kết nối CSDL, khởi tạo schema | |-- database/ | `-- create_schema.sql # Schema SQLite | |-- gui/ | |-- __init__.py | |-- main_window.py # Giao diện chính | `-- components/ | |-- __init__.py | |-- history_panel.py # Panel lịch sử quét | |-- log_panel.py # Panel log runtime | `-- results_panel.py # Panel kết quả quét | |-- malware_scanner/ | |-- exceptions.py | |-- reporting.py # Sinh file báo cáo quét | |-- scanner.py # Engine quét chính | `-- detection/ | |-- anti_evasion.py # Hỗ trợ xử lý biến thể mã độc dùng kỹ thuật né tránh | |-- hashing.py # Tính hash file | `-- yara_engine.py # Tải/áp dụng luật YARA | |-- rules/ | |-- index.yar # Điểm vào các luật | |-- core/ # Nhóm luật lõi | `-- malware_families/ # Luật theo từng họ mã độc | |-- logs/ # Kết quả báo cáo sau mỗi lần quét `-- slides/ # Slide thuyết trình ``` ## 5) 运行说明 - 如果尚未存在数据库 scanner.db,系统将在首次运行时自动创建。 - 如果规则文件路径发生变化,请在 .env 中更新 YARA_RULES_PATH。 - 对于大文件或大量文件,扫描时间取决于 CPU 和 I/O。
标签:AMSI绕过, API集成, ETW劫持, GUI, MalwareBazaar, MD5, Python, SHA1, SHA256, SHA3-384, YARA, 云资产可视化, 依赖管理, 反病毒, 可观测性, 哈希校验, 威胁检测, 数据库存储, 文件扫描, 无后门, 日志记录, 桌面应用, 毕业设计, 签名匹配, 签名同步, 虚拟环境, 规则匹配, 逆向工具, 项目实战