alexhraber/flowhawk

GitHub: alexhraber/flowhawk

基于 eBPF/XDP 的高性能网络安全监控平台,结合机器学习实现亚微秒级延迟的实时威胁检测。

Stars: 74 | Forks: 10

# FlowHawk ``` ███████ ██ ██████ ██ ██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ █████ ██ ██ ██ ██ █ ██ ███████ ███████ ██ █ ██ █████ ██ ██ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ██ ███████ ██████ ███ ███ ██ ██ ██ ██ ███ ███ ██ ██ 🦅 eBPF-POWERED NETWORK SECURITY MONITOR 🦅 ``` ## 现代网络安全平台 **FlowHawk** 是一个**现代开源、基于 eBPF 的网络安全监控平台**,专为关键任务基础设施保护而设计。利用先进的内核空间数据包处理和机器学习威胁检测技术,FlowHawk 为网络流量模式和安全异常提供了无与伦比的可见性。 ### 核心技术栈 - **🔥 eBPF 内核集成**:全线速的零拷贝数据包处理 - **⚡ XDP 高性能路径**:亚微秒级延迟数据包分析 - **🧠 机器学习引擎**:自适应行为异常检测 - **🌐 跨平台兼容性**:通过容器化实现通用的 Unix 部署 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Go Version](https://img.shields.io/badge/go-1.23+-blue.svg) ![Platform](https://img.shields.io/badge/platform-Unix%20%7C%20macOS%20%7C%20Linux-green.svg) ![eBPF](https://img.shields.io/badge/eBPF-enabled-orange.svg) ## FlowHawk 的独特之处 **FlowHawk** 结合了**猎鹰的敏锐视力**和 **eBPF 闪电般的数据包处理能力**,提供无与伦比的网络安全监控。 ### 闪电般的速度 - **每秒处理 1000 万+ 个数据包**的能力 - 通过 XDP(快速数据路径)实现**亚微秒级延迟** - 直接在内核空间进行**零拷贝**数据包分析 ### 敏锐的检测 - **多引擎威胁检测**(基于规则 + 机器学习) - 具有自适应阈值的**实时异常评分** - 具有灵活模式匹配的**自定义规则引擎** ### 精准猎杀 - **端口扫描检测**(快速、隐蔽、水平) - **DDoS 攻击识别**(容量型 + 放大型) - **僵尸网络活动追踪**(C2 信标模式) - **数据渗出监控**(流量异常) ## 快速开始 ### 前置条件 - **基于 Unix 的操作系统**:Linux、macOS、FreeBSD 或其他 Unix 变体 - **容器化**:Docker 或兼容的容器运行时 - **Go 1.23+**(用于源码构建) - **eBPF 支持**:具有 eBPF 功能的现代内核(Linux 4.15+,或容器化部署) ### 猎杀开始 构建 FlowHawk ``` docker build -t flowhawk:latest . ``` ## 安全模式 FlowHawk 在两种独特的猎杀模式下运行: ### 🟢 **训练模式**(推荐) *适用于开发和演示* 以训练模式启动(安全、模拟数据)并访问鹰巢(仪表板) ``` docker run -d \ --name flowhawk \ -p 8080:8080 \ -e SKIP_ROOT_CHECK=1 \ flowhawk:latest open http://localhost:8080 ``` **训练模式特性:** - ✅ **安全**:无需系统权限 - ✅ **隔离**:不会影响主机系统 - ✅ **功能完整**:完整的 UI/API 测试 - ✅ **逼真**:动态模拟数据 - ⚠️ **受限**:无真实网络监控 ### 🔴 **猎杀模式** - ⚠️ **安全风险** ⚠️ 安全警告:请负责任地释放猎鹰!⚠️ ``` docker run -d \ --name flowhawk \ --privileged \ --user root \ -p 8080:8080 \ flowhawk:latest ``` **猎杀模式特性:** - ✅ **真实监控**:实际网络流量分析 - ✅ **完整 eBPF**:完整的高性能功能 - ⚠️ **高风险**:重大的安全隐患 - ⚠️ **特权级**:需要 root 和特权容器 ## 🔐 安全缓解措施 如果必须使用猎杀模式,请实施以下猎鹰训练措施: ### 最小权限 使用特定权限而不是 --privileged ``` docker run -d \ --name flowhawk \ --cap-add=BPF \ --cap-add=NET_ADMIN \ --cap-add=SYS_ADMIN \ --cap-drop=ALL \ --read-only \ --tmpfs /tmp \ --device=/dev/bpf \ -p 8080:8080 \ flowhawk:latest ``` ### 资源限制 限制猎鹰的“胃口” ``` docker run -d \ --name flowhawk \ --memory=512m \ --cpus=1.0 \ --pids-limit=100 \ # ... other security flags ``` ## ⚙️ 配置 ### 基础猎杀配置 ``` # 网络接口和 eBPF 设置 ebpf: xdp: interface: "eth0" mode: "native" # native, skb, hw enable: true tc: direction: "both" # ingress, egress, both enable: true # 监控参数 monitoring: sampling_rate: 1000 # 1 in N packets flow_timeout: 300s # Flow expiration max_flows: 1000000 # Memory limit # 威胁检测配置 threats: enable: true port_scan: enable: true threshold: 100 # connections per minute ddos: enable: true pps_threshold: 100000 # packets per second bps_threshold: 1000000000 # 1 Gbps # 警报配置 alerts: enable: true webhook_url: "https://hooks.slack.com/..." severity_threshold: "medium" # 仪表盘设置 dashboard: listen_addr: ":8080" enable_auth: false retention_days: 7 ``` ## 🎯 实战猎杀示例 ### 端口扫描检测 ``` # FlowHawk 瞬间发现扫描模式: 2024-01-15 10:30:15 THREAT: Port Scan from 192.168.1.100 - Pattern: Rapid scanning (127 ports in 30s) - Severity: High - Targets: 192.168.1.10 ``` ### DDoS 攻击检测 ``` # 检测到流量攻击: 2024-01-15 11:15:33 THREAT: DDoS Attack targeting 192.168.1.10 - Type: Distributed attack (1.2M PPS from 500 sources) - Severity: Critical - Protocol: UDP (DNS amplification) ``` ### ML 异常检测 ``` # 检测到行为异常: 2024-01-15 12:20:45 THREAT: ML Anomaly from 10.0.1.25 - Anomaly score: 4.7 (threshold: 2.5) - Pattern: Unusual packet sizes and timing - Confidence: 89% ``` ## 📊 性能指标 ### 猎杀统计 - **XDP 原生模式**:在现代硬件上达到 10M+ PPS - **内存使用**:<100MB 用户空间占用 - **CPU 开销**:在 1Gbps 持续流量下 <5% - **延迟**:<1μs 数据包处理时间 ### 可扩展性 - **流追踪**:100 万+ 并发流 - **威胁检测**:高达 10Gbps 的实时分析 - **仪表板**:1000+ 并发 WebSocket 连接 ## 🛠️ 开发 ### 开发者设置 FlowHawk 包含全面的 CI/CD 工作流和开发工具: 设置开发环境(包含 git hooks) ``` make dev-setup ``` 运行测试 ``` make test ``` 运行所有测试,包括集成测试 ``` make test-all ``` 运行带覆盖率的测试 ``` make test-coverage ``` 运行代码检查 ``` make lint ``` 格式化代码 ``` make format ``` ### Git 钩子 FlowHawk 包含自动执行以下操作的预提交钩子: - 使用 `gofmt` 格式化 Go 代码 - 运行 `go vet` 进行静态分析 - 使用 `golangci-lint` 执行代码检查 - 运行完整的测试套件 - 检查常见问题(调试语句、大文件) 设置 git hooks: 初始化 git 仓库(如果尚未完成) ``` git init ``` 设置 git hooks ``` ./scripts/setup-git-hooks.sh ``` 或使用 make 目标 ``` make dev-setup ``` ### CI/CD 工作流 FlowHawk 包含用于以下功能的 GitHub Actions 工作流: - **持续集成**(`.github/workflows/ci.yml`) - 多版本 Go 测试(1.23+) - 使用 golangci-lint 进行代码检查 - 使用 Gosec 和 Trivy 进行安全扫描 - 向 Codecov 报告代码覆盖率 - Docker 构建验证 - **发布管理**(`.github/workflows/release.yml`) - 多平台自动化二进制构建 - Docker 镜像发布到 GitHub Container Registry - 带校验和的 GitHub Releases - **依赖管理**(`.github/workflows/dependabot-automerge.yml`) - 通过 Dependabot 自动更新依赖项 - 测试后自动合并次要/补丁更新 ### 测试策略 FlowHawk 遵循全面的测试方法: - **单元测试**:位于 `tests/unit/`,包含特定于包的子目录 - **集成测试**:主要组件的端到端测试 - **基准测试**:关键路径的性能验证 - **安全测试**:漏洞扫描和安全编码验证 覆盖率目标: - 总体:80%+ 语句覆盖率 - 核心包:90%+ 语句覆盖率 - 关键安全组件:95%+ 语句覆盖率 ### 从源码构建 准备环境 ``` go mod download ``` 构建镜像 ``` go build -o flowhawk ./cmd/flowhawk ``` 释放猎鹰 ``` sudo ./flowhawk -config ./configs/development.yaml ``` ### 猎杀命令 显示版本 ``` flowhawk -version ``` 自定义接口 ``` flowhawk -interface eth1 ``` 自定义配置 ``` flowhawk -config /etc/flowhawk/config.yaml ``` ## 🌐 仪表板访问 **在浏览器中打开:http://localhost:8080** ### 功能: - **🔴 实时威胁源** - 实时安全警报 - **📊 网络流分析** - 流量模式和统计数据 - **⚡ 性能指标** - 系统健康监控 - **🎯 威胁时间线** - 历史攻击分析 - **🔍 流搜索** - 深入查看特定连接 ## 🦅 FlowHawk 理念 *"猎鹰不仅仅能看到移动——它能看到模式,预测行为,并精准出击。FlowHawk 将这种同样的掠食智能带入了网络安全领域。"* - **🎯 精准**:每个数据包都重要,每个威胁都被追踪 - **⚡ 速度**:在威胁立足之前发起打击 - **👁️ 视野**:从高处俯瞰整个网络景观 - **🧠 智能**:学习、适应并随时间改进 ## 🤝 贡献 我们欢迎各位猎手加入!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。 ### 开发路线图 - [ ] IPv6 支持 - [ ] 硬件时间戳 - [ ] GPU 加速的 ML 推理 - [ ] 多节点集群部署 - [ ] 用于警报的移动应用 ## 📄 许可证 本项目采用 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 - **eBPF 社区** - 感谢令人难以置信的 eBPF 生态系统 - **Cilium 项目** - 感谢优秀的 Go eBPF 库 - **Linux 内核开发者** - 感谢让 eBPF 成为可能 - **安全研究人员** - 感谢威胁情报和模式 ## 📞 支持与社区 - **🏠 主页**:[FlowHawk 文档](docs/) - **🐛 问题**:[GitHub Issues](https://github.com/alexhraber/flowhawk/issues) - **💬 讨论**:[GitHub Discussions](https://github.com/alexhraber/flowhawk/discussions) - **🔒 安全**:alexhraber@gmail.com **🦅 以猎鹰的精准和 eBPF 的力量构建** *明智猎杀。精准监控。迅速出击。*
标签:AMSI绕过, Apex, DDoS 防护, Docker镜像, EVTX分析, EVTX分析, Go 语言, IPS, IP 地址批量处理, Linux 安全, Python3.6, XDP, 人工智能, 僵尸网络检测, 内核态编程, 包处理, 威胁检测, 威胁检测与响应, 安全渗透, 实时分析, 开源安全工具, 异常检测, 插件系统, 日志审计, 机器学习, 用户模式Hook绕过, 端口扫描检测, 网络安全, 请求拦截, 逆向工程平台, 配置错误, 隐私保护, 零拷贝, 高性能计算