作者:mcvoodoo
前 言
一直以来大家都在用各种技术和机制检测安全威胁,从早期的SOC到SIEM,再到现在大数据驱动的UEBA。UEBA通过机器学习对用户、实体进行分析,不管这种威胁是不是已知,也包括了实时和离线的检测方式,能得到一个直观的风险评级和证据分析,让安全人员能够响应异常和威胁。
背 景
恶意检测一般通过对异常行为设定规则来判断,也会使用各种防御设备监控流量,例如IDS,WAF等。但这些系统的扩展性始终是个问题,当流量突发增长时很难跟得上,同时基于流量的检测可见性也不够,在交换机的接入层基本上由于成本原因,就无法再进行检测了,更不能通过其他网段的上下文来辅助,攻击如果巧妙一点,完全可以绕开这些设备。
软件是另外一种办法,在终端上监控设备之间的数据,但一样,软件的可扩展性、可见性也不令人满意。
实际上,如果设备和用户是可信的,现有的很多方法都检测不到。传统安全产品的缺点是无法检测未知威胁和内部威胁,无法扩展,难以处理大数据。而且攻击者总能找到绕过传统安全技术的方法,比如规则驱动的恶意文件签名,沙盒。此外随着数据量的增加,人工分析越来越慢,响应速度过长。举例来说杀伤链,从入侵到横向移动到渗透,传统安全产品很难关联并作出适当响应,容易被大量误报淹没。
UEBA相对来说具有洞察力和可扩展性,简单说UEBA是大数据驱动,且采用机器学习方法进行安全分析,能够检测高级、隐藏和内部威胁的行为分析技术,不需要使用签名或规则。在杀伤链上能关联数据,进行有针对性的发现,这些分析技术包括机器学习、行为建模、分类、对等组分析、统计模型和图形分析。分析结合评分机制,对比活动,最终实现异常和威胁的检测。同时,UEBA还包括威胁可视化,以可视的方式跨越杀伤链分析。
因此UEBA一个特点就是要能处理多个数据源的大量数据,这些数据源格式不同,速率也很快,后续的数据处理能够从结构化/非结构化提取有价值信息,数据处理是数据挖掘和预测分析领域的延续扩展,也是一门单独的学科:知识发现和数据挖掘。数据源分为实时和离线,实时连续监测分析传入数据,一般不考虑历史数据和第三方数据关联,因为对性能有影响。
UEBA检测到的是“异常”,异常是说和预期行为发生了变化,变化不一定是威胁,例如大促活动就会带来变化。异常表示需要引起关注,评估后给出威胁判断,威胁指标则代表了关注度的逐级上升。比如通过数据源产生了100个异常,进一步聚合为10个威胁特征,再次产生了1-2个威胁指标,这种数据扩展的方式让UEBA能够进行异常和威胁检测。
在机器学习背景下,历史数据和第三方数据都可以用来改进模型,但这些数据要比实时大的多,所以也比较慢。因此一般不把历史数据用在实时处理,即使用也以实时数据为主。实时检测后需要触发动作,例如封IP,锁定账户,杀进程,误报解除等,这些动作可以不是直接拦截,而是提供出来进行人工决策,这些决策的反馈,进一步更新改进模型。
离线处理可以发现更微妙的异常和威胁,实时处理是有短时间决策约束的,离线在这方面要宽松很多。实时处理的数据是经过过滤的,完整的数据存为离线,因此离线可以有