gitau26timothy-CUK/Malware-Analyzer
GitHub: gitau26timothy-CUK/Malware-Analyzer
一个轻量级动态恶意软件分析器,结合 C 语言系统调用追踪与 Python 行为分析,生成结构化威胁报告。
Stars: 0 | Forks: 0
# Malware-Analyzer
一个轻量级动态恶意软件分析器 —— 基于 C 实现的 syscall 追踪器,配备 Python 智能层用于行为威胁报告
# 🔬 malsight




## 概述
`malsight` 是一个开源的动态恶意软件分析工具,结合了 C 语言实现的底层系统自省与 Python 驱动的行为分析引擎。它使用 `ptrace` 追踪可疑二进制文件的系统调用,实时捕获文件、网络与进程活动,并生成结构化的威胁报告,无需重量级沙箱即可运行。
## 功能
- **系统调用追踪** — 通过 `ptrace` 拦截并记录目标二进制文件的所有系统调用
- **行为分类** — Python 层识别恶意模式(键盘记录、C2 通信、持久化、提权)
- **文件与网络监控** — 捕获文件 I/O 操作与出站网络调用
- **进程检查** — 跟踪进程创建、内存分配与注入尝试
- **结构化报告** — 以 JSON 和纯文本格式输出可读的威胁报告
- **无需虚拟机** — 在 Linux 上直接运行,依赖极少
## 架构
```
malsight/
├── core/ # C — low-level tracer
│ ├── tracer.c # ptrace-based syscall interceptor
│ ├── syscall_table.c # syscall name/number mappings
│ ├── proc_inspect.c # /proc filesystem reader
│ └── logger.c # raw event logger (outputs JSON lines)
│
├── engine/ # Python — behavioral analysis
│ ├── analyzer.py # main analysis pipeline
│ ├── classifiers/
│ │ ├── network.py # C2 beacon & exfil detection
│ │ ├── persistence.py # cron/startup/registry-like patterns
│ │ ├── evasion.py # anti-debug & sandbox evasion detection
│ │ └── injection.py # process injection indicators
│ ├── reporter.py # threat report generator
│ └── ioc_matcher.py # IOC matching against threat intel feeds
│
├── reports/ # generated analysis reports (gitignored)
├── samples/ # test malware samples (gitignored)
├── Makefile
└── README.md
```
## 需求
**C 追踪器:**
- GCC 或 Clang
- Linux 内核 4.x+
- `libcap`(可选,用于能力检查)
**Python 引擎:**
- Python 3.9+
- `pip install -r requirements.txt`
## 安装
```
# 克隆仓库
git clone https://github.com/yourhandle/malsight.git
cd malsight
# 构建 C tracer
make
# 安装 Python 依赖
pip install -r requirements.txt
```
## 用法
```
# 跟踪可疑二进制文件并分析其行为
./malsight analyze --target ./suspicious_binary
# 以 JSON 格式输出报告
./malsight analyze --target ./suspicious_binary --format json --output reports/result.json
# 详细模式 — 实时查看原始系统调用流
./malsight analyze --target ./suspicious_binary --verbose
# 匹配 IOCs 与自定义威胁情报源
./malsight analyze --target ./suspicious_binary --ioc-feed ./feeds/misp_export.json
```
### Windows(PowerShell)
本仓库包含一个用于在 Windows 上运行 Python 分析器的小型 PowerShell 辅助脚本。
步骤:
1. 创建并激活虚拟环境(如果缺失,`run.ps1` 辅助脚本会自动创建):
```
.\run.ps1 -InstallDeps
```
2. 或手动方式:
```
# 创建 venv
python -m venv .venv
# 激活
. .venv\Scripts\Activate.ps1
# 安装依赖(如果没有 requirements.txt):
pip install prometheus-client statsd newrelic
# 运行分析器
python analyzer.py
```
分析器支持的环境变量(PowerShell 示例):
```
$env:METRICS_ENABLED = "true"
$env:METRICS_BACKEND = "prometheus"
python analyzer.py
```
说明:
- 本 README 中其他位置描述的 C 追踪器是 Linux 专用的,不包含在此 Windows 工作区中;`analyzer.py` 默认使用占位输入运行 Python 分析流水线。
## 示例报告输出
```
=== MALSIGHT THREAT REPORT ===
Target: suspicious_binary
SHA256: 3a5f2b...
Timestamp: 2026-04-10T09:15:42Z
[HIGH] C2 Beacon Pattern Detected
→ Repeated outbound TCP to 45.33.x.x:443 at 30s intervals
[MEDIUM] Persistence Attempt
→ Wrote to /etc/cron.d/updater
[LOW] Anti-Debug Evasion
→ Called ptrace(PTRACE_TRACEME) on self
Syscalls Traced: 4,821
Unique IPs contacted: 3
Files written: 7
Processes spawned: 2
Risk Score: 78/100 — LIKELY MALICIOUS
```
## 工作原理
1. **追踪器(C)** — `malsight` 将目标二进制文件作为子进程派生并通过 `ptrace` 附加。每个系统调用在入口和出口处被拦截,日志记录包含参数、返回值与时间戳的结构化 JSON 流。
2. **分析器(Python)** — 读取系统调用流并通过一组行为分类器进行处理。每个分类器查找已知恶意模式(例如,重复向同一 IP 发起 `connect()` 调用暗示 C2 通信,对启动目录的 `write()` 暗示持久化)。
3. **报告器(Python)** — 将分类器发现聚合为带有风险评分的优先级威胁报告。
## 路线图
- [ ] 在追踪前进行 PE/ELF 静态预分析
- [ ] 集成 VirusTotal API 进行哈希查询
- [ ] 对提取的内存区域执行 YARA 规则扫描
- [ ] 提供基于 Docker 的隔离模式
- [ ] 新增 Web 仪表盘(Flask)用于报告可视化
- [ ] 新增 Windows 支持(通过 ETW / API 钩子)
## 免责声明
`malsight` 仅供**教育与研究用途**。请仅分析你明确获得许可的二进制文件。始终在隔离环境中运行。作者不对滥用行为负责。
## 许可证
MIT © 2026 — 详情请见 [LICENSE](LICENSE)。
## 主题
`malware-analysis` `cybersecurity` `ptrace` `syscall-tracer` `c` `python` `reverse-engineering` `linux` `threat-intelligence` `sandbox`
## 指标与监控(可选)
该项目包含一个轻量级监控集成,用于跟踪分析流水线的
频率与耗时。
- `METRICS_ENABLED`(环境变量):启用或禁用指标收集(默认:`true`)
- `METRICS_BACKEND`(环境变量):指标后端 — `statsd`(默认)或 `prometheus`
- `METRICS_PORT`(环境变量):Prometheus 指标服务器的 HTTP 端口(默认:`8000`)
启用 StatsD 时的配置(当 `METRICS_BACKEND=statsd`):
- `STATSD_HOST`(环境变量):StatsD 服务器主机(默认:`localhost`)
- `STATSD_PORT`(环境变量):StatsD 服务器端口(默认:`8125`)
可选的新 Relic APM:
- `NEWRELIC_ENABLED`(环境变量):启用 New Relic 集成(默认:`false`)
- `NEWRELIC_LICENSE_KEY`(环境变量):启用时所需的许可证密钥
- `NEWRELIC_APP_NAME`(环境变量):上报至 New Relic 的应用名称(默认:`malware-analyzer`)
要在本地启用 Prometheus 指标运行:
```
$env:METRICS_BACKEND = "prometheus"
$env:METRICS_ENABLED = "true"
python analyzer.py
```
使用 StatsD(默认):
```
# 确保 STATSD_HOST:STATSD_PORT 处的 StatsD/Datadog 代理可达
$env:METRICS_ENABLED = "true"
$env:METRICS_BACKEND = "statsd"
python analyzer.py
```
启用 New Relic APM(需要 `newrelic` pip 包与有效许可证):
```
$env:NEWRELIC_ENABLED = "true"
$env:NEWRELIC_LICENSE_KEY = "YOUR_KEY_HERE"
$env:NEWRELIC_APP_NAME = "malsight-analyzer"
python analyzer.py
```
标签:Behavioral Threat Detection, C2通信检测, DAST, IOC检测, JSON报告, ptrace, Python, Syscall Monitoring, 云资产清单, 关键日志监控, 内存注入检测, 威胁报告, 子域名生成, 开源分析工具, 恶意软件分析, 持久化检测, 文件监控, 无后门, 权限提升检测, 沙箱替代, 系统调用追踪, 结构化报告, 轻量级分析, 逆向工具, 逆向工程