目前传统的安全检测、防护类设备针对业务应用安全基本上没有防护效果。数据分析与机器学习为业务安全问题提供了一个有效的解决方案。基于业务的历史数据,通过统计分析与机器学习的方法学习出业务的历史特征,结合专家知识形成业务特征的基线。根据基线来检测业务行为是否存在异常。本文给出了几个通过数据分析和机器学习的方法检测业务系统中异常的具体案例:web业务安全、物联网卡业务安全、变电站业务安全。
随着高级持续性威胁(APT)攻击的泛滥以及内部人员威胁的增加,针对企业业务系统的安全威胁日益增多。当前,一般企业的安全检测类产品有操作系统(OS)漏扫、Web漏扫、数据库(DB)漏扫等,但这些设备都不能发现客户自开发应用的安全问题、业务逻辑方面的安全问题。同时,目前部署的入侵检测系统(IDS)等检测类设备由于是基于特征库或者启发式规则进行检测,对于针对业务逻辑类攻击、APT类的攻击往往毫无感知。传统的防火墙(Firewall)往往针对五元组进行检测,对上层应用的防护效果不大。Web应用防火墙(WAF)主要针对Web攻击进行防护,而对业务逻辑、业务数据伪造等攻击无能为力。同时,沙盒类APT攻击检测措施的重点是检测威胁OS或某些应用的恶意代码,对针对客户应用数据的检测更是无能为力。
业务系统的异常有很多类型,最常见的有以下几种:
- 业务逻辑异常。例如用户通过运营商的网站办理缴费业务,通过某种方式绕过了支付的步骤,导致在用户未支付的情况下成功办理了收费业务。
- 业务滥用异常。例如对网站进行薅羊毛,虽然业务的操作逻辑完全正常,但是薅羊毛属于对业务的滥用,也是业务异常。
- 业务数据异常。例如业务的参数异常,业务的统计数据异常等。
综上所述,目前传统的安全检测、防护类设备针对业务应用安全基本上没有防护效果。与网络层面的安全不同,业务应用安全的特点是用户的行为符合访问控制规则,并且对业务的每一步操作都不带有明显的攻击特征,例如没有SQL注入,没有跨站脚本攻击(XSS)等攻击特征。但是用户对业务的整体操作流程存在着异常,例如验证码猜测,密码暴力破解,关键业务操作步骤缺失等。因此,需要一种全新的方案来检测业务系统的安全。
数据分析与机器学习为业务安全问题提供了一个有效的解决方案。基于业务的历史数据,通过统计分析与机器学习的方法学习出业务的历史特征,包括操作逻辑特征,时间特征,参数特征,统计信息特征等,结合专家知识形成业务特征的基线。根据基线来检测业务行为是否存在异常。
与网络安全不同,业务系统的种类繁多。对于Web类型的业务来说,由于其一般工作在TCP/IP网络协议的第七层,即应用层,其业务参数及业务操作定制化程度很高。另外对于像工控系统,其业务主要是针对设备的控制指令操作,或者设备本身的数据上报与心跳。因此,对于不同类型的业务系统,其面临的业务安全问题差别较大,需要针对不同的安全场景开发相应的解决方案。下面分别针对几种典型的场景,给出相应的业务层面的分析手段。
一、Web业务安全场景
Web类型的业务一般工作在TCP/IP网络协议的第七层,主要采集业务办理过程中浏览器的HTTP头数据来学习业务的操作序列。HTTP头数据中包含有时间,HTTP请求类型,body,cookie,referer等字段信息。其中,HTTP请求类型信息可以区分出相应的请求是否对应了关键的业务操作;body和cookie信息可以用来标识出用户信息和会话的信息;referer信息可以用来标识业务的资源信息。其系统结构如图1所示。
图1 Web业务安全系统结构
采用关联分析和统计分析的方法对采集到的HTTP头数据进行分析,以得出业务的操作序列。在用户对业务系统的操作过程中,浏览器主要有两种类型的HTTP请求,即GET类型的请求和POST类型的请求。而对于业务办理的操作来说,由于需要向服务器提交数据,所以业务办理的关键步骤对应的都是POST类型的HTTP请求。
提取出POST类型的数据以后,根据cookie和body中的信息将一个用户在同一次会话的数据聚合在一起。将聚合以后的操作序列按照时间进行排序,就得到了有序的业务操作数据。
在HTTP请求数据中,referer信息可以标识出业务的资源,例如运营商系统中的流量套餐,彩铃等业务。每个用户在一次会话过程中可能会办理多项业务,这些办理业务的操作数据会一起出现。因此需要将这些数据按照referer信息进行聚合,以分别提取出用户办理业务的操作序列。
将前面提取出的业务操作序列进行去重,即得到包含有用户信息和会话信息的序列。为了提取出业务本身所对应的操作序列,需要去掉用户信息和会话信息,只留下业务本身的操作信息。在实际的业务系统中,业务本身的操作信息由URL的跳转序列,和序列中每一条URL所对应的body信息中的属性名组成。统计出原始数据中每一组URL跳转序列出现的次数,再分别统计出每一组URL跳转序列下所对应的不同的body参数属性名称组合出现的次数,并按照从多到少的顺序进行排序。出现次数多的序列更有可能是正常的业务操作序列。将提取出的序列与专家知识进行结合,即可得到业务操作序列的基线,用于检测业务操作序列的异常。
根据前面的方法,针对某彩铃订购网站的HTTP请求数据进行统计分析,得到的业务最小操作序列如表1所示。在表1中,URL序列就是通过统计学习得到的一条最小操作序列。在后面的参数字段就是在这种操作序列下出现的body中的参数字段的组合。出现次数指的是在给定的原始数据中相应序列组合的出现次数。在表1中一条URL序列对应了三种body的组合,也就是说表1中包含了三种可能的业务。统计学习出来的结果还需要经过管理员的确认,以保证其准确性。这样通过历史数据学习来取得业务的操作序列可以帮助管理员配置安全审计系统中的业务操作基线,减少管理员的工作量。
表1 Web业务最小操作序列示例
二、物联网卡业务安全场景
物联网卡指的是运营商用在物联网业务中的SIM卡。物联网卡的类型与功能如表2所示。
表2 物联网卡的类型与功能
由于很多物联网卡的功能与普通手机卡的功能相同,所以物联网卡会存在着被滥用的情况,即被用在个人手机业务中,或者被用来进行薅羊毛、电信诈骗等。另外,由于物联网卡一般不会与设备进行绑定,所以也会存在物联网卡实际应用的业务场景与合同约定的场景不同的情况。基于大数据分析和机器学习的方法可以有效的发现物联网卡业务数据的异常,进而发现被异常使用的卡。
图2 物联网卡异常分析流程
如图2所示,采集物联网卡的语音话单、短信话单、流量话单、上网日志和发卡与用卡单位相关信息等数据,根据异常分析模型数据需求,从话单中提取出有效的关键数据特征,如通话信息、短信发送信息、上网行为信息等,采用统计分析,关联分析和相似度聚类分析、深度学习等基于机器学习的方法进行行为模式分析。其中,统计分析针对原始数据进行统计,并基于专家知识找出统计结果的异常。关联分析将多个维度进行关联,进一步提高检测的准确性。基于机器自学习的行为模式分析通过历史数据学习出卡的行为模式特征,并基于特征来检测卡的当前行为是否异常。将分析的结果经过人工审核与确认,最终找到被异常使用的物联网卡。
基于某运营商的物联网卡的相关数据进行分析,并结合人工调查的结果,得出物联网卡主要存在以下几种异常使用的情况:
1. 挪用异常
物联网卡被应用的场景发生了变化。例如原来被用在电梯卫士中的SIM卡被用在了车务通中。由于物联网卡的发卡合同规定不允许私自变更卡所应用的物联网业务,因此这种情况属于异常使用。通过和人工确认,发现异常的卡号有320个。
2. 滥用异常
物联网卡只能应用在物联网业务中,不能应用在个人业务中。如果物联网卡被用在了个人的手机中,这种情况属于卡被滥用的情况。经过分析和人工确认,发现存在滥用异常的卡号一共有1020个。
3. 合同及管理异常
在实际调查中发现,有很多的卡虽然在数据分析的结果中被认为是异常,但实际上这种异常并非由于卡被异常使用所引起,而是由于在管理中的疏忽所导致。例如有些卡存在个人业务的行为特征,而实际调查中发现这些卡本身就是已经实名制的个人手机卡,但卡的相关信息却出现在了物联网卡的数据集合中。这种情况一般是由于卡在被管理的过程中出现差错导致的,而卡本身并不存在被异常使用的情况。另外还有一种情况是物联网卡的发卡合同中只规定了卡所对应的收费套餐,而没有规定卡所应用的行业场景。这种情况也属于对卡的管理存在漏洞导致的异常,而不是卡本身存在被异常使用的情况。
三、变电站业务安全场景
变电站是电力系统中变换电压、接受和分配电能、控制电力的流向和调整电压的电力设施。它通过其变压器将各级电压的电网联系起来。而智能变电站是指通过智能设备以全站信息数字化、通信平台网络化、信息共享标准化为基本要求,自动完成信息采集、测量、控制、保护、计量和监测等基本功能,并可根据需要支持电网实时自动控制、智能调节、在线分析决策、协同互动等高级功能的变电站。与传统变电站不同,智能变电站采用IEC61850的标准。这是一个国际通用的变电站自动化系统。它对于设备的行为,数据的命名以及定义都进行了规范。智能变电站使用电子式互感器替代传统的电压互感器,使用光纤接线替代传统的信号电缆硬接线,传输的数据也变为数字量。
与一般的IT网络不同,由于工业网络中经常存在轮询,诊断,周期刷新等业务,工业网络中传输的报文在时间上通常具有一定的规律。变电站网络如果遭到入侵导致工作异常,其报文传输的时间特性通常会发生变化。因此对变电站网络中报文传输的时间特性进行分析,可以为变电站网络是否遭到入侵提供一种检测的方法。这里以智能变电站中的MMS报文为例,来分析其传输的时间特性。
将采集到的MMS报文按照源IP/port,目的IP/port,报文类型和关键字进行聚合,聚合以后统计其传输间隔的时间特性。其时间特性如图3所示。
图3 聚合以后的MMS报文的时间间隔特性
如果MMS报文的时间间隔特性发生变化,则说明中间有对系统的操作,或者系统出现了异常情况。由于时间特性的变化会很微小,不容易直接检测到,这里采用小波变换的方法进行检测。如图4和图5所示。
图4 MMS报文的时间间隔与其小波变换
图5 MMS报文的时间间隔与其小波变换
图4所示是对图3中的序列进行小波变换以后所得到的结果。在图5中,时域信号发生了微小的变化。这种时域的变化不容易直接检测。但是采用Haar小波变换的方法却可以检测这种变化,如图5中间的曲线图所示,时域序列的微小变化会引起小波变换以后的结果发生较大的变化。通过检测这种变化,即可检测到原始时域序列的变化,进而检测报文传输的异常。
以上给出了几个通过数据分析和机器学习的方法检测业务系统中异常的案例。可以看出由于业务系统的功能不同,其数据源和分析方法有较大的差别。根据系统的特点和功能对其数据进行分析与学习,将得到的结果与专家知识结合,即可发现业务系统中的异常情况。