nawal-1/steganography

GitHub: nawal-1/steganography

一个基于浏览器的 Docker 化工具,用于在本地检测图像中隐藏的 stegomalware 并输出详细报告。

Stars: 0 | Forks: 0

# Stegomalware Detection Toolkit 一个用于检测隐藏在数字图像(JPEG / PNG)中的 **stegomalware** 的基于浏览器的 Docker 化工具包。 **作者:** Nawal Ebnetaib Mohammed **模块:** COMP1682 — 格瑞尼治大学本科毕业论文 **仓库:** https://github.com/nawal-1/steganography ## 功能 上传 JPEG 或 PNG 图像,工具包会通过四个检测流水线进行处理,生成包含发现结果、推理依据和文献引用的可读报告。 | 流水线 | 检查内容 | |---|---| | **Identity & Type** | SHA-256 哈希 + 魔术字节验证文件类型 | | **Static** | 熵值、EXIF 合理性、LIEF 块遍历、字符串扫描、Binwalk、卡方 LSB | | **Dynamic** | VirusTotal 哈希查询(可选 — 需要免费 API 密钥) | | **Combined** | 将以上三者合并为单一判决 | 报告可导出为 **JSON**、**CSV** 和 **PDF**。未经明确同意,任何内容都不会离开您的设备。 ## 快速开始 **前提条件:** Docker 24+ 和 `docker compose` ``` git clone https://github.com/nawal-1/steganography.git cd steganography cp .env.example .env # add your VT_API_KEY if you have one make build make up # runs at http://localhost:8000 ``` 在浏览器中打开 http://localhost:8000 并拖放图像以进行扫描。 ``` make down # stop the container ``` ## VirusTotal(可选) 动态流水线默认关闭。要启用它,请在 `.env` 中添加您的免费 API 密钥: ``` echo 'VT_API_KEY=your_key_here' >> .env make down && make up ``` 默认情况下仅发送 **SHA-256 哈希** 到 VirusTotal。全文件上传需通过 UI 复选框获得明确同意。结果会缓存在本地 SQLite 中 — 重复扫描不会再次调用 API。免费层速率限制(4 请求/分钟,500 请求/天)会自动处理。 ## Make 命令 | 命令 | 描述 | |---|---| | `make build` | 构建 Docker 镜像 | | `make up` | 在 8000 端口启动容器 | | `make down` | 停止容器 | | `make logs` | 跟踪容器日志 | | `make shell` | 在容器内打开一个 shell | | `make test` | 运行测试套件 | | `make benchmark` | 运行完整基准测试(1,500 个良性图像 + 200 个嵌入图像) | | `make clean` | 移除容器和悬空的镜像 | | `make venv` | 创建本地 Python 3.11 虚拟环境 | | `make local` | 使用 uvicorn 在 8765 端口本地运行 | ## 测试 ``` make test # 或本地运行: .venv/bin/pytest backend/tests -v ``` ## 基准测试 ``` make benchmark ``` 将所有图像通过全部四个流水线处理,并将结果输出到 `benchmark_results/`: - `results.csv` - `detection_rate_by_pipeline.png` - `detection_rate_by_technique.png` - `ttfs_histogram.png` **目标:** 在嵌入测试集上达到 ≥80% 检测率 · 中位首次响应时间 <10 秒 ## 项目结构 ``` steganography/ ├── backend/ │ ├── app/ │ │ ├── main.py # FastAPI entry point │ │ ├── pipelines/ # identity, static, dynamic, combined │ │ ├── models/ # Finding and Report models │ │ ├── routes/ # scan, report, health endpoints │ │ └── utils/ # export (JSON/CSV/PDF), cache │ └── tests/ ├── frontend/ # Vanilla JS + HTML + CSS ├── datasets/ │ ├── benign/ # 1,500 ALASKA2 cover images │ ├── embedded/ # 200 stego images (4 techniques × 50) │ └── payloads/ # Inert placeholder payloads ├── scripts/ # Dataset builder + benchmark runner ├── docker/ ├── Dockerfile ├── docker-compose.yml └── Makefile ``` ## 数据集 - **`datasets/benign/`** — 来自 [ALASKA2 Kaggle 竞赛](https://www.kaggle.com/c/alaska2-image-steganalysis) 的 1,500 张 JPEG 图像。只读。 - **`datasets/embedded/`** — 使用四种技术生成的 200 张隐写图像:`lsb_stegano`、`exif_embed`、`appended_zip`、`png_custom_chunk`。地面真值存储在 `ground_truth.csv` 中。 - **`datasets/payloads/`** — 无害的占位文本和 ZIP 文件。切勿替换为真实恶意软件。 这是一个防御性、教育性工具。不处理真实恶意软件。 ## 技术栈 - **后端:** Python 3.11、FastAPI、Uvicorn - **检测:** LIEF、Binwalk、python-magic、Pillow、piexif、reportlab - **前端:** Vanilla JavaScript、HTML、CSS - **基础设施:** Docker、docker compose、GNU Make ## 许可证 课程项目 — 格瑞尼治大学。版权所有归作者所有。
标签:API 密钥管理, Ask搜索, Binwalk, Chi-square, CSV, DeepSeek, Docker, docker compose, EXIF, JPEG, JSON, JSONLines, LIEF, make build, NIDS, PDF, PNG, SHA-256, SQLite 缓存, Stegomalware, University of Greenwich, VirusTotal, 云安全监控, 前端上传, 哈希校验, 图像分析, 块遍历, 字符串扫描, 安全防御评估, 容器化, 开源安全工具, 数字取证, 数据可视化, 文件类型验证, 本地隐私, 毕业论文, 浏览器工具, 熵值分析, 端点安全, 自动化脚本, 补丁管理, 请求拦截, 逆向工程平台, 隐写术, 零信任, 静态分析