serasr/audit-log-risk-scoring

GitHub: serasr/audit-log-risk-scoring

Serasr/audit-log-risk-scoring是一款基于机器学习的用户活动日志风险分析系统。

Stars: 0 | Forks: 0

# 信任与安全风险分析系统 ## 用户活动日志中的统计调查与滥用模式检测 ![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue) ![scikit-learn](https://img.shields.io/badge/scikit--learn-1.3-orange) ![Azure DevOps](https://img.shields.io/badge/CI%2FCD-Azure%20DevOps-blue) ![许可证: MIT](https://img.shields.io/badge/license-MIT-green) ## 本项目做什么 复制信任与安全分析师用于调查用户活动日志中滥用行为的**端到端分析工作流程**: 1. **检测** - 统计异常值检测(Z分数)+ 机器学习辅助风险评分将事件的前2%呈现给分析师审查 2. **调查** - 群组比较、趋势分析和政策有效性测量量化滥用发生的方式和时间 3. **解释** - 每个标记的事件都包含一个简单语言解释(“标记原因:外部IP,非工作时间访问,角色权限超出”) 4. **报告** - 调查备忘录和标记账户CSV文件,可供政策、工程和领导层利益相关者共享 ## 问题陈述 安全和信任与安全团队面临一个核心分析挑战:在每天50K+事件的高量活动日志中识别恶意行为,没有分析师可以审查所有内容,滥用模式不断演变。 该系统使用**行为分析** - 理解每个用户的“正常”行为,以大规模呈现上下文异常活动。 ## 分析师工作流程 ``` Raw Event Logs (50K+ events · 90 days · 300 users) │ ▼ [1] Behavioural Feature Engineering - 23 signals Temporal · Velocity · Geographic · Role Deviation Session · User Baseline · Composite Risk Signal │ ▼ [2] Statistical Analysis Z-score outlier detection - fast first-pass filter Cohort comparison (t-test) - normal vs suspicious users Trend analysis - week-over-week abuse rate Policy effectiveness - before/after intervention │ ▼ [3] ML-Assisted Risk Scoring (supporting role) Isolation Forest ranks 50K events Analyst reviews top 2% - evaluated with Precision@K │ ▼ [4] Investigation Report Stakeholder memo · Flagged accounts CSV · Recommendations ``` ## 检测到的滥用模式 | 模式 | 关键信号 | 现实世界类似物 | |---------|-------------|---------------------| | **账户接管** | 新的外部IP + 非工作时间 + 敏感资源 | 被威胁行为者使用的受损害凭证 | | **凭证填充** | 来自旋转IP的快速登录失败爆发 | 自动化密码喷洒攻击 | | **数据泄露** | 从低权限角色大量导出 | 内部人员在辞职前复制数据 | | **权限提升** | 资源敏感性超出角色权限 | 用户访问超出授权的系统 | | **内部威胁** | 受信任的用户 + 非工作时间 + 不寻常的事件序列 | 员工窃取知识产权 | ## 统计方法 ### Z分数异常值检测 快速初步过滤 - 无需模型,立即可解释: ``` z_score = (bytes_transferred - mean) / std # 用户传输了189,916字节,与平均值1,017相比 = z = 5.2 → 标记 ``` ### 群组比较(Welch的t检验) 量化可疑用户与正常用户的不同: | 指标 | 正常平均值 | 可疑平均值 | 比率 | p值 | |--------|-------------|-----------------|-------|---------| | is_external_ip | 0.000 | 0.221 | 638.5x | <0.0001 | | bytes_transferred | 1,017 | 189,916 | 186.7x | <0.0001 | | login_failures_recent | 0.30 | 8.70 | 29x | 0.0003 | ### 政策有效性(双比例Z检验) 前后分析加统计显著性测试 - 回答“我们的干预措施实际上减少了滥用吗?” ### 趋势分析 每日滥用率与7天滚动平均值和周同比变化。 ## 结果 | 指标 | 分数 | |--------|-------| | ROC-AUC | **0.9998** | | 平均精度 | **0.9852** | | Precision@10 | **1.0** - 前10个标记的 = 10/10 真实滥用 | | Precision@50 | **1.0** - 前50个标记的 = 50/50 真实滥用 | | Precision@100 | **1.0** | | 召回率 | **1.0** | ## 样本调查备忘录输出 ``` ╔══════════════════════════════════════════════════════════════════╗ ║ TRUST & SAFETY · RISK INVESTIGATION MEMO ║ ╚══════════════════════════════════════════════════════════════════╝ EXECUTIVE SUMMARY Analysed 50,440 events across 300 accounts. Flagged 1,009 high-risk events (2.0%) affecting 88 unique accounts. ABUSE PATTERN BREAKDOWN credential_stuffing 222 events (22.0%) account_takeover 106 events (10.5%) insider_threat 45 events (4.5%) data_exfiltration 36 events (3.6%) KEY SIGNALS (p < 0.05) is_external_ip 638.5x above normal bytes_transferred 186.7x above normal login_failures_recent 29x above normal RECOMMENDATIONS 1. IMMEDIATE: Review top-50 flagged accounts 2. SHORT-TERM: Rate-limit login failures >10 in 60 seconds 3. MEDIUM-TERM: Tighten viewer/external role access controls ``` ## 样本标记账户输出 ``` user_id risk_score analyst_explanation user_0144 1.000 Flagged due to: external IP; off-hours activity; role clearance exceeded; large transfer (358,063 bytes) user_0130 0.996 Flagged due to: external IP; off-hours activity; first-time IP subnet user_0203 0.988 Flagged due to: large transfer (4,821,302 bytes); off-hours activity ``` ## 技术栈 | 组件 | 技术 | 目的 | |-----------|-----------|---------| | 特征工程 | Python, Pandas, NumPy | 23个行为信号 | | 统计分析 | SciPy(t检验,z检验) | 异常值检测,群组比较,政策测量 | | 机器学习风险评分 | Scikit-learn(隔离森林) | 优先排序分析师审查队列 | | 评估 | Scikit-learn指标 | Precision@K,ROC-AUC,平均精度 | | CI/CD | Azure DevOps | 每次提交自动运行 + 质量门控 | ## 项目结构 ``` AuditRiskScoring/ ├── run_pipeline.py # Entry point ├── data/simulate_logs.py # 50K events, 5 abuse patterns ├── features/feature_engineering.py # 23 behavioural signals ├── analysis/statistical_analysis.py # Z-scores, t-tests, trends, policy effectiveness ├── models/risk_scorer.py # Isolation Forest + Precision@K ├── reports/investigation_report.py # Stakeholder memo + flagged CSV └── azure-pipelines.yml # CI/CD with quality gate ``` ## 如何运行 ``` git clone https://dev.azure.com/AIML-DataAnalytics-Projects/_git/AuditRiskScoring cd AuditRiskScoring pip install -r requirements.txt python run_pipeline.py ``` **输出:** - `reports/investigation_memo.txt` - 利益相关者摘要 - `reports/flagged_accounts.csv` - 前100个标记事件及其解释 - `reports/daily_abuse_trend.csv` - 滥用率随时间变化 - `artifacts/metrics.json` - 模型评估指标 ## CI/CD(Azure DevOps) 每次提交到`master`自动: 1. 运行完整分析流程 2. **质量门控**:如果ROC-AUC < 0.75则构建失败 3. 发布模型工件和报告 ## 许可证 MIT
标签:Apex, Azure DevOps, MIT 许可, ROC-AUC, 代码示例, 凭证填充, 安全策略, 工程安全, 异常事件, 异常检测, 异常模式检测, 提示词设计, 数据分析, 机器学习, 用户活动日志, 用户行为分析, 精确率, 统计分析, 账户接管, 逆向工具, 领导力沟通, 风险分析