首页> 中国专利> 一种基于正则行为树的微服务架构内部威胁审计方法

一种基于正则行为树的微服务架构内部威胁审计方法

摘要

本发明公开了一种基于正则行为树的微服务架构内部威胁审计方法,属于微服务架构安全技术领域。针对现有的微服务架构多采用用户和应用系统交互边界的安全防护技术,无法满足微服务架构在内部威胁下的安全防护需求,公开了一种微服务架构内部威胁审计方案。该方案为微服务架构中服务间调用行为提出了以正则行为树表示的行为规范,利用服务调用链路追踪技术追溯服务间调用行为树,对服务间调用行为审计可以判断微服务架构内部是否存在内部威胁。本审计方案在为现有微服务安全防护技术做出了补充,提高了微服务架构在内部威胁场景下的安全防护能力。

著录项

  • 公开/公告号CN116318950A

    专利类型发明专利

  • 公开/公告日2023-06-23

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN202310230983.7

  • 发明设计人 林莉;吕旭辉;王万祥;吕沛霖;

    申请日2023-03-12

  • 分类号H04L9/40(2022.01);H04L67/133(2022.01);H04L41/14(2022.01);

  • 代理机构北京思海天达知识产权代理有限公司 11203;

  • 代理人王兆波

  • 地址 100024 北京市朝阳区平乐园100号

  • 入库时间 2024-01-17 01:11:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-11

    实质审查的生效 IPC(主分类):H04L 9/40 专利申请号:2023102309837 申请日:20230312

    实质审查的生效

  • 2023-06-23

    公开

    发明专利申请公布

说明书

技术领域

本发明属于微服务架构安全技术领域,具体涉及一种基于正则行为树的微服务架构内部威胁审计方法。

背景技术

随着互联网技术的发展,以及互联网应用系统复杂性提高,微服务架构目前已经被广泛用于大型企业业务应用系统开发和部署。相比于传统互联网应用系统开发采用的单体架构,微服务架构在开发架构上解耦,更适合大型互联网应用的开发、部署和维护。微服务架构将应用系统的复杂性从业务逻辑内部转移到了服务间的调用依赖上,其将整个应用系统拆分成大量独立开发和部署的服务,服务内部逻辑简单易开发,每个服务开放一个或多个接口供其他服务或用户调用,服务之间通过计算机网络通信,各服务协同向用户提供完整的业务功能。微服务架构虽然极大提高了应用系统开发的效率,但是其内部服务分散的特性为应用系统带来了新的安全风险。在单体架构下,主要防御外部恶意用户对应用系统的攻击行为,攻击者一般难以介入单体架构应用系统内部功能模块之间的通信。在当前微服务架构中,应用系统的安全防护依然关注于外部用户对应用系统的安全威胁,一般针对用户在应用系统边界实施安全防护,然而在微服务架构内部,各服务之间通常是相互信任的,一旦攻击者获取了其中某个服务节点并篡改其业务逻辑,则借助这一服务节点攻击者可进一步攻击其他服务节点,最终对整个应用系统产生威胁或造成损失。在微服务架构中现有的针对恶意用户外部攻击的安全防御技术无法满足防御微服务架构内部威胁的新安全需求。因此,如何抵御内部威胁是微服务架构中面对的重要问题。

发明内容

针对微服务架构中的内部威胁安全需求,为了识别服务间异常调用行为,本发明提出一种基于正则行为树的微服务架构内部威胁审计方法。

本发明采用的技术方案为一种基于正则行为树的微服务架构内部威胁审计方法,其特征如下:

该方法首先分析应用系统中所有服务调用接口对应的服务源代码以构造正则行为树,然后在应用系统运行过程中部署链路追踪日志治理系统,接着通过抓取链路追踪日志追溯得到调用行为树,最后在构造完成调用行为树时将其与正则行为树匹配验证调用行为树是否为异常行为。

所述的基于正则行为树的微服务架构内部威胁审计方法包含正则行为树构造模块、调用行为树追溯模块、行为树正则匹配模块三个模块以及模块间的交互实现,具体步骤如下:

步骤1:正则行为树构造模块为微服务架构中服务间调用行为定义了正常调用行为规范。在服务开发完成并部署上线时,该模块基于服务源代码分析为每个服务接口定义了正则节点,正则节点描述了服务进程调用其他服务接口序列应当满足的正则规范,包含空序列、顺序序列、循环序列、互斥序列四种基本序列,以服务名为关键字存储。正则节点为每个服务节点定义了子服务节点及其调用序列正则规范,自顶向下地构造了反映应用系统正常运行的正则行为树。该模块构造的正则行为树作为步骤3的调用行为匹配模板存储在数据库中,由步骤3中的行为树正则匹配模块调取使用。

步骤2:调用行为书追溯模块在微服务架构动态运行过程中提取服务节点的调用情况并追溯得到服务调用链路构成的实际调用行为树,调用行为树描述了面向用户的一个完整的业务下各服务之间调用关系,是一个有序树。在应用系统运行过程中,该模块首先在微服务架构中通过部署具有链路追踪功能的日志治理系统记录所有服务进程的调用信息,然后通过抓取日志信息得到具体服务间的调用行为。在该模块中收集每一个服务进程被调用的信息,通过追溯的方法自底向上构造调用行为树,对于每一个服务进程节点构造得到其向下调用其他服务的序列。该模块构造的调用行为树作为步骤3的匹配对象传递给行为树正则匹配模块,在步骤3中判断当前调用行为树是否为正常行为。

步骤3:行为树正则匹配模块接收到来自步骤2中构造完成的调用行为树,在本模块中完成对调用行为树的验证,识别异常调用行为。在本模块中,遍历调用行为树中每一个行为节点,行为节点中包含了其调用下层服务的具体调用序列,针对每一个调用序列,根据其服务名查询对应的正则节点,将当前节点与正则节点进行匹配,得到当前行为树的检测结果。由于每一个服务可能会提供多个接口,正则节点以服务名提取,则上述匹配过程可能会与多个正则节点匹配,多次匹配的结果如果有一次匹配成功则认为当前节点匹配成功。当完成调用行为树中所有节点的遍历后,如果所有节点都完成了匹配,则说明当前调用行为树是正常的,否则当前调用行为是异常行为,其中可能存在具有内部威胁的恶意服务节点,需要对这些服务实例发出告警,并在其中进一步人工排查具体的恶意节点。

与微服务架构现有的安全技术相比,本发明具有以下优点:

首先,在威胁模型上,现有的安全技术主要防范的是恶意用户从外部网络攻击微服务架构应用系统,而本发明认为攻击者可能通过篡改部署的服务实例等方法从微服务架构内部服务节点向应用系统发起攻击,缩小了微服务架构的信任域。其次,在行为建模上,采用了以链式调用为基础的树形结构为微服务架构中复杂的调用行为建模。最后,在审计方法上引入了正则表达式的匹配技术,规范了服务节点调用其他服务的序列关系,依据程序特性约束了服务间的调用行为。本发明为微服务架构中现有的安全技术在审计阶段做出了补充,缩小了微服务架构安全防御边界,细化了微服务架构安全防护粒度,满足了更强的安全需求,有效保障微服务架构更高的安全性。

附图说明

图1微服务架构内部威胁审计方法的部署拓扑图。

图2微服务架构内部威胁审计方法的架构图。

图3以书单查询服务为例的正则行为树和调用行为树实例图。

具体实施方式

结合附图和具体实施方式对本发明做进一步说明。

图1为本方法具体部署的拓扑图,本方法的三个模块部署在行为建模服务器和行为审计服务器中。行为建模服务器中包含正则行为树构造模块,行为审计服务器中包含调用行为树追溯模块和行为树正则匹配模块。本方法发明的内部威胁审计方案具体流程如下:

步骤1:分析服务源码并构造正则行为节点。

步骤1.1:各服务在完成编码后上线部署时,对其服务提供的各接口相应的源代码进行分析,用于接下来构造正则行为节点。分析服务源代码时,首先定位代码中调用其他服务接口的命令,然后确定代码上下文的逻辑关系,得到的调用命令在代码逻辑中的关系主要包括顺序逻辑、循环逻辑、分支逻辑三种关系。

步骤1.2:上述服务源代码中调用命令的三种逻辑关系是可以决定服务进程调用其他服务的请求序列,相应请求序列包括顺序序列、循环序列、分支序列以及空序列四种基本序列,且基本序列根据源码关系可以相互组合和嵌套。这些序列模式可以使用正则表达式的相应规则表示,并将这些正则表达式以服务名为关键字记录下来,得到正则节点。

步骤2:存储正则行为树。上述得到的正则节点以服务名为关键字记录,且正则节点中的正则序列以服务名为匹配元素。将每个正则节点以服务名为关键字存储在数据库中,正则节点中的正则序列指向了该节点的子节点,形成了自顶向下构造的正则行为树。正则行为树是一个静态的行为树,在服务部署上线时完成构造,在服务更新时完成更新。

步骤3:采集服务间调用日志。在微服务架构中部署具有链路追踪功能的日志治理系统,在应用系统中服务被调用时记录其调用行为。链路追踪技术可以在服务调用链中自顶向下传递追踪信息,在每个服务进程被调用时日志治理系统会为当前启动的服务进程分配识别ID(SpanID),由上层服务传递下来追踪信息:当前链路识别ID(Trace ID)以及上层服务进程的识别ID(ParentID)。在一个服务进程中会记录上述SpanID、TraceID、ParentID、当前服务名称(ServiceName)以及进程时间信息。特别地,服务调用的根服务节点的TraceID与其SpanID一致且ParentID为空。

步骤4:存储服务间调用日志。日志治理系统将包含上述SpanID、TraceID、ParentID、ServiceName以及服务进程时间信息的日志存储到日志服务器中,这些数据将用于步骤5中调用行为树的追溯。

步骤5:抓取日志并追溯调用行为树。

步骤5.1:审计服务器定期从日志数据库中抓取日志治理系统存储的日志信息,并在其中提取每个服务进程相应的服务名、SpanID、TraceID、ParentID、服务名以及进程时间信息,并将这些信息构造成为调用行为树的节点对象。

步骤5.2:将上述抓取的日志信息对象以TraceID分组,即具有相同TraceID的服务进程为同一个调用行为树中的节点。在每一个TraceID分组中执行步骤5.3和步骤5.4。

步骤5.3:为每一个节点初始化空的调用序列。

步骤5.4:遍历除了根节点外所有行为节点,依据ParentID向上追溯到其父节点,将当前服务名称按照时间顺序插入父节点中的调用序列中。最终得到每一个服务进程节点调用下层服务接口的序列。

步骤5.5:步骤5.3和步骤5.4通过向上追溯构造得到TraceID相应的调用行为树,该调用行为树作为步骤6中的匹配对象。

步骤6:提取正则节点匹配调用行为序列。遍历步骤5中得到的调用行为树的所有行为节点,对于每一个行为节点根据其服务名从步骤2中存储的正则行为树提取相应的正则节点,将行为节点中的调用序列与提取的正则节点中的正则序列进行匹配。若存在一个正则序列与调用序列匹配成功,则当前行为节点正常,否则当前行为节点异常。若某个调用行为树中有异常行为节点,则该调用行为树中异常行为节点对应的服务应当下线,对调用行为树中的其他服务发出告警并由人工进一步审计。

图2为本发明所属的微服务架构内部威胁审计方案架构图,在微服务架构应用系统基础上增加了正则行为树构造模块、调用行为树追溯模块、行为树正则匹配模块三个模块。具体步骤如下:

步骤1:首先正则行为树构造模块从微服务架构应用系统中提取服务员代码,然后分析每个服务接口对应的业务代码得到调用正则序列,接着将同一个服务的正则序列构造成正则节点,最后将所有正则节点以服务名为关键字存储得到正则行为树。

步骤2:首先在微服务架构中部署具有链路追踪功能的日志治理系统,然后抓取链路追踪日志,接着通过追溯服务间的调用行为构造得到调用行为节点,最终得到完整的调用行为树。

步骤3:行为树正则匹配模块得到步骤2中的调用行为树后,首先遍历行为节点并提取调用行为序列,接着对于每个调用行为节点根据其服务名提取步骤1中的正则行为树的正则节点,最后将调用行为序列与正则序列匹配得到当前节点的审计结果

图3为本发明所述的正则行为树和调用行为树的一个具体实例。以图书管理系统中用户查询其所借书单的服务为例,图中描述了该业务对应的正则行为树和服务执行过程中提取的调用行为树,具体步骤如下:

步骤1:通过分析相关业务逻辑代码中服务的调用关系可以得到书单查询服务、用户服务、借阅服务、书籍服务四个服务并构造相应的正则行为树。正则行为树以自顶向下的形式表示。

步骤1.1:书单查询服务为用户调用的根服务,用户调用该服务时该服务为用户提供用户的借阅书单,其中包括一条借阅用户信息,以及若干条书籍信息,若用户没有借阅记录则书籍列表为空。在该服务中以顺序序列分别调用了用户服务和借阅服务,可以得到正则序列为(用户服务)(借阅服务),即书单查询服务的调用行为序列必须严格以用户服务和借阅服务发出,否则匹配不成功。

步骤1.2:用户服务受书单查询服务调用,为书单查询服务提供用户信息。用户服务不调用其他服务接口,则其正则序列为空,即该服务不能调用其他服务,否则匹配不成功。

步骤1.3:借阅服务受书单查询服务调用,向书单查询服务提供用户借阅的书籍信息列表。该服务以循环方式调用书籍服务,则其正则序列为(书籍服务)*,即该服务可以调用任意次书籍服务,若该服务调用除了书籍服务以外的其他任何服务则匹配不成功。

步骤1.4:书籍服务受借阅服务调用,为借阅服务提供具体书籍的信息。该服务不调用其他服务,则其正则序列为空,即该服务不能调用其他服务,否则匹配不成功。

步骤2:通过追溯可以得到如图中所示的调用行为树,调用行为书的节点为服务进程,以自底向上的形式表示。

步骤2.1:用户服务被调用了一次,其父节点为书单查询服务。通过追溯,用户服务的调用序列为空,与步骤1.2中的正则序列匹配成功。

步骤2.2:书籍服务被调用了多次,其父节点为借阅服务。通过追溯,每一次书籍服务的调用序列都为空,与步骤1.4中的正则序列匹配成功。

步骤2.3:借阅服务被调用了一次,其父节点为书单查询服务。通过追溯,借阅服务的调用序列为多次书籍服务,与步骤1.3中的正则序列匹配成功。

步骤2.4:书单查询服务被调用了一次,该节点为根节点。通过追溯,书单查询服务的调用序列为(用户服务)(借阅服务),与步骤1.1中的正则序列匹配成功。

步骤3:将步骤2中的调用行为树与步骤1中的正则行为树匹配的到审计结果:步骤2中的调用行为树匹配成功,为正常行为树。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号