知识图谱赋能企业安全运营

发布时间 2023-05-08 23:39:52作者: 朱志勇

知识图谱是近年来新兴的技术,其应用空间很大,目前在企业安全运营领域还处于探索起步阶段。本文结合自身的工作经验探讨知识图谱的落地思路与方案。

1、背景介绍

知识图谱是由谷歌提出的概念,其本质是由实体(概念)及实体(概念)间关系,以及关联属性组成的一种语义网络,通过结构化的数据组织结构,以有效表示实体(概念)之间的语义关联关系。可形式的化表示为:

 

其中每个三元组代表一个知识单元,表示了源实体 Subject 与目的实体 Object 之间,具有关系 Relation。

在海量的安全数据轰炸下,智能安全运营需要强烈的可视化需求,当发现攻击行为的时候,需要涉及到各种行为之间因果依赖关系的深度搜索,综合多个方面安全数据的关联分析,该领域十分依赖于安全专家的经验。除此之外随着高级持续威胁的不断发展,复杂的网络攻击往往隐藏在复杂的关系网络数据中。知识图谱就是为此类问题所设计的,因此知识图谱可以推动智能安全运营的发展。

 

以下为安全知识图谱技术路线图:

 

2、技术方案选型

主要考虑以下因素:

  1. 开源项目,对商业应用友好。拥有对源代码的控制力,才能保证数据安全和技术的自主可控性,便于二次开发;
  2. 支持集群模式,具备存储和计算的横向扩展能力。业务数据量可以达到千万以上点边总数,吞吐量可达到数万 qps,单节点部署无法满足存储需求;
  3. 在线OLTP 类图查询服务极简单 OLAP 类图查询能力。探索分析场景下,为确保分析得时效性,不能接受太高的查询响应时间;
  4. 具备批量导入数据能力。原始数据一般存储在 Hive 等数据仓库中,必须有快速将数据导入到图存储的手段。

Spark 作为通用大数据计算引擎,在实时计算、批处理、图计算方面都有非常优秀的表现,并且整体技术生态的兼容性更好。Nebula Graph 是一个开源可靠的分布式、线性扩容、性能高效的图数据库。因此,最终的技术方案选用 Spark作为图谱构建与图算法引擎,Nebula Graph 做图存储与交互式分析平台。

 

3、实际案例介绍

3.1 基础安全- 网络入侵溯源

3.1.1 需求场景

对于网络入侵场景下,在端点防护设备检测到异常行为触发告警时,常常需要安全人员做出如下分析判定:

  1. 基于告警内容上下文,快速研判攻击是否真实发生;
  2. 还原攻击者的入侵链路图。在最短时间内定位入侵原因、制定应急决策;
  3. 评估攻击受灾面,通过关联分析,发掘更多的为未知威胁。

3.1.2 数据建模

节点类型:包括 host(主机),process(进程),file(文件)、network(网络)。

关系类型:

  • 主机创建进程 (host)-[create]->(process),
  • 进程创建子进程 (process)-[fork]->(process),
  • 进程读写文件 (process)-[open]->(file),
  • 进程连接网络 (process)-[connect]->(network)。

3.1.3 实践方案

  1. 对于Linux 环境,采用ebpf 技术,捕获系统调用,根据调用类型 细分出 文件读写、进程创建、网络连接等行为;
  2. 对于Windows 环境,使用Sysmon系统监控工具,记录进程创建,网络连接以及文件创建的操作行为;
  3. 根据图谱的建模设计进行知识提取、知识融合,建立行为分析图谱;
  4. 以安全告警起始节点通过向前追溯寻找攻击入口点,通过向后扩展判定此次攻击影响范围。
  5. 通过图路径查询功能,可以构建未知威胁的检测场景。通过端点间的图连通性查询,可识别异常连接与共享场景。

3.1.4 成果演示

 

3.2 数据安全- 数据流转分析

3.2.1 需求场景

随着企业业务的发展、IT系统愈更加复杂,特别是随着微服务化的盛行,组件、实例间的关系更难以梳理。在进行数据安全治理的时候,常常有如下痛点:

  1. 对于涉敏接口而言,关联到哪些实例组件、数据蔓延的范围是怎样的;
  2. 对于数据库而言,涉敏数据分布在哪些库表,以及哪些业务系统、关联方访问过这些数据。

3.2.2 数据建模

节点类型:包括 app(客户端),container(容器) , service(服务),database(数据库),table(数据表)。

关系类型:

  • 客户端请求容器 (app)-[request]->(container),
  • 容器调用服务 (container)-[call]->(service),
  • 容器读写数据库 (contianer)-[operate]->(database),
  • 数据库拥有数据表 (database)-[has]->(table)。

3.2.3 实践方案

  1. 镜像web网关流量,识别接口是否存在涉敏行为,结合APM 链路追踪技术,得到接口调用全流程数据;
  2. 镜像数据库网关流量,解析查询sql语句,获取库、表、操作字段,结合数据分类分级,得出数据库访问关系数据;
  3. 根据图谱的建模设计进行知识提取、知识融合,建立行为分析图谱;
  4. 在图谱上图查询分析,获得接口调用关联图、涉敏数据分布图、涉敏数据流向图、全局数据关联方视图等数据

3.2.4 成果演示

 

3.3 业务安全- 欺诈团伙检测

3.3.1 需求场景

在互联网金融行业,利用知识图谱甄别欺诈场景,通过挖掘不同用户之间的亲密离散度,并通过关系图的形式直观呈现,实现"异常中心"一目了然。

  1. 群体关系分析:分析一批客户之间的关联,我们需要知道他们是通过什么东西关联起来的,是通过 共用设备、登录相同账号、共享担保人、连接到同一个局域网wifi地址 还是其他关系;
  2. 风险节点预警:某个用户刚授信,想申请借款的时候就开始预警,这个节点可能有很大的风险,调查他的关系网络是怎样的、跟一些风险节点的关联是什么样的;
  3. 风险社区的发现:现在有些黑产,都是团伙作案的,需要去发现有哪些团伙具备欺诈性质

3.3.2 数据建模

节点类型:包括 customer(客户id),device(设备唯一标识),applyNo(申请号),wifi。

关系类型:

  • 客户直接认识 (customer)-[know]->(customer),
  • 客户使用设备 (customer)-[use]->(device),
  • 设备访问订单 (device)-[visit]->(applyNo),
  • 设备连接wifi (device)-[connect]->(wifi)。

3.3.3 实践方案

  1. 业务端对app上重要操作节点进行数据埋点,包括但不限于:设备唯一标识、手机号码、账号、进件号;
  2. 进行数据清洗与知识提取,根据图谱数据建模,建立团伙行为分析图谱;
  3. 准实时处理新增数据,并和全量图谱进行融合、通过图连通性,过滤掉孤立节点,降低计算的复杂度;
  4. 使用基于部分黑样本的标签传播算法、进行社区团伙的划分,并在社群内部进行权重评分、社群定性分析;
  5. 分别对每个团伙 记录 30天、15天、7天、3天和 当天 的关系网络结构,追踪图谱的演变过程。

 

3.3.4 成果演示

 

 

3.4 高级威胁- 欺诈团伙检测

4、结束语

本文分别讨论图交互式分析和图算法挖掘在企业安全运营场景下的落地实践方式。知识图谱除了上述分享的应用场景外,常见的场景还包括但不限于 ATT&CK 威胁建模、IOCs信标分析、攻击推理、威胁情报融合等。如何让知识图谱更好地赋能企业安全运营技术,仍需要网络安全专家们共同探索。