聊天作为日常亲友沟通,工作交流的主要方式之一,在用户的潜意识中,往往不会对微信好友时刻保持警惕性,这就给了微信钓鱼攻击者可乘之机,攻击者为了获取目标信任,往往会进行身份伪装。
常见的被伪装身份包括求职人员,第三方服务商,更换对接人员的客户,猎头等,通过看似合理的述求来添加目标微信,一旦攻击者的微信好友申请被通过,攻击者往往只需要一个病毒附件就可轻易发起攻击。
当目标打开附件时,病毒攻击随之进行,导致电脑数据被窃取,或被利用作为跳板,对企业内部系统或网络进行攻击渗透。针对各种各样的社工攻击,我们除了教育,提醒用户时刻注意微信安全以外,技术上我们也需要考虑一些相应的手段来进行补充。
考虑到各家企业环境不同,设备人员,流程处置方案均存在一定的差异,我这里仅抛砖引玉提出攻击防护思路,各企业人员应当根据自家环境情况进行适配和调整,不代表本方案的绝对可行性。
闲话短说,我们先需要关注的是网络传输方案,有些网络防火墙本身就具备监控文件传输的能力,且拥有沙盒校验的能力,那么就可以通过网络防火墙监控文件的传输。通常情况下,这类防火墙会对传输的文件还原后进行哈希校验,如果发现该哈希在其数据库中不存在,则定义为新文件,并提交其关联的文件沙箱进行检测;如果该哈希是已知文件,在上述检测中如果是良性标签,则会放行通过,如果是恶性标签,则会中断传输,防止文件落地。
如果企业中并没有具备拥有该种能力的防火墙设备,那么文件的落地后检测则是下一步的主要防护行动,通过微信传输的文件种类繁多,有以PDF,DOC等为主的文档文件;有工具类,软件类等各种可执行文件,比如EXE/MSI,以及恶意文件,比如SCR/LNK/VBS等;当然,最多的还是各种压缩包文件,常以ZIP/7Z/RAR/ISO为主的加密或者非加密文件;甚至,有的攻击者会直接传输伪造的双扩展名文件,诸如.DOCX.EXE,.ZIP.EXE等等。
准备
文件落地的监控,我们需要依赖于SYSMON或者其他EDR系统来进行,本文为了统一性,仅采用SYSMON作为阐述的工具,在这里,我们就需要利用到SYSMON的事件来进行监控,在Sysmon事件ID 11 (FileCreate)中,当创建或覆盖文件时,会记录文件的创建和创建文件的进程的信息。这个事件对于监视启动文件夹、临时目录和下载目录等位置非常重要,这些位置通常是恶意软件在初始感染期间放置的地方。(关于具体如何使用SYSMON,本文不再赘述,请自行查阅相关文档)为了针对微信文件传输进行监控,我们还需要在配置文件中添加监控标签,因为微信存储在WINDOWS中的路径由用户属性组成,所以,这里仅需记录“wxid_”就已经足够。
当发起文件传输的时候,SYSMON就会记录该文件创建事件
值得注意的是:如果系统中存在反病毒或者EDR的微过滤驱动,且拥有更小的Altitude值时,并且它检测到恶意文件并阻止其写入磁盘后,SYSMON将不会再记录该事件。
文件创建事件写入日志后,如果具备大型日志平台的企业,可以通过日志收集工具将主机端的SYSMON日志通过SYSLOG的方式传输到后台日志平台,比如ELK和SPLUNK等,拥有日志平台的企业就可以通过自定义查询实现更进一步的筛查和跟进。
检测
我们这里假定企业暂时不具备集中化的日志管理平台,可以通过使用Powershell语句查询SYSMOM关联日志,比如:
Get-WinEvent -LogName 'Microsoft-Windows-Sysmon/Operational' -FilterXPath "*[System[(EventID=11)]]" -Oldest -MaxEvents 10 | Select-Object TimeCreated, ID, ProviderName, LevelDisplayName, Message | where message -match 'wxid_' | Format-List
如上所述,SYSMON的文件创建事件并不具备获取文件哈希的能力,所以我们还需要自行获取文件的哈希
Get-FileHash "C:\Users\XXX\WeChat Files\wxid_XXXX\FileStorage\MsgAttach\820e7XXXXXXXXXfe490\File\2022-10\简历.zip"
提取到文件哈希后,我们可以提交到VirusTotal或者其他的威胁检测平台进行哈希扫描,从而获得初步的文件标签信息。或者将该文件通过API提交给VT或者内部自建的沙箱平台进行检测,如果该文件为压缩包文件,且设置了密码加密的文件,取决于企业的不同的安全策略,可以针对性的实施包括工单报警,人工检查,或者直接删除等操作。
如果我们依然不具备集中管控平台,也没有办法进行日志集中化采集,其实我们也可以考虑在本地进行采集,过滤和提交,利用Windows本身自带的任务计划程序,我们亦可以通过触发SYSMON的文件写入条件来执行Powershell或者其他脚本命令,后续大家可以执行扩展一下。
隔离
文件沙箱检测的结果通过API返回到工单系统后,根据结果来进行下一步的操作,沙箱检测可能会占据一定量的时间片,从文件传输落地到文件检测结束,中间可能存在一定的DWELL时间(从失陷到检出时长),所以如果该结果为恶意,那么最佳实践操作就是对该主机实施隔离操作,并重置该账号密码。
处置
既然检测出来是恶意攻击行为,再隔离主机后,我们就要开始着手进行相关溯源工作,确定该事件的类型,形态,甚至引入到特定的蜜罐进行调查工作。特别需要强调的是,由于SYSMON的版本更新,SYSMON具备了一个非常强大的功能,即,能对文件的写入和执行进行拦截,我们可以利用这点对伪造文件实施阻拦策略,禁止文件落地。
而针对压缩包文件,或者说用户习惯性的双击执行压缩包中的可执行文件,这点,我们可以通过组策略来进行限制,具体操作方法请参考我其他文章,这里也不再赘述了。
恢复
恢复环节已经是处于工单的闭环环节,在清查完毕持久化后就可以交付主机给回用户了。
提升
必要的,长期的,反复的用户教育是必须的,从用户角度而言,真的很难防范各种专业的高科技和狠活,用户的安全意识提升依然还是很重要的一块,防范于未然。而对于技术防守方来说,我们也需要重新审查各个环节,复盘整个技术推敲链,看看是否还有其他可以提升的地方。
自动化
企业体量达到一定程度,微信用户数量也必然是爆炸性增长,文件传输的总量肯定也不少,企业也可以有效利用SOAR平台进行全程自动化操作。
总结
靠人工实现的检测流程是繁琐的,自动化流程在整个方案过程中能起到锦上添花的作用,也能大幅度降低重复性的工作,但也并不是说一定要有SOAR才可以对微信社工攻击进行防范。我们在不具备完整自动化平台的情况下,利用SYSMON+Powershell+TaskSchedule+反病毒沙箱已经可以很大程度上实现本文所说的攻击防护,能有效地减小和缓解微信社工攻击所带来的危害。