omobolajiadeyan/behaviorsense

GitHub: omobolajiadeyan/behaviorsense

BehaviorSense 是一个基于 Python 的本地行为异常检测引擎,通过对安全日志中的用户和 IP 进行统计分析与风险评分来实现内部威胁检测。

Stars: 0 | Forks: 0

# BehaviorSense BehaviorSense 是一个用于安全日志的本地行为异常检测器。它为用户和基于 IP 的实体构建画像,将其行为与整体基准进行比较,并对高认证失败率、多个源 IP、广泛的 endpoint 访问、大流量传输以及非工作时间活动等模式添加显式的安全信号加成。 它旨在进行可解释的分级评估,而非黑盒判定。其输出会显示风险评分、贡献信号、MITRE ATT&CK 风格的技术提示以及建议的分析师行动。 ## 开发动机 传统的基于规则的工具只能捕获已知的模式。BehaviorSense 专注于偏离基准的可疑行为: - 来自多个 IP 且有多次登录失败的用户 - 伴随广泛 endpoint 活动的非工作时间访问 - 异常的数据传输量 - 在统计学上与同类不同的实体行为 BehaviorSense 在本地运行,并且仅使用 Python 标准库。不会将任何日志数据发送到外部服务。 ## 外部审查人员须知 如果您正在评估此项目,请从这里开始: - [外部评估人员指南](docs/EVALUATOR_GUIDE.md) - 五分钟审查路径、预期结果和信任边界 - [示例输出](docs/SAMPLE_OUTPUT.md) - 内置 demo 应产生的结果 最快的安全 demo: ``` python3 detector.py sample_data/ --verbose python3 detector.py sample_data/ --output report.json ``` 内置示例有意包含了一个 `CRITICAL` 实体。当存在严重发现时,CLI 会 以退出代码 `2` 退出;这意味着检测生效了。 ## 功能 - 跨行为维度对用户和 IP 进行画像 - 针对观察到的群体进行 Z-score 偏差分析 - 针对分析师相关模式的安全信号加成 - 用于分类评估上下文的 MITRE ATT&CK 风格技术提示 - 针对可疑实体的建议下一步行动 - 支持 SSH 认证日志、Web 访问日志、CSV、JSON 和 NDJSON - 用于 SIEM/SOAR 移交或报告的 JSON 导出 - 零运行时依赖 - 经过单元测试的解析器、评分和 CLI 行为 ## 检测模型 BehaviorSense 结合了两层: 1. **群体偏差:** z-score 将每个实体与数据集基准进行比较。 2. **安全信号:** 确定性加成捕获已知的可疑组合,这些组合在小型数据集上可能会被 z-score 低估。 当前的安全信号: | 信号 | 触发条件 | |---|---| | `high_failure_rate` | 至少 50% 的失败事件且至少有 3 次失败 | | `many_source_ips` | 5 个或更多唯一的源 IP | | `broad_endpoint_access` | 5 个或更多唯一的 endpoint | | `large_data_volume` | 传输 5 MB 或更多数据 | | `high_event_volume` | 10 个或更多事件 | | `off_hours_activity` | 在 06:00 之前或 22:00 之后的平均活动 | 这是一个分类评估引擎。它可能会产生误报和漏报,尤其是在小型或合成数据集上。 ## 安装说明 ``` git clone https://github.com/omobolajiadeyan/behaviorsense.git cd behaviorsense python --version # Python 3.10+ required ``` 可选的本地安装: ``` python -m pip install . behaviorsense sample_data/ --verbose ``` ## 用法 ``` # 分析 sample data python detector.py sample_data/ # 显示完整 z-score、signal、technique 和 action 上下文 python detector.py sample_data/ --verbose # 显示风险最高的 10 个实体 python detector.py sample_data/ --top 10 # 仅显示 HIGH 和 CRITICAL 实体 python detector.py sample_data/ --threshold HIGH # 导出为 JSON python detector.py sample_data/ --output report.json # 分析 real logs python detector.py /var/log/auth.log python detector.py /var/log/nginx/ ``` 退出代码: - `0`:完成,未发现严重问题 - `1`:输入无效或运行时错误 - `2`:发现至少一个 `CRITICAL` 实体 ## 示例输出 ``` BEHAVIORSENSE REPORT ============================================================== Events analyzed : 23 Entities profiled : 5 CRITICAL : 1 HIGH : 0 MEDIUM : 0 NORMAL : 4 TOP 1 ENTITIES BY RISK SCORE #1 mallory [CRITICAL] Risk Score : 100.0% Events : 12 | Failed logins: 7 Unique IPs : 8 | Endpoints: 5 Data moved : 8,324,480 bytes Top anomaly : Failure Rate Security signals: - high failure rate: 7 failed events across 12 total events - many source ips: 8 unique source IPs - broad endpoint access: 5 unique endpoints - large data volume: 8,324,480 bytes transferred - high event volume: 12 events - off hours activity: average activity hour 2.0 Technique hints: - T1110 Brute Force - T1078 Valid Accounts - T1083 File and Directory Discovery - T1041 Exfiltration Over C2 Channel ``` ## JSON 导出 ``` python detector.py sample_data/ --output report.json ``` 导出的报告包含: - `total_events` - `total_entities` - 排序后的 `results` - 每个实体的 `z_scores` - 安全 `signals` - `technique_hints` - `recommended_actions` ## 架构 ``` behaviorsense/ ├── detector.py # CLI entrypoint and report renderer ├── parser.py # Log parsers and event normalization ├── profiler.py # Per-entity behavioral profiling ├── scorer.py # Z-score, security-signal, and risk ranking logic ├── sample_data/ │ └── activity.csv # Synthetic sample data with an anomalous entity ├── tests/ # Unit tests for parser, scoring, and CLI behavior └── .github/workflows/ # CI test workflow ``` ## 验证 ``` python -m unittest discover -s tests -v python detector.py sample_data/ --verbose ``` ## 路线图 - [ ] 采用时间窗口的基准,以检测慢速隐蔽型攻击 - [ ] 按部门、角色或服务账户类型进行同侪组比较 - [ ] 导出 Sigma 或检测规则,用于下游安全工具 - [ ] 具有置信度级别的更丰富的 MITRE ATT&CK 映射 - [ ] 从 JSON 输出生成的可选 dashboard 或 HTML 报告 - [ ] 在显式额外依赖项背后的可选 Isolation Forest 模式 ## 作者 **Omobolaji Adeyan** - 网络安全工程师 GitHub: https://github.com/omobolajiadeyan · Website: https://omobolajiadeyan.com ## 许可证 MIT 许可证。详见 [LICENSE](LICENSE)。
标签:Python, UEBA, 安全, 异常检测, 文档结构分析, 无后门, 超时处理, 逆向工具