安全沙箱 security-sandbox

安全沙箱是一个专门用于创建和管理隔离分析环境的技能,主要用于恶意软件分析、漏洞利用测试和安全研究。该技能提供完整的沙箱环境管理能力,包括虚拟机配置、容器化分析、网络隔离、行为监控和自动化分析管道。关键词:恶意软件分析、安全沙箱、漏洞测试、隔离环境、动态分析、静态分析、取证分析、网络安全研究、Cuckoo沙箱、REMnux、FlareVM、Docker容器、虚拟化安全

逆向工程 0 次安装 0 次浏览 更新于 2/26/2026

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"]
  }
}

错误处理

  • 在分析前验证虚拟机/容器健康状态
  • 为挂起的分析实施超时机制
  • 失败时保留部分结果
  • 记录所有环境状态变化
  • 在样本执行前验证网络隔离

约束

  • 切勿在生产系统上分析恶意软件
  • 在执行前始终验证网络隔离
  • 保持证据的保管链
  • 记录所有环境配置
  • 将恶意软件样本保存在加密存储中
  • 遵循组织的恶意软件处理策略