数据安全风险算法探索与实践

 

在数字经济高速发展的背景下,数据是企业的核心资产,其安全更是成了企业发展命脉;在适应、提速合规数字化的进程中,企业在安全方面也面临着诸多痛点和难题:

  1. 大部分企业尚不具备0Day或1Day漏洞攻击的检测能力;
  1. 业务逻辑漏洞得不到有效解决,接口鉴权认证问题普遍存在;
  1. 线上业务总是遭受各类黑灰产攻击侵扰,风控策略匮乏且滞后严重;
  1. 企业无法体系化、专业化监测和发现业务应用数据泄漏问题。

针对以上痛点,我们借助机器学习算法,从接口画像、访问行为、时序关系、响应内容等多类特征维度构建了威胁洞察引擎™,能提供快速、准确、透明、可解释的数据安全风险解决方案,搜寻复杂度较高、传统解决方案难以发现的数据安全风险。

undefined

有别于一般的机器学习建模场景,在安全领域,攻击行为总是被淹没在海量的正常行为之中:例如很多攻击者会故意模仿成正常用户进行攻击,或者使用大批量代理IP隐藏攻击。

攻击手法变化无常,传统的基于规则的WAF、IDS/IPS设备并不能完全挖掘出所有攻击行为,同时攻击者往往知晓安全检测规则,了解如何去绕过安全设备的检测逻辑。

我们基于正常行为总是大同小异、异常行为总是变化无常、机器行为总是极其相似等等先验假设,借助各类机器学习算法的融合使用,建立了集风险检测、风险洞察、风险溯源为闭环的数据安全流量风控体系。

undefined

风险检测

面向互联网暴露的业务应用通常会遭受登录类攻击、扫描类型攻击、数据爬虫类攻击、业务安全类攻击等等。有些攻击可以通过关键词匹配或正则匹配的方式进行检测,有些攻击在单事件纬度与正常用户访问并无明显差别。

就算法而言,其实攻击本质上都是单个特征纬度或多个特征纬度出现了异常,因此无论是传统WEB安全攻击,还是数据爬虫攻击、业务逻辑攻击,检测算法设计的核心是去定义和发现特征纬度上的“异常”。

举例来说,一个攻击者可能花几块钱的成本购买几万个代理IP批量爬取政企工商信息谋利,每个IP单个访问事件本身相对正常用户访问事件没有什么特征,但这些恶意的IP整体上在访问次数、访问接口数、访问时序关系、访问频率、接口调用关系等等特征上与正常用户的访问特征偏离较大,因此只要定义和构建好特征指标,各类难以靠规则覆盖的攻击异常是可检测的,其中关键的技术问题只有两类:特征工程怎么做和算法如何设计。

undefined

但解决这两类技术问题并不容易,既需要丰富的安全经验沉淀,能够理解复杂、多样化的攻击并从中定义关键特征,也需要深厚的算法实践经验,融合各类机器学习技术,无监督或有监督地构建异常分析模型,最终从数据层面发现“异常”。

风险洞察

为了确认检测到的异常流量哪些属于攻击、属于哪一类攻击,风险鉴别模块需要在横向(异常关联)和纵向(内容分析)两个维度进行深度分析,我们称之为风险洞察。

通过横向和纵向深度分析,有些异常告警会被当作误报剔除,有些异常告警会被识别为真实的、具有运营价值的攻击,例如资产扫描哪些资产路径是被攻击者成功发现的,从而提升运营效率,优化运营体验。

undefined

很多种不同攻击方式会触发大量事件级别异常告警,例如登录爆破、资产扫描、漏洞扫描、数据爬虫等等。在此类攻击模式下,单事件异常告警数量极大,安全运营困难,因此单纯的事件级别告警是没有意义的,需要通过算法从攻击特征纬度、攻击主体纬度进行关联聚合,避免告警风暴,实现风险聚合。在横向纬度,可以融合特征聚类、安全知识图谱等技术聚合单事件告警,并且判定攻击类型;

undefined

undefined

即便风险通过不同的纬度进行了聚合,只是在整体上实现了风险压缩,本质上仍未解决运营难题,所以需要从技术层面自动化分析响应内容,提取关键信息,定位关键攻击事件,智能化提升安全运营效率。在纵向纬度,可以借助文本相似度、NLP自然语言处理、文本模式聚类实现关键信息提取和攻击成功/失败判定,例如SQL注入拖库攻击基于响应内容构建文本特征,并利用聚类算法层面观察攻击结果:

undefined

undefined

在安全实践过程中,很多行为异常,例如用户行为离群风险、用户行为基线异常风险等等,实际上在解释层面具有一定难度,例如使用了代理池的爬虫风险,每个代理IP只访问少量次数,为什么这些代理IP会被当作代理IP,或者为什么这个IP的访问行为被判定为爬虫聚合风险中的一部分,风险洞察也需要解决此类难题,否则要么行为模型仅仅基于简单的规则导致应用价值受限,要么行为异常解释不了导致运营价值较差。不同行为风险模型需要设计和实现不同的解释方式,根因分析、各类特征重要性评估、正常与异常行为特征的空间距离评估等算法在该课题领域具有重要实用价值。

undefined

undefined

在攻击展示层,为了进一步理解攻击行为,以攻击主体为线索,可以进一步呈现该攻击主体的行为时间线,例如在攻击主体触发当前风险的时间前后,该攻击主体还发起了哪些攻击、访问了哪些接口,获取了哪些数据、达到了怎样的效果。在风险洞察横向和纵向算法层面做好的情况下,安全产品实现该过程并不难,主要是在交互和工程范畴做好设计和实现。

undefined