COM劫持后门植入:一个让人防不胜防的安全隐患
Posted by 安全小咖

说实话,第一次听到"COM劫持后门植入"这个词的时候,我脑子里是一片懵的,COM?是串口那个COM吗?后来才搞明白,这玩意儿跟串口半毛钱关系都没有,说的是Windows系统里的组件对象模型(Component Object Model),哎呀,真是隔行如隔山啊!不过等我真正了解了这套攻击手法之后,后背是真的发凉——这玩意儿太隐蔽了,普通人根本察觉不到。
先说说COM是个啥吧,简单讲,它就是Windows系统里的一套"积木"机制,各种软件之间互相调用功能,靠的就是这套东西,你打开一个程序,它背后可能调用了十几个COM组件在默默干活,问题就出在这儿——既然调用关系这么复杂,那攻击者是不是可以从中做手脚?答案是:太可以了!这就是所谓的COM劫持后门植入,攻击者通过篡改注册表中COM组件的加载路径,让系统在调用正常功能的时候,顺手把恶意代码也给"请"进来了,你说气人不气人?
我记得有个做安全研究的朋友跟我聊过,他说这种手法最恶心的地方在于——它不需要你点击什么可疑链接,也不需要你下载什么乱七八糟的软件,系统自己就会把后门"请"进来,你说冤不冤?攻击者通常会盯上那些加载权限高、调用频率高的COM组件,比如某些系统服务用的组件,一旦劫持成功,每次系统启动或者某个服务运行时,恶意DLL就被悄无声息地加载了,啧啧,这手段,真是防不胜防啊!
更让人头疼的是,COM劫持后门植入的检测难度相当高,为啥呢?因为注册表里那些CLSID看着都差不多,一堆大括号包着的字符串,普通人谁会去一个个核对?而且有些合法的软件卸载之后,注册表残留没清理干净,攻击者正好利用这个空档,把恶意路径填进去,你说这不是钻空子嘛!我那个朋友说,他们做应急响应的时候,经常要在注册表里翻半天才能找到蛛丝马迹,有时候还得对比基线数据才看得出来,真是费时费力。
那怎么防呢?说实话,完全杜绝不太现实,但咱们可以做一些基础工作,比如定期检查注册表中COM组件的InprocServer32键值,看看指向的DLL路径是不是正常的;再比如用一些专业的EDR工具做行为监控,发现异常加载就报警,还有啊,系统补丁该打就打,别偷懒!我见过太多人觉得"哎呀补丁打了系统变慢"就不打了,结果呢?被COM劫持后门植入盯上了,哭都来不及。
另外提一嘴,企业环境里最好做应用程序白名单,只允许可信的DLL加载,这招虽然有点"一刀切"的意思,但确实管用,我那个朋友他们公司就是这么干的,虽然偶尔会误拦一些正常组件,但总比被植入后门强吧?你说是不是这个理儿?
啊,COM劫持后门植入这事儿,说大不大说小不小,关键在于你有没有意识到它的存在,很多人压根不知道有这种攻击方式,等到中招了才追悔莫及,所以今天写这篇东西,就是想提醒大家——安全意识这根弦,啥时候都不能松啊!好了,今天就唠到这儿,有啥想法欢迎评论区交流,咱们下回见!
本文由安全小咖原创,转载请注明出处,更多安全干货,请关注本站COM劫持后门植入专题页面。