简介:为计算机病毒及其防范技术课程配套的教学资源包,面向高校信息安全课程教师与自学者,系统讲解病毒自我复制、传播及破坏机制,涵盖数据损坏、系统崩溃、资源耗尽等典型危害,并给出实用的防护与清除方法。压缩包共338个文件、约20.15MB,以51个头文件、38个C++源文件、14个PPT课件等为主体,同时含可执行程序、动态库、脚本与文档,用于演示实例与辅助说明;源代码示例可揭示病毒感染、传播、潜伏的完整生命周期,课件则从理论层面覆盖病毒历史、类型、传播途径及防范策略。资源还包含系统恢复与应急响应指导以及模拟病毒样本的实战演练,便于读者在安全环境中练习识别、隔离与清除病毒,为后续开发反病毒程序或优化防护工具提供直接参考。已有185人学习下载。
1. 计算机病毒防范技术资源包:这套源代码和课件能帮你做什么
计算机病毒及其防范技术 源代码、课件.rar 这串名字很容易被当成一份老旧的教学资料,但把它当作一个压缩包课程项目来对待,价值就完全不同了。课件里通常会把计算机病毒的分类、传播链路和检测原理讲清楚,源代码则把这些概念变成可编译、可调试的模块。对准备入行安全的新手来说,这是少有的能同时看到理论和实现的入口;对已经在维护服务器安全的运维来说,这里面的查杀引擎和样本分析流程,能直接帮你把杀毒策略从黑匣子变成可调参数。这篇笔记我会按自己啃这套资源的实际顺序,先立框架,再跑沙箱实验,最后落到主机防护,把每一步的可复现细节和踩坑记录都交代出来。
2. 从课件到实战:病毒分类、感染机制与查杀原理
2.1 课件里最该精读的三块:分类模型、传播链条、查杀窗口
计算机病毒课件的前几十页通常都在讲分类。按宿主分,有引导区病毒、文件型病毒、宏病毒、脚本病毒和蠕虫;按感染对象分,又可分为感染普通程序和感染系统启动链两类。分类不是为了让你背考点,而是在拿到可疑文件时帮你确定第一步的检测手段。文件型病毒在宿主程序执行前需要完成解密和控制权转移,这个过程会短暂地暴露在内存中;引导区病毒躲在磁盘保留扇区,常规文件扫描器根本看不到它。所以面对一台被感染主机,先判断是哪一类,再决定用文件扫描还是内存采样,这个顺序一旦反了,排查时间会成倍增加。
第二块是传播链条。课件里通常画成“复制→感染→触发→执行”四个阶段,但真实环境中你看到的往往不是干净的四步,而是多个阶段重叠。一个脚本类病毒通过下载器进入主机,下载器本身不传播,等它把主体释放出来,文件监控才开始报警。如果只盯着下载器的特征,你会漏掉最关键的主体。我看课件时会为每个阶段列一个检测点:复制对应文件创建,感染对应写宿主文件,触发对应计划任务或注册表写入,执行对应进程创建。每个检测点对应一个日志源,后面做应急响应时直接套这个清单。
第三块是查杀窗口,也是大多数人忽略的地方。一个病毒从落盘到驻留内存,它的可检测性一直在变化。文件刚写入时特征最明显,一旦运行并自我删除,磁盘上可能只剩残留文件,此时特征扫描失效,只能靠行为监控。课件把这个窗口画成时间轴,但我建议自己把它转成一张表:窗口位置、可见数据源、对应检测引擎。等翻到源代码里on_access和on_exec两个回调时,就能立刻明白为什么实时监控比定时扫描开销高,因为它必须在更早的窗口完成判定。
课件里还会强调特征码检测必须解决“同一种病毒变形后怎么办”的问题。由此引出校验和、模糊哈希和机器学习分类。读课件时最好把每个检测算法的输入和输出圈出来,输入是文件内容还是内存状态,输出是命中标签还是概率值。这些内容直接对应源代码里主函数的参数结构,后面改代码时能少走一半弯路。
2.2 把原理落成可执行动作:用一段无害样本走查杀流程
原理看完,不要直接打开源代码工程,先用命令行验证最简单的检测流程。这里使用 EICAR 测试文件,它是反病毒行业约定的无害标准样本,任何杀毒软件都应该识别它:
echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.com ls -la eicar.com注意:EICAR 不是真实病毒,只用于验证检测链路是否畅通,在虚拟机里操作是安全的。
接下来用一个不依赖第三方库的 Python 脚本做特征扫描器,把课件里的特征匹配原理还原出来:
# scan_eicar.py import pathlib EICAR_PATTERN = b"X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*" def scan_file(path: pathlib.Path) -> bool: data = path.read_bytes() if EICAR_PATTERN in data: print(f"[命中] {path} 包含 EICAR 测试特征") return True print(f"[未命中] {path} 大小 {len(data)} 字节") return False if __name__ == "__main__": scan_file(pathlib.Path("eicar.com"))这个脚本的核心是子串匹配:把整个文件读入内存,检查特征是否出现。真实杀毒引擎不会这样处理大文件,而是按块读取并在滚动窗口里匹配,否则扫描一个 2 GB 的压缩包就会撑爆内存。你可以在源代码里找while循环配合read(4096)的逻辑,那才是生产可用的写法。参数方面,pattern使用字节串而不是字符串,是为了避免编码问题;EICAR 特征尾部的*是标准格式的一部分,不能丢,否则部分引擎会漏报。
如果本地已经装了 ClamAV,可以用clamscan eicar.com对比。ClamAV 的输出里会带EICAR-Test-File的识别名,行为和我们这段脚本一致,但实现路径不同:它先解析文件结构,再到特征库中查复合特征。这个差异正好对应课件里“特征码检测”与“文件结构解析”分工的由来。如果你跑完脚本发现未命中,先检查文件是不是多了一个换行符,echo 命令不要在引号外再加空格。
2.3 源代码目录如何对应课件章节
陌生代码目录最怕没有索引。我拿到源码的第一件事不是找主函数,而是把每个源文件的开头注释提取出来,生成一个文件说明表:
for f in src/*.py; do echo "=== $f ==="; head -n 5 "$f"; done > src_index.txt然后按动词归类:scan开头的是特征扫描,quarantine开头的是隔离恢复,monitor开头的是实时监控,update开头的是病毒库更新。这个操作看着简单,但能让你后续翻代码的时间少一半。
很多课程包的目录结构是长期累积的,与课件章节并不是一一对应。常见情况是逻辑被拆到两个文件里:一个做文件解析,一个做匹配引擎。文件解析负责拆出 PE 节区、宏文本或脚本内容;匹配引擎负责遍历特征表。如果你只看到一个类似virus_data = {...}的字典,说明样本集和检测器被分到了不同目录,去data/或者samples/里找。
我通常在课程包里会看到一个这样的检测主循环:
def scan_stream(data: bytes, signature_db) -> str | None: for sig in signature_db: if data.find(sig.pattern) != -1: return sig.name return None这个函数直接对应课件里的特征匹配一节,参数data是文件内容,signature_db是特征表。注意它使用find,意味着只能匹配未加壳的原始字节流;一旦样本经过压缩或加密,必须在前面增加一层解码包装。看源代码时先从这类主循环入手,再回头补数据解析函数,效率高得多。可以用grep -n "def scan_stream" -r src/快速定位主循环位置,而不是打开每一个文件浏览。
3. 用源代码搭建本地分析沙箱:最小可复现环境
3.1 隔离环境准备:虚拟机快照与网络策略
做病毒样本分析,第一件事不是编译引擎,而是准备一台能随时回滚的虚拟机。我用 VMware 跑一个 Ubuntu Server,分配 4 GB 内存、2 核 CPU、40 GB 磁盘,安装完系统后立刻打一个干净快照。分析过程中产生的所有文件都在虚拟机里,宿主机只保留审计日志。如果你不想用 VMware,KVM 也可以,但注意不要用 VirtIO 网卡以外太特殊的设备型号,否则反沙箱样本容易起疑。
注意:虚拟机不要开共享文件夹,分析样本时关闭虚拟网络,或者仅在防火墙里放行到本机测试端口。否则样本外联可能波及其他机器。
很多人以为快照万能,其实 VMware 的快照不会连内存一起完整保存。如果病毒写入的是物理磁盘的保留扇区,回滚快照后宿主机仍可能被间接影响。所以我还会在宿主机上用auditd记录虚拟机进程的活动:
sudo apt install auditd sudo auditctl -w /tmp -k tmp_write sudo auditctl -w /usr/bin -k bin_write这两条规则监控/tmp和/usr/bin目录的写入行为,日志落在/var/log/audit/audit.log。参数说明:-w指定被监控路径,-k设置关键字,后续用ausearch -k tmp_write过滤事件。如果你在分析后看到宿主机的/usr/bin出现非预期写入,说明虚拟机隔离已经失效,需要立刻断开实验网络并溯源。这里有一个容易被忽略的点:虚拟机的 swap 文件如果放在宿主机普通目录,断电时可能会把内存中的样本内容写进宿主机磁盘,记得把 swap 文件放到加密分区。
3.2 编译并运行查杀引擎的最小代码
课程源代码工程大概率不能一把梭编译成功,先找到最简单的命令行入口。典型 C 语言教学引擎的编译过程是:
./configure --disable-gui --enable-cli make -j4 sudo make install如果包内没有configure,说明它可能是 Python 或单文件 C 工程,直接用python main.py或gcc -o scanner src/*.c编译。编译失败时先看缺少哪个头文件,常见的是 OpenSSL 或 zlib 依赖未装,用apt install libssl-dev zlib1g-dev补上即可。还有一种常见情况是 autotools 版本太老,configure直接报compile error,看错误日志里如果有config.h.in字样,执行autoreconf -vi重新生成配置脚本。
编译完成后,不要立刻拿真实病毒样本去测,先用 EICAR 文件验证引擎:
./scanner eicar.com输出里有EICAR或Test-File字样,说明病毒库加载正常。若显示no signatures found,大概率是指定路径没找到特征库,通过参数指定:
./scanner --database /usr/local/share/scanner/db eicar.com参数说明:--database或-d指定特征库目录,源代码里的全局变量名通常是database_path。我一般会直接修改代码里的默认值,省去每次敲参数的麻烦,但要注意生产环境不要这样做,以免路径差异导致漏报。如果扫描直接崩溃,多半是数据库目录下有损坏文件,先用--debug参数跑一遍,日志里会打印读到第几条特征时出错。
3.3 让样本在沙箱里跑起来并捕获行为
查杀引擎跑通后,还要模拟“病毒进入主机后会发生什么”。为了安全,我用一个行为模拟脚本代替真实病毒,它只做三件事:写临时文件、尝试本地网络连接、退出。脚本本身不包含任何恶意载荷,却能触发监控规则。
# fake_sample.py import os import socket import time print("[+] 写入 /tmp/persist") with open("/tmp/persist", "w") as f: f.write("test persistence") print("[+] 尝试连接本地 6666 端口") s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) try: s.connect(("127.0.0.1", 6666)) except Exception as e: print(f"[-] 连接失败: {e}") time.sleep(2)这个脚本的行为是“写临时目录 + 发起网络连接”,与木马的第一阶段动作相似。如果查杀引擎只有特征扫描,它会直接漏掉这个样本,因为脚本里没有特征码。这正是你在课件里反复看到的结论:特征码检测对未知和变种样本失效。
捕获行为用strace跟踪系统调用:
strace -f -e trace=file,network -o fake_sample.log python3 fake_sample.pyfake_sample.log里会出现类似这样几行:
openat(AT_FDCWD, "/tmp/persist", O_WRONLY|O_CREAT, 0666) = 3 write(3, "test persistence", 16) = 16 connect(3, {sa_family=AF_INET, sin_port=htons(6666)}, ...) = -1 ECONNREFUSEDopenat是打开文件,write是写入内容,connect是发起连接,这三个系统调用就是最基础的行为痕迹。真实样本还会有mmap、clone、execve等,顺序比这复杂得多。记录日志时-f必须加,否则只跟踪主进程,子进程的行为会全部丢失。如果要同时观察网络数据包,可以在沙箱里再开一个tcpdump -i lo port 6666,把行为日志和流量日志放到同一时间轴上看。
3.4 沙箱分析的关键参数与资源限制
沙箱要封闭,但不能太小。我常用的参数如下:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 虚拟机内存 | 4 GB | 太小样本无法运行,太大容易被反沙箱识别 |
| 虚拟CPU | 2 核 | 单核会让时间敏感样本选择休眠 |
| 快照数量 | 至少 2 个 | 一个干净基线,一个装好分析工具 |
| 网络策略 | 仅主机或完全禁用 | 防止样本外联 |
| 磁盘剩余 | 不少于 20 GB | 日志和样本镜像会快速膨胀 |
反沙箱是课件里容易被一笔带过的内容。很多病毒会检测自己是否在虚拟机里运行,检测点包括 BIOS 厂商字符串、设备型号、鼠标移动轨迹、CPU 指令延迟等。如果你发现样本行为与课件描述不符,先检查.vmx配置文件,可以加一行monitor_control.restrict_backdoor = "TRUE"来关闭 VMware 后门通道。这只能解决浅层检测,真实对抗中还是需要多个不同配置的沙箱轮换。样本处理时间超过 5 分钟还没有任何行为输出时,别硬等,直接恢复快照换成另一个虚拟机环境。
4. 主机病毒防范策略:查杀参数与免疫配置落地
4.1 实时监控与定时扫描的参数取舍
沙箱实验做完了,最终要回到真实主机上配置防范策略。常见做法是“实时监控处理小文件,定时扫描兜底全盘”,两者参数必须分开。以 ClamAV 为例,修改/etc/clamav/clamd.conf:
MaxFileSize 25M MaxScanSize 100M OnAccessMaxFileSize 10M ScanOnAccess yes OnAccessIncludePath /home OnAccessExcludePath /home/user/DownloadsMaxFileSize限制单个文件的扫描上限,超过 25 MB 的文件会被跳过;MaxScanSize是扫描数据总量上限,压缩包解包后的内容也计入;OnAccessExcludePath用来排除开发目录,避免误杀临时生成的编译产物。很多管理员把MaxFileSize调到 100M 以上,结果用户一拷贝大镜像,实时扫描立刻卡住。我的经验是保持默认,业务特殊目录用排除列表处理,比一味放大上限更合理。实时监控的另一个关键参数是OnAccessMaxFileSize,它控制的是触发实时响应的文件大小,比MaxFileSize更敏感,调太高会导致所有目录访问都被拦截,调太低又会放过内嵌病毒的大文件。
Windows 端的思路一致。在 Microsoft Defender 中,ExclusionPath对应排除目录,DisableRealtimeMonitoring不要在正式环境开启,否则失去实时保护。排除列表要精确到目录,不能为了省事排除整个盘符,否则安全软件就成了摆设。对于 Windows 服务器,还要额外关注计划扫描与实时扫描的 CPU 限制,微软文档里叫ScanAvgCPULoadFactor,默认值 50 表示扫描最高占用 50% 的 CPU,业务高峰时段可以临时降到 20,但要接受扫描时间变长的代价。
4.2 从源代码里找特征码生成规则
特征码是防范技术的核心,但它不是随便截一段字节塞进数据库。常见做法是从样本中提取二进制片段,转成十六进制字符串,再关联哈希值。下面的脚本演示最基础的提取过程:
# gen_signature.py import hashlib import pathlib def extract_signature(sample_path: pathlib.Path, offset: int, length: int) -> str: data = sample_path.read_bytes() chunk = data[offset:offset + length] hexsig = chunk.hex() return f"{hashlib.md5(chunk).hexdigest()}:{hexsig}" if __name__ == "__main__": print(extract_signature(pathlib.Path("eicar.com"), 0, 20))脚本从样本开头取 20 字节,输出格式是MD5:HEX。真实引擎不会用固定偏移,因为病毒会在文件前部插入垃圾字节来绕过规则,所以特征表里通常包含多个候选偏移:文件头、中间段、尾部各取一段,形成一个特征链。你在源代码里找signature结构体时,重点看有没有start_offset、end_offset、pattern三个字段,这就是生成规则的实现骨架。
参数调整很有讲究。偏移太靠前,容易被编译器固定头部干扰;太靠后,则影响扫描效率。对 PE 文件,我一般从0x400处取 64 字节,避开了 DOS 头和 PE 头;对脚本病毒,固定偏移不可靠,要提取关键函数名的字符串,再做大小写归一化。特征长则误报少,但检出率低;特征短则检出率高,但误报爆炸。需要在自己业务样本上反复测试,没有一劳永逸的默认值。测试时可以这样批量验证:
for i in $(seq 16 4 64); do python gen_signature.py suspicious.exe 0x400 $i >> sig_results.txt done这行命令把特征长度从 16 字节递增到 64 字节,批量生成候选特征,再拿正常文件库去跑一遍,看哪个长度在误报和漏报之间最均衡。源代码里如果带sig_test目录,通常就是干这件事的。
4.3 策略默认值、更新频率与误报闭环
查毒配置的最终目标是在检出率和误报率之间找业务可接受的平衡点。源代码里的默认值只能做起点,不能当最终结论。我的做法是先跑三天“仅通知”模式,把误报文件路径收集成列表,确认安全后再切换成“拦截”模式。定时任务这样配:
0 2 * * * /usr/bin/clamscan --recursive --exclude-dir=/sys --exclude-dir=/proc --remove=no /home /var > /var/log/clamscan.log 2>&1这里--remove=no是后悔药,命中文件只记录不处理。等第二天看过日志,确认不是误报,再手动隔离。一上来就用--remove=yes,一旦杀错文件,恢复成本极高。每天扫描日志还需要过滤出新增命中,可以用:
grep FOUND /var/log/clamscan.log | awk '{print $2}' | sort -u这行命令把所有命中文件路径去重列出来。拿到清单后再和历史基线对比,新增项优先处理。病毒库更新频率也是一样,不是越频繁越好,而是要与业务窗口匹配;更新窗口设在凌晨扫描之前,保证扫描用上最新特征,这样整体策略才闭环。误报闭环做到位,还有一个隐藏收益:当某天突然出现一个不在排除列表里的正常程序被报毒,你会有更强的动机去查它是不是真的被感染了,而不是直接加入排除列表了事。
5. 病毒防范的常见翻车点:环境、误报与样本污染排查
这套流程里最容易出问题的往往不是原理看不懂,而是环境配置和样本处理。下面这几条是我反复踩过的坑,按“现象到解决”的顺序写出来,照着排查能省不少时间。
5.1 快照被污染
现象:分析一个样本后,虚拟机里的杀毒引擎开始报自身被感染,甚至核心服务无法启动。
原因:样本在沙箱中释放了驻留文件,而运行分析过程中你又继续在虚拟机上做了大量操作,快照已经不能回到干净状态,后续文件也连带被写入。
解决:回到干净快照,重新启动,先以只读方式挂载磁盘检查,再运行新样本。如果宿主机的审计日志出现非预期写入,立即关闭虚拟网络,并隔离这台宿主机。我的习惯是每个样本分析完后直接恢复快照,不在“运行过样本的虚拟机”里做任何记录工作,省得污染下一个实验。恢复快照之前,先把样本的哈希值和 strace 日志复制到宿主机外部存储,否则数据会跟着回滚一起消失。
5.2 杀软误报自编译文件
现象:把源代码编译出的检测引擎放进生产主机的/opt目录后,企业杀毒软件把它当成 HackTool 删除。
原因:杀毒的启发式引擎把“可执行文件包含编译指令”与“代码注入”特征混淆,或者签名库对未知编译器文件高度敏感。
解决:将源码构建目录加入杀软排除列表,然后重新构建一次,确保产物 MD5 与原始记录一致。排除列表要精细到单一路径,例如/opt/myvendor/scanner,并设置该目录只允许 root 写入。不要用排除整个/opt的方式解决问题,那等于给病毒开了一扇门。如果企业杀毒软件不支持按路径排除,可以考虑把检测引擎打包成容器镜像,只暴露扫描接口,宿主机杀软识别容器进程为合法服务,误报能大幅减少。
5.3 特征码不生效
现象:更新特征库后,扫描同一个样本仍然报未命中。
原因:样本在运行时修改了自身字节,加壳导致文件中的原始特征被覆盖;或者特征码偏移基准是文件头,但 PE 解析器自动修正入口点后,实际匹配的位置发生了错位。
解决:打开源代码里的调试输出,打印每个候选偏移处的实际字节,和特征码做二进制对比。重点检查大小写、换行符和字节序。若是加壳样本,先脱壳或从内存转储中重新提取特征,不能直接拿磁盘文件匹配。这里有一个很隐蔽的细节:有些引擎在扫描时会把 PE 文件的重定位表当成空白区域跳过,如果你的特征落在了重定位表区间,即使字节相同也不会命中。遇到这种情况,把特征偏移改到样本入口点附近,就能绕开。
5.4 沙箱内样本不运行
现象:把真实样本放进沙箱后,进程几毫秒内退出,一个文件都没写。
原因:样本检测到虚拟机特征,主动退出;或者它依赖外部服务器下发指令,断网状态下直接自杀。
解决:先看 strace 日志里是否有connect超时记录,确认是否网络依赖。反沙箱的对策是调整虚拟机硬件信息,关闭 VMware Tools,但不要指望一个沙箱能处理所有样本。真实分析场景需要准备多套不同配置的沙箱轮流试,单点投入过大反而收益降低。比如一套用 Ubuntu 20.04,一套用 Windows 10 精简版,一套用只读根文件系统,样本在每套环境里的行为可能完全不同。关键是不能只看最终结果,还要对比不同环境下的系统调用差异,找出样本到底在哪一步放弃运行。
5.5 源码与课件版本不同步
现象:课件里描述的scan_buffer函数在源代码里完全搜不到。
原因:课件按旧版本编写,源代码已经历重构,函数被改名或拆分到不同模块。
解决:不要从头搜函数名,改搜课件里出现的输出字符串。例如课件写了一句"file scanned",直接全仓库搜索这个字符串,定位到调用位置,再沿调用链向上反推。这个办法比搜函数名可靠得多,因为用户可见的输出字符串很少在重构中改变。同样,遇到源代码目录与课件章节对不上时,用文件头注释建索引,比凭记忆翻目录高效。如果搜索字符串也找不到,检查代码仓库的 Git 历史,很多课程包在打包时会把旧版本留在分支里,切到 tag 重看一遍就能匹配上。
6. 从样本到IOC:用源代码跑通一次应急响应联动
6.1 提取主机IOC:文件哈希、注册表、启动项
把沙箱实验得到的行为痕迹转化成可以分发的 IOC,是从学习走向实用的一步。在 Linux 上,IOC 至少包含文件路径、SHA256 哈希、时间戳。用一段脚本就能提取:
# collect_ioc.py import hashlib import pathlib import datetime def file_hash(path): h = hashlib.sha256() with open(path, "rb") as f: for block in iter(lambda: f.read(65536), b""): h.update(block) return h.hexdigest() def main(): for t in ["/tmp/persist", "/usr/bin/unknown"]: p = pathlib.Path(t) if p.exists(): print(f"{t}\t{file_hash(p)}\t{datetime.datetime.now().isoformat()}") if __name__ == "__main__": main()输出是三列制表符分隔的表格,可以直接导入威胁情报平台。Windows 端还需要提取注册表启动项,比如HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run,格式同理。注意哈希算法必须统一,SHA256 和 MD5 混用时,情报比对会全部失败。
6.2 用脚本批量对比威胁情报
拿到哈希后,最常见做法是在本地威胁情报库里比对。如果情报库是 CSV,一行命令就完成:
grep -f ioc_hashes.txt threat_intel.csv没有匹配不代表安全,可能情报库还没收录,也可能是哈希提取错误。优先确认提取的哈希值是文件原始内容还是内存镜像的,同一个程序在两处的哈希完全不同。源代码里若有hashutil.py,直接调用它,避免自己重复实现。
6.3 自动化产出处置策略
批对比完成后,把结果写成结构化的处置建议,推给运维工单。处置策略至少包含封禁哈希、删除持久化文件、回滚配置三项。我用一个字典维护:
response_policy = { "file_hash": "sha256:<hash>", "action": ["quarantine", "delete"], "path": ["/tmp/persist", "/usr/bin/unknown"], "rollback": ["remove_cron_job", "delete_local_user"], } print(response_policy)这段代码并不完整,但它把沙箱分析信息变成了可下发的指令。等主机数量超过五十台,再把response_policy接入自动化编排平台,就是一个小型应急响应系统。我自己的习惯是每次分析完样本都把 IOC 和处置策略保存为 JSON,放进历史目录,三个月后回看就能发现分析方法的变化。整套流程从课件原理开始,最后落在可执行的响应动作上,这就是一套源代码加课件能带来的最大价值。希望帮到你。
本文还有配套的精品资源,点击获取