一、高级持续性威胁(APT)特征识别
- 隐蔽通信:
- DNS隧道数据外泄(
.example.com?.data=xxxx
) - 心跳包中携带加密数据
- DNS隧道数据外泄(
- 横向移动:
- 内网SMB共享异常访问
- Windows事件日志中的PsExec使用记录
- 持久化:
- 计划任务添加未知作业
- 注册表新增自启动项
二、防御系统核心模块实现
1. 异常DNS请求监控(Python)
# 检测DNS隧道(保存为dns_monitor.py)
import dpkt
import socket
from datetime import datetime
def analyze_pcap(file):
with open(file, 'rb') as f:
pcap = dpkt.pcap.Reader(f)
for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
if isinstance(ip.data, dpkt.udp.UDP):
udp = ip.data
if udp.dport == 53: # DNS请求
dns = dpkt.dns.DNS(udp.data)
for q in dns.qd:
domain = q.name.decode()
if len(domain) > 50 or '..' in domain:
print(f"[{datetime.fromtimestamp(ts)}] 可疑DNS请求: {domain}")
analyze_pcap("network.pcap")
2. 文件完整性监控(Bash + Inotify)
# 实时监控/etc目录文件变化
sudo apt install inotify-tools
inotifywait -m -r /etc --format "%w%f %e" | while read file event; do
if [[ $event == *"MODIFY"* || $event == *"CREATE"* ]]; then
echo "[$(date)] 文件被修改: $file" >> /var/log/file_monitor.log
# 自动恢复备份文件示例
cp -f /backup/etc/${file##*/} $file
fi
done
三、勒索软件应急响应方案
1. 关键文件实时备份(Python + RSync)
# 增量备份脚本(保存为auto_backup.py)
import time
import os
import subprocess
BACKUP_DIR = "/backup"
SOURCE_DIRS = ["/data/docs", "/var/www"]
while True:
for dir in SOURCE_DIRS:
dest = os.path.join(BACKUP_DIR, os.path.basename(dir))
subprocess.run(f"rsync -avz --delete {dir} {dest}", shell=True)
time.sleep(3600) # 每小时备份一次
2. 文件加密行为识别(Linux Auditd)
# 配置审计规则
sudo auditctl -w /data/ -p war -k sensitive_files
# 查看审计日志
ausearch -k sensitive_files | grep "ENCRYPT"
四、防御体系全景图
[攻击入口]
│
▼
[WAF] → [高防IP] → [入侵检测系统]
│ │
▼ ▼
[主机防火墙] ← [日志分析平台]
│
▼
[文件完整性监控] ↔ [自动化备份]
防御工具推荐:
- 网络层:Suricata(IDS)、Zeek(流量分析)
- 主机层:Osquery(资产清点)、Rkhunter(Rootkit检测)
- 云原生:Falco(K8S安全监控)