Shekar-24/MalwareInsight
GitHub: Shekar-24/MalwareInsight
一个基于本地 LLM 与确定性评分的恶意软件静态分析平台,通过提取可执行文件的多维指标生成可解释、可审计的风险评估报告。
Stars: 0 | Forks: 0
# MalwareInsight
MalwareInsight 是一个本地、可解释的恶意软件分类平台,使用 FastAPI、RetDec、Ollama、Llama 3 和 Python 构建。它会计算哈希值和熵,提取 PE 元数据和可疑字符串指标,可选择对样本进行反编译,并要求本地 LLM 仅解释收集到的证据。
## 功能
- 异步上传和分析工作流,并带有持久化的报告历史记录
- MD5、SHA-1、SHA-256、格式、导入、节区、字符串和熵分析
- 带有超时和输出限制的可选 RetDec 反编译
- 通过 Ollama 进行带有严格 JSON 输出的可选本地 Llama 3 解释
- 具有 0-100 确定性风险评分,包含证据和各项指标权重
- 外部引擎不可用时的平滑降级报告
- 响应式分析仪表板和 OpenAPI 文档
- 强制执行上传大小限制、清理文件名,并即时清理样本
## 在本地运行
环境要求:Python 3.11+,可选的 [RetDec](https://github.com/avast/retdec),以及带有 Llama 3 的可选 [Ollama](https://ollama.com/)。
```
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements-dev.txt
Copy-Item .env.example .env
ollama pull llama3
uvicorn app.main:app --reload
```
打开 `http://localhost:8000`。交互式 API 文档位于 `http://localhost:8000/docs`。
默认的 RetDec 命令是 `retdec-decompiler`。如果可执行文件具有其他名称或路径,请在 `.env` 中设置 `RETDEC_BIN`。支持 Windows Python 启动器,例如 `RETDEC_BIN=C:\Tools\retdec\bin\retdec-decompiler.py`。在没有 RetDec 和 Ollama 的情况下,应用程序仍然可以正常运行;它们的状态会在每份报告中显示。
旧版的 Windows RetDec 构建版本需要 OpenSSL 1.1.1。请设置 `RETDEC_DLL_DIR=C:\Program Files\OpenSSL-Win64\bin`,以便 RetDec 子进程能够找到 `libcrypto-1_1-x64.dll`,而无需修改系统范围的 `PATH`。
## Docker
```
docker compose up --build -d
docker compose exec ollama ollama pull llama3
```
小型的 API 镜像中未捆绑 RetDec。在生产部署中,请将其挂载或安装在经过安全加固的 worker 镜像中。
## API
```
POST /api/analyze multipart upload; returns 202 and report ID
GET /api/reports list reports
GET /api/reports/{id} poll an analysis report
GET /api/health external engine availability
```
## 风险评分
评分是确定性的,最高上限为 100。证据权重包括注入 (25)、凭证访问 (24)、破坏性活动 (30)、持久化 (20)、进程执行 (18)、高熵 (18)、网络能力 (14) 和规避 (12)。LLM 负责解释发现结果,但不能更改评分。这种分离使得每一个评分都可重现且可审计。
## 测试
```
pytest -q
```
对于生产部署,请将分析任务移至隔离的 worker/container 中,添加身份验证和速率限制,使用外部数据库和任务队列,并应用严格的出站流量控制。
标签:AI风险缓解, AV绕过, DAST, DLL 劫持, FastAPI, RetDec, 云安全监控, 大语言模型, 威胁评估, 恶意软件分析, 请求拦截, 逆向工具, 静态分析