mahesh70953/secureinspect

GitHub: mahesh70953/secureinspect

一款纯离线的 Python 静态恶意软件与隐写术分析 CLI 工具,支持对多种文件格式进行本地安全检测并生成风险评分报告。

Stars: 0 | Forks: 0

# 🛡 SecureInspect **离线文件安全与隐写术分析器。** SecureInspect 是一个 Python CLI 工具,用于静态分析文件——包括图像、音频、PDF、Office 文档、APK 和 Windows 可执行文件——以检测恶意软件指标和隐藏的/隐写载荷。它完全在 **100% 本地** 运行。任何文件、哈希值或结果都不会被上传到任何地方。 ## 检测内容 | 类别 | 检查项 | |---|---| | **通用** | MD5/SHA1/SHA256 哈希、Shannon 熵、扩展名与签名不匹配、IOC 提取(IP、URL、电子邮件、域名、BTC 地址)、可疑关键字/API 扫描、离线 YARA 规则匹配 | | **Windows EXE/DLL** | PE 结构验证、分节熵(壳检测)、可疑 Win32 API 导入、Authenticode 签名存在情况 | | **PDF** | 嵌入式 JavaScript、`/Launch` 操作、嵌入式文件、嵌入式 URI、加密标志 | | **Office (docx/xlsx/pptx/doc/xls)** | VBA 宏检测、自动执行触发器(`AutoOpen`、`Document_Open`...)、可疑宏关键字(`Shell`、`CreateObject`、下载调用) | | **APK** | 权限(通过 androguard,如果解析失败则回退到 ZIP/清单字符串解析)、危险权限标志(SMS、Accessibility Service、overlay、install-packages 等) | | **图像 (PNG/JPG/GIF/BMP)** | 附加在图像真实结束标记之后的尾部数据(经典的“在图片中隐藏 ZIP/EXE”技巧)、LSB(最低有效位)统计随机性测试、EXIF 元数据 + GPS 曝光 | | **音频 (WAV/MP3)** | 附加在音频流预期结束位置之后的尾部数据、基于 16 位 PCM 采样的 LSB 随机性测试 | 每次扫描都会生成一个 **风险评分 (0–100%)**、一个 **判定** (`LIKELY SAFE` / `LOW RISK` / `MEDIUM RISK` / `HIGH RISK`),以及一个用通俗易懂的英文列出的 *原因* 清单。 ## 安装 ``` git clone https://github.com//secureinspect.git cd secureinspect python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` 需要 Python 3.9+。 ## 用法 ``` python cli.py --out reports/ ``` 这会在终端打印一份摘要,并写入: - `reports/_report.json` — 完整的机器可读结果 - `reports/_report.html` — 可共享的可视化报告 示例: ``` python cli.py samples/suspicious_invoice.pdf ======================================================= SecureInspect Report: suspicious_invoice.pdf ======================================================= Detected type : pdf SHA256 : c68194... Entropy : 4.99 (Moderate (typical for normal files)) Risk Score : 37% Verdict : LOW RISK Reasons: - 2 suspicious keyword(s)/API reference(s) found: ['/javascript', '/js'] - Embedded JavaScript in PDF. ======================================================= ``` 仅打印原始 JSON(适用于通过管道传递给其他工具): ``` python cli.py sample.apk --json-only ``` ## 项目结构 ``` secureinspect/ ├── cli.py # entry point - dispatches file to the right module(s) ├── core/ │ ├── hashing.py # MD5/SHA1/SHA256 │ ├── entropy.py # Shannon entropy │ ├── iocs.py # IOC + suspicious keyword extraction │ ├── filetype.py # signature-based file type detection │ ├── risk_engine.py # combines all findings into one score/verdict │ └── report.py # JSON + HTML report generation ├── modules/ │ ├── pe_scan.py # EXE/DLL analysis (pefile) │ ├── pdf_scan.py # PDF analysis │ ├── office_scan.py # VBA macro analysis (oletools) │ ├── apk_scan.py # APK permission/manifest analysis (androguard) │ ├── image_stego.py # image steganography detection │ ├── audio_stego.py # audio steganography detection │ └── yara_scan.py # offline YARA rule engine ├── rules/ │ └── generic_rules.yar # sample YARA rules (extend with your own) ├── samples/ # put test files here (gitignored by default) ├── reports/ # generated reports land here (gitignored) ├── requirements.txt └── README.md ``` ## 隐写术检测的工作原理 两项独立的、可解释的检查(没有黑盒): 1. **尾部数据检查。** PNG 文件以 `IEND` 块结束;JPEG 文件以 `FFD9` 标记结束。附加在该点*之后*的任何内容对普通图像查看器来说都是不可见的,但这是人们在图片中隐藏 ZIP/EXE/文本文件的最常见方式。SecureInspect 会在该尾部数据中查找已知的文件签名(ZIP、RAR、EXE、PDF 等)。 2. **LSB 随机性测试。** 真正的 LSB(最低有效位)隐写术会将位平面的统计分布扁平化,趋向于均匀的 50/50 分布。卡方风格的测试会将图像的实际 LSB 平面与该预期进行比较——自然照片噪点很少看起来如此均匀。同样的两个思路也适用于 16 位 PCM WAV 音频。 ## 扩展功能 - **添加 YARA 规则:** 将 `.yar` 文件放入 `rules/` 目录并更新 `modules/yara_scan.py` 中的 `RULES_PATH`,或者合并像 [Yara-Rules/rules](https://github.com/Yara-Rules/rules) 这样的公共规则集。 - **添加新的文件类型:** 编写一个返回字典的 `modules/_scan.py`,在 `cli.py` 的 `scan_file()` 中对其进行分发,并在 `core/risk_engine.py` 中添加其评分贡献。 - **批量扫描 / Web UI** 是自然的下一步——核心逻辑(`cli.py` 中的 `scan_file()`)已经与终端输出解耦,因此可以直接被 Flask/FastAPI 应用导入。 ## 将其部署到 GitHub 在 `secureinspect/` 文件夹内: ``` git init git add . git commit -m "Initial commit: SecureInspect offline file security & steganography analyzer" ``` 在 GitHub 上创建一个新的 **空** 仓库(不要包含 README/license/gitignore —— 我们已经有了这些),然后: ``` git branch -M main git remote add origin https://github.com//secureinspect.git git push -u origin main ``` 如果您使用 SSH 而不是 HTTPS: ``` git remote add origin git@github.com:/secureinspect.git ``` **推送之前:** 包含的 `.gitignore` 已经排除了 `venv/`、`reports/*`、`samples/*` 和 `__pycache__/`,因此您不会意外提交生成的报告、您的虚拟环境或测试恶意软件样本。如果您确实想为了演示目的而跟踪几个 *安全的* 示例文件,请使用 `git add -f` 单独添加它们,而不是删除忽略规则。 在 GitHub 上添加主题以提高可发现性:`cybersecurity`、`malware-analysis`、`steganography`、`dfir`、`python`、`static-analysis`、`yara`。 ## 免责声明 此工具用于教育和防御性安全目的:分析您拥有或被授权测试的文件。它不会执行或引爆任何文件 —— 所有分析都是静态的。风险评分是启发式的,并非法律或明确的恶意软件判定。
标签:DNS 反向解析, PE文件分析, Python, YARA, 云资产可视化, 安全分析工具, 无后门, 网络信息收集, 逆向工具, 隐写术检测, 静态恶意软件检测