Files
wecom_it_smart_desk/docs/08-安全审计/审计报告-安全审计/04-威胁检测方案报告-20260714.md
T

10 KiB

IT智能服务台 — 威胁检测方案报告

编制日期: 2026-07-14 版本: v2.0 (修订版) 角色: 威胁检测工程师 目标: 建立威胁监控体系,及时发现和应对安全攻击


1. 认证机制与威胁模型更新

1.1 当前认证方式

登录方式 状态 暴力破解可行性
企微OAuth2 使用中 企微保障
企微扫码 使用中 企微保障
账号密码登录 已废弃 不适用

结论: 由于没有密码入口,暴力破解检测不适用于本系统。攻击者需先攻克企微才能访问本系统。

1.2 真实威胁向量

威胁 ATT&CK 描述 优先级
T1078 有效账户滥用 员工Token/账号被窃取后在非授权环境使用 P0
T1552 非安全凭据访问 Token泄露、被复用 P0
T1068 越权访问 低权限用户访问高权限资源 P1
T1041 数据外传 批量导出敏感数据 P1
内部威胁 权限滥用 管理员非工作时间敏感操作 P1

2. MITRE ATT&CK 覆盖评估

2.1 当前检测能力

覆盖等级 定义 占比
Level 0 无覆盖 80%
Level 1 日志记录 (已实现) 15%
Level 2 告警检测 5%
Level 3 威胁狩猎 0%

2.2 重点检测方向

基于真实威胁向量,优先覆盖:

技术ID 技术名称 检测策略
T1078 有效账户 Token异常使用检测
T1552 非安全凭据 Token多IP使用检测
T1068 越权访问 RBAC拒绝日志分析
T1041 数据外传 批量导出监控
T1056 权限滥用 管理员异常操作

3. 检测方案设计

3.1 架构

┌─────────────────────────────────────────────────────────────┐
│                      数据采集层                               │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐        │
│  │审计日志  │ │登录日志  │ │RBAC日志 │ │API日志   │        │
│  └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘        │
└───────┼───────────┼───────────┼───────────┼────────────────┘
        │           │           │           │
        ▼           ▼           ▼           ▼
┌─────────────────────────────────────────────────────────────┐
│                      规则检测层                             │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐    │
│  │Token异常检测  │ │越权访问检测  │ │数据导出监控  │    │
│  │(T1078/T1552)│ │(T1068)      │ │(T1041)      │    │
│  └──────────────┘ └──────────────┘ └──────────────┘    │
└─────────────────────────────────────────────────────────────┘
        │
        ▼
┌─────────────────────────────────────────────────────────────┐
│                      响应处置层                             │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────┐      │
│  │告警通知      │ │会话封禁     │ │工单创建     │      │
│  │(企微机器人)  │ │(Redis)     │ │(ITSM)      │      │
│  └──────────────┘ └──────────────┘ └──────────────┘      │
└─────────────────────────────────────────────────────────────┘

3.2 核心检测规则

规则1: Token异常使用 (T1078/T1552)

id: itdesk-T1078-001
title: 凭证异常 - Token多IP使用
level: high
description: |
  检测同一Token在短时间内被多个不同IP使用,可能是Token泄露或中间人攻击。
mitre: T1078, T1552
condition: |
  同一 token_hash
  不同 ip_address >= 3
  时间窗口: 1小时
action: |
  1. 标记为可疑
  2. 发送企微告警
  3. 可选: 自动 invalidate token

规则2: 越权访问检测 (T1068)

id: itdesk-T1068-001
title: 权限提升 - 越权访问
level: critical
description: |
  检测低权限用户尝试访问高权限资源,可能是权限提升攻击。
mitre: T1068
condition: |
  RBAC拒绝事件
  同一用户 >= 3次/10分钟
action: |
  1. 标记为可疑
  2. 发送企微告警
  3. 暂停用户账户

规则3: 批量数据导出 (T1041)

id: itdesk-T1041-001
title: 数据泄露 - 批量导出
level: high
description: |
  检测大量数据导出操作,可能是数据外传前兆。
mitre: T1041
condition: |
  action = 'data_export'
  导出记录数 > 1000 或 导出大小 > 100MB
action: |
  1. 标记为可疑
  2. 发送企微告警
  3. 需要MFA二次确认

规则4: 管理员异常操作 (内部威胁)

id: itdesk-insider-001
title: 内部威胁 - 管理员异常操作
level: high
description: |
  检测管理员在非工作时间执行敏感操作。
mitre: T1056
condition: |
  管理员角色
  敏感操作 (role_change/config_change/account_disable)
  时间不在 08:00-22:00
action: |
  1. 发送企微告警
  2. 记录详细审计日志
  3. 需要OTP二次确认

规则5: 外部API滥用 (T1071)

id: itdesk-T1071-001
title: 外部服务异常 - Dify API高错误率
level: medium
description: |
  检测Dify AI服务的异常调用模式。
mitre: T1071
condition: |
  Dify API
  错误率 > 30% 或 响应时间 > 30秒
action: |
  1. 切换备用通道
  2. 发送告警

4. 数据源清单

数据源 表/日志 检测用途
审计日志 audit_logs 管理员操作、权限变更
登录日志 login_logs 登录来源分析
RBAC日志 access_denied事件 越权访问
应用日志 JSON logs API调用统计
Redis token相关 Token实时监控

5. 实施路线图

阶段1: 核心检测 (2周)

任务 产出
Token多IP检测 告警 + 自动封禁
越权访问检测 实时告警
批量导出监控 告警 + 审批流程

阶段2: 增强检测 (4周)

任务 产出
管理员异常行为 非工作时间告警
外部API监控 Dify/企微API健康度
告警渠道 企微机器人webhook

阶段3: 高级能力 (持续)

任务 产出
用户行为基线 异常行为检测
威胁情报 IOC匹配
SOAR剧本 自动响应

6. 快速部署方案

6.1 立即可执行

基于现有 audit_logs 表,增加定时分析任务:

# 每日管理员操作分析
async def analyze_admin_operations():
    """检测非工作时间敏感操作"""
    query = """
        SELECT employee_id, action, ip_address, created_at
        FROM audit_logs
        WHERE action IN ('role_change', 'config_change', 'account_disable')
        AND EXTRACT(HOUR FROM created_at) NOT BETWEEN 8 AND 22
    """
    # 发送报告给安全管理员

6.2 Token监控

token_service.py 中增加埋点:

async def on_token_used(token_hash: str, ip: str):
    """记录Token使用IP,用于异常检测"""
    redis = await get_redis()
    key = f"token_ip:{token_hash}"

    # 记录使用的IP集合
    await redis.sadd(key, ip)
    await redis.expire(key, 3600)  # 1小时窗口

    # 检查是否多IP使用
    ip_count = await redis.scard(key)
    if ip_count >= 3:
        await send_alert(f"Token异常: {token_hash} 使用了 {ip_count} 个IP")

8. 实施进度 (2026-07-14)

已完成

任务 完成时间 状态
Token IP记录功能 2026-07-14 已实现
Token异常检测定时任务 2026-07-14 已实现
get_current_user IP记录集成 2026-07-14 已实现
单元测试 2026-07-14 7/7 通过

📝 产出物

文件 路径
检测任务 backend/app/tasks/token_anomaly_detection.py
Token服务扩展 backend/app/services/token_service.py (新增方法)
认证集成 backend/app/dependencies/__init__.py (IP记录)
单元测试 backend/tests/test_token_anomaly.py

📋 待完成

任务 优先级 备注
集成测试 P2 需要测试环境
生产部署 P1 需配置webhook
告警阈值调优 P2 根据实际告警调整

7. 总结

7.1 核心结论

维度 评分
身份认证 企微OAuth + OTP
访问控制 RBAC
威胁检测 建设中

7.2 优先行动

  1. 已完成: Token多IP使用检测
  2. 1周内: 批量导出监控
  3. 2周内: 管理员异常操作告警

附录

A. 现有安全组件

组件 位置
审计日志 app/models/audit_log.py
登录日志 app/models/login_log.py
MFA服务 app/services/mfa_service.py
IP白名单 app/middleware/admin_ip_whitelist.py
速率限制 app/main.py (slowapi)

B. 告警级别定义

级别 触发条件 响应时间
P0 越权访问 / 批量导出 < 5分钟
P1 Token异常 / 管理员异常 < 15分钟
P2 API异常 / 非敏感操作 < 1小时

编制人: 威胁检测工程师 审核人: 待定 下次评估: 2026-10-14