# Containing Active Security Breach

> 通过隔离受攻陷系统、阻断攻击者通信并保全证据，同时最大程度减少业务中断，快速遏制活跃安全攻陷。

- Skill: `killvxk/containing-active-security-breach` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/containing-active-security-breach`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/containing-active-security-breach/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/containing-active-security-breach

---


# 遏制活跃安全攻陷（Containing an Active Security Breach）

## 适用场景

- 在网络或系统上检测到活跃的未授权访问
- IDS/IPS 告警显示正在进行的漏洞利用或数据外泄
- SOC 分析员确认需要立即遏制的真实安全事件
- 实时观察到横向移动或权限提升
- 在完全部署前检测到勒索软件加密活动

## 前置条件

- 具有明确遏制流程的事件响应计划
- 对防火墙、交换机和端点管理控制台的网络访问权限
- 跨端点部署的 EDR/XDR 平台（CrowdStrike、SentinelOne、Microsoft Defender for Endpoint）
- 具有实时日志关联的 SIEM 访问权限（Splunk、Elastic、QRadar）
- 预先批准的系统隔离授权（记录在 IR 计划中）
- 已准备好取证镜像工具用于证据保全

## 工作流程

### 步骤 1：验证并分类事件

```bash
# 在 SIEM 中检查关联告警 - Splunk 示例
index=security sourcetype=ids_alerts severity=critical
| stats count by src_ip, dest_ip, signature
| where count > 5
| sort -count

# 通过 CrowdStrike Falcon API 验证端点告警
curl -X GET "https://api.crowdstrike.com/detects/queries/detects/v1?filter=status:'new'+max_severity_displayname:'Critical'" \
  -H "Authorization: Bearer $FALCON_TOKEN"
```

### 步骤 2：识别攻陷范围

```bash
# 识别所有与攻击者 C2 通信的系统
# 使用 Zeek 连接日志
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p duration orig_bytes resp_bytes \
  | awk '$3 == 443 && $5 > 1000000' | sort -t$'\t' -k5 -rn | head -20

# 检查 Windows 事件日志中的横向移动
wevtutil qe Security /q:"*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']='3']]" /f:text /c:50

# 查询 Active Directory 中最近的认证异常
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625} -MaxEvents 100 |
  Group-Object -Property {$_.Properties[5].Value} | Sort-Object Count -Descending
```

### 步骤 3：执行网络遏制

```bash
# 在边界防火墙阻断攻击者 IP（Palo Alto 示例）
set cli pager off
configure
set rulebase security rules emergency-block from any to any source [attacker_ip] action deny
set rulebase security rules emergency-block from any to any destination [attacker_ip] action deny
commit force

# 在交换机层面隔离受攻陷 VLAN（Cisco）
configure terminal
interface vlan 100
  shutdown
end
write memory

# 在 DNS 层面阻断 C2 域名
# 添加到 DNS Sinkhole 或 RPZ
echo "attacker-c2-domain.com CNAME ." >> /etc/bind/rpz.local
rndc reload
```

### 步骤 4：隔离受攻陷端点

```bash
# CrowdStrike - 通过 API 对主机进行网络遏制
curl -X POST "https://api.crowdstrike.com/devices/entities/devices-actions/v2?action_name=contain" \
  -H "Authorization: Bearer $FALCON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ids": ["device_id_1", "device_id_2"]}'

# Microsoft Defender for Endpoint - 隔离计算机
curl -X POST "https://api.securitycenter.microsoft.com/api/machines/{machineId}/isolate" \
  -H "Authorization: Bearer $MDE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Comment": "IR-2024-001: 活跃攻陷遏制", "IsolationType": "Full"}'

# SentinelOne - 断开网络连接
curl -X POST "https://usea1.sentinelone.net/web/api/v2.1/agents/actions/disconnect" \
  -H "Authorization: ApiToken $S1_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filter": {"ids": ["agent_id"]}, "data": {}}'
```

### 步骤 5：完全隔离前保全易失性证据

```bash
# 从受攻陷 Windows 主机采集实时内存
winpmem_mini_x64.exe memdump_hostname_$(date +%Y%m%d).raw

# 采集网络连接和运行中的进程
netstat -anob > netstat_capture_$(date +%Y%m%d_%H%M).txt
tasklist /V /FO CSV > process_list_$(date +%Y%m%d_%H%M).csv
wmic process list full > process_detail_$(date +%Y%m%d_%H%M).txt

# Linux 易失性证据采集
dd if=/proc/kcore of=/mnt/forensics/memory_$(hostname)_$(date +%Y%m%d).raw bs=1M
ss -tulnp > /mnt/forensics/network_$(hostname).txt
ps auxwwf > /mnt/forensics/processes_$(hostname).txt
```

### 步骤 6：禁用受攻陷账号

```bash
# 禁用受攻陷的 Active Directory 账号
Import-Module ActiveDirectory
Disable-ADAccount -Identity "compromised_user"
Set-ADUser -Identity "compromised_user" -Description "已禁用 - IR-2024-001 $(Get-Date)"

# 撤销所有活跃会话
Revoke-AzureADUserAllRefreshToken -ObjectId "user_object_id"

# 重置服务账号凭据
Set-ADAccountPassword -Identity "svc_compromised" -Reset -NewPassword (ConvertTo-SecureString "TempP@ss$(Get-Random)" -AsPlainText -Force)
```

### 步骤 7：验证遏制有效性

```bash
# 验证没有活跃的 C2 通信
tcpdump -i eth0 host attacker_ip -c 100 -w verification_capture.pcap

# 检查新的横向移动尝试
index=security sourcetype=wineventlog EventCode=4624 LogonType=3
  earliest=-15m
| stats count by src_ip, dest_ip
| where src_ip IN ("compromised_hosts")

# 验证端点隔离状态
curl -X GET "https://api.crowdstrike.com/devices/entities/devices/v2?ids=device_id" \
  -H "Authorization: Bearer $FALCON_TOKEN" | jq '.resources[].status'
```

## 核心概念

| 概念 | 说明 |
|------|------|
| **短期遏制（Short-term Containment）** | 阻止活跃损害的即时措施（网络隔离、账号禁用） |
| **长期遏制（Long-term Containment）** | 在调查继续进行时的可持续措施（VLAN 分段、增强监控） |
| **证据保全（Evidence Preservation）** | 在遏制措施销毁取证产物之前采集易失性数据 |
| **爆炸半径（Blast Radius）** | 攻陷影响的系统、账号和数据的总范围 |
| **遏制边界（Containment Boundary）** | 为防止进一步传播而建立的网络和逻辑边界 |
| **杀伤链中断（Kill Chain Disruption）** | 在尽可能早的阶段打断攻击者的操作链 |
| **业务连续性（Business Continuity）** | 在遏制威胁的同时维持关键运营 |

## 工具与系统

| 工具 | 用途 |
|------|------|
| CrowdStrike Falcon | 端点检测、主机网络遏制 |
| Microsoft Defender for Endpoint | 端点隔离和自动调查 |
| Palo Alto NGFW | 用于 IP/域名阻断的边界防火墙规则 |
| Splunk/Elastic SIEM | 实时告警关联和范围分析 |
| Zeek（Bro） | 用于 C2 识别的网络流量分析 |
| Velociraptor | 远程取证采集和端点查询 |
| Active Directory | 账号管理和认证控制 |

## 常见场景

1. **勒索软件加密前**：攻击者已部署勒索软件二进制文件但加密尚未开始。隔离零号病人、阻断 C2 并防止横向部署。
2. **活跃数据外泄**：数据正在向外部服务器外泄。阻断到 C2 的出口流量、采集网络证据、隔离受影响系统。
3. **域控制器受攻陷**：攻击者拥有 DC 访问权限。将 DC 从网络隔离、两次重置 KRBTGT、轮换所有特权凭据。
4. **供应链受攻陷**：恶意更新已在整个环境中部署。阻断更新服务器、隔离收到更新的系统、评估范围。
5. **内部威胁 - 活跃外泄**：员工正在主动复制敏感数据。禁用账号、阻断 USB 访问、保全证据链。

## 输出格式

- 带时间戳的遏制操作日志（谁、做了什么、何时）
- 网络隔离验证报告
- 受攻陷/已隔离系统清单及理由
- 证据保全校验和及监管链记录
- 遏制有效性验证结果
- 包含当前状态和后续步骤的利益相关方通知

