应急响应日记 | 和APT黑客团伙斗智斗勇的一天

admin 2022年4月27日08:46:20应急响应评论17 views2694字阅读8分58秒阅读模式

警铃大作,队员们放下筷子,来不及擦嘴就集结上车,开往事故现场,扑灭危险,保护人们的生命财产……这样的场面,你肯定在电视里看过不少。


但很多人并不知道,在网络安全领域也有类似的“救火队员”角色——“应急响应团队”


在现实世界里,他们看着就是一个个普通人,静静坐在电脑前,探着脑袋敲键盘,然而当视角转入赛博空间,他们用代码和黑客犯罪团伙拼杀,上演侦查与反侦查的场面。


今天这篇文章由微步应急响应团队投稿,我们润色了一下,试图用最通俗的语言还原一次“救火”过程,让更多人了解这个群体及背后的故事。


警报响起


一个普通的下午,阳光透过窗,懒洋洋地洒在办公桌上,二狗子坐在工位上摸鱼。
应急响应日记 | 和APT黑客团伙斗智斗勇的一天

屏幕上弹出一个应急响应工单,二狗子虎躯一震瞬间提神:“来活了啊,又是一个APT(高级持续性黑客攻击)。


工单显示:

某大型客户现场的TDP(威胁感知平台-Threat Detection Platform)提示发生过多次APT攻击,并且已有多台设备失陷!需要应急响应人员到现场响应排查。

路边等车的间隙,二狗子点燃一根烟,猛抽两口。

达现场,经情报分析研判,所有IOC(入侵指标)都指向某个商业APT 团伙“W”(出于保护客户隐私等原因不便透露太具体,姑且先叫“W”),经过深度研判,该 IOC 属于最新狩猎到的关联情报。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天


用大白话说就是:

这个团伙之前作案用的木马被捕获过,“作案前科”都收录在微步安全云里。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天


溯源木马背后的团伙


微步在线安全云显示:
这个木马幕后的 APT 团伙“W”这些年非常活跃,包括国内金融、高科技、教育等相关行业的数十个目标都曾被“W”团伙攻陷,相关核心数据被窃取,损失惨重。
 
APT 组织“W”非常擅于“伪供应链攻击”。
 

“伪供应链攻击”听起来高大上,其实很好理解——先找到一些运维人员常用的运维工具,比如 iterm2、navicat、snailsvn 、rinetd等等。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天

在程序里植入后门和木马。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天

挂在网上供人们下载,再投一投广告,优化一下搜索排名,让它们尽可能多曝光。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天

然后这些工具,就被运维人员开开心心地下载过去使用……

应急响应日记 | 和APT黑客团伙斗智斗勇的一天 

也许是因为缺乏安全意识的运维人员实在太多,也许是因为黑客团伙们的“伪供应链投毒”伪装得太好,该问题影响范围十分广泛

应急响应日记 | 和APT黑客团伙斗智斗勇的一天


锁定木马进程的“样貌”


既然之前抓到过这个团伙的木马,一顿严刑拷打,就能摸清他们的作案手法。
 
具体做法是:把之前捕获到的关联木马文件,放到碗里,哦不,放到虚拟机或者沙箱里运行,默默观察它会做什么(就像如来佛看着掌心里的孙悟空),针对性地提出解决方案。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天

二狗子发现,这个木马会伪装成一个系统守护进程叫[rcu_sched]。

 

就好比小偷伪装成保安或者物业人员,潜入大楼,以此躲避检查。

 

系统守护进程很多,怎么把伪装的给揪出来呢?二狗子想到一个比较快速的木马排查方法:排查PID

 

PID是什么呢?

 

如果操作系统是一栋办公楼,进程是里头进进出出的人,PID就是人们第一次进大楼的打卡次序

 

当一台电脑启动,第一个启动的进程PID就是0,第二进程PID就是1,第三个进程PID就是2……以此类推。

 

依照二狗子的经验:如果一个进程的PID大于300,却标榜自己是系统守护进程,就很可疑,大概率是伪装的。

 

因为系统守护进程总是优先启动的,就像一栋办公楼,最早来的肯定是负责开门的保安大爷、负责打扫的保洁大妈、负责开灯的物业人员。如果一个人中午才来上班,却说自己是负责开门的保安,那肯定有问题。

 

果然,排查到一个PID是1417的进程,疑似木马。
应急响应日记 | 和APT黑客团伙斗智斗勇的一天


解析这个进程的详细信息,与本地测试关联样本一致(越看嫌疑越大)。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天
一番分析确认,“妥了,就是它了,这个叫[rcu_sched]的系统守护进程。”
调查到这一步,二狗子嘴角微微上扬告诉一旁的同事和客户:难度不大,场面可控。”
此时他还不知道,自己即将被打脸。

消失的进程

等到现场上机排查,二狗子发现客户机器上根本没有一个名叫[rcu_sched]的伪造系统守护进程。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天

???

二狗子懵了。

 
这就好比侦查人员前期已经得到确切情报:坏人会以[rcu_sched]的名字混进保安队伍,可是翻遍整个小区的保安名单,根本没有一个叫[rcu_sched]的人。
 
难道是情报有误?资产没定位好?不可能啊,情报在前期已经确认无误,告警频率持续稳定也都符合感染特征,客户反馈终端定位没错,而且有关终端的其他辅助告警也有。
 
难道是刚才在虚拟机里复现木马,流程没走完,导致漏掉了木马后面的隐藏动作?也不会啊。
 
二狗托着腮,闭上双眼,陷入沉思……
 
“为什么,谁能告诉我为什么?……”

冥冥之中,脑海里传来一个声音指引着二狗子:

应急响应日记 | 和APT黑客团伙斗智斗勇的一天


真相只有一个,我知道了,是预加载劫持隐藏!”
 
传说中的“预加载劫持隐藏”,是一种隐藏进程的方法。
 
利用修改一些参数,让恶意的动态库先于系统标准库加载,以达到架空系统标准库中相关函数的目的,最终实现对特定进程的隐藏。
 
用一个不太准确但易于理解的比喻:
 
小偷混进小区以后,弄了一个假的物业办公室和一份假的物业人员名单,一旦有人来查,就主动带他们到假的办公室,看假的名单,从而隐藏自己。

二狗翻开自己的“小本本”,里头详细记录着关于 Linux 预加载劫持链接库隐藏的方法和解法(不懂技术的读者感受一下就好):

应急响应日记 | 和APT黑客团伙斗智斗勇的一天
按照里头的方法一顿操作,再重新查看所有系统守护进程,大于300 的系统守护进程果然出现,名字:[rcu_sched]
应急响应日记 | 和APT黑客团伙斗智斗勇的一天

木马功能分析

经过分析,这个进程名叫[rcu_sched] 的木马具有文件下载功能,和内核模块交互隐藏文件,新增 DNS,修改 DNS,删除文件、创建文件,隐藏进程等功能,具有反弹加密后的 shell 功能。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天


简单来说,就是隐藏自己,窃取数据,接受远程命令以及下载更新木马组件。


然而魔高一尺,道高一丈,二狗子只轻轻敲下几个命令,后门和木马便灰飞烟灭。
应急响应日记 | 和APT黑客团伙斗智斗勇的一天

为了避免之后发生类似情况,二狗子也给客户提供一些安全加固的建议:

  • 建议做好威胁检测联动阻断,同时有序做好内部网络区域权限划分隔离和资产管理。
  • 建议实时或定期更新补丁/版本,并测试资产接口只对内部网络区域开放。
  • 建议内部建立统一且唯一办公终端软件来源,且有关软件工具必须来源官网下载并做好安全审核(千万不要下载使用来历不名的软件了)
  • 做好内部安全设备运营。

从客户单位出来,二狗子望着天边一团火烧云,又点燃一根烟:“呼——又是充实的一天呢,一会儿到家吃点儿什么好……”他背着双肩包,很快消失在熙熙攘攘的下班人流之中,这是他普通的一天。

应急响应日记 | 和APT黑客团伙斗智斗勇的一天




· END ·

点击下方名片,关注我们
觉得内容不错,就点下在看
如果不想错过新的内容推送,可以设为星标应急响应日记 | 和APT黑客团伙斗智斗勇的一天

原文始发于微信公众号(微步在线):应急响应日记 | 和APT黑客团伙斗智斗勇的一天

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月27日08:46:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  应急响应日记 | 和APT黑客团伙斗智斗勇的一天 http://cn-sec.com/archives/948764.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: