基于程序行为的入侵检测方法与系统的制作方法

文档序号:7613764阅读:211来源:国知局
专利名称:基于程序行为的入侵检测方法与系统的制作方法
技术领域
本发明涉及计算机网络系统的安全防入侵领域,更具体地说,本发明涉及一种基于程序行为的网络入侵检测的方法和系统。
背景技术
网络信息系统的安全可划分为多个方面,而利用系统中的漏洞,譬如应用程序中的漏洞和系统配置及管理上可能存在的漏洞,对系统发动有目的的攻击是安全中威胁最大的一个方面。由于计算机网络信息系统及安全因素的复杂性,导致安全漏洞层出不穷,补丁中又发现漏洞的事件也时有发生。具权威部门的调查统计,各种网络安全漏洞的大量存在和不断发现,仍将是网络安全的最大隐患。针对该领域的安全防范,目前成熟的主要防范技术为误用检测,产品有防火墙、IDS、IPS等。但该类技术主要用于防范已知网络入侵攻击手段,对已有手段的变异和新型攻击手段难以防范,从而导致一些系统在配备了多种安全防御设施后,安全事件仍频繁发生。
在目前网络入侵检测中使用的误用检测是利用已侦获的网络攻击模式或特征作为基础,通过拦截网上的数据包并检测其是否包含特定的模式或特征来进行入侵检测的。虽然这种检测方法能够很好地检测已知的入侵行为,但它对检测新型的攻击却无能为力,甚至应对老手段的变异都很困难。目前进入实用的防入侵产品基本都以这种比较成熟的技术为主要检测手段。这些产品采用的技术有一些共同的特征(1)以网络数据包为主要检测数据源,包括协议头信息和网络包中的应用数据;(2)以网络协议规范为主要技术检测依据;(3)与被保护对象相隔离;(4)以“经验数据或规则”为主要检测手段。一方面这些共性成就了它们配置灵活;对被保护对象影响较小;可有效的粗粒度的隔离网络非法访问;主动而有效的检测已知攻击手段等安全防范能力。但另一方面也正是这些技术属性限制了它们在防网络入侵能力上的进一步拓展。原因是这种技术背景以有限的防御“经验”和很难面面俱到的入侵行为假设去面对千变万化不断发展着的攻击手段;或从另一个角度看,它所依赖的检测信息源与被保护实体的行为有“相当”的距离,对受保护对象的完整的正常行为数据集合缺乏全面的了解,因而难以全面识别包括攻击在内的各种异常行为。
与误用检测不同,异常检测试图用定量的方式描述可接受的正常行为特征,用以区别非正常的、潜在的入侵行为。由于这种方法以正常的行为模式为检测标准,所以对它来讲攻击手段无所谓新与旧,都是属于异常行为,因而均会被检出并加以防范。这种模式类型的技术难点在于面对日益复杂的信息系统,如何建立一个即具有较好适应能力,又便于实际应用的正常行为的安全模型。现在有关防入侵的深入研究基本集中在该领域。本发明“基于程序行为的入侵检测系统及方法”技术正是这样一种隶属于异常检测模式范畴的程序行为检测与控制实用新技术。
于是就需要一种新的检测系统及方法来克服上述各种现有的检测技术的存在的各种缺陷和不足。

发明内容
本发明的目的是提供一种行为异常模型构造和检测方法------“行为安全盒”技术方法,用于检测软件服务程序运行过程中的异常行为,实现对应用程序行为的规范控制,堵塞应用程序中可能存在的安全漏洞、操作疏漏,为建立安全的异常监控模型提供基本手段并构建一个网络入侵防护系统,以大幅提高网络入侵检测与监控的准确性和效率。
根据本发明的一个方面,提供一种入侵检测方法,通过直接获取程序的软件行为特征信息、构造访问模型,并将其反作用于程序本身来达到防止程序异常行为的发生;通过有效地集成这种方法构造完整的系统网络安全策略,进而保护整个网络服务器系统免受网络入侵攻击侵害,其中,包含如下的两个基本过程采集并制作一“行为安全盒”;用所述“行为安全盒”对软件行为实施监控。
根据本发明的一实施例,所述采集并制作一“行为安全盒”包括在系统内核建立一种机制,全程监控指定应用程序的运行,并根据安全设定获取该程序的行为特征信息集合,经分析处理和安全审计后构建应用程序形成“行为安全盒”,具体制作步骤如下步骤11)通过专用接口接收来自用户应用层的采集请求信息,从中提取控制模式信息、网络应用程序名、各系统调用的缺省监控要求、特殊监控的系统调用、特殊监控的文件资源信息,并将其格式化,创建系统作业控制链表项,供“执行状态识别”时使用;根据指定的采集要求建立首层信息采集数据结构并完成初始化;步骤12)在用户层终止并重新启动采集对象程序,并按正常方式运行;步骤13)系统中的“文件执行钩子”在执行一个新的文件时,根据步骤11)建立的系统作业控制表链,判定将执行的程序是否是要采集行为信息的程序,若不是则转步骤18),如是则为当前进程创建系统进程控制表链表,同时建立两条链表项的映射关系;步骤14)“系统调用截获钩子”在系统调用总入口处,根据系统进程控制表链判断当前进程是否是被采集行为特征信息的进程,如不是则转步骤18);如是则截获当前进程的系统调用,并收集调用参数,完成当前进程到系统作业控制表链中对应项的映射,找到对应的数据结构,如当前进程希望创建子进程则转步骤16),否则继续下一步骤;步骤15)“行为特征数据产生模块”根据用户对控制要求的具体指定,按不同情况采集并构造此次行为的特征数据,转步骤17);步骤16)当前进程希望创建子进程时,首先为子进程创建新的系统进程控制链表项,并查找当前作业结构中是否已有下一层进程的结构和空间。如有,建立勾连关系并转下一步,否则为下一层创建结构和空间并完成初始化处理;步骤17)“结果分析处理模块”对获取的信息进行统计、去重处理后记录到相关数据结构链表中;步骤18)转入正常系统调用处理流程;以上步骤13-18在获取指定服务程序行为特征信息过程中多次循环执行,在获取较为完整的信息数据后进入以下处理流程步骤19)将通过静态分析提取的程序属性和部分行为特征信息与内核动态获取的行为特征数据进行融合处理,并通过“行为信息融合与审计模块”提供透明、交互式的行为信息安全审计处理,对程序行为的审计按层分类进行,审计完成的数据按“行为安全盒”规格进行融合处理并存储到应用数据库中,供监控时使用。
根据本发明的一实施例,所述方法中包含了两条链表系统作业控制表链其中的每一表项用于登记当前需要采集或控制的作业的具体信息,同时包含有容纳行为特征信息空间的指针;系统进程控制表链其中的每一表项用于登记当前的进程ID、历史关联信息、控制类型、层次信息、容纳本层程序行为信息空间的指针、所属作业标识、启动时间、下一表项指针等。
根据本发明的一实施例所述步骤11)中的专用接口可借用系统已有的读写接口,这时可利用原系统未使用的资源部分;也可另建新的独立的读写接口,完成与用户层的信息交换;采集的内容包括系统调用号、有关系统调用的空间层次信息、调用的历史关联信息和空间地址信息、调用涉及到的文件系统资源包括文件、目录、设备、对资源的使用模式、对资源的使用频率、还包括为指定的采集任务建立系统作业控制链表项并链入链表;每一个链接表项包括作业标识信息、作业类型、指向容纳本层行为信息的结构指针、前后链指针、文件和IP地址缓冲;所述步骤12)确保采集机制可正常运行,如程序已启动,先终止再启动;所述步骤13)中的“文件执行钩子”是系统中执行文件的必经之处,保证采集任务无旁路的可能性;所述步骤14)中的“系统调用截获钩子”是系统调用进入系统的必经之处,保证任务监控的无旁路的可能性;所述步骤16)中的控制要求还包括针对每一种系统调用可设置的三种控制要求为a.层次、可用性,这是针对每一个系统调用的缺省设定,即记录系统调用是否使用,及使用所处的进程树层次。
b.关联控制,记录该系统调用前N步已完成的调用情况,N通常设定为1-5;c.空间地址控制,记录该系统调用的用户指令空间返回地址,以上各种控制要求可以单独设立,也可一次设置多项;所述步骤17)提供对应用程序行为实施审计的能力审计内容包括是否侵犯了系统重要机密数据、是否不适当的访问了系统内其他重要的配置文件、是否访问了技术规范以外的其他网络通讯端口、是否不适当的使用了系统设备、对有关系统文件是否使用了不当的访问方式;在审计过程中可对行为特征数据进行修正;采集和审计过程可反复进行多次,前一次作为后一次融合的基础,不断完善,最终制作出与应用很好匹配的可用于安全控制的“行为安全盒”。
根据本发明的一实施例,所述方法用所构建的应用程序的“行为安全盒”数据作为控制数据,并将其应用在系统内核建立起的一监控机制上;一旦该程序进入运行,其程序行为将严格受到经过安全审计的“行为安全盒”的约束;一旦程序出现异常行为,系统就会立即发现,在阻断服务的同时给出报警信息,并依据安全等级采取应对措施,具体步骤如下步骤21)通过专用接口接收来自用户应用层的控制请求信息,从中提取控制模式、网络应用程序名、“行为安全盒”数据;按监控对象名创建系统作业控制链表项,供“进程状态识别”时使用;根据指定的“行为安全盒”数据建立对应的数据结构并进行初始化;步骤22)在用户层终止并重新启动受控对象程序;步骤23)系统中的“文件执行钩子”在执行一个新的文件时,查询步骤1)建立的系统作业控制链,判定将执行的程序是否是要实施监控的程序,若不是则转步骤29),若是,则为当前进程创建系统进程控制链表项,同时建立两条链表项的映射关系;
步骤24)“系统调用截获钩子”在系统调用总入口处查询当前系统进程控制链,判断当前进程是否是被监控进程,如不是则转步骤29),如是则截获当前进程的系统调用,收集调用参数,并完成当前进程到系统作业控制链中对应项的映射,找到对应的数据结构;步骤25)“行为特征数据产生模块”根据针对本作业的监控级别和“行为安全盒”控制要求,按不同情况构造此次软件行为的特征数据转步骤27);步骤26)如当前进程的行为是希望创建子进程,则首先为子进程创建新的系统进程控制链表项,并查找当前作业结构中是否已有下一层进程的信息结构和空间;如有,建立勾连关系并转步骤29),否则,报警并错误返回;;如不是创建子进程,则转步骤29);步骤27)“结果分析仲裁模块”根据用户指定的监控级别,将构造的当前的行为特征信息与本进程相应的“行为安全盒”信息进行分析对照,实施访问仲裁,如果仲裁通过,则转步骤26);如果仲裁失败,则转步骤28);步骤28)“实时报警与应对模块”根据“行为安全盒”中指定控制要求实时发出等级报警,并根据内核部分应对措施实施错误处理,譬如封锁客户IP地址等;步骤29)继续执行正常的系统调用功能;每次用户层应用程序进入系统调用,都将循环以上23)-29)步骤的处理,保证整个监控过程的连续性与完整性。
根据本发明的一实施例所述步骤21)中的专用接口可借用系统已有的读写接口,这时可利用原系统未使用的资源部分;也可另建新的独立的读写接口,完成与用户层的信息交换;采集的内容包括系统调用号、有关系统调用的空间层次信息、调用的历史关联信息和空间地址信息、调用涉及到的文件系统资源包括文件、目录、设备、对资源的使用模式、对资源的使用频率、还包括为指定的采集任务建立系统作业控制链表项并链入链表;每一个链接表项包括作业标识信息、作业类型、指向容纳本层行为信息的结构指针、前后链指针、文件和IP地址缓冲;用户指定的“行为安全盒”是采集制作过程产生的具有层次的结构化数据集合,通常存储在用户层数据库中,“行为安全盒”与应用程序有严格的一对一特性,如不匹配将导致应用程序无法运行;所述步骤22)必须保证受控服务程序的重新启动,如在对应的“行为安全盒”完成初始化之前已启动,应先将其终止后再启动,以确保控制机制可以正常实施监控;所述步骤23)中的“文件执行钩子”中的“文件执行钩子”是系统中执行文件的必经之处,保证采集任务无旁路的可能性;所述步骤24)中的“系统调用截获钩子”是系统调用进入系统的必经之处,保证任务监控的无旁路的可能性;所述步骤25)确保在子进程实际运行之前,完成对应的系统进程控制链表项的创建,并建立与作业结构中下一层进程信息结构和空间的勾连,以保证子进程一旦运行就立即被“行为安全盒”监控,不会发生失控情况;所述步骤26)的“监控级别”还包含四种不同级别,由低到高分别为基本级仅对系统调用在对应层次的可用性进行检查。即,如“行为安全和盒”的对应层指示本次调用存在,则判定为访问合法,否则为不合法;较强级除按基本级条件实施检查外,还检查相关文件、设备是否可用、使用方式是否正确;强级除完成基本级、较强级内的检查外,还检查相关调用关联(n步)是否正确;超强级除完成上述三级级内的检查外,还构造并检查相关调用的空间地址是否正确;所述步骤26)中的“控制要求”控制要求还包括针对每一种系统调用可设置的三种控制要求为a.层次、可用性,这是针对每一个系统调用的缺省设定,即记录系统调用是否使用,及使用所处的进程树层次。
b.关联控制,记录该系统调用前N步已完成的调用情况,N通常设定为1-5;c.空间地址控制,记录该系统调用的用户指令空间返回地址,以上各种控制要求可以单独设立,也可一次设置多项;同过程一中方法描述;所述步骤27)中的对照分析、访问仲裁包含根据当前作业监控级别,将调用的行为特征信息与“行为安全盒”中对应类别的记录分别进行对比,如有一种条件不符则仲裁为失败;所述步骤28)还包含等级报警分为三级,每一报警等级设有相应的应对措施一级报警控制要求指定为关联和空间地址监控的系统调用在执行中出现异常,或访问的文件系统资源违反了特定的控制要求,譬如关联或空间地址异常,对应的错误应对措施为防火墙联动,在特殊设定下会终止对应的网络服务程序;二级报警控制要求指定为关联或空间地址监控的系统调用在执行中出现异常,或对“行为安全盒”中只允许读的文件和/或设备出现了非法的“写”操作。对应的错误应对措施为封锁客户IP地址,重启网络服务程序等;三级报警对控制要求设定为可用性的系统调用出现了异常,或一般的文件/设备访问出现异常,对应的错误应对措施为一般报警。
根据本发明的一实施例,所述方法中包含的两条链表系统作业控制表链其中的每一表项用于登记当前需要采集或控制的作业的具体信息,同时包含有容纳行为特征信息空间的指针;系统进程控制表链其中的每一表项用于登记当前的进程ID、历史关联信息、控制类型、层次信息、容纳本层程序行为信息空间的指针、所属作业标识、启动时间、下一表项指针等。
根据本发明的另一方面,提供一种适用于如上所述的检测入侵方法的网络入侵防护系统,应用上述的方法作为监控的核心技术,配以辅助的网络访问控制、进程运行状态控制创建一个完整的系统级的安全监控模型和策略体系,即通过“行为安全盒”技术方法,对所有为外部网络提供服务的应用软件的程序行为进行超细粒度、全程的实时监控,对系统内的所有其他不受“行为安全盒”约束的程序,实施与外部网络完全隔离;对外部网络来说,构建起一个完全受控于异常监控模型的、高等级安全和可用的网络入侵防护系统;该系统包括用户层安全交互模块以及内核层数据处理与监控模块。
根据本发明的一实施例,用户层安全交互模块运行在用户层面,提供一个可操控的工作平台,也是用户层与内核层数据交互的主要通道;它主要完成对软件行为特征信息的采集、制作、管理和实施监控所需的前端与后台管理等工作,主要的行为特征数据的采集和实质性监控均由系统内核完成;它集成了网络安全人员完成各种任务所需的模块包括注册模块、任务调度模块、行为特征信息采集与制作请求模块、行为特征信息监控请求模块、策略配置与管理请求模块、行为数据融合与审计模块、实时报警与应对模块、数据通讯处理模块、行为特征数据库;其基本工作流程是在用户层通过用户安全注册后,由任务调度模块接收网络安全人员的操作指令和参数,并将其传递到相关模块,譬如“行为特征信息监控请求”模块;多数模块在完成必要的处理后,将组织数据并通过“数据通讯处理”模块与内核接口,将安全监控指令和数据传递给内核IO接口模块,由内核完成所要求的工作,譬如,对指定的软件应用程序实施监控;同时“数据通讯处理”模块还接收来自内核的数据、报警信息和应对请求,将数据传递给用户层的相关模块,并与其他安全设施联动处理;各模块的基本功能是注册模块完成系统用户的安全注册、注销,
任务调度模块通过字符或窗口界面完成用户安全指令及控制参数的获取,进行有关处理后,并按系统约定形成请求包传递给相关模块;行为特征信息采集与制作请求模块针对指定软件应用程序,完成特定安全控制要求的设定和初始化,包括对特定的系统调用设定关联控制、空间地址控制;对特定系统资源使用的控制,譬如对指定文件使用关联控制等,形成请求包传递给“数据通讯处理模块”;以及完成指定软件的特征信息获取、制作并构建数据库记录,包括从核心层获取动态监控所采集到的行为特征信息集合,以及在应用层静态获取行为特征信息,将二者进行融合处理形成“行为安全盒”,并在数据库中保留记录;行为特征信息监控请求模块将指定软件的“行为安全盒”数据和其他控制参数形成请求包,传递给“数据通讯处理模块”,将其加载入系统内核;策略配置请求模块设定了三种控制状态(1)网络控制状态,有“行为安全盒”制约的进程可以在约束下进行网络通讯,其他进程不能进行网络通讯;(2)完全控制状态,仅有“行为安全盒”制约的进程可以在系统内运行,其他进程不能继续运行;(3)维护状态,系统临时进入维护状态。该模块根据安全人员对状态的设置以及对其他策略参数的设置形成请求包,并通过“数据通讯模块”传递给内核处理模块;行为数据融合与审计模块对指定的“行为安全盒”数据进行安全审计,参照应用的技术说明资料,可审计内容包括是否侵犯了系统重要机密数据;是否不适当的访问了系统内其他重要的配置文件;是否访问了技术规范以外的其他网络通讯端口;是否不适当的使用了系统设备;对有关系统文件是否使用了不当的访问方式;在审计过程中可对行为特征数据进行修正;完成安全审计后将“行为安全盒”数据由待审状态确认为有效;实时报警与应对模块实时监视内核对受控软件应用程序的监控报警,并根据报警级别采取应对措施;包括防火墙联动、终止服务进程等;数据通讯处理模块接收其他模块的控制请求包,并将其传递给内核IO接口模块,同时负责接收内核送出的行为特征数据、报警等信息;行为特征数据库包括各个应用软件的待定行为特征数据集合库;经过安全审计与修正后确认的“行为安全盒”集合库;报警信息库;用户数据库;安全策略配置库;根据本发明的一实施例,内核层数据处理与监控模块是入侵防御系统的核心部分,负责应用本发明所描述的方法,实施应用程序的行为特征信息的采集,对具有“行为安全盒”的软件实施应用行为的安全监控;同时实现安全策略配置;网络和进程辅助控制,实施防入侵的整体安全策略,包括将未受“行为安全盒”监控进程与外部网络隔离,所述模块具体包括信息IO与任务总控模块、数据结构初始化模块、进程状态识别与控制模块、网络通讯控制模块、系统调用信息截获模块、策略配置与管理模块、行为特征数据产生模块、访问仲裁模块、报警与应对模块;其基本工作流程如下信息IO与任务总控模块接收来自用户层的请求包,分析请求包内容,并分发任务,包括以下几个主要分支流程(1)软件特征信息内核采集,这时将调用数据初始化模块,完成初始数据结构的创建,激活进程状态识别与控制模块、系统调用信息截获模和块行为特征数据产生模块,完成行为特征信息的采集构造工作;(2)软件特征信息内核监控,这时将从用户层获取“行为安全盒”数据,调用数据初始化模块,完成行为特征信息的数据结构的建立等,同时激活进程状态识别与控制模块、访问仲裁模块,系统可同时提供对多道用户应用程序的监控;(3)安全策略的配置,完成内核安全策略参数的配置,激活网络通讯控制模块、报警与应对模块;(4)网络通讯控制,不是受控或采集状态的进程严禁与外部网络通讯;其中,各模块功能如下信息IO与任务总控模块接收来自用户层的请求包,分析请求包内容,并分发任务,向用户层提供数据、配置和状态信息;数据结构初始化模块根据用户采集请求包,完成采集任务的基础信息结构的创建和原始数据的初始化;创建系统作业控制链表项并建立与基础数据结构的勾联;根据用户控制请求包,完成所需的“行为安全盒”控制数据结构的建立并初始化,创建系统作业控制链表项并建立与控制数据结构的勾连;系统其他安全策略参数、队列及控制结构的初始化;进程状态识别与控制模块依据系统中进程PID号的唯一性,从系统进程控制链表中识别当前进程是采集或受控进程,根据控制表项映射到对应层次采集或控制数据结构;网络通讯控制模块识别当前进程是否受控状态,隔离未受“行为安全盒”控制的进程与外部网络的通讯;系统调用信息截获模块识别当前进程是否采集或受控状态,属两状态之一,则在用户层与系统的总入口处拦截系统调用,收集调用号,参数,当前调用层次等信息;行为特征数据产生模块根据系统调用信息截获模块截获信息和相关“行为安全盒”中控制要求,构造当前调用的行为特征信息;如为采集状态,则完成数据记录的相关处理;如为受控状态,则转访问仲裁处理;访问仲裁模块根据当前的策略配置、当前作业的监控等级、当前作业的“行为安全盒”数据,对作业的当前行为实施访问仲裁;报警与应对模块当仲裁模块对当前的访问仲裁失败时,本模块发出等级报警信息并采取有关应对措施。
采用本发明的技术方案有效地利用了软件应用程序行为的不变性特征,实现了对应用程序行为特征的“紧耦合”控制。在达到对程序行为的细粒度控制、保障应用程序不偏离“行为安全盒”约束的情况下,实现的算法较为简单、流程清晰、可控性好,对系统性能损失较低。该发明用于抵御利用应用软件存在的漏洞、弱点进行“堆栈溢出”、“特洛伊木马”、“后门”等典型入侵手段,尤其是应对新型入侵手段有很好的效果。作为本发明的第二个目的(构建网络入侵防护系统),将发明的方法作为基本手段应用于整个计算机系统的安全防御,使其对与外部网络来说完全处于受“行为安全盒”监控的状态,系统对外界提供的服务功能,以及服务过程找中对系统资源的使用都经过安全审计,因而将大大提高系统的网络安全防御能力。


本发明上述的以及其他的特征、性质和优势将在下面结合附图和实施例进一步描述,在附图中相同的附图标记始终表示相同的特征,其中,图1是根据本发明一实施例的系统作业控制表链和系统进程控制表链及其关系的示意图。
图2是根据本发明一实施例的特征信息采集方法的控制流程图。
图3是根据本发明一实施例的特征信息控制方法的控制流程图。
图4是根据本发明一实施例的用户层模块的控制流程图。
图5是根据本发明一实施例的入侵防护系统防范网络入侵原理示意图。
图6是根据本发明一实施例的内核层数据处理与监控模块的主要工作流程图。
图7是根据本发明一实施例的入侵防护系统用户层与系统内核层模块结构示意图。
具体实施例方式
下面结合附图进一步说明本发明的技术方案。
为便于说明发明内容,先作一些必要的定义和说明某软件行为特征为达到该软件设计的全部或部分功能而向系统软件操作平台(OS)所提出的服务、资源请求,以及这些请求的各种特性构成的信息集合。所谓服务是指系统提供的各种设施,譬如创建进程、网络连接等。所谓资源是指为了完成预定的功能而需要访问的文件(包括数据文件、配置文件、共享库类的执行文件)、设备等。特性是指其有序性、关联性和(虚)地址空间特性等。这些行为特征集合构成了一道软件程序完成各种任务所不可或缺的要素。
“行为安全盒”某一道程序的“行为安全盒”是指,为了安全检测和控制的要求,对指定程序的软件行为特征集合进行特定处理后所构成的,具有特定结构和附加信息的结构化数据集合。
根据本发明提供一种入侵检测方法,其中,通过直接获取程序的软件行为特征信息、构造访问模型,并将其反作用于程序本身来达到防止程序异常行为的发生;通过有效地集成这种方法构造完整的系统网络安全策略,进而保护整个网络服务器系统免受网络入侵攻击侵害,具体包含如下的两个过程“行为安全盒”的采集制作;用“行为安全盒”对软件行为的监控;上述两过程是一个有机整体的两个部分。
根据本发明的一实施例,在系统内核建立一种机制,全程监控指定应用程序的运行,并根据安全设定获取该程序的行为特征信息集合,经分析处理和安全审计后构建应用程序形成“行为安全盒”,结合附图2和附图5,具体制作步骤如下步骤11)通过专用接口接收来自用户应用层的采集请求信息,从中提取控制模式信息(行为数据获取模式)、网络应用程序名(采集对象)、各系统调用的缺省监控要求、特殊监控的系统调用、特殊监控的文件资源信息,并将其格式化,创建系统作业控制链表项,供“执行状态识别”时使用;根据指定的采集要求建立首层信息采集数据结构并完成初始化;步骤12)在用户层终止并重新启动采集对象程序,并按正常方式运行;步骤13)系统中的“文件执行钩子”在执行一个新的文件时,根据步骤11)建立的系统作业控制表链,判定将执行的程序是否是要采集行为信息的程序,若不是则转步骤18),如是则为当前进程创建系统进程控制表链表,同时建立两条链表项的映射关系;步骤14)“系统调用截获钩子”在系统调用总入口处,根据系统进程控制表链判断当前进程是否是被采集行为特征信息的进程,如不是则转步骤18)如是则截获当前进程的系统调用,并收集调用参数,完成当前进程到系统作业控制表链中对应项的映射,找到对应的数据结构,如当前进程希望创建子进程则转步骤16),否则继续下一步骤;步骤15)“行为特征数据产生模块”根据用户对控制要求的具体指定,按不同情况采集并构造此次行为的特征数据。转步骤17);步骤16)当前进程希望创建子进程时,首先为子进程创建新的系统进程控制链表项,并查找当前作业结构中是否已有下一层进程的结构和空间。如有,建立勾连关系并转下一步,否则为下一层创建结构和空间并完成初始化处理;
步骤17)“结果分析处理模块”对获取的信息进行统计、去重处理后记录到相关数据结构链表中;步骤18)转入正常系统调用处理流程;以上13-18步骤在获取指定服务程序行为特征信息过程中多次循环执行,在获取较为完整的信息数据后进入以下处理流程步骤19)将通过静态分析提取的程序属性和部分行为特征信息与内核动态获取的行为特征数据进行融合处理,并通过“行为信息融合与审计模块”提供透明、交互式的行为信息安全审计处理,对程序行为的审计按层分类进行,审计完成的数据按“行为安全盒”规格进行融合处理并存储到应用数据库中,供监控时使用。
根据本发明的一实施例,所述方法描述了一种准确获取指定程序行为特征集合的运行步骤和机制,其中包含了两条链表(1)系统作业控制表链其中的每一表项用于登记当前需要采集或控制的作业的具体信息,同时包含有容纳行为特征信息空间的指针。
(2)系统进程控制表链其中的每一表项用于登记当前的进程ID、历史关联信息、控制类型、层次信息、容纳本层程序行为信息空间的指针、所属作业标识、启动时间、下一表项指针等。
参考图1,图1描述了上述两链表两条主要的数据链表,一条是作业控制链表,它是一条双向链表。其中每一链表结构项包含以下作业基本控制信息(主要字段)及二者的关系。
作业名(Object_name)具体应用程序的全路径名。譬如/usr/sbin/vsftpd(FTP文件服务器守护程序)。
控制类型(O_type)采集型或控制型。
行为信息首结构指针(O_datap)用于存放作业行为特征信息的数据结构的地址。
标志信息(O_flag)用于存放各种操作标志。
同步锁(O_lock)用于行为信息的操作同步。
该链表可同时存在多个表项,即可同时对多个作业实施采集或监控。
另一条是进程控制链,它也是一条双向链表。其中每一链表结构项包含以下进程基本控制信息(主要字段)进程标识号(p_pid)它是系统中唯一的进程标识。
控制类型(p_type)表明进程是采集或受控状态。
链表指针(p_p)指向本层行为信息结构空间。
层级号(p_level)进程在作业中所处的层级;进程启动时间(p_stime)进程在系统中实际启动的时间。
进程调用历史记录(p_l)进程执行系统调用的历史。
该链表可同时存在多个表项,记录了所有采集或受控作业的相关进程信息。
其中所述步骤11)中的专用接口可借用系统已有的读写接口,这时可利用原系统未使用的资源部分(譬如特定的数字区间),也可另建新的独立的读写接口,完成与用户层的信息交换。具体采集的对象和采集信息的种类由用户根据实际需求确定,譬如指定采集WEB服务端的程序行为。具体采集的内容包括系统调用号;有关系统调用的空间层次信息;调用的历史关联信息和空间地址信息;调用涉及到的文件系统资源,包括文件、目录、设备;对资源的使用模式(读/写、读写、执行);对资源的使用频率等;还包括,为指定的采集任务建立系统作业控制链表项并链入链表。每一个链接表项包括作业标识信息;作业类型(采集/控制);指向容纳本层行为信息的结构指针;前后链指针;文件和IP地址缓冲等;所述步骤12)用于确保采集机制可正常运行。如程序已启动,应先终止再启动;所述步骤13)中的“文件执行钩子”应是系统中执行文件的必经之处,保证采集任务无旁路的可能性;所述步骤14)中的“系统调用截获钩子”应是系统调用进入系统的必经之处,保证任务监控的不可无旁路性;所述步骤16)中的控制要求还包括本方法将控制要求分为三种,可由安全人员在实施“行为安全盒”定制时设定。针对每一种系统调用可设置的三种控制要求为a.层次、可用性,这是针对每一个系统调用的缺省设定,即记录系统调用是否使用,及使用所处的进程树层次。
b.关联控制。记录该系统调用前N步已完成的调用情况。N为安全人员设定,通常为1-5。
c.空间地址控制。记录该系统调用的用户指令空间返回地址。
以上各种控制要求可以单独设立,也可一次设置多项,所述步骤17)的融合与审计处理为安全人员提供了对应用程序行为实施审计的可能。参照具体应用的技术资料,可审计内容包括是否侵犯了系统重要机密数据(文件);是否不适当的访问了系统内其他重要的配置文件;是否访问了技术规范以外的其他网络通讯端口;是否不适当的使用了系统设备;对有关系统文件是否使用了不当的访问方式等。在审计过程中可对行为特征数据进行修正;采集和审计过程可反复进行多次,前一次作为后一次融合的基础,不断完善,最终制作出与应用很好匹配的可用于安全控制的“行为安全盒”。
采集和审计过程可反复进行多次,前一次作为后一次融合的基础,不断完善,最终制作出与应用很好匹配的可用于安全控制的“行为安全盒”。
图2是本发明的采集并制作一“行为安全盒”的过程(特征信息采集方法)的控制流程图,包括如下的步骤10a),准备流程图中的准备部分负责完成的主要工作是产生行为特征信息采集请求包并传递给内核。请求包含有有关采集要求的具体信息。包括控制模式信息、网络应用程序名(采集对象)、各系统调用的缺省安全等级、特殊监控的系统调用、特殊监控的文件资源信等。
11a)通过设置的专用IO接口接收来自用户层的信息采集请求。该专用接口在LINUX系统中可用/proc文件系统实现,也可通过利用系统中原有调用Write中未用的FD区域实现。
12a)由于某种原因要采集行为特征信息的应用程序可能已经处于运行状态,这时必须将其终止并重新启动运行,以保障采集机制能被激活运行。本步骤的工作是在用户层完成的,不是内核模块的一部分。譬如对文件服务器守护程序“/usr/sbin/vsftpd”,可用“/etc/init.d/vsffpd restart”完成需要的工作。
13a)在系统执行文件的接口内设置调用钩子,譬如在“sys_execve”,用于及时识别是否是要采集信息的程序将要运行。如是则在系统进程控制链中创建一项,相应的表项内容为进程标识号(p_pid)当前进程的PID。它在系统中是唯一的。
控制类型(p_type)表明进程是采集或受控状态,取自相关的作业控制链表。
层级号(p_level)进程在作业中所处的层级。在此属于第一层,故设为1,以后递增;链表指针(p_p)指针指向所属的作业链表项中对应层的信息采集结构。
进程启动时间(p_stime)进程在系统中实际启动的时间。
进程调用历史记录(p_l)由于首次进入采集,故设置为空。
建立该表项并与数据结构勾连后,本进程接下来的所有行为特征信息将按预定的要求被采集。本次的调用行为属于其父进程,所以不作采集。然后转入正常执行。
14a)本步骤的实施是在系统调用的总入口处设置钩子,譬如,在“syscall_entry”过程中。在实际执行前,首先判断当前进程是采集进程还是受控进程,如是采集进程则调用行为特征信息构造模块。如当前进程不是所关心的进程,则按正常情况继续运行。
15a)按11a)中设定的采集要求,构造当前调用的特征信息。他们是调用层次该信息说明调用应该存在的层次。它可以直接从当前进程的控制链表项中获取。
涉及到的系统资源信息名称、使用方式和标志等。譬如,打开文件的“open”调用。其中包含有文件名(fname),打开方式(mode)(读、写、读写),打开标志(flag)。为监控时检索有高效率,涉及到资源名称等的字符串使用编码存储,要求编码算法对唯一的字符串仅产生唯一的值。
关联信息如本调用被设置为要求产生调用的历史关联信息,则从保存在进程链表项中p_l字段的数组中提取历史信息,并作为本次调用的特征信息保存。
空间地址信息如本调用被设置为要求产生调用的空间地址信息,可从当前进程的系统核心堆栈保留的信息中获取。并作为本次调用的特征信息保存。
同时,还在本进程链表项中记录本次调用号等信息,作为其下一次调用系统的历史关联信息。
上述步骤15a)说明的是针对一次系统调用所可能采集的特征信息,整个作业的完整运行将产生大量的特征信息。不同层次的特征信息量也是不同的,应考虑对不同规模程序信息量大小变化的适应性。
16a)对构造的行为特征信息进行统计、去重处理后记录到相关数据结构链表中。
17a)如当前调用是创建新的子进程,则首先确认对应下一层子进程的特征信息结构的存储空间是否已存在,如已存在(即历史上已创建过子进程),则使用已存在的结构空间(共享数据),不再创建。如不存在,则申请新的数据空间,并按父进程的信息采集要求进行初始化。然后,为新的子进程创建系统进程控制链表项,并与特征信息结构建立勾连。其中p_pid为新的子进程的PID。当新的子进程投入运行时,系统将立即对其实施特征信息采集。
通过在用户层面对被采集的应用程序完成类似功能测试方式的运行后,步骤13a)-17a)多次循环处理将产生指定程序的比较完整的行为特征信息集合(内存中)。
18a)本步骤的工作是在用户层完成的,不是内核模块的一部分。它利用系统专用IO接口将内核中的特征行为信息数据集合提取到应用层的磁盘数据库中。并对其进行如下处理(1)融合处理,由于某些原因,一次获取的行为特征信息可能不够完整,需要二次对应用程序进行采集,多次采集的信息需要适当的合成为一个整体,要保持数据的有效,有较少的冗余。
(2)安全审计。所获取的程序行为特征信息,以分层、分类、透明的方式提供给系统安全人员进行安全审查。譬如,是否不合理的使用了某文件数据、访问了不应访问的机密数据、访问了不相干的系统配置文件等。行为特征信息详尽的说明了该应用程序为了完成所设计的功能所需要的系统内核对它的支持,包括支撑文件集合、系统软件机制(进程管理、网络通讯、消息队列)等。这里不包括应用程序加工的新数据,对新数据的加工可通过辅助机制有限“开放”实现。它属于利用该方法创建的入侵防护系统。
经过可能的融合与审计处理,最终产生了可用于对程序实施行为监控的数据集合“行为安全盒”。
图3是特征信息控制方法,即用上一过程构建的应用程序的“行为安全盒”数据作为控制数据,并将其应用在系统内核建立起的一种监控机制上过程的控制流程图。特征信息采集方法与特征信息控制方法是一个整体的前后两个部分。而且方法涉及的一些步骤和技术是相似或相同的。
下面是二者的主要差别前者主要用于获取指定程序的完整的行为特征信息,后者是依据所获取的行为特征信息对指定的应用程序实施严格的行为监控,阻止异常行为的执行。
根据本发明的一实施例,所述方法用上一过程构建的应用程序的“行为安全盒”数据作为控制数据,并将其应用在系统内核建立起的一种监控机制上;一旦该程序进入运行,其程序行为将严格受到经过安全审计的“行为安全盒”的约束;一旦程序出现异常行为,系统就会立即发现,在阻断服务的同时给出报警信息,并依据安全等级采取应对措施,结合附图3和附图5,具体步骤如下步骤21)通过专用接口接收来自用户应用层的控制请求信息,从中提取控制模式(行为数据控制模式)、网络应用程序名(监控对象)、“行为安全盒”数据等。按监控对象名创建系统作业控制链表项,供“进程状态识别”时使用。根据指定的“行为安全盒”数据建立对应的数据结构并进行初始化;步骤22)在用户层终止并重新启动受控对象程序;步骤23)系统中的“文件执行钩子”在执行一个新的文件时,查询步骤21)建立的系统作业控制链,判定将执行的程序是否是要实施监控的程序,若不是则转步骤29),若是,则为当前进程创建系统进程控制链表项,同时建立两条链表项的映射关系。
步骤24)“系统调用截获钩子”在系统调用总入口处查询当前系统进程控制链,判断当前进程是否是被监控进程,如不是则转步骤9),如是则截获当前进程的系统调用,收集调用参数,并完成当前进程到系统作业控制链中对应项的映射,找到对应的数据结构。
步骤25)“行为特征数据产生模块”根据针对本作业的监控级别和“行为安全盒”控制要求,按不同情况构造此次软件行为的特征数据转步骤27);步骤26)如当前进程的行为是希望创建子进程,则首先为子进程创建新的系统进程控制链表项,并查找当前作业结构中是否已有下一层进程的信息结构和空间。如有,建立勾连关系并转步骤29),否则,报警并错误返回;如不是创建子进程,则转步骤29)。
步骤27)“结果分析仲裁模块”根据用户指定的监控级别,将构造的当前的行为特征信息与本进程相应的“行为安全盒”信息进行分析对照,实施访问仲裁。如果仲裁通过,则转步骤26);如果仲裁失败,则转步骤28);步骤28)“实时报警与应对模块”根据“行为安全盒”中指定控制要求实时发出等级报警,并根据内核部分应对措施实施错误处理,譬如封锁客户IP地址等;步骤29)继续执行正常的系统调用功能;每次用户层应用程序进入系统调用,都将循环以上23)-29)步骤的处理,保证整个监控过程的连续性与完整性。
根据本发明的一实施例,所述步骤21)中的专用接口同过程一中说明,用户指定的“行为安全盒”是采集制作过程产生的具有层次的结构化数据集合,通常存储在用户层数据库中,“行为安全盒”与应用程序有严格的一对一特性,如不匹配将导致应用程序无法运行;所述步骤22)必须保证受控服务程序的重新启动,如在对应的“行为安全盒”完成初始化之前已启动,应先将其终止后再启动,以确保控制机制可以正常实施监控;所述步骤23)中的“文件执行钩子”和步骤24)中的“系统调用钩子”要求同过程一中的说明;所述步骤25)必须确保在子进程实际运行之前,完成对应的系统进程控制链表项的创建,并建立与作业结构中下一层进程信息结构和空间的勾连,以保证子进程一旦运行就立即被“行为安全盒”监控,不会发生失控情况。
所述步骤26)的“监控级别”还包含本方法将检测仲裁划分为四种不同级别,可由安全人员在实施监控时设定。由低到高分别为(1)基本级;仅对系统调用在对应层次的可用性进行检查。即,如“行为安全和盒”的对应层指示本次调用存在,则判定为访问合法,否则为不合法;(2)较强级。除按(1)级即基本级条件实施检查外,还检查相关文件、设备是否可用、使用方式是否正确;(3)强级。除完成(1)、(2)两级即基本级和较强级内的检查外,还检查相关调用关联(n步)是否正确;(4)超强级。除完成(1)、(2)和(3)级即基本级、较强级和强级内的检查外,还构造并检查相关调用的空间地址是否正确;所述步骤26)中的“控制要求”同过程一中方法描述;所述步骤27)中的对照分析、访问仲裁包含根据当前作业监控级别,将调用的行为特征信息与“行为安全盒”中对应类别的记录分别进行对比,如有一种条件不符则仲裁为失败;所述步骤28)还包含等级报警分为三级,每一报警等级设有相应的应对措施一级报警控制要求指定为关联和空间地址监控的系统调用在执行中出现异常,或访问的文件系统资源违反了特定的控制要求,譬如关联或空间地址异常,对应的错误应对措施为防火墙联动,在特殊设定下会终止对应的网络服务程序;二级报警控制要求指定为关联或空间地址监控的系统调用在执行中出现异常,或对“行为安全盒”中只允许读的文件和/或设备出现了非法的“写”操作。对应的错误应对措施为封锁客户IP地址,重启网络服务程序等;三级报警对控制要求设定为可用性的系统调用出现了异常,或一般的文件/设备访问出现异常,对应的错误应对措施为一般报警。
根据本发明的一实施例,所述方法中包含的两条链表(1)系统作业控制表链(2)系统进程控制链;与前面描述的过程中描述的一致。
图3是第二过程,特征信息控制方法的控制流程图,参考图3可见,包括如下的主要流程21a)通过专用接口接收来自用户应用层的控制请求信息,按监控对象名创建系统作业控制链表项。根据指定的“行为安全盒”数据建立对应的数据结构,并进行初始化。譬如“/uar/sbin/vsftpd”是三层数据结构,如图1所示。
22a)由于某种原因要受控的应用程序可能已经处于运行状态,这时必须将其终止并重新启动运行,以保障控制机制能被激活运行。本步骤的工作是在用户层完成的,不是内核模块的一部分。譬如对文件服务器守护程序“/usr/sbin/vsftpd”,可用“/etc/init.d/vsftpd restart”完成需要的工作。
23a)在系统执行文件的接口内设置调用钩子,用于及时识别是否是要控制的应用程序将要运行。如是则在系统进程控制链中创建一项,相应的表项内容与采集方法中基本相同。然后建立该表项并与行为数据结构勾连。本进程接下来的所有的行为特征信息将按预定的要求实施访问仲裁。本次的调用行为属于其未受控的父进程,所以不作仲裁。然后转入正常执行。
24a)本步骤的实施是在系统调用的总入口处设置钩子,在实际执行前,首先判断当前进程是采集进程还是受控进程,如是受控进程则调用行为特征信息构造模块。如当前进程不是所关心的进程,则按正常情况继续运行。
25a)按步骤(1)中设定的控制要求,构造当前调用的特征信息,同上一过程的描述。
26a)对此次调用行为实施仲裁。仲裁的依据是当前的调用行为特征是否符合经审计的安全行为特征集中已有的特征条件,包括a.层次、可用性。当前的调用是否处在正确的层次、合法的特征集合中是否包含本次调用。
b.关联可用性检查。如原控制要求中指定了关联特征,则检查当前调用的历史关联是否在属于合法的特征集合。当前调用的关联信息保存在进程控制链表项结构中。
c.空间地址可用性检查。如原控制要求中指定了空间地址特征,则检查当前调用的空间地址是否在属于合法的特征集合。当前调用的空间地址可通过当前进程的核心堆栈获得。
d.资源可用性检查。如当前调用涉及到系统资源的使用,则检查对资源的使用是否合法,即该资源是否在合法行为特征集中;使用的方式是否正确;访问的资源是否属于开放资源。
27a)如当前调用是创建新的子进程,则首先确认对应下一层子进程的特征信息结构的存储空间是否已存在,如已存在,则使用已存在的结构空间(共享数据)。如不存在,则判定为一次行为错误,并中断执行返回用户。然后,为新的子进程创建系统进程控制链表项,并与特征信息结构建立勾连。其中p_pid为新的子进程的PID。当新的子进程投入运行时,系统将立即对其实施监控。
在执行上述仲裁时可考虑安全人员设定的监控等级,由监控等级确定具体使用上述检测特征的那些部分。譬如,如设定监控级为“层次、可用性”,则只检测(1)所描述的特性。上述检查中任何一项未获通过,此次访问仲裁即判为失败。如通过访问仲裁则转入,本次调用的正常执行。
28a)当访问仲裁失败时,将依据控制等级发出等级报警,并完成部分应对措施实施错误处理。
步骤24a)-28a)是控制方法中的主要循环处里部分,实施对被监控程序的实时监控。
参考图5和图7,图5是入侵防护系统防范网络入侵原理示意图;图7是入侵防护系统用户层与系统内核层模块结构示意图。根据本发明的一实施例,提供一种适用于所述的检测入侵方法的网络入侵防护系统,其中,应用本发明所阐述的方法作为监控的核心技术,配以辅助的网络访问控制、进程运行状态控制等,创建一个完整的系统级的安全监控模型和策略体系,即通过“行为安全盒”技术方法,对所有为外部网络提供服务的应用软件的程序行为进行超细粒度、全程的实时监控,对系统内的所有其他不受“行为安全盒”约束的程序,实施与外部网络完全隔离;对外部网络来说,构建起一个完全受控于异常监控模型的、高等级安全和可用的网络入侵防护系统;该系统包括用户层安全交互模块;以及内核层数据处理与监控模块。
根据本发明的一实施例,用户层安全交互模块运行在用户层面,提供一个可操控的工作平台,也是用户层与内核层数据交互的主要通道;它主要完成对软件行为特征信息的采集(静态部分)、制作、管理和实施监控所需的前端与后台管理等工作,主要的行为特征数据的采集和实质性监控均由系统内核完成;它集成了网络安全人员完成各种任务所需的模块;参考图4可见,该模块包括注册模块;用户交互输入模块;任务调度模块;行为特征信息采集与制作请求模块;行为特征信息监控请求模块;策略配置与管理请求模块;行为数据融合与审计模块;实时报警与应对模块(用户层部分);数据通讯处理(用户层部分)模块;行为特征数据库功能;其基本工作流程是在用户层通过用户安全注册后,由任务调度模块接收网络安全人员的操作指令和参数,并将其传递到相关模块,譬如“行为特征信息监控请求”模块。多数模块在完成必要的处理后,将组织数据并通过“数据通讯处理”模块与内核接口,将安全监控指令和数据传递给内核IO接口模块,由内核完成所要求的工作,譬如,对指定的软件应用程序实施监控等。同时“数据通讯处理”模块还接收来自内核的数据、报警信息和应对请求等,将数据传递给用户层的相关模块,并与其他安全设施联动处理;各模块的基本功能是“注册模块”完成系统用户的安全注册、注销,“任务调度模块”通过字符或窗口界面完成用户安全指令及控制参数的获取,进行有关处理后,并按系统约定形成请求包传递给相关模块;“行为特征信息采集与制作请求模块”(1)针对指定软件应用程序,完成特定安全控制要求的设定和初始化,包括对特定的系统调用设定关联控制、空间地址控制;对特定系统资源使用的控制,譬如对指定文件使用关联控制等,形成请求包传递给“数据通讯处理模块”;(2)完成指定软件的特征信息获取、制作并构建数据库记录,包括从核心层获取动态监控所采集到的行为特征信息集合,以及在应用层静态获取行为特征信息,将二者进行融合处理形成“行为安全盒”,并在数据库中保留记录;“行为特征信息监控请求模块”将指定软件的“行为安全盒”数据和其他控制参数形成请求包,传递给“数据通讯处理模块”,将其加载入系统内核;“策略配置请求模块”防御系统设定了三种控制状态(1)网络控制状态,有“行为安全盒”制约的进程可以在约束下进行网络通讯,其他进程不能进行网络通讯;(2)完全控制状态,仅有“行为安全盒”制约的进程可以在系统内运行,其他进程不能继续运行;(3)维护状态,系统临时进入维护状态。该模块根据安全人员对状态的设置以及对其他策略参数的设置形成请求包,并通过“数据通讯模块”传递给内核处理模块;“行为数据融合与审计模块”对指定的“行为安全盒”数据进行安全审计,参照应用的技术说明资料,可审计内容包括是否侵犯了系统重要机密数据(文件);是否不适当的访问了系统内其他重要的配置文件;是否访问了技术规范以外的其他网络通讯端口;是否不适当的使用了系统设备;对有关系统文件是否使用了不当的访问方式等。在审计过程中可对行为特征数据进行修正。完成安全审计后将“行为安全盒”数据由待审状态确认为有效;“实时报警与应对模块”实时监视内核对受控软件应用程序的监控报警,并根据报警级别采取应对措施;包括防火墙联动、终止服务进程等;“数据通讯处理模块”接收其他模块的控制请求包,并将其传递给内核IO接口模块,同时负责接收内核送出的行为特征数据、报警等信息;行为特征数据库包括各个应用软件的待定(原始)行为特征数据集合库;经过安全审计与修正后确认的“行为安全盒”集合库;报警信息库;用户数据库;安全策略配置库等;根据本发明的一实施例,内核层数据处理与监控模块是入侵防御系统的核心部分,负责应用本发明所描述的方法,实施应用程序的行为特征信息的采集,对具有“行为安全盒”的软件实施应用行为的安全监控;同时实现安全策略配置;网络和进程辅助控制等功能,实施防入侵的整体安全策略,包括将未受“行为安全盒”监控进程与外部网络隔离等,所述模块具体包括信息IO与任务总控模块;数据结构初始化模块;进程状态识别与控制模块;网络通讯控制模块;系统调用信息截获模块;策略配置与管理模块;行为特征数据产生模块;访问仲裁模块;报警与应对模块;主要工作流程,参考图6可见,包括信息IO与任务总控模块接收来自用户层的请求包,分析请求包内容,并分发任务。有以下几个主要分支流程(1)软件特征信息内核采集,这时将调用数据初始化模块,完成初始数据结构的创建,激活进程状态识别与控制模块、系统调用信息截获模和块行为特征数据产生模块,完成行为特征信息的采集构造工作等;(2)软件特征信息内核监控,这时将从用户层获取“行为安全盒”数据,调用数据初始化模块,完成行为特征信息的数据结构的建立等,同时激活进程状态识别与控制模块、访问仲裁模块等,系统可同时提供对多道用户应用程序的监控;(3)安全策略的配置,完成内核安全策略参数的配置,激活网络通讯控制模块、报警与应对模块;(4)网络通讯控制,不是受控或采集状态的进程严禁与外部网络通讯;各模块的基本功能是信息IO与任务总控模块接收来自用户层的请求包,分析请求包内容,并分发任务,向用户层提供数据、配置和状态信息等;数据结构初始化模块根据用户采集请求包,完成采集任务的基础信息结构的创建和原始数据的初始化;创建系统作业控制链表项并建立与基础数据结构的勾联;根据用户控制请求包,完成所需的“行为安全盒”控制数据结构的建立并初始化,创建系统作业控制链表项并建立与控制数据结构的勾连;系统其他安全策略参数、队列及控制结构的初始化;进程状态识别与控制模块依据系统中进程PID号的唯一性,从系统进程控制链表中识别当前进程是采集或受控进程,根据控制表项映射到对应层次采集或控制数据结构;网络通讯控制模块识别当前进程是否受控状态,隔离未受“行为安全盒”控制的进程与外部网络的通讯等;系统调用信息截获模块识别当前进程是否采集或受控状态,属两状态之一,则在用户层与系统的总入口处拦截系统调用,收集调用号,参数,当前调用层次等信息;行为特征数据产生模块根据系统调用信息截获模块截获信息和相关“行为安全盒”中控制要求,构造当前调用的行为特征信息;如为采集状态,则完成数据记录的相关处理。如为受控状态,则转访问仲裁处理;访问仲裁模块根据当前的策略配置、当前作业的监控等级、当前作业的“行为安全盒”数据,对作业的当前行为实施访问仲裁;报警与应对模块当仲裁模块对当前的访问仲裁失败时,本模块发出等级报警信息并采取有关应对措施。
采用本发明所揭示的一种入侵检测的方法及其系统有效地利用了软件应用程序行为的不变性特征,实现了对应用程序行为特征的“紧耦合”控制。在达到对程序行为的细粒度控制、保障应用程序不偏离“行为安全盒”约束的情况下,实现的算法较为简单、流程清晰、可控性好,对系统性能损失较低,该发明用于抵御利用应用软件存在的漏洞、弱点进行“堆栈溢出”、“特洛伊木马”、“后门”等典型入侵手段,尤其是应对新型入侵手段有很好的效果。作为本发明的第二个目的(构建网络入侵防护系统),将发明的方法作为基本手段应用于整个计算机系统的安全防御,使其对与外部网络来说完全处于受“行为安全盒”监控的状态,系统对外界提供的服务功能,以及服务过程找中对系统资源的使用都经过安全审计,因而将大大提高系统的网络安全防御能力。该项技术具有良好的环境适应能力,可针对各种应用系统进行安全保护。
虽然本发明的技术方案已经结合较佳的实施例说明于上,但是本领域的技术人员应该理解,对于上述的实施例的各种修改或改变是可以预见的,这不应当被视为超出了本发明的保护范围,因此,本发明的保护范围不限于上述具体描述的实施例,而应该是符合此处所揭示的创新性特征的最宽泛的范围。
权利要求
1.一种入侵检测方法,其特征在于,通过直接获取程序的软件行为特征信息、构造访问模型,并将其反作用于程序本身来达到防止程序异常行为的发生;通过有效地集成这种方法构造完整的系统网络安全策略,进而保护整个网络服务器系统免受网络入侵攻击侵害,其中,包含如下的两个过程采集并制作一“行为安全盒”;用所述“行为安全盒”对软件行为的监控。
2.如权利要求1所述的入侵检测方法,其特征在于,所述采集并制作一“行为安全盒”包括在系统内核建立一种机制,全程监控指定应用程序的运行,并根据安全设定获取该程序的行为特征信息集合,经分析处理和安全审计后构建相应应用程序的形成“行为安全盒”,具体制作步骤如下步骤11)通过专用接口接收来自用户应用层的采集请求信息,从中提取控制模式信息、网络应用程序名、各系统调用的缺省监控要求、特殊监控的系统调用、特殊监控的文件资源信息,并将其格式化,创建系统作业控制链表项,供“执行状态识别”时使用;根据指定的采集要求建立首层信息采集数据结构并完成初始化;步骤12)在用户层终止并重新启动采集对象程序,并按正常方式运行;步骤13)系统中的“文件执行钩子”在执行一个新的文件时,根据步骤11)建立的系统作业控制表链,判定将执行的程序是否是要采集行为信息的程序,若不是则转步骤18),如是则为当前进程创建系统进程控制表链表,同时建立两条链表项的映射关系;步骤14)“系统调用截获钩子”在系统调用总入口处,根据系统进程控制表链判断当前进程是否是被采集行为特征信息的进程,如不是则转步骤18);如是则截获当前进程的系统调用,并收集调用参数,完成当前进程到系统作业控制表链中对应项的映射,找到对应的数据结构,如当前进程希望创建子进程则转步骤16),否则继续下一步骤;步骤15)“行为特征数据产生模块”根据用户对控制要求的具体指定,按不同情况采集并构造此次行为的特征数据,转步骤17);步骤16)当前进程希望创建子进程时,首先为子进程创建新的系统进程控制链表项,并查找当前作业结构中是否已有下一层进程的结构和空间。如有,建立勾连关系并转下一步,否则为下一层创建结构和空间并完成初始化处理;步骤17)“结果分析处理模块”对获取的信息进行统计、去重处理后记录到相关数据结构链表中;步骤18)转入正常系统调用处理流程;以上步骤13-18在获取指定服务程序行为特征信息过程中多次循环执行,在获取较为完整的信息数据后进入以下处理流程步骤19)将通过静态分析提取的程序属性和部分行为特征信息与内核动态获取的行为特征数据进行融合处理,并通过“行为信息融合与审计模块”提供透明、交互式的行为信息安全审计处理,对程序行为的审计按层分类进行,审计完成的数据按“行为安全盒”规格进行融合处理并存储到应用数据库中,供监控时使用。
3.如权利要求2所述的入侵检测方法,其特征在于,所述方法中包含了两条链表系统作业控制表链其中的每一表项用于登记当前需要采集或控制的作业的具体信息,同时包含有容纳行为特征信息空间的指针;系统进程控制表链其中的每一表项用于登记当前的进程ID、历史关联信息、控制类型、层次信息、容纳本层程序行为信息空间的指针、所属作业标识、启动时间、下一表项指针等。
4.如权利要求3所述的入侵检测方法,其特征在于,所述步骤11)中的专用接口可借用系统已有的读写接口,这时可利用原系统未使用的资源部分;也可另建新的独立的读写接口,完成与用户层的信息交换;采集的内容包括系统调用号、有关系统调用的空间层次信息、调用的历史关联信息和空间地址信息、调用涉及到的文件系统资源包括文件、目录、设备、对资源的使用模式、对资源的使用频率、还包括为指定的采集任务建立系统作业控制链表项并链入链表;每一个链接表项包括作业标识信息、作业类型、指向容纳本层行为信息的结构指针、前后链指针、文件和IP地址缓冲;所述步骤12)确保采集机制可正常运行,如程序已启动,先终止再启动;所述步骤13)中的“文件执行钩子”是系统中执行文件的必经之处,保证采集任务无旁路的可能性;所述步骤14)中的“系统调用截获钩子”是系统调用进入系统的必经之处,保证任务监控的无旁路的可能性;所述步骤16)中的控制要求还包括针对每一种系统调用可设置的三种控制要求为a.层次、可用性,这是针对每一个系统调用的缺省设定,即记录系统调用是否使用,及使用所处的进程树层次。b.关联控制,记录该系统调用前N步已完成的调用情况,N通常设定为1-5;c.空间地址控制,记录该系统调用的用户指令空间返回地址,以上各种控制要求可以单独设立,也可一次设置多项;所述步骤17)提供对应用程序行为实施审计的能力审计内容包括是否侵犯了系统重要机密数据、是否不适当的访问了系统内其他重要的配置文件、是否访问了技术规范以外的其他网络通讯端口、是否不适当的使用了系统设备、对有关系统文件是否使用了不当的访问方式;在审计过程中可对行为特征数据进行修正;采集和审计过程可反复进行多次,前一次作为后一次融合的基础,不断完善,最终制作出与应用很好匹配的可用于安全控制的“行为安全盒”。
5.如权利要求1所述的一种检测方法,其特征在于,所述方法用所构建的应用程序的“行为安全盒”数据作为控制数据,并将其应用在系统内核建立起的一监控机制上;一旦该程序进入运行,其程序行为将严格受到经过安全审计的“行为安全盒”的约束;一旦程序出现异常行为,系统就会立即发现,在阻断服务的同时给出报警信息,并依据安全等级采取应对措施,具体步骤如下步骤21)通过专用接口接收来自用户应用层的控制请求信息,从中提取控制模式、网络应用程序名、“行为安全盒”数据;按监控对象名创建系统作业控制链表项,供“进程状态识别”时使用;根据指定的“行为安全盒”数据建立对应的数据结构并进行初始化;步骤22)在用户层终止并重新启动受控对象程序;步骤23)系统中的“文件执行钩子”在执行一个新的文件时,查询步骤1)建立的系统作业控制链,判定将执行的程序是否是要实施监控的程序,若不是则转步骤29),若是,则为当前进程创建系统进程控制链表项,同时建立两条链表项的映射关系;步骤24)“系统调用截获钩子”在系统调用总入口处查询当前系统进程控制链,判断当前进程是否是被监控进程,如不是则转步骤29),如是则截获当前进程的系统调用,收集调用参数,并完成当前进程到系统作业控制链中对应项的映射,找到对应的数据结构;步骤25)“行为特征数据产生模块”根据针对本作业的监控级别和“行为安全盒”控制要求,按不同情况构造此次软件行为的特征数据转步骤27);步骤26)如当前进程的行为是希望创建子进程,则首先为子进程创建新的系统进程控制链表项,并查找当前作业结构中是否已有下一层进程的信息结构和空间;如有,建立勾连关系并转步骤29),否则,报警并错误返回;;如不是创建子进程,则转步骤29);步骤27)“结果分析仲裁模块”根据用户指定的监控级别,将构造的当前的行为特征信息与本进程相应的“行为安全盒”信息进行分析对照,实施访问仲裁,如果仲裁通过,则转步骤26);如果仲裁失败,则转步骤28);步骤28)“实时报警与应对模块”根据“行为安全盒”中指定控制要求实时发出等级报警,并根据内核部分应对措施实施错误处理,譬如封锁客户IP地址等;步骤29)继续执行正常的系统调用功能;每次用户层应用程序进入系统调用,都将循环以上23)-29)步骤的处理,保证整个监控过程的连续性与完整性。
6.如权利要求5所述的入侵检测方法,其特征在于,所述步骤21)中的专用接口可借用系统已有的读写接口,这时可利用原系统未使用的资源部分;也可另建新的独立的读写接口,完成与用户层的信息交换;采集的内容包括系统调用号、有关系统调用的空间层次信息、调用的历史关联信息和空间地址信息、调用涉及到的文件系统资源包括文件、目录、设备、对资源的使用模式、对资源的使用频率、还包括为指定的采集任务建立系统作业控制链表项并链入链表;每一个链接表项包括作业标识信息、作业类型、指向容纳本层行为信息的结构指针、前后链指针、文件和IP地址缓冲;用户指定的“行为安全盒”是采集制作过程产生的具有层次的结构化数据集合,通常存储在用户层数据库中,“行为安全盒”与应用程序有严格的一对一特性,如不匹配将导致应用程序无法运行;所述步骤22)必须保证受控服务程序的重新启动,如在对应的“行为安全盒”完成初始化之前已启动,应先将其终止后再启动,以确保控制机制可以正常实施监控;所述步骤23)中的“文件执行钩子”中的“文件执行钩子”是系统中执行文件的必经之处,保证采集任务无旁路的可能性;所述步骤24)中的“系统调用截获钩子”是系统调用进入系统的必经之处,保证任务监控的无旁路的可能性;所述步骤25)确保在子进程实际运行之前,完成对应的系统进程控制链表项的创建,并建立与作业结构中下一层进程信息结构和空间的勾连,以保证子进程一旦运行就立即被“行为安全盒”监控,不会发生失控情况;所述步骤26)的“监控级别”还包含四种不同级别,由低到高分别为基本级仅对系统调用在对应层次的可用性进行检查。即,如“行为安全和盒”的对应层指示本次调用存在,则判定为访问合法,否则为不合法;较强级除按基本级条件实施检查外,还检查相关文件、设备是否可用、使用方式是否正确;强级除完成基本级、较强级内的检查外,还检查相关调用关联(n步)是否正确;超强级除完成上述三级级内的检查外,还构造并检查相关调用的空间地址是否正确;所述步骤26)中的“控制要求”控制要求还包括针对每一种系统调用可设置的三种控制要求为a.层次、可用性,这是针对每一个系统调用的缺省设定,即记录系统调用是否使用,及使用所处的进程树层次。b.关联控制,记录该系统调用前N步已完成的调用情况,N通常设定为1-5;c.空间地址控制,记录该系统调用的用户指令空间返回地址,以上各种控制要求可以单独设立,也可一次设置多项;同过程一中方法描述;所述步骤27)中的对照分析、访问仲裁包含根据当前作业监控级别,将调用的行为特征信息与“行为安全盒”中对应类别的记录分别进行对比,如有一种条件不符则仲裁为失败;所述步骤28)还包含等级报警分为三级,每一报警等级设有相应的应对措施一级报警控制要求指定为关联和空间地址监控的系统调用在执行中出现异常,或访问的文件系统资源违反了特定的控制要求,譬如关联或空间地址异常,对应的错误应对措施为防火墙联动,在特殊设定下会终止对应的网络服务程序;二级报警控制要求指定为关联或空间地址监控的系统调用在执行中出现异常,或对“行为安全盒”中只允许读的文件和/或设备出现了非法的“写”操作。对应的错误应对措施为封锁客户IP地址,重启网络服务程序等;三级报警对控制要求设定为可用性的系统调用出现了异常,或一般的文件/设备访问出现异常,对应的错误应对措施为一般报警。
7.如权利要求5所述的入侵检测方法,其特征在于,所述方法中包含的两条链表系统作业控制表链其中的每一表项用于登记当前需要采集或控制的作业的具体信息,同时包含有容纳行为特征信息空间的指针;系统进程控制表链其中的每一表项用于登记当前的进程ID、历史关联信息、控制类型、层次信息、容纳本层程序行为信息空间的指针、所属作业标识、启动时间、下一表项指针等。
8.一种适用于如权利要求1所述的检测入侵方法的网络入侵防护系统,其特征在于,应用如权利要求1所述的方法作为监控的核心技术,配以辅助的网络访问控制、进程运行状态控制创建一个完整的系统级的安全监控模型和策略体系,即通过“行为安全盒”技术方法,对所有为外部网络提供服务的应用软件的程序行为进行超细粒度、全程的实时监控,对系统内的所有其他不受“行为安全盒”约束的程序,实施与外部网络完全隔离;对外部网络来说,构建起一个完全受控于异常监控模型的、高等级安全和可用的网络入侵防护系统;该系统包括用户层安全交互模块以及内核层数据处理与监控模块。
9.如权利要求8所述的检测入侵方法的网络入侵防护系统,其特征在于,用户层安全交互模块运行在用户层面,提供一个可操控的工作平台,也是用户层与内核层数据交互的主要通道;它主要完成对软件行为特征信息的采集、制作、管理和实施监控所需的前端与后台管理等工作,主要的行为特征数据的采集和实质性监控均由系统内核完成;它集成了网络安全人员完成各种任务所需的模块包括注册模块、任务调度模块、行为特征信息采集与制作请求模块、行为特征信息监控请求模块、策略配置与管理请求模块、行为数据融合与审计模块、实时报警与应对模块、数据通讯处理模块、行为特征数据库;其基本工作流程是在用户层通过用户安全注册后,由任务调度模块接收网络安全人员的操作指令和参数,并将其传递到相关模块,譬如“行为特征信息监控请求”模块;多数模块在完成必要的处理后,将组织数据并通过“数据通讯处理”模块与内核接口,将安全监控指令和数据传递给内核IO接口模块,由内核完成所要求的工作,譬如,对指定的软件应用程序实施监控;同时“数据通讯处理”模块还接收来自内核的数据、报警信息和应对请求,将数据传递给用户层的相关模块,并与其他安全设施联动处理;各模块的基本功能是注册模块完成系统用户的安全注册、注销,任务调度模块通过字符或窗口界面完成用户安全指令及控制参数的获取,进行有关处理后,并按系统约定形成请求包传递给相关模块;行为特征信息采集与制作请求模块针对指定软件应用程序,完成特定安全控制要求的设定和初始化,包括对特定的系统调用设定关联控制、空间地址控制;对特定系统资源使用的控制,譬如对指定文件使用关联控制等,形成请求包传递给“数据通讯处理模块”;以及完成指定软件的特征信息获取、制作并构建数据库记录,包括从核心层获取动态监控所采集到的行为特征信息集合,以及在应用层静态获取行为特征信息,将二者进行融合处理形成“行为安全盒”,并在数据库中保留记录;行为特征信息监控请求模块将指定软件的“行为安全盒”数据和其他控制参数形成请求包,传递给“数据通讯处理模块”,将其加载入系统内核;策略配置请求模块设定了三种控制状态(1)网络控制状态,有“行为安全盒”制约的进程可以在约束下进行网络通讯,其他进程不能进行网络通讯;(2)完全控制状态,仅有“行为安全盒”制约的进程可以在系统内运行,其他进程不能继续运行;(3)维护状态,系统临时进入维护状态。该模块根据安全人员对状态的设置以及对其他策略参数的设置形成请求包,并通过“数据通讯模块”传递给内核处理模块;行为数据融合与审计模块对指定的“行为安全盒”数据进行安全审计,参照应用的技术说明资料,可审计内容包括是否侵犯了系统重要机密数据;是否不适当的访问了系统内其他重要的配置文件;是否访问了技术规范以外的其他网络通讯端口;是否不适当的使用了系统设备;对有关系统文件是否使用了不当的访问方式;在审计过程中可对行为特征数据进行修正;完成安全审计后将“行为安全盒”数据由待审状态确认为有效;实时报警与应对模块实时监视内核对受控软件应用程序的监控报警,并根据报警级别采取应对措施;包括防火墙联动、终止服务进程等;数据通讯处理模块接收其他模块的控制请求包,并将其传递给内核IO接口模块,同时负责接收内核送出的行为特征数据、报警等信息;行为特征数据库包括各个应用软件的待定行为特征数据集合库;经过安全审计与修正后确认的“行为安全盒”集合库;报警信息库;用户数据库;安全策略配置库。
10.如权利要求8所述的一种检测入侵方法的网络入侵防护系统,其特征在于,内核层数据处理与监控模块是入侵防御系统的核心部分,负责应用本发明所描述的方法,实施应用程序的行为特征信息的采集,对具有“行为安全盒”的软件实施应用行为的安全监控;同时实现安全策略配置;网络和进程辅助控制,实施防入侵的整体安全策略,包括将未受“行为安全盒”监控进程与外部网络隔离,所述模块具体包括信息IO与任务总控模块、数据结构初始化模块、进程状态识别与控制模块、网络通讯控制模块、系统调用信息截获模块、策略配置与管理模块、行为特征数据产生模块、访问仲裁模块、报警与应对模块;其基本工作流程如下信息IO与任务总控模块接收来自用户层的请求包,分析请求包内容,并分发任务,包括以下几个主要分支流程(1)软件特征信息内核采集,这时将调用数据初始化模块,完成初始数据结构的创建,激活进程状态识别与控制模块、系统调用信息截获模和块行为特征数据产生模块,完成行为特征信息的采集构造工作;(2)软件特征信息内核监控,这时将从用户层获取“行为安全盒”数据,调用数据初始化模块,完成行为特征信息的数据结构的建立等,同时激活进程状态识别与控制模块、访问仲裁模块,系统可同时提供对多道用户应用程序的监控;(3)安全策略的配置,完成内核安全策略参数的配置,激活网络通讯控制模块、报警与应对模块;(4)网络通讯控制,不是受控或采集状态的进程严禁与外部网络通讯;其中,各模块功能如下信息IO与任务总控模块接收来自用户层的请求包,分析请求包内容,并分发任务,向用户层提供数据、配置和状态信息;数据结构初始化模块根据用户采集请求包,完成采集任务的基础信息结构的创建和原始数据的初始化;创建系统作业控制链表项并建立与基础数据结构的勾联;根据用户控制请求包,完成所需的“行为安全盒”控制数据结构的建立并初始化,创建系统作业控制链表项并建立与控制数据结构的勾连;系统其他安全策略参数、队列及控制结构的初始化;进程状态识别与控制模块依据系统中进程PID号的唯一性,从系统进程控制链表中识别当前进程是采集或受控进程,根据控制表项映射到对应层次采集或控制数据结构;网络通讯控制模块识别当前进程是否受控状态,隔离未受“行为安全盒”控制的进程与外部网络的通讯;系统调用信息截获模块识别当前进程是否采集或受控状态,属两状态之一,则在用户层与系统的总入口处拦截系统调用,收集调用号,参数,当前调用层次等信息;行为特征数据产生模块根据系统调用信息截获模块截获信息和相关“行为安全盒”中控制要求,构造当前调用的行为特征信息;如为采集状态,则完成数据记录的相关处理;如为受控状态,则转访问仲裁处理;访问仲裁模块根据当前的策略配置、当前作业的监控等级、当前作业的“行为安全盒”数据,对作业的当前行为实施访问仲裁;报警与应对模块当仲裁模块对当前的访问仲裁失败时,本模块发出等级报警信息并采取有关应对措施。
全文摘要
本发明揭示了一种入侵检测方法,其通过直接获取程序的软件行为特征信息、构造访问模型,并将其反作用于程序本身来达到防止程序异常行为的发生;通过有效地集成这种方法构造完整的系统网络安全策略,进而保护整个网络服务器系统免受网络入侵攻击侵害。方法包含如下两个基本过程“行为安全盒”的采集与制作;用“行为安全盒”对软件行为实施监控;本发明还揭示了构建一个适用于上述方法的网络入侵防护系统。采用本发明的技术方案实现了对应用程序行为特征的“紧耦合”控制,使服务系统对于外部网络来说完全处于受“行为安全盒”监控的状态,其对外界提供的服务功能,以及服务过程中对系统资源的使用都必须经过安全审计,可大大提高系统网络安全防御能力。
文档编号H04L12/24GK1794645SQ200510029040
公开日2006年6月28日 申请日期2005年8月24日 优先权日2005年8月24日
发明者冯敏, 韩欣, 阎光 申请人:上海浦东软件园信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1