首页> 中国专利> 一种基于最小化特权原则的软件行为控制方法

一种基于最小化特权原则的软件行为控制方法

摘要

一种基于最小化特权原则的软件行为控制方法可运用于保护计算机操作系统免受恶意行为的破坏,该方法具体实施步骤如下:根据最小化特权原则设置监控模块的参数,存储在注册表中,由控制模块接口读出和存入;创建进程行为沙盒,创建文件行为沙盒,创建注册表行为沙盒,根据上述构建的行为沙盒监控进程树这一线索,如果是与用户的交互或者对文件的操作,则需要对IRP(I/O Request Package,输入/输出请求包)进程过滤处理,根据不同的功能请求控制码来确定不同的操作。如果是进程及注册表监控,则不需要进行IRP过滤处理;监控没有异常情况,转到5),继续监控;有异常情况则将报警信息主动、实时地传递到位于用户层的控制模块;系统报警。

著录项

  • 公开/公告号CN102208004A

    专利类型发明专利

  • 公开/公告日2011-10-05

    原文格式PDF

  • 申请/专利权人 南京邮电大学;

    申请/专利号CN201110126523.7

  • 申请日2011-05-13

  • 分类号G06F21/22(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人叶连生

  • 地址 210003 江苏省南京市新模范马路66号

  • 入库时间 2023-12-18 03:26:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-01

    未缴年费专利权终止 IPC(主分类):G06F21/52 授权公告日:20130703 终止日期:20190513 申请日:20110513

    专利权的终止

  • 2018-08-17

    专利权的转移 IPC(主分类):G06F21/52 登记生效日:20180731 变更前: 变更后: 申请日:20110513

    专利申请权、专利权的转移

  • 2018-02-09

    专利实施许可合同备案的注销 IPC(主分类):G06F21/52 合同备案号:2016320000221 让与人:南京邮电大学 受让人:江苏南邮物联网科技园有限公司 解除日:20180116 申请日:20110513

    专利实施许可合同备案的生效、变更及注销

  • 2018-02-02

    专利实施许可合同备案的生效 IPC(主分类):G06F21/52 合同备案号:2018320000013 让与人:南京邮电大学 受让人:南京国格信息科技有限公司 发明名称:一种基于最小化特权原则的软件行为控制方法 申请公布日:20111005 授权公告日:20130703 许可种类:普通许可 备案日期:20180111 申请日:20110513

    专利实施许可合同备案的生效、变更及注销

  • 2016-12-21

    专利实施许可合同备案的生效 IPC(主分类):G06F21/52 合同备案号:2016320000221 让与人:南京邮电大学 受让人:江苏南邮物联网科技园有限公司 发明名称:一种基于最小化特权原则的软件行为控制方法 申请公布日:20111005 授权公告日:20130703 许可种类:普通许可 备案日期:20161129 申请日:20110513

    专利实施许可合同备案的生效、变更及注销

  • 2013-07-03

    授权

    授权

  • 2011-11-23

    实质审查的生效 IPC(主分类):G06F21/22 申请日:20110513

    实质审查的生效

  • 2011-10-05

    公开

    公开

查看全部

说明书

技术领域

本发明提出了一种基于最小化特权原则的软件行为控制方案,该方案可运用于保护计算机操作系统免受恶意行为的破坏,属于信息安全领域问题。

背景技术

现代化战争对信息的需求越来越强烈,以计算机为核心的信息设备在军事领域大量采用,已成为军事现代化和武器先进程度的重要标志,而以计算机为核心的信息网络也已经成为现代军队的神经中枢,其性能优劣和状况好坏将直接影响军队战斗力及其发挥。以争夺制信息权为目标的信息对抗,即“信息战”,已经成为决定战争胜负的关键。以计算机病毒和网络蠕虫等为代表的恶意代码技术,已经确认可以毁坏数据、中断操作、影响和破坏系统,并且能够以低廉的方式进行攻击和传播,因此被认为是一种具有强大威力的软武器,在各国军方的网络和信息对抗技术中均受到了广泛的关注。例如伊拉克战争中,美军利用信息战技术破坏无线电传输、电话设施、雷达传输系统等,以瓦解伊拉克的电信基础设施,成功地攻击了伊拉克的指挥中心。因此,如何保护我们的信息网络不受到恶意行为的侵害,成了近年来的研究热点。

信息系统安全设计中有一条重要的原则,即最小特权原则。从目前网络安全中所遭遇的诸多入侵攻击手段来分析,都可以找到与最小特权原则的联系。换句话说,如果有一种技术方案可以保障最小特权原则有效而又方便地实施,那么攻击就可以得到有效的遏制,安全就可以得到有效保障。然而从当前对攻击的防范效果上看,该原则在系统中并未得到较好的遵循。

最小特权原则是1975年由Saltzer J.H等人在研究计算机的信息保护时提出的(J.H.Saltzer and M.D.Schroeder.The protection of information in computer systems.Proceedings of the IEEE,63(9):1278-1308,September 1975.),给出的定义是:分配给系统中的每一个程序和每一个用户的特权应该是它们完成工作所必须享有的特权的最小集合。它被以后普遍接受为信息安全系统设计中要考虑的一个重要原则。

从原则的定义中可以看出它具有以下实施特性:

(1)约束对象是系统中的行为主体。换句话说,原则的具体实施具有较强的主体针对性。

(2)实施约束机制的外在性。

特权就是一个进程为了完成某些超常规的与安全相关的功能而必须具备的特殊权利。一个具备这种特权的进程的活动可以对系统安全的方方面面产生重要的影响。对特权的滥用可导致非常严重的安全问题。因此获得特权往往是恶意用户实施攻击的第一步。例如通过web浏览器实施网络入侵能够成功的前提是它们最终以某种形式直接或间接的获取了部分或全部的系统特权,这样它们才有能力以它们希望的方式控制系统内的各种资源,譬如访问文件、执行代码等。夺取特权并加以利用的“某种形式”往往是在特权下运行入侵者设计的代码,进而利用系统内的工具。所以从这个角度看,入侵成功的一个重要原因是:系统在最小特权原则方面做的不够或不严格。

特权最终体现在对资源的占有和支配上,通过资源的最少化就可达到特权的最小化。如果将最小特权原则拓展为最少资源原则,即:分配给系统中的每一个程序和每一个用户的资源应该是它们完成工作所必须享有的资源的最小集合(特权也可被看作一种资源)。所有利用应用软件漏洞或弱点实施的网络攻击都将会造成对该原则的违反。也就是说,设计系统安全保障机制时如能较好的遵循最少资源原则,将会取得更好的安全防范效果。

最小特权原则在信息安全中的作用无疑是重要的,但根据其第一项实施特性可以看出,它仅是一个指导性原则。不同的系统、不同的对象最小特权的具体含义都是不同的,只有将其与应用逻辑捆绑在一起才能很好发挥其作用。原则中的所谓“最小”,基本上也是软件设计人自己根据情况而定的。另一方面,由于受控对象是程序或用户,它们之间存在差别且常常在变化之中,有着太多不确定的因素,这就给系统实施统一、精细的最小特权控制带来了困难。很难实现单一的具有普遍适用性的最小特权机制去面对诸多变化的对象,这或许是最小特权原则未能在信息安全中发挥更大作用的重要因素。

通常在操作系统中,软件一旦编译成二进制执行码,那么它的执行过程的集合就是确定的了。虽然不同的参数可能会使程序走过不同的路径,所访问的系统资源、使用的系统机制、运行的时间也不尽相同,但对明确的功能要求却是有明确的执行过程(路径)和系统资源集合与其相对应,也就是说软件的执行路径和所需系统资源的集合是明确的、有限的,因此理论上也是完全可以控制的。此外,从用户的使用逻辑来看,软件的行为应该符合常规的操作逻辑:例如使用浏览器时,浏览器运行时可能启动下载工具、阅读器等已知应用程序,如果浏览器进程启动了某些未知进程,则该行为是可疑的;浏览器在运行过程中将访问大量文件,包括程序本身运行所需的文件支持和网络交互过程中下载的大量临时文件,但是对系统文件的写操作是可疑的;注册表的访问也是机器频繁的,但未在用户干预情况下修改自启动项的行为也是可疑的。

可见,软件正常运行期间其行为应该包含于某些特定的行为集合。这一结论使得利用基于最小化特权原则的软件安全解决方案成为可能。

发明内容

技术问题:本发明的目的是提供一种基于最小化特权原则的软件行为控制方法,运用最小化特权原则设计并实现了一套能够有效监控软件行为的系统,该系统运用了很多先进的内核技术,能有效的防止软件对操作系统的破坏。

技术方法:本发明运用最小化特权原则,分析软件行为集合,使用内核层的系统行为监控技术,能有效的避免软件运行时的越界行为,从而避免软件对操作系统的破坏。

基于最小化特权原则的软件行为控制方法具体实施步骤如下:

步骤1)根据最小化特权原则设置监控模块的参数,存储在注册表中,由控制模块接口读出和存入;

步骤2)创建进程行为沙盒,软件的所有进程和子孙进程以树的形式组织,同一父进程创建同名子进程时,进程的行为沙盒合并;

步骤3)创建文件行为沙盒,进程对文件访问的行为被记录于相应的进程节点上,位于临时文件夹内的文件行为受不完全关注;

步骤4)创建注册表行为沙盒,进程对注册表访问的行为被记录于相应的进程节点上,对注册表键值的写操以及创建新键的行为将触发报警;

步骤5)根据上述构建的行为沙盒监控进程树这一线索,如果是与用户的交互或者对文件的操作,则需要对输入/输出请求包IRP(I/O RequestPackage,)进程过滤处理,根据不同的功能请求控制码来确定不同的操作;

步骤6)如果是进程及注册表监控,则不需要进行IRP过滤处理;

步骤7)监控没有异常情况,转到5),继续监控;有异常情况则将报警信息主动、实时地传递到位于用户层的控制模块;

步骤8)系统报警。

有益效果:本发明的目的是运用最小化特权原则设计并实现了一套能够全面有效监控软件行为的系统,该系统运用了很多先进的内核技术,具有更好的稳定性及更高的效率。

全面性:监控模块中包括进程、文件、注册表等各种信息的监控。进程监控中,可以设置允许启动的子进程,进程创建的最大深度。通过对这些敏感信息的全面监控从而提高系统检测的可靠性。

可靠性:系统在在经过参数配置、规则设置之后,通过最小化特权原则完成行为沙盒的构建,分配给系统中的每一个程序和每一个用户的资源应该是它们完成工作所必须享有的资源的最小集合。这样所有利用应用软件漏洞或弱点实施的网络攻击都将被检测为对系统的危害,从而产生报警,进而提高系统的可靠性。

稳定性:系统对进程、文件、注册表的监控采用新的检测隐藏Rootkit的设计方案,增强检测Rootkit的能力,使得系统具有更高的稳定性;报警模块中,在监控引擎生成是自动开辟一块缓冲区,并使用EVENT作为同步的方式,方便内核程序和用户的通信,从而提高系统稳定性。

附图说明

图1是本发明的设计方案的主要模块结构图。

图2是本发明的设计方案的主要流程图。

具体实施方式

一、系统方法

系统主要包括用户层的控制模块和内核层监控模块两个部分。用户层控制模块完成系统配置以及报警处理等功能,由用户设定所监控的一种或多种监控软件;监控软件行为沙盒的各项参数如允许创建的子进程的层次数、是否对文件访问类型进行控制等;以及指定异常行为的响应策略,如只报警或者报警并终止程序等。内核监控模块以驱动方式实现,包含用于接收用户层命令的控制设备和设置于内核中的多个行为监控点,系统首先经过一个较为长期的训练过程以构建行为沙盒,此后各监控点根据用户配置以及行为沙盒所包含的行为特征对软件的整个运行过程进行监视和控制。系统结构如图1所示:

控制模块:控制模块负责完成监控模块的参数配置,规则库的管理,报警信息的查阅、打印以及备份等工作。控制台提供图形化的管理平台,用户可以通过控制台查看软件进程的静态和动态信息,如访问过的文件以及占用的资源等,可以进行监控规则的制定和部署以及相关报警记录的查看和查询。

(1)参数配置

监控模块的参数存储在注册表中,由控制模块接口读出和存入。这些参数包括受监控软件的路径名,是否设定文件监控,是否设定注册表监控,是否对软件行为进行审计,设定异常行为的相应方式等。

(2)监控规则

监控规则包括各种文件访问、注册表访问规则,允许启动的子进程,进程创建的最大深度。

(3)报警信息查询

根据用户的不同需求,控制模块提供报警数据的各种查询,如按照时间、报警级别、报警方式等。

监控模块:监控模块分布于系统内核中的各个关键点,完成软件进程的行为采集以及监控功能。监控模块的功能依赖于行为沙盒的构建,而整个行为沙盒中的结构又是以进程的创建关系为线索组织。

(1)进程监控

负责软件进程行为的采集和控制。

(2)文件监控

监控软件进程的所有文件访问行为,并根据用户策略对行为进行约束。

(3)注册表监控

监控软件的所有注册表访问行为,其中尤为重要的是对启动项的监控。

二、方法流程

系统的基本工作流程如下描述:在安全的环境中,根据最小化特权原则可以将软件程序的“行为”定义为:为达到该软件设计的全部或部分功能而向系统软件操作平台提出的服务、资源请求的有序操作的集合。对软件行为进行广泛而全面的训练,形成准确合理的行为集合即行为沙盒,作为此后软件运行的约束条件,当该软件进程的行为超出了既定规则时,认为异常事件发生。软件程序使用该行为沙盒数据作为控制数据,并将其应用在系统内核建立的一系列监控机制上,程序进入运行后,其行为将严格受到经过安全审计的行为沙盒的约束,一旦该软件程序出现异常行为,系统会立即发现并给出报警信息,然后根据配置信息或者用户反馈采取应对措施。

(1)行为沙盒构建

当进程开始运行时,系统中预设的一系列行为监控点根据用户设定开始全面采集进程行为,然后根据安全设定获取行为特征信息集合,经过信息处理和安全审计后构建形成软件程序的行为沙盒。

参与行为构建的系统监控点主要包括三类关键位置:进程创建行为的发生点,文件访问的必经位置,注册表访问的必经位置。

进程创建

软件的所有进程和子孙进程以树的形式组织,树的每一个节点根据不同的位置代表一个浏览器进程或者由浏览器进程启动的子进程,每一个浏览器进程或者其子孙进程创建时,代表这一进程的节点创建并按照父子关系插入到树中。该节点中包含了记录该进程行为的所有位置,如当前用户的相关信息、文件行为和注册表行为的特征规则等。同一父进程创建同名子进程时,进程的行为沙盒合并。

文件行为

进程对文件访问的行为被记录于相应的进程节点上,位于临时文件夹内的文件行为受不完全关注。所谓不完全关注是指文件可以被创建、打开、读、写,但不可以运行执行以及被拷贝。

注册表行为

进程对注册表访问的行为被记录于相应的进程节点上,对注册表键值的写操以及创建新键的行为将触发报警。

(2)与用户层接口

控制模块与监控模块的交互接口通过驱动程序中创建的控制设备完成两大功能,一是控制台向监控模块传递配置参数、规则、命令,如监控模块的开启和关闭、文件监控功能的开启和关闭、注册表监控功能的开启和关闭、增加和删除开放目录的命令等,二是控制台由监控模块提取报警信息。

驱动程序中的控制设备gCtrlDevice在驱动的初始化例程中创建,控制台利用windows平台中的接口DeviceIoControl与该控制设备通信,DeviceIoControl接口可以指定输入输出缓冲区,用以在控制台和驱动程序之间传递数据;内核层调用IRP_MJ_DEVICE_CONTROL例程处理该控制请求。

DeviceIoControl接口的一个重要参数是IOCTL控制码,利用该控制码,目标驱动程序可以区分本次调用需要完成哪个功能。IOCTL码大小为32-bit,遵循一个特定的结构。DDK包含一个用于生成IOCTL值的机制的宏CTL_CODE。利用CTL_CODE宏可以定义所需要的IOCTL码。

(3)监控模块

位于内核的监控模块是以内核驱动的方式完成的,而各个监控点都依赖于进程树这一线索,为减少各个监控点和进程监控点之间交互的复杂度,所有的监控点都利用同一个驱动程序完成,即:在这一监控驱动中,同时实现了进程监控、文件监控、注册表监控等模块。这势必要求对驱动程序的框架有所调整,在关键入口处区分不同的请求源以完成不同的功能。

在监控驱动中,只有与用户交互的控制功能和文件系统过滤驱动需要对IRP进程过滤处理,而进程监控和注册表监控是对系统NATIVE API的挂钩操作完成,不需要处理IRP请求包。如前所述,与用户层通信的控制设备拥有全局名gCtrlDevice,当监控驱动收到某IRP时,可以根据IRP的目标设备名判断其分支路径,如果deviceObject==gCtrlDevice,则该IRP请求包是用来完成用户层控制台的某控制请求,否则,该IRP请求包一定是发往文件系统的I/O请求,需要交由文件系统过滤驱动分支进行处理。

处理源于用户层控制台发送的IRP请求包时,请求包的主功能码为IRP_Mj_DEVICE_CONTROL,不同的功能请求由控制码决定,其位置是irpStack->Parameters.DeviceIoContro1.IoControlCode,这里使用switch分支处理不同的控制请求。

发往文件系统的IRP请求包首先进行进程过滤,文件系统过滤驱动只处理受控进程发起的文件访问,未受控进程发起的文件访问不被文件系统过滤驱动做任何处理。受控进程发出的文件访问请求则根据不同的主功能码对IRP进行处理。

(4)报警模块

报警信息的传递途径与控制台将命令发送到监控引擎模式不同,监控模块产生的报警信息需要主动、实时地传递到位于用户层的控制模块,但是在windows平台下,内核中的驱动程序不能直接操作位于用户空间的内存区域,而且由内核层向用户层没有直接的通信机制可以利用,这就增加了由内核层向用户层通信的复杂度。

在本系统的设计中采取了一种变通的手段,监控引擎加载时初始化一段缓冲区,当内核需要主动与用户程序进行数据通信时,将所传递数据写如缓冲区,然后利用某种同步手段通知用户进程(线程)到该缓冲区提取数据,于是内核驱动程序由主动方变化为被动方,用户程序也即控制台程序将内核数据提取完成后数据缓冲清除并等待下一次通信。

Windows平台中同步机制有几种实现方法,但状态可控性的要求决定使用EVENT作为本系统的实现手段更为合适。控制台程序启动时,创建一个用户同步的EVENT,置其状态为unsigned,将该EVENT句柄传递到内核驱动程序,驱动程序根据该句柄查找对应的内核对象。当内核监控点发现异常行为时,向存储报警信息的缓冲区内写入报警信息并将EVENT置状态为signed。用户层的守护线程查询到事件状态改变后,访问报警信息缓冲区并提取报警信息,然后重置EVENT的状态为unsigned,至此完成一次完整的报警过程。

为了方便描述,我们假定有如下应用实例:

1)根据最小化特权原则设置监控模块的参数,存储在注册表中,由控制模块接口读出和存入。

2)创建进程行为沙盒,软件的所有进程和子孙进程以树的形式组织,同一父进程创建同名子进程时,进程的行为沙盒合并。

3)创建文件行为沙盒,进程对文件访问的行为被记录于相应的进程节点上,位于临时文件夹内的文件行为受不完全关注。

4)创建注册表行为沙盒,进程对注册表访问的行为被记录于相应的进程节点上,对注册表键值的写操以及创建新键的行为将触发报警。

5)根据上述构建的行为沙盒监控进程树这一线索,如果是与用户的交互或者对文件的操作,则IRP(I/O Request Package,输入/输出请求包)进程过滤处理,根据不同的功能请求控制码来确定不同的操作。

6)如果是进程及注册表监控,则不需要进行IRP过滤处理。

7)监控没有异常情况,转到5),继续监控。

8)有异常情况则将报警信息主动、实时地传递到位于用户层的控制模块。

9)系统报警。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号