L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

investigating-insider-threat-indicators

investigating-insider-threat-indicators

调查内部威胁(Insider Threat)指标,包括数据渗漏(Data Exfiltration)尝试、未授权访问模式、 策略违规和离职前行为,结合 SIEM 分析、DLP 告警和 HR 数据关联进行调查。 适用于 SOC 团队收到 HR 内部威胁转介、检测到员工异常数据移动, 或需要为潜在内部威胁建立调查时间线时。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: investigating-insider-threat-indicators description: > 调查内部威胁(Insider Threat)指标,包括数据渗漏(Data Exfiltration)尝试、未授权访问模式、 策略违规和离职前行为,结合 SIEM 分析、DLP 告警和 HR 数据关联进行调查。 适用于 SOC 团队收到 HR 内部威胁转介、检测到员工异常数据移动, 或需要为潜在内部威胁建立调查时间线时。 domain: cybersecurity subdomain: soc-operations tags: [soc, insider-threat, data-exfiltration, dlp, ueba, investigation, hr-correlation] version: "1.0" author: mahipal license: Apache-2.0

调查内部威胁指标

适用场景

以下情况使用本技能:

  • HR 在离职员工的通知期内转介监控
  • DLP 告警显示批量数据下载或传输到个人存储
  • UEBA(用户和实体行为分析)检测到与同类员工基线显著偏离的异常访问模式
  • 管理层报告员工在职责范围之外访问敏感数据

不适用于未获得适当法律授权的情况——内部威胁调查必须在监控开始前与 HR、法务和隐私团队协调。

前置条件

  • 法律授权和记录调查理由的 HR 转介
  • 配置了 DLP、终端、邮件、代理和认证日志源的 SIEM
  • 数据丢失防护(DLP)系统(Microsoft Purview、Symantec、Forcepoint),含策略告警
  • 终端监控能力(带 USB/可移动媒体日志的 EDR)
  • 提供就业状态、通知日期和访问权限的 HR 数据源
  • 用于证据保全的监管链程序

工作流程

步骤 1:确立调查范围和法律授权

开始任何监控前,确保获得适当授权:

内部威胁调查授权
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
案例 ID:          IT-2024-0089
调查对象:         [员工姓名] — [部门]
授权人:           [CISO / 总法律顾问]
转介来源:         HR — 员工提交辞职,两周通知期
理由:             员工可访问商业机密和客户 PII
范围:             邮件、文件访问、USB、云存储、打印
持续时间:         2024-03-15 至 2024-03-29(通知期)
隐私审查:         已完成——符合可接受使用策略

步骤 2:从 SIEM 构建活动时间线

查询调查对象的综合活动:

index=* (user="jsmith" OR src_user="jsmith" OR sender="jsmith@company.com"
         OR SubjectUserName="jsmith")
earliest="2024-03-01" latest=now
| eval event_category = case(
    sourcetype LIKE "%dlp%", "DLP",
    sourcetype LIKE "%proxy%", "Web 访问",
    sourcetype LIKE "%email%", "邮件",
    sourcetype LIKE "%WinEventLog%", "终端",
    sourcetype LIKE "%o365%", "云",
    sourcetype LIKE "%vpn%", "VPN",
    sourcetype LIKE "%badge%", "物理访问",
    1=1, sourcetype
  )
| stats count by event_category, sourcetype, _time
| timechart span=1d count by event_category

步骤 3:检测数据渗漏指标

批量文件下载(SharePoint/OneDrive):

index=o365 sourcetype="o365:management:activity" Operation IN ("FileDownloaded", "FileSynced")
UserId="jsmith@company.com" earliest=-30d
| stats count AS downloads, sum(eval(if(isnotnull(FileSize), FileSize, 0))) AS total_bytes,
        dc(SourceFileName) AS unique_files
  by UserId, SiteUrl, _time
| bin _time span=1d
| eval total_gb = round(total_bytes / 1073741824, 2)
| where downloads > 50 OR total_gb > 1
| sort - total_gb

USB/可移动媒体使用:

index=sysmon EventCode=1 Computer="WORKSTATION-JSMITH"
(CommandLine="*removable*" OR CommandLine="*usb*"
 OR Image="*\\xcopy*" OR Image="*\\robocopy*")
| table _time, Computer, User, Image, CommandLine
| append [
    search index=endpoint sourcetype="endpoint:device_connect"
    user="jsmith" device_type="removable"
    | table _time, user, device_name, device_serial, action
  ]
| sort _time

基于邮件的渗漏:

index=email sourcetype="o365:messageTrace"
SenderAddress="jsmith@company.com"
| eval is_external = if(match(RecipientAddress, "@company\.comquot;), 0, 1)
| eval has_attachment = if(isnotnull(AttachmentName), 1, 0)
| stats count AS total_emails,
        sum(is_external) AS external_emails,
        sum(has_attachment) AS with_attachments,
        sum(eval(if(is_external=1 AND has_attachment=1, 1, 0))) AS external_with_attach,
        sum(Size) AS total_size_bytes
  by SenderAddress
| eval external_attach_pct = round(external_with_attach / total_emails * 100, 1)
| eval total_size_mb = round(total_size_bytes / 1048576, 1)

云存储上传检测:

index=proxy user="jsmith"
(dest IN ("*dropbox.com", "*drive.google.com", "*onedrive.live.com",
          "*box.com", "*wetransfer.com", "*mega.nz")
 OR category="cloud-storage")
http_method=POST
| stats count AS uploads, sum(bytes_out) AS total_uploaded
  by user, dest, category
| eval uploaded_mb = round(total_uploaded / 1048576, 1)
| sort - uploaded_mb

步骤 4:分析访问模式异常

访问正常职责范围之外的敏感系统:

index=auth user="jsmith" action=success earliest=-30d
| stats dc(app) AS unique_apps, values(app) AS apps_accessed by user
| join user type=left [
    | inputlookup role_app_mapping.csv
    | search role="Financial Analyst"
    | stats values(authorized_app) AS authorized_apps by role
    | eval user="jsmith"
  ]
| eval unauthorized = mvfilter(NOT match(apps_accessed, mvjoin(authorized_apps, "|")))
| where isnotnull(unauthorized)
| table user, unauthorized, authorized_apps

下班时间和周末活动:

index=* user="jsmith" earliest=-30d
| eval hour = tonumber(strftime(_time, "%H"))
| eval is_offhours = if(hour < 7 OR hour > 19, 1, 0)
| eval day = strftime(_time, "%A")
| eval is_weekend = if(day IN ("Saturday", "Sunday"), 1, 0)
| stats count AS total, sum(is_offhours) AS offhours, sum(is_weekend) AS weekend by user
| eval offhours_pct = round(offhours / total * 100, 1)
| eval weekend_pct = round(weekend / total * 100, 1)

步骤 5:与 HR 和物理安全数据关联

将活动与辞职时间线进行比较:

| makeresults
| eval user="jsmith",
       resignation_date="2024-03-15",
       last_day="2024-03-29",
       access_revocation="2024-03-29 17:00"
| join user [
    search index=* user="jsmith" earliest=-90d
    | bin _time span=1d
    | stats count AS daily_events, dc(sourcetype) AS data_sources by user, _time
  ]
| eval phase = case(
    _time < relative_time(now(), "-30d"), "正常(辞职前)",
    _time >= strptime(resignation_date, "%Y-%m-%d") AND _time <= strptime(last_day, "%Y-%m-%d"),
      "通知期",
    1=1, "过渡期"
  )
| chart avg(daily_events) AS avg_events by phase

门禁/物理访问关联:

index=badge_access employee_id="jsmith" earliest=-30d
| stats count AS badge_events, values(door_name) AS doors_accessed,
        earliest(_time) AS first_badge, latest(_time) AS last_badge by employee_id
| eval areas = mvcount(doors_accessed)

步骤 6:保全证据并记录发现

维护所有收集证据的监管链:

import hashlib
import json
from datetime import datetime

evidence_log = {
    "case_id": "IT-2024-0089",
    "investigator": "soc_analyst_tier2",
    "collection_time": datetime.utcnow().isoformat(),
    "items": [
        {
            "item_id": "EV-001",
            "description": "Splunk 导出——所有用户活动 2024-03-01 至 2024-03-15",
            "file": "jsmith_activity_export.csv",
            "sha256": hashlib.sha256(open("jsmith_activity_export.csv", "rb").read()).hexdigest(),
            "collected_by": "analyst_doe",
            "collection_method": "Splunk 搜索导出"
        },
        {
            "item_id": "EV-002",
            "description": "DLP 告警详情——47 次策略违规",
            "file": "dlp_alerts_jsmith.json",
            "sha256": hashlib.sha256(open("dlp_alerts_jsmith.json", "rb").read()).hexdigest(),
            "collected_by": "analyst_doe",
            "collection_method": "Microsoft Purview 导出"
        }
    ]
}

with open(f"evidence_log_{evidence_log['case_id']}.json", "w") as f:
    json.dump(evidence_log, f, indent=2)

核心概念

术语定义
内部威胁(Insider Threat)拥有合法访问权限的个人出于未授权目的滥用该权限带来的风险
数据渗漏(Data Exfiltration)通过邮件、USB、云或其他渠道将数据未经授权地传输到组织外部
DLP数据丢失防护(Data Loss Prevention)——根据内容策略监控和阻止未授权数据传输的技术
通知期监控(Notice Period Monitoring)在员工辞职到离职期间对其进行的强化监控
监管链(Chain of Custody)确保取证完整性的文档化证据处理程序,用于潜在的法律诉讼
知悉必要原则违规(Need-to-Know Violation)访问超出员工职责或当前任务所需的信息或系统

工具与系统

  • Microsoft Purview(前身为 DLP):数据分类和丢失防护平台,监控终端、邮件和云存储
  • Splunk UBA:用户行为分析,通过基于 ML 的异常检测识别内部威胁模式
  • Forcepoint Insider Threat:专用内部威胁检测平台,含行为指标和风险评分
  • DTEX InTERCEPT:基于终端的内部威胁检测,专注于用户活动元数据收集
  • Code42 Incydr:数据风险检测平台,专注于跨终端和云的文件渗漏监控

常见场景

  • 离职员工:在两周通知期内批量下载客户列表和产品路线图
  • 不满员工:在负面绩效评估后,员工访问其职责范围之外的高管薪酬数据
  • 承包商越权:外部顾问访问合同范围之外的系统,下载源代码
  • 账号滥用:员工将凭据共享给未授权第三方用于竞争情报收集
  • 蓄意破坏指标:IT 管理员在离职前创建后门账号并修改系统配置

输出格式

内部威胁调查报告 — IT-2024-0089
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
对象:        jsmith(金融分析师,财务部)
期间:        2024-03-01 至 2024-03-15
状态:        员工于 2024-03-15 辞职,最后工作日 2024-03-29

主要发现:
  [高]   从 SharePoint 下载 3,847 个文件(12.4 GB)——同类平均值的 10 倍
  [高]   通知期内连接 USB 设备 14 次(上月 0 次)
  [高]   向个人 Gmail 发送 187 封带附件邮件
  [中]   通知期内下班时间活动增加 340%
  [中]   访问 HR 薪酬数据库 3 次(超出职责范围)

时间线:
  3 月 01-14 日:正常活动基线(平均每天 150 个事件)
  3 月 15 日:提交辞职(活动激增至 890 个事件)
  3 月 16-17 日:周末访问——2,100 次 SharePoint 下载
  3 月 18 日:首次连接 USB 设备,触发 DLP 告警

已收集证据:  4 项(SHA-256 已验证,监管链已记录)
建议:         建议立即撤销访问权限
               证据包已准备好供法务审查
Skills enregistrées