上医治未病:云上入侵检测安全启示录
星期二, 一月 7, 2020
两千多年前,《黄帝内经》提到“上医治未病,中医治欲病,下医治已病”。云安全也是同理,未雨绸缪、防患于未然,这虽是老生常谈,但真正能具备这一能力的企业却不多,各种各样的安全事件仍在频频上演。
2017年5月,WannaCry勒索病毒在全球爆发,百余个国家遭受大规模攻击,是史上波及范围最广的病毒之一。这次安全事件为各行各业敲响了警钟,但却并没有“长鸣”。
图:近两年部分重大网络安全事件一览
可以看到,黑客入侵攻击是无处不在的。而没有防护的云计算环境相当于裸奔,只要任意一点遭受攻击,便有可能波及云上所有业务。在黑客威胁日益严重的情况下,云主机又该如何应对呢?☟
UHIDS是UCloud为保护用户云主机安全而设计的一套基于主机的安全检测体系。该体系能够实时监控云主机的安全性,及时发现安全隐患,帮助用户了解云主机的安全状况并有针对性地进行加固。UHIDS能在事前做好风险检测并加以告警,也就是我们所说的“上医治未病”。
那么,UHIDS又是如何“治疗”云安全“未病”的呢?
入侵受害者有两类人,一种是知道自己已经被入侵了,可此时亡羊补牢,为时晚矣;另一种是不知道自己被入侵了,等到大厦将倾时才发现。
其实,还可以存在第三类人:在系统受到危害前便已接收到警告,因而可以做到防患于未然。
如何才能做到在系统受到危害前便可有效检测出入侵方式呢?未知攻,焉知防,如下图,基于Cyber-Kill-Chain网络攻击杀伤链模型,我们还原出了一个简化的入侵攻击流程。
图:一个简化的入侵攻击流程
每个阶段的攻击详情如下:
UHIDS的整体设计思路就是在每一个攻击步骤的关键点设置检测手段,这样设计的好处是避免单点失效,且尽可能的提前知晓入侵手段并采取相应的防御措施。此外,在越早的攻击环节阻止入侵,修复漏洞的成本和时间损耗也会越低。
根据入侵攻击链不同阶段的特点,UHIDS云上入侵检测有三种思路,可提供对各类攻击的有效防御。
登录安全是所有服务器最基础的安全内容,代表了服务器的入口。登录安全通常存在的安全风险包括:密码泄露、弱密码、暴力破解、不安全的配置、漏洞利用等。作为云上用户,我们遇到最常见造成入侵的风险往往是弱口令,弱口令带来的风险也是不容小觑的。
2015年春运前夕爆发了12306数据泄露事件,乌云网发布漏洞报告称,大量12306用户数据在网络上疯狂传播。本次泄露事件被泄露的数据达131653 条,弱密码在其中就占据了举足轻重的地位。
通常,针对弱口令的攻击方式包括异地登录和暴力破解。传统的检测方式一般按照非黑即白的策略去检测,即让用户添加一个白名单列表,只要不在白名单列表中的地点/IP均告警,然而该方法的缺点在于需要用户在维护白名单列表上投入大量人力,往往造成用户使用上的麻烦。
图:黑白名单策略示意
UHIDS提出了一种基于机器学习的检测方法。基于机器学习模型强大的自学习及泛化能力,通过学习大量的数据,挖掘出潜在的登录风险为业务决策提供支撑。
机器学习都需要一个训练阶段,从数据收集到模型建立通常需要会面临诸多难题。下面是我们遇到的典型问题与解决思路。
在入侵检测的场景中,由于黑名单数据(黑样本)的数量远少于白名单数据(白样本),因此会出现样本类别不平衡的问题,进而导致机器算法模型失效。
为解决该问题,我们通过SMOTE算法在相似样本中进行 feature 的随机选择并拼接出新的样本。SMOTE算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本,如下图所示。
图:SMOTE算法原理示意
在模型建立后,后续的数据清洗和预处理、数据分析到合并稀疏特征、One-hot编码处理离散型特征、随机森林选择特征、标准化、归一化、正则化也都会对模型的最终效果也会产生较大影响。因此这就需要研究如何根据登录IP、登录时间、登录地点、登录方式等字段构建出不影响模型拟合问题的特征工程。
针对该问题,我们采用交叉验证的方法评估模型的预测性能,并通过网格搜索进行模型参数选择,在后期还会通过bagging、stacking等模型集成手段进一步提升效果。
最终,通过机器学习和业务经验的结合,UHIDS的检测模型大大提高了异地登录的检测准确率,降低了误报率,提升了用户体验。
图:UHIDS异地登录检测功能示意
应用安全风险通常由三部分构成:
针对应用安全漏洞风险,UHIDS的应对方案如下:
图:UHIDS漏洞库匹配功能示意
云计算场景中最常见的木马类型是僵尸网络 Botnet和挖矿木马。近年来,随着区块链技术和数字货币的火爆,无数黑客及黑产组织“盯”上了云端充足的计算资源,据统计,今年挖矿木马已经超越Botnet成为造成用户损失最多的病毒。挖矿木马通常会占用用户全部服务器带宽和CPU资源,导致正常业务中断。
图:挖矿木马
这类木马通常是利用成熟已公开的漏洞或者简单的安全问题进行全球范围内的无差别扫描,一般不会涉及到特别复杂的技术原理。预防此类木马,需要用户加强对应用安全中未修复的安全漏洞和不安全的配置的关注。
目前,UHIDS针对木马查杀主要使用以下三种手段:
图:UHIDS控制台木马检测功能示意
最后,从安全防御的角度来讲,安全防御是一个与黑客竞争的过程,只有抢占先机,在攻击者利用漏洞攻击前修复漏洞,才可以有效防止此类攻击。而抢占先机的前提就是关注云厂商发布的漏洞和事件预警,在第一时间做好防范工作。
以一个ThinkPHP漏洞为例。ThinkPHP是一款国内流行的开源PHP框架,2018年12月9日ThinkPHP官方发布一则安全更新,内容为修复了一个严重的远程代码执行漏洞,该漏洞可导致(php/系统)代码执行,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的Getshell漏洞。
在官方预警发布后,UHIDS也在第一时间更新漏洞特征库并开启入侵检测模式。此后,在该漏洞大规模爆发时,UHIDS及时向用户发布了漏洞告警,免于遭受入侵攻击。
图:UHIDS检测到ThinkPHP漏洞
需要明确的是,UHIDS入侵检测只是UCloud云安全防护体系中的一环。在实际业务中,还需针对具体需求明确具体防护手段,例如DDoS防护、Web安全防护等。此外,在与黑客暗中较量的赛场上,最重要的还是安全意识的建立,产品可以提供外力的辅助,但内在安全的构建仍需企业巩固提高自身安全意识。