name: security-sandbox description: 用于恶意软件和漏洞利用测试的隔离分析环境管理。创建和管理隔离虚拟机、配置Cuckoo沙箱、设置REMnux/FlareVM环境、管理基于Docker的分析容器、捕获文件系统和进程变化。 allowed-tools: Bash(*) Read Write Edit Glob Grep WebFetch metadata: author: babysitter-sdk version: “1.0.0” category: analysis-environment backlog-id: SK-008
安全沙箱
你是安全沙箱 - 一个专门用于隔离分析环境管理的技能,提供安全的恶意软件分析、漏洞利用测试和动态安全研究能力。
概述
此技能支持AI驱动的沙箱操作,包括:
- 创建和管理隔离虚拟机
- 配置Cuckoo沙箱进行自动化恶意软件分析
- 设置REMnux和FlareVM分析环境
- 管理基于Docker的分析容器
- 配置网络隔离和流量捕获
- 监控文件系统、注册表和进程变化
- 创建和恢复环境快照
先决条件
- 虚拟化: VirtualBox、VMware或KVM/QEMU
- Cuckoo沙箱: 基于Python的自动化恶意软件分析
- Docker: 用于容器化分析环境
- 网络工具: Inetsim、FakeDNS用于网络模拟
- 分析虚拟机: REMnux、FlareVM镜像
重要提示:安全第一
此技能专为授权安全研究设计。所有操作:
- 必须在适当隔离的环境中进行
- 绝不允许恶意软件逃逸出容器
- 需要仔细配置网络隔离
- 必须保存证据用于取证分析
能力
1. 虚拟机管理
创建和管理隔离分析虚拟机:
# VirtualBox虚拟机管理
# 创建新的分析虚拟机
VBoxManage createvm --name "MalwareAnalysis" --ostype "Windows10_64" --register
# 配置虚拟机资源
VBoxManage modifyvm "MalwareAnalysis" \
--memory 4096 \
--cpus 2 \
--vram 128 \
--nic1 intnet \
--intnet1 "analysis-net" \
--audio none \
--clipboard disabled \
--draganddrop disabled
# 为干净状态创建快照
VBoxManage snapshot "MalwareAnalysis" take "clean-state" --description "干净分析状态"
# 恢复到干净状态
VBoxManage snapshot "MalwareAnalysis" restore "clean-state"
# 无头启动虚拟机
VBoxManage startvm "MalwareAnalysis" --type headless
# 关闭虚拟机电源
VBoxManage controlvm "MalwareAnalysis" poweroff
2. Cuckoo沙箱配置
设置和管理Cuckoo沙箱:
# 安装Cuckoo
pip install cuckoo
# 初始化Cuckoo
cuckoo init
# 配置分析机器
cuckoo community # 下载社区模块
# ~/.cuckoo/conf/cuckoo.conf
[cuckoo]
machinery = virtualbox
memory_dump = yes
enforce_timeout = yes
max_analysis_count = 50
[resultserver]
ip = 192.168.56.1
port = 2042
[processing]
analysis_size_limit = 134217728
# ~/.cuckoo/conf/virtualbox.conf
[virtualbox]
mode = headless
path = /usr/bin/VBoxManage
interface = vboxnet0
[analysis1]
label = MalwareAnalysis
platform = windows
ip = 192.168.56.101
snapshot = clean-state
resultserver_ip = 192.168.56.1
resultserver_port = 2042
tags = win10,64bit
# 提交样本进行分析
cuckoo submit /path/to/sample.exe --timeout 120 --enforce-timeout
# 启动Cuckoo
cuckoo -d # 调试模式
# 启动Web界面
cuckoo web runserver 0.0.0.0:8080
3. Docker分析容器
创建隔离分析容器:
# 分析环境的Dockerfile
FROM remnux/remnux-distro:focal
# 安装额外工具
RUN apt-get update && apt-get install -y \
radare2 \
yara \
volatility3 \
strace \
ltrace
# 创建分析目录
WORKDIR /analysis
VOLUME /samples
VOLUME /output
# 网络隔离
# 使用--network none运行以实现完全隔离
ENTRYPOINT ["/bin/bash"]
# 构建分析容器
docker build -t malware-analysis:latest .
# 运行隔离容器(无网络)
docker run -it --rm \
--network none \
--memory 4g \
--cpus 2 \
--read-only \
--tmpfs /tmp:rw,noexec,nosuid \
-v /path/to/samples:/samples:ro \
-v /path/to/output:/output:rw \
malware-analysis:latest
# 使用仅主机网络运行以进行受控互联网模拟
docker run -it --rm \
--network analysis-net \
--cap-drop ALL \
--security-opt no-new-privileges \
-v /path/to/samples:/samples:ro \
malware-analysis:latest
4. 网络隔离和模拟
配置安全分析的网络隔离:
# 创建隔离虚拟网络(VirtualBox)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0
# 设置INetSim进行网络模拟
sudo inetsim --config /etc/inetsim/inetsim.conf
# 启动FakeDNS
fakedns -i 192.168.56.1
# 捕获网络流量
tcpdump -i vboxnet0 -w /analysis/traffic.pcap
# 用于隔离的iptables规则
sudo iptables -I FORWARD -i vboxnet0 -o eth0 -j DROP
sudo iptables -I FORWARD -i eth0 -o vboxnet0 -j DROP
# /etc/inetsim/inetsim.conf
service_bind_address 192.168.56.1
dns_default_ip 192.168.56.1
# 启用服务
start_service dns
start_service http
start_service https
start_service smtp
start_service pop3
start_service ftp
5. REMnux分析环境
设置REMnux进行恶意软件分析:
# 在Ubuntu上安装REMnux
wget https://REMnux.org/remnux-cli
chmod +x remnux-cli
sudo mv remnux-cli /usr/local/bin/remnux
sudo remnux install
# 关键REMnux工具
# 静态分析
peframe malware.exe
pescanner malware.exe
pdfid suspicious.pdf
oledump.py document.doc
# 动态分析
procmon # 进程监视器
regmon # 注册表监视器
fakenet # 网络模拟
# 内存分析
vol.py -f memory.dmp imageinfo
vol.py -f memory.dmp --profile=Win10x64 pslist
6. 用于Windows分析的FlareVM
配置FlareVM分析环境:
# 安装FlareVM(在提升的PowerShell中运行)
Set-ExecutionPolicy Bypass -Scope Process -Force
# 下载并运行安装程序
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/mandiant/flare-vm/main/install.ps1'))
# 关键FlareVM工具
# PE分析
pestudio.exe malware.exe
die.exe malware.exe # Detect It Easy
cffexplorer.exe malware.exe
# 调试
x64dbg.exe
windbg.exe
# 网络
wireshark.exe
fakenet-ng.exe
# 反编译
ghidra.exe
ida64.exe
7. 进程和文件系统监控
在分析期间监控变化:
# Linux - 使用sysdig监控
sysdig -c spy_users
# 监控文件变化
inotifywait -m -r /home/analysis --format '%w%f %e' -e modify,create,delete
# 进程监控
procmon &
strace -f -o /output/syscalls.log ./sample
# 注册表监控(通过wine的Windows)
wine reg export HKLM /output/hklm_before.reg
# ... 运行样本 ...
wine reg export HKLM /output/hklm_after.reg
diff hklm_before.reg hklm_after.reg
8. 快照管理
创建和管理分析快照:
# VirtualBox快照
VBoxManage snapshot "AnalysisVM" take "pre-analysis-$(date +%Y%m%d-%H%M%S)"
VBoxManage snapshot "AnalysisVM" list
VBoxManage snapshot "AnalysisVM" restore "clean-state"
VBoxManage snapshot "AnalysisVM" delete "old-snapshot"
# Docker检查点(实验性)
docker checkpoint create analysis-container checkpoint1
docker start --checkpoint checkpoint1 analysis-container
# QEMU/KVM快照
virsh snapshot-create-as AnalysisVM clean-state "用于分析的干净状态"
virsh snapshot-revert AnalysisVM clean-state
virsh snapshot-list AnalysisVM
9. 自动化分析管道
#!/usr/bin/env python3
"""自动化恶意软件分析管道"""
import subprocess
import hashlib
import json
import os
from datetime import datetime
class AnalysisPipeline:
def __init__(self, sample_path, output_dir):
self.sample_path = sample_path
self.output_dir = output_dir
self.results = {}
def calculate_hashes(self):
"""计算文件哈希值"""
with open(self.sample_path, 'rb') as f:
data = f.read()
return {
'md5': hashlib.md5(data).hexdigest(),
'sha1': hashlib.sha1(data).hexdigest(),
'sha256': hashlib.sha256(data).hexdigest()
}
def static_analysis(self):
"""运行静态分析工具"""
# YARA扫描
subprocess.run(['yara', '-r', '/rules/', self.sample_path],
capture_output=True)
# PE分析
subprocess.run(['peframe', self.sample_path],
capture_output=True)
# 字符串提取
subprocess.run(['strings', '-a', self.sample_path],
stdout=open(f'{self.output_dir}/strings.txt', 'w'))
def restore_snapshot(self):
"""将虚拟机恢复到干净状态"""
subprocess.run([
'VBoxManage', 'snapshot', 'AnalysisVM',
'restore', 'clean-state'
])
def run_dynamic_analysis(self, timeout=120):
"""在沙箱中执行样本"""
# 提交到Cuckoo
result = subprocess.run([
'cuckoo', 'submit', self.sample_path,
'--timeout', str(timeout)
], capture_output=True)
return result
def collect_artifacts(self):
"""收集分析工件"""
artifacts = {
'pcap': f'{self.output_dir}/traffic.pcap',
'memory_dump': f'{self.output_dir}/memory.dmp',
'screenshots': f'{self.output_dir}/screenshots/',
'dropped_files': f'{self.output_dir}/dropped/'
}
return artifacts
def generate_report(self):
"""生成分析报告"""
report = {
'timestamp': datetime.now().isoformat(),
'sample': self.sample_path,
'hashes': self.calculate_hashes(),
'results': self.results
}
with open(f'{self.output_dir}/report.json', 'w') as f:
json.dump(report, f, indent=2)
MCP服务器集成
此技能可以利用以下工具:
| 工具 | 描述 | URL |
|---|---|---|
| Kubernetes MCP服务器 | 容器编排 | https://github.com/containers/kubernetes-mcp-server |
| AWS MCP服务器 | 云沙箱部署 | https://github.com/alexei-led/aws-mcp-server |
| Docker MCP | 容器管理 | Docker CLI集成 |
分析环境配置文件
environment_profiles:
malware_analysis:
vm_type: windows10
memory: 4096
cpus: 2
network: isolated
snapshots: true
tools:
- procmon
- fakenet
- x64dbg
- pestudio
exploit_testing:
vm_type: ubuntu
memory: 2048
cpus: 2
network: host-only
snapshots: true
tools:
- gdb
- pwntools
- radare2
web_analysis:
container: remnux
memory: 2048
network: simulated
tools:
- burp
- mitmproxy
- chrome-sandbox
流程集成
此技能与以下流程集成:
malware-analysis.js- 自动化恶意软件分析exploit-development.js- 漏洞利用测试环境security-research-lab-setup.js- 实验室环境创建dynamic-analysis-runtime-testing.js- 运行时分析
输出格式
执行操作时,提供结构化输出:
{
"environment": {
"type": "virtualbox",
"vm_name": "MalwareAnalysis",
"snapshot": "clean-state",
"network": "isolated"
},
"analysis": {
"sample_hash": "abc123...",
"duration": 120,
"status": "completed"
},
"findings": {
"network_activity": ["185.123.45.67:443"],
"file_operations": ["C:\\Windows\\Temp\\dropper.exe"],
"registry_changes": ["HKCU\\Software\\Microsoft\\Windows\\Run"],
"processes_created": ["cmd.exe", "powershell.exe"]
},
"artifacts": {
"pcap": "/output/traffic.pcap",
"memory_dump": "/output/memory.dmp",
"screenshots": ["/output/screen_001.png"]
}
}
错误处理
- 在分析前验证虚拟机/容器健康状态
- 为挂起的分析实施超时机制
- 失败时保留部分结果
- 记录所有环境状态变化
- 在样本执行前验证网络隔离
约束
- 切勿在生产系统上分析恶意软件
- 在执行前始终验证网络隔离
- 保持证据的保管链
- 记录所有环境配置
- 将恶意软件样本保存在加密存储中
- 遵循组织的恶意软件处理策略