ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

蠕虫病毒攻防实战:从传播原理到应急响应指南

蠕虫病毒攻防实战:从传播原理到应急响应指南 凌晨一点多值班电话突然响了。电话那头是个刚入职没多久的运维声音有点抖“哥我们单位二十多台电脑同时弹窗文件全变成.locked结尾了杀毒软件刚才还能打开现在双击图标一点反应都没有。”我先让他把所有能拔的网线都拔了然后翻防火墙日志。屏幕上的源IP和目的IP几乎一模一样全是针对文件共享端口的扫描流量。不用再猜这是蠕虫而且来头不小。蠕虫病毒大概是安全圈里最让人头疼的一类恶意程序。它不需要你点击附件、不需要你把U盘插进去碰运气只要有网络连接它就能自己从一个节点跳到另一个节点像流感一样在局域网里横向扩散。这篇就当应急手册存着吧。从蠕虫为什么能这么横到该怎么防、中了该怎么办我把这些年踩过的坑和能直接抄作业的步骤全写在下面。不管你是刚接手公司安全的新手还是被各种勒索弹窗搞到头大的网管都能照着用。1. 蠕虫病毒为什么是“数字世界的自我复制者”1.1 蠕虫不是普通意义上的“病毒”很多人习惯把所有恶意程序都叫病毒但在专业区分里蠕虫和病毒是两条路线。传统病毒更像“搭便车”的乘客它必须寄宿在某个可执行文件、文档或引导区里等用户双击运行那个文件病毒才跟着启动而且主要在一台机器内部折腾。木马又是另一路它走的是“伪装”路线假装是个正常软件骗你亲手把它放进来。蠕虫不一样。蠕虫是一个独立完整的程序它不寄宿在任何宿主文件里也不需要用户去“启动”它。它自带一套传播引擎只要到了一个有网络的系统里就自动开始扫描下一个目标、利用漏洞打进去、把自身复制过去然后在新机器上重复这套流程。一台、两台、一个网段、一个区域网络就这样滚雪球式扩散。我把三者做了个对比表方便你一眼分清类型是否需要宿主文件是否靠网络传播是否需要用户交互典型行为传统病毒需要一般不需要需要点击运行感染文件、破坏系统木马伪装成独立文件可主动也可被动需要用户安装窃密、远程控制蠕虫完全独立强依赖网络完全不需要自复制、横向传播、DoS、勒索1.2 那些让全网翻车的“名场面”搞安全的人聊蠕虫总绕不开几个历史事件。第一个是1988年的莫里斯蠕虫当时互联网还没现在这么大一个程序就导致数千台主机瘫痪作者后来被起诉罚款这个“意外”直接催生了CERT应急响应体系。2001年的红色代码利用微软IIS漏洞在Web服务器之间横冲直撞主页被篡改只是表象真正麻烦的是它把服务器变成了攻击跳板。2003年的SQL Slammer更离谱整个蠕虫只有376字节利用的是SQL Server的解析漏洞发布后几分钟内就席卷全球大量ATM、银行系统因此中断服务。再往后就是国内运维都熟知的场景了。2008年的Conficker利用Windows Server服务漏洞和弱口令双向传播让无数企业内网开起了“共享目录联欢会”。2017年的WannaCry则把蠕虫和勒索软件合体利用MS17-010漏洞在局域网内自动穿透全球几十万台电脑中招很多医院、制造企业的生产线直接停摆。你会发现真正造成大面积的蠕虫从来不靠什么高级“钓鱼话术”靠的就是漏洞和弱口令这两个老本行。它能跑得那么快核心原因就四个字无人驾驶。1.3 自复制引擎扫描、利用、释放、复读蠕虫的“自我复制”并不是玄学它背后是一套很朴素的循环逻辑。第一步是扫描蠕虫会生成大量目标地址可能是随机IP也可能是针对当前网段进行的顺序扫描探测目标主机的特定端口和服务版本。第二步是利用它会尝试用已知漏洞或弱口令打进目标系统。第三步是释放把自身程序写入目标机器的磁盘注册成服务或计划任务确保系统重启后依然能运行。第四步是复读新感染的机器立刻变成新的扫描源开始攻击下一批目标。这四个步骤听上去简单但组合起来极其可怕。因为它意味着感染规模是“指数级”增长的。在理想条件下一台新机器刚上线一小时内就可能污染整个广播域。更麻烦的是很多蠕虫还会在自身复制完成后删除临时文件、关闭杀毒软件的进程、修改系统配置导致清理工作必须在“断网离线查杀”的模式下进行。这也是蠕虫被称作“自我复制者”的真正含义它不是靠用户操作去繁衍而是靠网络协议本身去繁衍。2. 蠕虫的主要传播途径与感染链路拆解2.1 蠕虫进企业的“电梯”——常见传播通道防御蠕虫首先要知道它从哪里进来。以我接触过的真实案例来看企业内网里的蠕虫传播通道就那么几条数得过来。第一条是SMB/Windows服务漏洞对应的就是445、139这类端口。WannaCry就是走了这条路。很多老设备、打印机、视频监控终端暴露了过时的SMB协议成为全网蠕虫的突破口。第二条是邮件附件和下载器蠕虫会被伪装成压缩包、脚本甚至PDF文件通过邮件网关进入某个员工的电脑然后在内网横向扩散。第三条是共享目录和弱口令蠕虫会尝试用字典词库去猜Windows共享、数据库、FTP以及远程登录的账号密码一旦有一台服务器用了“admin/123456”这种口令整片网络都跟着遭殃。第四条是可移动介质经典的是Autorun.inf自动播放机制U盘一插蠕虫立刻写入并感染其他电脑。第五条是供应链与软件更新通道攻击者攻破某个软件厂商的更新服务器推送带蠕虫的更新包这种案例虽然少见但一旦发生就是“全网等保变等死”。我把这些通道的行为特征整理成了表格方便日常排查时对照传播通道典型特征常见易发场景SMB/系统服务漏洞445/139端口大量扫描流量未打补丁的Windows、老版本监控设备邮件附件带宏文档、自解压包、混淆脚本员工安全培训薄弱的单位共享目录与弱口令IPC$/ADMIN$登录尝试、异常写入服务器口令老化、共享权限过大可移动介质Autorun触发、U盘频繁跨网使用涉密不严的办公环境、打印店U盘供应链更新软件服务器被入侵、安装包异常缺乏软件来源管控的单位2.2 一次典型蠕虫感染由外到内的整体链路光讲通道太抽象我拆一个实际走访过的案例给你看。某市办事处有台笔记本电脑因出差被带回家使用在家里的宽带上中了蠕虫。回到公司后同事把笔记本插到办公网的口上麻烦就来了。第一步笔记本上的蠕虫立刻开启扫描。它先探测当前广播域内的存活主机然后向整个办公网段的445端口发送大量连接请求。第二步攻击命中一台没打补丁的Windows 7主机。这台主机长期没人重启系统更新早就停了蠕虫利用漏洞获得了远程执行权限。第三步它开始尝试横向提权通过IPC$连接和管理员弱口令试探成功登入了文件服务器。第四步它把自己的副本写入文件服务器的共享目录并生成了带随机名称的快捷方式或隐藏文件。第五步其他员工访问共享目录时文件服务器上的蠕虫又借助Windows计划任务或网络驱动器悄悄扩散到更多电脑上。整个过程从第一台机器接入到大面积感染往往不超过几个小时。蠕虫根本不在乎你是谁它只在乎有没有路。2.3 蠕虫为什么特别难缠网络层面的行为特征你可能想问杀毒软件为什么没能拦住这里面有个很现实的原因蠕虫的传播行为发生在网络层面而传统杀软主要监控文件系统。当一台机器已经被感染杀软或许能识别出病毒文件但如果蠕虫利用的是系统进程或内存加载文件查杀就会滞后。更麻烦的是蠕虫会把检测到异常的主机变成“僵尸源”其他被感染的主机还会不断回连形成交叉感染。难缠的地方还体现在这几个方面蠕虫能自我变异和下载新组件。有些蠕虫有“升级”模块能从外部服务器拉最新的攻击载荷绕过固定的特征码。无文件手法越来越多。有些蠕虫不落地文件直接在内存里执行脚本磁盘上只留下很少的痕迹。受影响的内网设备类型太杂。打印机、摄像头、门禁系统、老式工控机都可能成为跳板而这些设备往往没有端点防护。所以处理蠕虫不能只靠某一类软件必须从“网络流量”和“系统状态”两个维度同时入手。3. 全面防御体系从端点、网络到恢复预案3.1 补丁管理是蠕虫的“断粮工程”先别急着买各种高端的检测设备大多数企业防不住蠕虫首先栽在补丁管理上。老生常谈的一句话没有补丁蠕虫就会一直有“可乘之机”。补丁管理的核心不是每月打一次就完事而是要先搞清楚资产清单。哪台服务器跑了什么服务哪台终端连着哪个网段谁装了第三方软件这些必须成册。我把补丁管理的节奏分成三档。第一档是例行更新运维每个月固定一个维护窗口先在一组非核心机器上验证补丁再全量推送。第二档是紧急补丁安全通告发布后48小时内先对暴露在互联网侧的设备和核心服务器打补丁其余终端可以放宽到一周内。第三档是对无法停机设备的补偿策略比如某工业控制器必须7×24运行不能随便重启那就通过网络访问控制把它隔离在独立网段并用虚拟补丁或入侵检测规则先顶着。很多单位打补丁只盯着WindowsWindows打完了就以为万事大吉。实际上开发框架、数据库、中间件、网管软件、打印设备固件都有可能被蠕虫利用。补丁资产的覆盖面一定要完整。3.2 端点防护杀软之外还缺什么杀毒软件在蠕虫面前并不是完全无用它能把已知特征挡在门外但真正到了爆发时刻单靠特征库是扛不住的。所以我更推荐在重点服务器和重要终端上启用EDR类工具把行为监控、进程链分析、横向移动检测这些能力补上。具体落地上有几件事可以马上做。一是关闭不必要的文件和打印机共享。办公场景如果需要共享尽量用文件服务器统一开放不要每台PC都开启Everyone可写目录。二是调整账户权限普通员工使用标准用户账户不要给本地管理员权限。很多蠕虫横向传播时会尝试从当前进程的内存中抓取凭据如果普通账户没权限它能拿到的东西就有限。三是在Windows上开启受控文件夹访问功能把文档目录加入保护名单遇到异常写入就弹窗拦截这对勒索型蠕虫有一定抵御效果。四是检查终端入网条件新设备必须经过防病毒软件版本检查、补丁更新检查不符合基线的一律不允许接入办公网。3.3 网络边界和区域隔离让蠕虫“过不去”网络隔离是控制蠕虫扩散最关键的一道防线。很多企业网络是一个大平面办公区、服务器区、监控设备全在一个广播域里蠕虫一旦进来就像去掉了围栏的羊圈到处乱窜。比较务实的做法是做好VLAN划分。办公网和服务器区之间用防火墙做访问控制除业务必须端口外默认拒绝一切访问。不同部门之间也可以按风险等级隔离尤其要把打印机、网络摄像头这类“带网卡但没人管”的设备单独划一个设备区。这样就算某一区域的机器中招蠕虫也很难横向跳到核心数据区。对于端到端的服务通信现在主流的方案是微隔离。简单说就是在每台服务器上定义它“应该和谁通信、用什么协议”其他一律禁止。微隔离落地确实有成本但即便没有微隔离产品你也能靠传统防火墙策略模拟出类似效果把“内网到内网”的流量也纳入防火墙日志记录不让内部流量裸奔。这里有一个很值得做的细节把445、139、3389等敏感服务端口从“全内网可达”改成“只对特定运维网段开放”。很多蠕虫横向移动靠的就是这些端口在内网里横行。缩小暴露面比事后追查高效得多。3.4 账号口令与权限对抗弱口令蠕虫最便宜的手段在没有任何安全设备的情况下做好口令管理至少能挡下一半的蠕虫。蠕虫想靠暴力破解打进来需要一个前提目标系统有可穷举的高权限账号。你只要把这个前提破坏掉它就基本断了横向的路。口令管理的几个硬指标我建议直接写进运维制度里本地管理员密码不能全网统一至少不同安全域使用不同口令。所有机器账号、服务器账号的密码长度不少于14位并包含大小写、数字和特殊字符。关闭Guest账户禁用不必要的本地账户。限制管理员组中的成员数量离职员工的账号要及时注销。关键服务器启用登录失败锁定策略避免被无限次暴力尝试。除了口令本身还要注意防止凭据被窃取。启用Windows的Credential Guard或在组策略中禁用WDigest明文口令缓存能有效减少密码被从内存里“偷”走的风险。这招在对抗内网横向移动时特别有用。3.5 数据备份与恢复预案最后一道防线无论防御做得多么完善都务必假设有一天防不住。这时候备份就是救命稻草。备份的核心原则是“3-2-1”至少三份数据副本存放在两种不同类型的介质上其中一份离线或不可变存储。做备份时有个很常见的误区备份系统本身也在内网里还被改了管理员口令结果蠕虫扩散时把备份文件一起加密了。所以备份存储一定要做网络隔离离线备份要定期做恢复演练。不要说“我每天都备份了”就万事大吉恢复演练才是检验备份有没有用的标准。服务器上的备份数据要能恢复到最近一天的完整状态终端用户的关键文档建议搭配云盘或集中文档管理系统保留历史版本。在应急预案里还要明确恢复顺序先恢复核心业务系统再恢复普通办公终端。恢复前要确保网络侧已拦截蠕虫流量否则刚恢复的设备会立刻被再次感染。4. 确认感染后的应急处置实操4.1 第一时间“断网拔线”真的对吗很多新手遇到蠕虫第一反应是拿起杀软全盘查杀。这个做法如果碰到感染早期还行一旦内网已经出现多个感染点单纯查杀是回天乏力的因为新感染源还在不断产生。更科学的工业化流程是“先隔离后处置”。隔离的第一步是断网但断网也不是盲目拔线。如果你判断只是某一台机器中招可以只拔那一台机器的网线避免影响业务。如果是全网扩散就要在核心交换机上把受影响的VLAN做隔离禁止跨区域流量。有条件的话先把防火墙上针对可疑端口和外部IP的拦截规则拉起来让蠕虫的对外通信先断掉。断网之前最好能尽量保全证据。感染时间、弹窗内容、可疑进程名、防火墙告警记录、用户访问日志这些都会成为后续溯源和同类事件排查的依据。如果条件允许对一两台重点主机做内存转储后面分析用得上。但注意普通运维没有专业取证工具不要强行去动磁盘否则可能破坏痕迹。4.2 清理了文件就行了吗——查杀后的“复查五件事”我处理过好几起“反复中招”的事件最后查下来原因几乎都是清理不彻底。蠕虫的感染往往不只是落了一个exe文件它可能写了计划任务、注册表启动项、WMI事件订阅甚至替换了系统文件。你光把病毒文件删掉下次开机它又从计划任务里跑回来了。查杀完成后的复查建议按照下面五步走重启主机观察是否还有异常进程和服务。用安全工具全盘扫描后再次检查启动项、计划任务、服务列表里有没有陌生条目。修改所有可能被蠕虫接触过的账号口令包括本地管理员、域账户、服务器登录口令。确认系统的关键漏洞补丁已补齐特别是漏洞利用涉及的组件。把主机接入隔离网段观察一段时间看防火墙日志里是否还有攻击外联流量。千万不要把刚清理完的机器直接插回办公网起码观察24小时以上。4.3 局域网内反复感染的追根溯源最让人崩溃的场景是明明查杀了好几遍第二天又有新机器中招。这种情况十有八九是“老弱病残”设备漏掉了。排查时先看边界设备上的威胁日志找到最早发起扫描的源IP。然后顺着源IP找到那台机器直接断网离线查杀。很多时候中招的是一台没有安装杀软的工控机、一台被遗忘在机柜里的老旧服务器又或者是一台连了网却没人管理的打印机。这些设备平时不在运维视野里却是蠕虫理想的“长期宿主”。还有一类情况是蠕虫并没有驻留在硬盘上而是藏在某个启动镜像或固件里单靠操作系统查杀根本扫不到。如果遇到这类疑难杂症建议把该设备从网络彻底下线做固件重置或系统重装不要心存侥幸。4.4 应急处置后别忘了复盘事件平息不等于工作结束。每次处置结束后我都会按“时间线、影响范围、处置动作、根因分析、改进清单”五个维度整理一份报告。这份报告不仅仅是为了留档更是为了下一步的整改动作具有可执行性。复盘时要回答几个问题第一个问题是入口到底在哪是补丁没打还是账号口令泄露第二个问题是横向传播路径上有没有拦截点防火墙策略为什么没拦住第三个问题是这次事件影响了什么业务恢复过程是否够快第二个复盘的产出物应该是一份详细的整改任务表明确由谁负责、何时完成、验收的标准是什么。5. 常见问题速查与独家避坑清单5.1 感染蠕虫后的常见问题速查这些年帮人处理蠕虫听得最多的几个问题我整理了一下基本能覆盖绝大多数现场场景现象最可能的原因处理思路一台电脑反复中招启动项/计划任务未清干净或补丁缺失重装系统先打补丁再恢复数据内网多台电脑同时中招共享目录、文件服务器或弱口令被人利用先封端口再排查共享写入权限杀毒软件弹窗但文件没被加密蠕虫还在早期扫描阶段立刻隔离感染源全网查杀断网后仍有异常流量设备可能被安装了后门程序断网查杀必要时重装固件和系统文件后缀被改成加密格式遭遇勒索型蠕虫不要轻易支付赎金先看有没有解密工具再从备份恢复5.2 几条不太常见但很管用的经验先说说用防火墙日志定位源头。很多单位的防火墙日志多到看不完横跨一整天的告警上百万条。我的习惯是把日志导出后用分组统计工具按源IP聚合看每个源IP触发的会话请求总量排前几位的异常IP十有八九就是感染源。这个办法比肉眼翻日志快得多。再聊聊那些不能打补丁的老旧设备。一些上了年纪的Windows系统在生产线里跑得正欢厂商早就停产了没法打更新补丁。这类设备我的处理办法是把它放进独立VLAN只允许它访问有限的目标IP和端口其余流量在边界上直接限制住。老设备没补丁不可怕可怕的是它暴露在一个漏洞横行的网段里。还有一个细节不建议大家把网络共享全部关闭。设置好共享目录的读写权限删除Everyone组按具体用户分配访问权限比一刀切禁用更符合办公需求。共享就是为了提效权限管好就行。写在后面的两句心里话最后再啰嗦点个人感受。处理了这么多起蠕虫事件我最大的体会是蠕虫防御从来不是买一套多贵的盒子就能解决的而是要老老实实把“补丁、端口、口令、备份”四件套做扎实。这四件事里但凡有三件做得到位蠕虫基本闹不起来。再分享一个我日常用的技巧把网络环境中开放的敏感端口列一张白名单基线表上面写清楚谁在用、在哪个网段的哪个IP之间通信、为什么要开放。每个月巡检时把这张表和防火墙配置对比一次超范围开放的一律关掉。别小看这个笨办法很多病毒入侵靠的就是一张过了时的开放端口清单。希望这篇内容能在你真正遇到问题时帮你少走几条弯路。
返回列表