garrv105/sentinelnet

GitHub: garrv105/sentinelnet

这是一个生产级自适应网络威胁检测与自动响应工具包,通过实时数据包捕获、规则引擎和ML异常检测来识别威胁并自动封禁恶意IP。

Stars: 0 | Forks: 0

# SentinelNet [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6b757e8539190213.svg)](https://github.com/garrv105/sentinelnet/actions/workflows/ci.yml) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit) [![Docker](https://img.shields.io/badge/docker-ready-2496ED.svg)](docker/Dockerfile) **自适应网络威胁检测与自动响应工具包** SentinelNet 是一个生产级可部署的网络安全监控系统。它执行实时数据包捕获、重建双向流量、使用混合规则引擎和基于 ML 的异常检测器检测威胁,并通过阻止恶意 IP 进行自动响应——所有功能均通过安全的 REST API 和 WebSocket 流公开。 ## 演示 ![SentinelNet 终端演示](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/07f839ae4b190214.png) ## 功能 | 能力 | 详情 | |---|---| | **实时捕获** | 基于 Scapy 的任意接口混杂模式数据包捕获 | | **流量重构** | 双向 TCP/UDP 流量跟踪,包含 IAT、字节和标志统计 | | **规则引擎** | 基于签名的检测:端口扫描、SYN 泛洪、DNS 隧道、暴力破解 | | **异常检测** | 基于统计偏差评分的每 IP 行为画像 | | **自动响应** | iptables IP 封禁、事件记录、通过 EventBus 告警 | | **REST API** | 集成 JWT + API 密钥认证、速率限制和安全头的 FastAPI | | **WebSocket** | 面向仪表板 / SIEM 集成的实时事件流 | | **PCAP 加载器** | 将原始 `.pcap` / `.pcapng` 文件转换为带标签的流量特征数据集 | | **Docker** | 使用 `docker-compose up` 一键部署 | ## 架构 ``` Packets (eth0/any) │ ▼ PacketCaptureEngine ──► FlowTracker ──► FeatureExtractor │ ┌──────────────────────┤ ▼ ▼ RuleEngine AnomalyDetector │ │ └──────────┬───────────┘ ▼ EventBus │ ┌──────────┴───────────┐ ▼ ▼ ResponseManager REST API / WS (IPBlocker + Logger) (JWT auth + slowapi) ``` ## 快速开始 ### Docker(推荐) ``` git clone https://github.com/garrv105/sentinelnet.git cd sentinelnet docker-compose -f docker/docker-compose.yml up ``` ### 本地 ``` pip install -e ".[dev]" # 需要 root 权限进行实时数据包捕获 sudo python -m sentinelnet --interface eth0 --mode full --api-port 8080 # 无需 root 权限模拟流量(用于测试) python scripts/simulate_traffic.py ``` ## API 认证 ``` # 1. 获取 JWT token curl -X POST http://localhost:8080/auth/token \ -d "username=admin&password=changeme" # 2. 使用 token curl http://localhost:8080/api/v1/status \ -H "Authorization: Bearer " # 3. 或使用 API key(设置 SENTINELNET_API_KEYS 环境变量) curl http://localhost:8080/api/v1/incidents \ -H "X-API-Key: your-key-here" ``` API 文档可在 `http://localhost:8080/docs`(Swagger UI)获取。 ## PCAP 数据集加载器 将任意 PCAP 捕获转换为带标签的流量特征数据集: ``` from sentinelnet.data.pcap_loader import extract_flows_from_pcap, load_pcap_directory # 单个文件 df = extract_flows_from_pcap("capture.pcap", label="NORMAL", output_csv="flows.csv") # 批量目录(按文件名自动标注) df = load_pcap_directory( "/data/pcaps/", label_map={"normal": "NORMAL", "dos": "DoS", "scan": "PortScan"}, output_csv="labeled_flows.csv", ) ``` 支持 CICFlowMeter CSV 输出、原始 PCAP/PCAPNG 以及 CAIDA / CTU-13 / UNSW-NB15 数据集格式。 ## 测试 ``` pip install -e ".[dev]" pytest tests/ -v --cov=sentinelnet ``` 测试覆盖:PacketCaptureEngine、FlowTracker、RuleEngine、AnomalyDetector、EventBus、ResponseManager —— 40 多个测试用例。 ## CI/CD 流水线 每次推送和 PR 时运行五作业 GitHub Actions 工作流: | 作业 | 描述 | |---|---| | **Lint** | ruff + black + isort | | **Test** | Python 3.10 / 3.11 / 3.12 上的 pytest,含覆盖率 | | **Security** | bandit 静态分析 + pip-audit | | **Docker** | 构建镜像,验证层 | | **Release** | 在 `main` 分支构建 wheel 工件 | ## 配置 所有设置位于 `config/sentinelnet.yaml` 和环境变量中: ``` SENTINELNET_JWT_SECRET= SENTINELNET_ADMIN_PASS_HASH= SENTINELNET_API_KEYS=key1,key2 SENTINELNET_CORS_ORIGINS=https://yourdomain.com ``` ## 安全说明 SentinelNet 需要 root/CAP_NET_RAW 权限进行实时数据包捕获。API 服务器本身以非特权模式运行。对于生产部署,通过 `sudo` 或 Linux capabilities 运行捕获组件,并将 API 服务器置于反向代理(nginx/Caddy)后方。 ## 许可证 MIT —— 见 [LICENSE](LICENSE) *作为生产级网络安全作品集的一部分构建。是与 [XAI-IDS](https://github.com/garrv105/xai-ids) 和 [PQC-Analyzer](https://github.com/garrv105/pqc-analyzer) 配套的三项目套件之一。*
标签:AMSI绕过, API安全, AV绕过, FastAPI, IP封禁, JSON输出, JWT认证, PCAP分析, Rate Limiting, Scapy, SIEM集成, TCP/UDP流跟踪, WebSocket, 依赖分析, 威胁情报, 威胁检测, 安全规则引擎, 安全运营, 实时流量监控, 开发者工具, 扫描框架, 机器学习安全应用, 网络安全, 网络异常检测, 网络流量重构, 自动化响应, 请求拦截, 逆向工具, 防火墙联动, 隐私保护