orion-priyansh/malware-analysis

GitHub: orion-priyansh/malware-analysis

一个基于机器学习与多源集成的综合恶意软件分析系统,解决快速检测与上下文关联问题。

Stars: 0 | Forks: 0

# 恶意软件分析 API 一个具备基于机器学习的检测、哈希查询和语义嵌入功能的综合恶意软件分析系统。 ## 功能 - **哈希查询**:检查文件是否在 MalwareBazaar 数据库中 - **特征提取**:从 PE 文件中提取静态特征 - **ML 检测**:使用 EMBER 模型进行恶意软件分类 - **VirusTotal 集成**:查询 VirusTotal 获取额外上下文信息 - **语义嵌入**:为文件相似性分析生成嵌入向量 - **文件对比**:使用语义相似性比较两个文件 ## 安装 1. 安装依赖: ``` pip install -r requirements.txt ``` 2. 设置环境变量: ``` export VT_API_KEY="your_virustotal_api_key" ``` 3. 准备数据: - 将 MalwareBazaar CSV 文件放置在 `data/malwarebazaar.csv` - 将训练好的 EMBER 模型放置在 `models/ember_model.pkl` ## 用法 ### 启动 API 服务器 ``` uvicorn api.main:app --reload --host 0.0.0.0 --port 8000 ``` ### API 端点 #### 健康检查 ``` curl http://localhost:8000/ ``` #### 扫描文件 ``` curl -X POST "http://localhost:8000/scan" \ -F "file=@suspicious_file.exe" ``` 响应包含: - SHA256 哈希值 - 恶意软件检测结果 - 置信度分数 - VirusTotal 结果 - 语义嵌入向量(如果可用) #### 比较两个文件 ``` curl -X POST "http://localhost:8000/compare" \ -F "file1=@file1.exe" \ -F "file2=@file2.exe" ``` 返回 0 到 1 之间的相似性得分。 ## 项目结构 ``` . ├── api/ │ └── main.py # FastAPI application ├── core/ │ ├── embedding_extractor.py # Semantic embedding extraction │ ├── feature_extractor.py # Static feature extraction │ ├── hash_lookup.py # MalwareBazaar lookup │ ├── malware_model.py # EMBER ML model │ └── vt_checker.py # VirusTotal integration ├── utils/ │ └── hash_utils.py # Hash calculation utilities ├── data/ │ └── malwarebazaar.csv # Known malware database ├── models/ │ └── ember_model.pkl # Trained EMBER model └── requirements.txt # Python dependencies ``` ## 组件 ### 嵌入提取器 使用 EMBER-v1 变换器模型为文件生成语义嵌入向量。支持: - 自动 GPU/CPU 检测 - 批量处理 - 相似性计算 - 归一化嵌入向量 ### 特征提取器 从文件中提取静态特征: - 文件大小、熵、类型 - PE 头信息 - 导入表 - 节区详情 ### EMBER 模型 基于 LightGBM 的恶意软件分类器,在 EMBER 数据集上训练。 ### VirusTotal 检查器 查询 VirusTotal API 获取额外的威胁情报。 ### MalwareBazaar 查询 在已知恶意软件数据库中进行快速的基于哈希的查询。 ## 错误处理 所有组件均包含全面的错误处理和日志记录: - 模型文件缺失会被优雅处理 - API 失败会返回信息丰富的错误消息 - 错误时清理临时文件 - 详细的调试日志 ## 配置 ### 环境变量 - `VT_API_KEY`:VirusTotal API 密钥(可选) ### 日志记录 日志记录默认配置为 INFO 级别。可以在 `api/main.py` 中调整: ``` logging.basicConfig(level=logging.DEBUG) ``` ## 说明 - 嵌入提取器需要 PyTorch 和 transformers - 首次运行将下载 EMBER-v1 模型(约 400MB) - 如果 CUDA 可用,GPU 加速会自动启用 - 处理完成后会清理临时文件 ## 许可证 MIT
标签:API服务, AV绕过, Caido项目解析, DAST, EMBER模型, FastAPI, hash lookup, malware analysis system, ML-based detection, PE文件特征提取, Python, semantic embeddings, VirusTotal集成, 凭据扫描, 反病毒, 哈希查询, 威胁情报, 开发者工具, 恶意软件分析, 文件对比, 文件相似度分析, 无后门, 机器学习检测, 系统调用监控, 语义嵌入, 逆向工具, 静态特征提取