公开文集
0x01 SRC 资产管理系统
0x02 Web 漏洞案例库
0x03 小程序漏洞案例库
第一章:小程序渗透基础
1.1 微信小程序反编译与动态调试
1.2 微信小程序强制开启开发者模式
0x99 信息安全学习体系
01-网络安全基础
Day-001-TCP-IP协议栈安全分析
Day-002-DNS协议安全与DNS劫持攻防
Day-003-IPv6 安全基础与过渡
Day-004-HTTP-HTTPS协议深度解析
Day-005-网络嗅探与流量分析技术
Day-006-防火墙原理与配置实践
Day-007-网络地址转换 NAT 安全分析
Day-008-路由协议安全 RIP-OSPF-BGP
Day-009-VLAN 安全与 VLAN-Hopping
Day-010-无线网络基础与安全 802.11
Day-011-网络访问控制 802.1X-NAC
Day-012-网络分段与微隔离设计
Day-013-负载均衡器安全配置
Day-014-CDN安全与防护
Day-015-NTP安全
Day-016-DHCP安全与攻击防护
Day-017-ICMP协议安全分析
Day-018-网络协议模糊测试基础
Day-019-网络流量基线建立
Day-020-网络取证基础
Day-021-网络入侵检测系统 NIDS
Day-022-网络入侵防御系统 NIPS
Day-023-网络流量加密与解密
Day-024-网络协议逆向工程基础
Day-025-网络性能与安全权衡
Day-026-SDN 安全
Day-027-网络虚拟化安全
Day-028-网络欺骗技术
Day-029-网络威胁情报应用
Day-030-网络容量规划与安全
Day-031-网络安全架构设计实战
02-Web 安全
Day-032-OWASP-Top-10-2021详解
Day-033-SQL 注入原理与手工检测
Day-034-SQL注入进阶报错注入与盲注
Day-035-XSS跨站脚本攻击基础
Day-036-XSS 进阶绕过与利用
Day-037-XSS进阶绕过与利用
Day-038-CSRF 跨站请求伪造
Day-039-文件上传漏洞
Day-040-反序列化漏洞基础
Day-041-PHP反序列化深入
Day-042-Java反序列化深入
Day-043-SSTI 服务端模板注入
Day-044-文件包含漏洞 LFI-RFI
Day-045-命令注入漏洞
Day-046-XXE-XML 外部实体注入
Day-047-反序列化漏洞进阶
Day-048-API 安全基础
Day-049-API认证与授权安全
Day-050-API漏洞挖掘实战
Day-051-文件上传漏洞进阶
Day-052-反序列化漏洞实战
Day-053-Web 安全综合实战
Day-054-移动安全基础
Day-055-Android 应用安全测试
Day-056-iOS 应用安全测试
Day-057-移动应用综合实战
Day-058-云安全基础
Day-059-AWS 安全实战
Day-060-Azure 安全实战
Day-061-GCP 安全实战
Day-062-云安全综合实战
Day-063-容器安全基础
Day-064-Docker 安全实战
Day-065-Kubernetes 安全实战
Day-066-容器安全综合实战
Day-067-API 安全进阶
Day-068-服务端请求伪造 SSRF 深入
Day-069-文件上传漏洞进阶
Day-070-反序列化漏洞实战进阶
Day-071-业务逻辑漏洞深入
Day-072-前端安全深入
Day-073-Web 安全综合实战
Day-074-云安全进阶
Day-075-移动安全进阶
Day-076-API 安全进阶
Day-077-前端安全进阶
Day-078-业务逻辑漏洞进阶
Day-079-反序列化漏洞实战进阶
Day-080-文件上传漏洞实战进阶
Day-081-SSTI 服务端模板注入进阶
Day-082-XXE-XML 外部实体注入进阶
Day-083-SSRF 服务端请求伪造进阶
Day-084-命令注入漏洞进阶
Day-085-文件包含漏洞进阶
Day-086-反序列化漏洞实战进阶
Day-087-文件上传漏洞实战进阶
Day-088-SSTI 服务端模板注入实战进阶
Day-089-XXE-XML 外部实体注入实战进阶
Day-090-SSRF 服务端请求伪造实战进阶
Day-091-命令注入漏洞实战进阶
Day-092-Web 安全综合实战
Day-093-GraphQL 安全
Day-094-JWT 与 OAuth2 安全
03-系统安全
Day-095-系统监控与检测
Day-096-主机防火墙配置
Day-097-系统审计与合规
Day-098-Linux 系统安全进阶
Day-099-Windows 系统安全进阶
Day-100-容器安全进阶
Day-101-容器编排安全进阶
Day-102-Linux 内核安全
Day-103-Windows 内核安全
Day-104-系统安全总结与实战
Day-105-Linux 系统安全基础
Day-106-Windows 系统安全基础
Day-107-容器安全基础
Day-108-系统加固技术
Day-109-日志分析技术
Day-110-威胁狩猎技术
04-应用安全
Day-111-安全编码规范
Day-112-输入验证技术
Day-113-输出编码技术
Day-114-错误处理安全
Day-115-会话管理安全
Day-116-认证安全
Day-117-授权安全
Day-118-数据保护安全
Day-119-日志安全
Day-120-API 安全
Day-121-微服务安全
Day-122-新兴技术安全概论
Day-123-DevSecOps 流水线安全
Day-124-云原生安全架构
Day-125-API 安全最佳实践
Day-126-安全编码规范
Day-127-SDL 安全开发生命周期
Day-128-威胁建模实战
Day-129-安全需求分析
Day-130-安全架构设计
Day-131-安全编码实践Java
Day-132-安全编码实践Python
Day-133-代码审计方法论
Day-134-静态代码分析SAST
Day-135-动态应用测试DAST
Day-136-交互式测试IAST
Day-137-软件成分分析SCA
Day-138-依赖漏洞管理
Day-139-安全测试自动化
Day-140-漏洞管理与响应
Day-141-应用安全总结与展望
Day-142-OWASP-Top10-2024 详解
Day-143-CWE-Top25 分析
Day-144-漏洞挖掘方法论
Day-145-模糊测试技术
Day-146-逆向工程基础
Day-147-漏洞利用开发基础
Day-148-漏洞复现与验证
Day-149-漏洞披露流程
Day-150-CVE 申请与管理
Day-151-漏洞赏金计划
Day-152-等保2.0详解
Day-153-GDPR 合规实践
Day-154-数据安全法解读
Day-155-个人信息保护法与合规指南
Day-156-个人信息保护法解读
Day-157-ISO-27001 信息安全管理体系
Day-158-SOC-2 合规与审计
Day-159-PCI-DSS 支付卡行业数据安全标准
Day-160-网络安全审查办法解读
Day-161-数据出境安全评估办法
Day-162-应用安全评估实战
Day-163-红蓝对抗演练
Day-164-安全应急响应
Day-165-安全运营中心建设
Day-166-应用安全总结与展望
05-密码学
Day-167-密码学基础
Day-168-对称加密算法详解
Day-169-非对称加密算法详解
Day-170-哈希函数与数字签名
Day-171-密钥管理与PKI
Day-172-TLS-SSL 协议详解
Day-173-国密算法详解
Day-174-认证与密钥协议
Day-175-随机数生成与熵源
Day-176-椭圆曲线密码学详解
Day-177-后量子密码学详解
Day-178-高级密码学主题
Day-179-密码学行业应用精选
Day-180-常用加密算法原理与实现
Day-181-密码学总结与展望
Day-182-密码学系列总结与展望
06-渗透测试
Day-183-渗透测试方法论
Day-184-信息收集技术详解
Day-185-漏洞扫描技术详解
Day-186-漏洞利用技术详解
Day-187-渗透测试中的漏洞利用框架
Day-188-漏洞利用框架与 Metasploit 深入
Day-189-渗透测试中的 WAF 绕过技术
Day-190-渗透测试中的模糊测试技术
Day-191-渗透测试中的代码审计与静态分析
Day-192-渗透测试中的密码哈希破解技术
Day-193-渗透测试报告编写指南
Day-194-Web 应用渗透测试
Day-195-渗透测试中的 API 安全测试
Day-196-渗透测试中的 GraphQL 安全测试
Day-197-渗透测试中的前后端分离应用测试
Day-198-渗透测试中的小程序安全测试
Day-199-渗透测试中的浏览器安全测试
Day-200-OAuth-SSO安全测试
Day-201-渗透测试中的业务逻辑漏洞测试
Day-202-渗透测试中的厚客户端安全测试
Day-203-渗透测试综合实战演练
Day-204-内网渗透技术详解
Day-205-渗透测试中的内网信息收集进阶
Day-206-渗透测试中的域森林渗透技术
Day-207-渗透测试中的权限维持技术
Day-208-渗透测试中的横向移动技术
Day-209-渗透测试中的痕迹清理与反取证技术
Day-210-渗透测试中的数据窃取与 Exfiltration 技术
Day-211-渗透测试中的内部威胁与数据泄露测试
Day-212-渗透测试中的物理安全渗透
Day-213-社会工程学攻击技术
Day-214-移动应用渗透测试
Day-215-云安全渗透测试
Day-216-渗透测试中的容器与 Kubernetes 安全渗透
Day-217-渗透测试中的 Serverless 安全测试
Day-218-渗透测试中的微服务安全测试
Day-219-物联网安全渗透测试
Day-220-工业控制系统安全渗透测试
Day-221-无线网络安全渗透测试
Day-222-数据库安全渗透测试
Day-223-渗透测试中的供应链安全测试
Day-224-红队演练技术详解
Day-225-渗透测试中的红队基础设施搭建
Day-226-渗透测试中的威胁情报与狩猎
Day-227-渗透测试中的综合指纹识别技术
Day-228-自动化渗透测试技术
Day-229-渗透测试中的运维安全测试
Day-230-渗透测试中的区块链与智能合约安全测试
Day-231-渗透测试中的漏洞管理与修复验证
Day-232-渗透测试法律与合规
Day-233-后渗透攻击技术详解
Day-234-渗透测试中的人工智能应用
Day-235-漏洞利用开发深入
Day-236-云原生渗透测试深入
07-应急响应
Day-237-应急响应概述与核心概念
Day-238-应急响应流程框架
Day-239-CSIRT 团队组建与职责分工
Day-240-应急响应工具包准备
Day-241-应急响应法律与合规要求
Day-242-安全事件检测方法与指标
Day-243-云原生应急响应
Day-244-日志收集与分析技术
Day-245-网络流量分析与异常识别
Day-246-自动化响应与 SOAR
Day-247-端点监控与 EDR 技术
Day-248-威胁狩猎方法论
Day-249-威胁情报在检测中的应用
Day-250-数字取证基础与证据链管理
Day-251-内存取证技术
Day-252-磁盘取证与文件恢复
Day-253-网络取证与数据包分析
Day-254-云环境与容器取证
Day-255-恶意代码静态分析技术
Day-256-恶意代码动态分析技术
Day-257-恶意代码行为分析方法
Day-258-逆向工程基础与工具
Day-259-沙箱技术与自动化分析
Day-260-事件隔离与遏制策略
Day-261-威胁根除与系统修复
Day-262-系统恢复与数据重建
Day-263-业务连续性计划
Day-264-事件复盘与经验总结
Day-265-APT 攻击事件复盘分析
Day-266-勒索软件事件响应实战
Day-267-数据泄露事件处置流程
Day-268-内部威胁调查与取证
Day-269-综合应急响应演练
08-安全运维
Day-270-安全运营中心 SOC 概述
Day-271-安全监控指标体系
Day-272-安全告警管理
Day-273-安全可视化与仪表盘
Day-274-监控工具选型
Day-275-日志采集技术
Day-276-日志标准化与解析
Day-277-日志存储与归档
Day-278-日志分析技术
Day-279-日志合规要求
Day-280-SIEM 架构与设计
Day-281-关联规则引擎
Day-282-高级关联分析
Day-283-UEBA 用户实体行为分析
Day-284-威胁狩猎
Day-285-SOAR 基础概念
Day-286-剧本设计
Day-287-自动化响应技术
Day-288-安全工具集成
Day-289-SOAR 度量与优化
Day-290-安全基线管理
Day-291-漏洞管理流程
Day-292-补丁管理策略
Day-293-变更安全管理
Day-294-合规审计技术
Day-295-7x24 安全运营
Day-296-安全事件管理流程
Day-297-安全运营度量体系
Day-298-持续改进机制
Day-299-安全运维综合演练
Day-300-云原生安全运营
Day-301-AI 与机器学习安全运营
Day-302-安全自动化脚本实战
09-移动安全
Day-303-移动安全威胁概述
Day-304-移动设备安全架构
Day-305-移动操作系统安全模型
Day-306-移动应用权限管理
Day-307-移动端数据加密
Day-308-330-Android 安全合集
Day-309-Android 安全架构
Day-310-Android 组件安全
Day-311-Android 权限与隐私
Day-312-Android 逆向工程
Day-313-Android 应用加固
Day-314-iOS 安全架构
Day-315-iOS 应用沙盒机制
Day-316-越狱与反越狱
Day-317-iOS 逆向工程
Day-318-iOS 企业分发安全
Day-319-移动安全开发生命周期
Day-320-移动应用安全测试
Day-321-移动应用加固技术
Day-322-移动威胁防护
Day-323-移动安全合规
10-云安全
Day-324-云计算安全模型
Day-325-责任共担模型
Day-326-云安全威胁模型
Day-327-云安全合规框架
Day-328-云安全架构设计
Day-329-AWS IAM 安全
Day-330-AWS 网络安全
Day-331-AWS 存储安全
Day-332-AWS 安全监控
Day-333-AWS 安全最佳实践
Day-334-Azure AD 安全
Day-335-Azure 网络安全
Day-336-Azure 存储安全
Day-337-Azure 安全中心
Day-338-Azure 安全最佳实践
Day-339-容器安全基础
Day-340-Kubernetes 安全
Day-341-Serverless 安全
Day-342-云原生 DevSecOps
Day-343-云安全态势管理 CSPM
11-物联网工控
Day-344-物联网安全概述
Day-345-IoT 通信协议安全
Day-346-IoT 设备安全
Day-347-IoT 平台安全
Day-348-IoT 应用安全
Day-349-工业控制系统概述
Day-350-工控协议安全
Day-351-PLC 安全
Day-352-SCADA 系统安全
Day-353-工控安全防护
12-综合与总结
Day-354-安全职业发展路径
Day-355-安全技术趋势展望
Day-356-安全建设方法论
Day-357-经典攻防案例复盘
Day-358-安全学习资源指南
Day-359-信息安全行业求职指南
-
+
首页
Day-020-网络取证基础
# Day 19: 网络取证基础 > 网络安全系列第 19 天 | 预计阅读时间:30 分钟 | 难度:★★★★☆ --- ## 清单 目录 1. [引言](#引言) 2. [网络取证概念](#网络取证概念) 3. [取证流程与方法论](#取证流程与方法论) 4. [证据收集技术](#证据收集技术) 5. [流量分析技术](#流量分析技术) 6. [日志分析技术](#日志分析技术) 7. [实验环境搭建](#实验环境搭建) 8. [实战演练](#实战演练) 9. [报告编写](#报告编写) 10. [总结与思考](#总结与思考) 11. [参考资料](#参考资料) --- ## 引言 ### 网络取证的重要性 网络取证(Network Forensics)是对网络流量和事件进行捕获、记录和分析,以识别攻击来源、收集证据、支持法律程序的过程。在网络安全事件响应中,网络取证是不可或缺的一环。 **网络取证的价值**: - **攻击溯源**:确定攻击者身份和来源 - 说明 **证据收集**:为法律诉讼提供证据 - 目标 **事件重构**:还原攻击过程和 timeline - **防御改进**:从攻击中学习,改进防御 - 统计 **损失评估**:量化安全事件影响 **真实案例**: ``` 案例 1: Target 数据泄露(2013) - 网络取证发现攻击者通过 HVAC 供应商进入 - 追踪攻击者横向移动路径 - 确定 4000 万信用卡数据被盗 - 证据支持法律诉讼和赔偿 案例 2: Sony Pictures 攻击(2014) - 网络流量分析发现恶意软件 C2 通信 - 追踪数据外泄路径 - 确定攻击持续数月 - 支持 FBI 调查和归因 案例 3: Equifax 泄露(2017) - Web 日志分析发现 SQL 注入攻击 - 追踪攻击者访问数据库记录 - 确定 1.47 亿人信息泄露 - 证据用于监管调查和诉讼 ``` ### 网络取证 vs 数字取证 ``` 数字取证(Digital Forensics): - 关注端点(PC、服务器、移动设备) - 分析硬盘、内存、文件系统 - 证据类型:文件、日志、注册表 网络取证(Network Forensics): - 关注网络流量和事件 - 分析数据包、流数据、日志 - 证据类型:PCAP、NetFlow、系统日志 关系: - 两者互补,通常结合使用 - 网络取证发现攻击,数字取证深入分析 - 完整调查需要两者结合 ``` --- ## 网络取证概念 ### 取证数据类型 ``` 1. 全流量数据(PCAP) - 完整的网络数据包 - 包含所有协议层 - 数据量大,信息完整 - 适合深度分析 2. 流数据(NetFlow/sFlow) - 流量统计信息 - 源/目标 IP、端口、协议 - 字节数、包数、时间 - 数据量小,适合长期存储 3. 系统日志 - 防火墙日志 - IDS/IPS 日志 - 服务器日志 - 应用日志 4. 元数据 - DNS 查询日志 - DHCP 租约日志 - 认证日志 - 代理日志 ``` ### 取证挑战 ``` 技术挑战: ✗ 数据量大(TB 级别) ✗ 加密流量(无法查看内容) ✗ 高速网络(难以完整捕获) ✗ 分布式系统(数据分散) 法律挑战: ✗ 隐私保护 ✗ 证据合法性 ✗ 跨境数据 ✗ 证据链完整性 资源挑战: ✗ 存储成本 ✗ 分析时间 ✗ 专业技能 ✗ 工具成本 ``` --- ## 取证流程与方法论 ### 标准取证流程 ``` NIST SP 800-86 定义的四阶段流程: 1. 收集(Collection) - 识别证据来源 - 获取证据 - 保护证据完整性 - 记录收集过程 2. 检查(Examination) - 数据提取 - 数据还原 - 数据格式化 - 初步分析 3. 分析(Analysis) - 深入分析 - 关联分析 - 时间线重建 - 结论形成 4. 报告(Reporting) - 发现总结 - 证据呈现 - 结论说明 - 建议提出 ``` ### 证据链管理 ``` 证据链(Chain of Custody)要求: 1. 收集记录 - 谁收集的 - 何时收集的 - 何地收集的 - 如何收集的 2. 保管记录 - 谁保管的 - 保管地点 - 保管时间 - 访问记录 3. 传输记录 - 传输时间 - 传输方式 - 接收人 - 完整性验证 4. 分析记录 - 分析人员 - 分析工具 - 分析方法 - 分析结果 文档模板: ┌─────────────────────────────────────┐ │ 证据链记录表 │ ├─────────────────────────────────────┤ │ 证据 ID: PCAP-2024-001 │ │ 收集人:张三 │ │ 收集时间:2024-01-15 10:30 │ │ 收集地点:数据中心 │ │ 收集方法:端口镜像 │ │ 哈希值:SHA256 abc123... │ │ 保管人:李四 │ │ 保管地点:证据室 │ │ ... │ └─────────────────────────────────────┘ ``` --- ## 证据收集技术 ### 流量捕获方法 ``` 1. 端口镜像(SPAN) 配置示例(Cisco): monitor session 1 source interface Gi0/1-24 monitor session 1 destination interface Gi0/48 优点:实时、完整 缺点:需要交换机支持 2. 网络分路器(TAP) 物理设备,被动复制流量 优点:完全被动、不影响网络 缺点:需要硬件、成本 3. 主机抓包 tcpdump -i eth0 -w evidence.pcap 优点:简单、无需额外设备 缺点:只能看到本机流量 4. 虚拟化环境 VMware: VMPort Mirroring KVM: macvtap 优点:云环境适用 缺点:配置复杂 ``` ### 捕获配置最佳实践 ```bash # 1. 完整捕获配置 tcpdump -i eth0 \ -s 1500 \ # 完整包(避免截断) -w evidence.pcap \ # 输出文件 -C 1000 \ # 每 1GB 轮转 -W 100 \ # 保留 100 个文件 -G 3600 \ # 每小时轮转 -Z root \ # 轮转后切换用户 -U # 立即写入(防丢失) # 2. 时间同步 # 确保所有系统时间同步 ntpdate ntp.aliyun.com systemctl enable systemd-timesyncd # 3. 元数据记录 # 记录捕获环境信息 cat > evidence.meta << EOF 证据 ID: PCAP-$(date +%Y%m%d-%H%M%S) 收集时间:$(date -Iseconds) 收集主机:$(hostname) 网络接口:eth0 IP 地址:$(ip addr show eth0 | grep inet | awk '{print $2}') 收集人:$(whoami) 捕获命令:tcpdump -i eth0 -s 1500 -w evidence.pcap EOF # 4. 哈希计算 sha256sum evidence.pcap > evidence.pcap.sha256 # 定期验证完整性 sha256sum -c evidence.pcap.sha256 ``` ### 日志收集 ```bash # 1. 集中日志收集 # 配置 rsyslog 客户端 cat > /etc/rsyslog.d/forward.conf << EOF *.* @192.168.1.100:514 EOF systemctl restart rsyslog # 2. 防火墙日志 # Cisco ASA logging host inside 192.168.1.100 logging enable # iptables iptables -A INPUT -j LOG --log-prefix "IPTABLES-INPUT: " # 3. Web 服务器日志 # Nginx 增强日志 log_format detailed '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' '$request_time $upstream_response_time'; # 4. 数据库日志 # MySQL 慢查询日志 slow_query_log = 1 long_query_time = 2 log_queries_not_using_indexes = 1 ``` --- ## 流量分析技术 ### Wireshark 高级分析 ``` 1. 过滤器使用 # 按协议 tcp || udp http || dns # 按 IP ip.addr == 192.168.1.1 ip.src == 192.168.1.0/24 # 按端口 tcp.port == 80 || tcp.port == 443 # 按内容 http.request.uri contains "admin" tcp.payload contains "password" # 组合过滤 (ip.addr == 192.168.1.1) && (tcp.port == 80) && (http.request.method == "POST") 2. 流量统计 Statistics → Conversations Statistics → Endpoints Statistics → Protocol Hierarchy 3. 追踪流 右键 → Follow → TCP Stream 查看完整会话内容 4. 对象提取 File → Export Objects → HTTP 提取下载的文件、图片等 ``` ### 命令行分析工具 ```bash # 1. tshark 分析 # 提取 HTTP 请求 tshark -r evidence.pcap -Y "http.request" \ -T fields -e frame.time -e ip.src -e http.request.method -e http.request.uri # 提取 DNS 查询 tshark -r evidence.pcap -Y "dns.flags.response == 0" \ -T fields -e frame.time -e ip.src -e dns.qry.name # 统计 Top 说话者 tshark -r evidence.pcap -q -z endpoints,ip # 2. tcpflow 重组 tcpflow -r evidence.pcap -o output/ # 每个流保存为单独文件 # 3. NetworkMiner 分析 # Windows 工具,图形界面 # 自动提取文件、凭证、会话 # 4. Xplico 取证 # Web 界面,自动分析 # 提取 HTTP、SMTP、POP3 等协议内容 ``` ### 恶意流量识别 ``` 1. C2 通信特征 - 定期心跳(固定间隔) - 小数据包 - 非常用端口 - 加密流量 - 异常域名(DGA 生成) 检测方法: tshark -r evidence.pcap -q -z io,stat,60 # 查看是否有规律流量 2. 数据外泄特征 - 大流量出站 - 非常规时间传输 - 加密通道 - 云存储服务 检测方法: tshark -r evidence.pcap -q -z conv,tcp # 查看大流量连接 3. 扫描活动特征 - 大量 SYN 包 - 多目标端口 - 短时间完成 - 无后续通信 检测方法: tshark -r evidence.pcap -Y "tcp.flags.syn==1" \ -T fields -e ip.src -e tcp.dstport | sort | uniq -c ``` --- ## 日志分析技术 ### 日志关联分析 ``` 关联规则示例: 规则 1: 暴力破解检测 IF (登录失败 > 5 次/分钟) AND (来自同一 IP) THEN 告警:可能的暴力破解 规则 2: 横向移动检测 IF (用户从 IP-A 登录) AND (短时间内从 IP-B 访问敏感资源) THEN 告警:可能的凭证盗用 规则 3: 数据外泄检测 IF (出站流量 > 基线 3σ) AND (非常规时间) THEN 告警:可能的数据外泄 规则 4: 恶意软件检测 IF (连接已知恶意域名) OR (连接 DGA 域名) THEN 告警:可能的恶意软件 ``` ### SIEM 集成 ```bash # ELK Stack 日志分析 # 1. Logstash 配置 input { file { path => "/var/log/auth.log" type => "auth" } file { path => "/var/log/nginx/access.log" type => "nginx" } } filter { if [type] == "auth" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} sshd\[%{NUMBER:pid}\]: %{WORD:action} for %{USER:user} from %{IP:client_ip}" } } } } output { elasticsearch { hosts => ["localhost:9200"] index => "security-logs-%{+YYYY.MM.dd}" } } # 2. Kibana 仪表板 # 创建可视化: # - 登录失败趋势 # - Top 源 IP # - 异常检测 # - 时间线分析 # 3. 告警配置 # Watcher 告警规则 PUT _watcher/watch/brute_force { "trigger": { "schedule": { "interval": "5m" } }, "input": { "search": { "request": { "indices": ["security-logs-*"], "body": { "query": { "bool": { "must": [ { "term": { "action": "Failed" } }, { "range": { "timestamp": { "gte": "now-5m" } } } ] } }, "aggs": { "by_ip": { "terms": { "field": "client_ip" } } } } } } }, "condition": { "compare": { "ctx.payload.aggregations.by_ip.buckets.0.doc_count": { "gt": 5 } } }, "actions": { "email": { "email": { "to": "security@example.com", "subject": "暴力破解告警", "body": "检测到暴力破解攻击" } } } } ``` --- ## 实验环境搭建 ### 取证实验室拓扑 ``` ┌─────────────────────────────────────────┐ │ 取证实验室 │ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ 受害主机 │ │ 攻击主机 │ │ │ │ (被攻陷) │ │ (攻击者) │ │ │ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ └────────┬─────────┘ │ │ │ │ │ ┌──────▼──────┐ │ │ │ 交换机 │ │ │ │ (带镜像) │ │ │ └──────┬──────┘ │ │ │ │ │ ┌─────────────┼─────────────┐ │ │ │ │ │ │ │ ┌──▼──┐ ┌───▼───┐ ┌───▼───┐ │ │ │流量 │ │ 日志 │ │ 分析 │ │ │ │捕获 │ │ 服务器 │ │ 工作站 │ │ │ └─────┘ └───────┘ └───────┘ │ └─────────────────────────────────────────┘ ``` ### 工具安装 ```bash # 取证工作站软件安装 # 1. 基础工具 apt install wireshark tcpdump tshark apt install sleuthkit autopsy apt install volatility # 2. 网络取证工具 apt install networkminer xplico apt install nfdump flowtools # 3. 日志分析 apt install elasticsearch logstash kibana apt install splunk-forwarder # 4. 恶意软件分析 apt install cuckoo-sandbox apt install yara # 5. 取证工具包 apt install bulk-extractor apt install exiftool apt install binwalk ``` --- ## 实战演练 ### 实验 1: 网络攻击场景重现 **目标**:模拟攻击并进行取证分析 **步骤**: ```bash # 1. 准备攻击场景 # 攻击机执行 msfconsole use exploit/linux/ssh/ssh_login set RHOSTS 192.168.1.100 set USERNAME admin set PASSWORD password exploit # 2. 收集证据 # 在镜像端口或 TAP 上 tcpdump -i eth0 -s 1500 -w attack_evidence.pcap # 同时收集日志 cp /var/log/auth.log evidence/ cp /var/log/syslog evidence/ # 3. 计算哈希 sha256sum attack_evidence.pcap > attack_evidence.pcap.sha256 # 4. 记录证据链 cat > evidence_chain.txt << EOF 案件 ID: CASE-2024-001 证据 ID: PCAP-001 收集时间:$(date -Iseconds) 收集人:取证员 A 收集方法:端口镜像 原始哈希:$(cat attack_evidence.pcap.sha256) EOF ``` ### 实验 2: 流量分析 **目标**:分析攻击流量 **步骤**: ```bash # 1. 基础分析 wireshark attack_evidence.pcap & # 2. 识别攻击流量 # Wireshark 过滤器: tcp.flags.syn == 1 && tcp.flags.ack == 0 # 查看 SYN 扫描 http.request.method == "POST" && http.request.uri contains "login" # 查看登录请求 # 3. 提取攻击者 IP tshark -r attack_evidence.pcap -Y "tcp.flags.syn==1" \ -T fields -e ip.src | sort | uniq -c | sort -rn | head -10 # 4. 追踪攻击者会话 tshark -r attack_evidence.pcap -Y "ip.addr == 攻击者 IP" \ -T fields -e frame.time -e ip.src -e ip.dst -e tcp.dstport # 5. 提取凭证 tshark -r attack_evidence.pcap -Y "http.request.method == POST" \ -T fields -e http.request.full_uri -e http.file_data # 6. 重组 TCP 流 tcpflow -r attack_evidence.pcap -o extracted/ cat extracted/* | grep -i password ``` ### 实验 3: 时间线重建 **目标**:重建攻击时间线 **步骤**: ```python #!/usr/bin/env python3 # timeline_reconstruction.py import subprocess import re from datetime import datetime import json def extract_events(pcap_file): events = [] # 提取 TCP SYN 包(可能的扫描) result = subprocess.run( ['tshark', '-r', pcap_file, '-Y', 'tcp.flags.syn==1', '-T', 'fields', '-e', 'frame.time', '-e', 'ip.src', '-e', 'ip.dst', '-e', 'tcp.dstport'], capture_output=True, text=True ) for line in result.stdout.strip().split('\n'): if line: parts = line.split('\t') events.append({ 'time': parts[0], 'type': 'TCP_SYN', 'src': parts[1], 'dst': parts[2], 'port': parts[3] }) # 提取 HTTP 请求 result = subprocess.run( ['tshark', '-r', pcap_file, '-Y', 'http.request', '-T', 'fields', '-e', 'frame.time', '-e', 'ip.src', '-e', 'http.request.method', '-e', 'http.request.uri'], capture_output=True, text=True ) for line in result.stdout.strip().split('\n'): if line: parts = line.split('\t') events.append({ 'time': parts[0], 'type': 'HTTP_REQUEST', 'src': parts[1], 'method': parts[2], 'uri': parts[3] }) # 按时间排序 events.sort(key=lambda x: x['time']) return events def generate_timeline(events): print("=" * 80) print("攻击时间线") print("=" * 80) for event in events: print(f"{event['time']} - {event['type']}") if event['type'] == 'TCP_SYN': print(f" {event['src']}:{event.get('sport', '?')} -> {event['dst']}:{event['port']}") elif event['type'] == 'HTTP_REQUEST': print(f" {event['src']} {event['method']} {event['uri']}") print() if __name__ == '__main__': events = extract_events('attack_evidence.pcap') generate_timeline(events) # 保存为 JSON with open('timeline.json', 'w') as f: json.dump(events, f, indent=2) ``` ### 实验 4: 取证报告编写 **目标**:编写专业取证报告 **步骤**: ```markdown # 网络安全取证报告 ## 执行摘要 **案件编号**: CASE-2024-001 **取证日期**: 2024-01-15 **取证人员**: 张三,李四 **证据类型**: 网络流量(PCAP)、系统日志 **关键发现**: 1. 检测到来自 192.168.1.50 的 SSH 暴力破解攻击 2. 攻击者成功登录 admin 账户 3. 攻击者访问敏感数据库 4. 检测到数据外泄迹象 **风险等级**: 严重 ## 事件时间线 | 时间 | 事件 | 源 IP | 目标 | 详情 | |------|------|-------|------|------| | 10:00:00 | SSH 扫描开始 | 192.168.1.50 | 192.168.1.100 | 端口 22 扫描 | | 10:05:23 | 暴力破解开始 | 192.168.1.50 | 192.168.1.100 | 多次登录失败 | | 10:15:45 | 成功登录 | 192.168.1.50 | 192.168.1.100 | admin 账户 | | 10:20:00 | 数据库访问 | 192.168.1.100 | 192.168.1.200 | MySQL 连接 | | 10:30:00 | 数据外泄 | 192.168.1.100 | 外部 IP | 大流量出站 | ## 证据详情 ### 证据 1: 网络流量捕获 - **文件**: attack_evidence.pcap - **大小**: 2.5 GB - **时间范围**: 2024-01-15 09:00-11:00 - **哈希**: SHA256 abc123... ### 证据 2: 系统日志 - **文件**: auth.log, syslog - **来源**: 受害服务器 - **时间范围**: 2024-01-15 全天 ## 技术分析 ### SSH 暴力破解分析 攻击者使用工具(可能是 Hydra)进行暴力破解: - 尝试用户名:admin, root, user, test - 尝试频率:约 10 次/秒 - 成功时间:第 156 次尝试 ### 数据外泄分析 检测到异常出站流量: - 时间:10:30:00-10:45:00 - 目标:外部 IP 203.0.113.100 - 流量大小:约 500MB - 协议:HTTPS(加密) ## 结论 1. 确认发生未经授权的访问 2. 攻击者成功获取 admin 凭证 3. 敏感数据可能被窃取 4. 建议立即更改所有凭证 5. 建议通知受影响用户 ## 建议 ### 短期(24 小时内) - [ ] 更改所有系统凭证 - [ ] 隔离受影响系统 - [ ] 通知管理层 ### 中期(1 周内) - [ ] 全面安全审计 - [ ] 部署 MFA - [ ] 加强监控 ### 长期(1 月内) - [ ] 安全架构审查 - [ ] 员工安全培训 - [ ] 改进事件响应流程 ## 附录 ### 证据链记录 (完整的证据链文档) ### 工具列表 - Wireshark 4.0 - tshark 4.0 - tcpflow 1.6 - 自定义 Python 脚本 ### 参考文档 - NIST SP 800-86 - ISO 27037 ``` --- ## 总结与思考 ### 核心要点回顾 1. **取证流程** - 收集 → 检查 → 分析 → 报告 - 证据链完整性至关重要 - 标准化工具和方法 2. **关键技术** - 流量捕获和分析 - 日志关联分析 - 时间线重建 3. **法律考虑** - 证据合法性 - 隐私保护 - 跨境问题 ### 深入思考问题 1. **加密挑战** - 90%+ 流量加密 - 如何有效取证? - 元数据分析 vs 解密? 2. **云环境取证** - 数据在第三方 - 如何收集证据? - 法律管辖权问题? 3. **自动化取证** - AI 辅助分析 - 自动化报告 - 人机协作? ### 实战建议 **安全团队**: 1. 提前准备取证工具 2. 制定取证流程 3. 定期演练 4. 与法律团队合作 **企业**: 1. 部署集中日志 2. 保留足够流量数据 3. 培训取证人员 4. 建立应急响应团队 --- ## 参考资料 ### 标准文档 - NIST SP 800-86 (数字取证指南) - ISO 27037 (电子证据指南) - RFC 7011 (IPFIX 流导出) ### 工具资源 - [Wireshark](https://www.wireshark.org/) - [Autopsy](https://www.autopsy.com/) - [Volatility](https://www.volatilityfoundation.org/) ### 书籍推荐 - 《Network Forensics》 - 《Practical Forensic Analysis》 - 《数字取证技术》 --- **标记 明日预告**:Day 20 - 网络入侵检测系统(NIDS) > 本文内容仅供学习和研究使用,请勿用于非法目的。所有实验请在隔离环境中进行。 --- *本文是 365 天信息安全技术系列的第 19 篇,精编版本*
myh0st
2026年4月13日 23:10
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码