一种基于策略的自动化程序分析系统和方法与流程

文档序号:11829390阅读:256来源:国知局
一种基于策略的自动化程序分析系统和方法与流程

本发明涉及系统安全技术领域,尤其涉及一种基于策略的自动化程序分析系统和方法。



背景技术:

随着计算机、智能终端的快速发展,以及互联网、移动互联网的日渐普及,软件已经成为人们日常生活和工作中不可缺少的重要部分。然而,与此同时也出现了越来越多的恶意软件与脆弱软件,对软件用户及整个社会带来了各种直接或间接的威胁与危害。

恶意软件,尤其是手机恶意软件,对广大用户的财产和隐私信息安全构成危害。如手机恶意软件的恶意扣费行为,已在各种危害行为中占有相当高的比重,央视315晚会上也曝光了山寨手机捆绑软件恶意扣费的“黑色经济链”,为手机用户带来了极大的财产侵害。除恶意扣费行为之外,恶意软件还具有窃取隐私信息、恶意传播和破坏、恶意强制联网等其他恶意行为。

脆弱软件,是指包含有漏洞或缺陷的软件,是由开发人员设计或编写软件时的疏忽或错误引起的。这类软件具有很高的安全威胁,轻则会引起软件或系统的崩溃,重则会被攻击者利用,针对性地破坏或控制宿主机或相应环境。

由于恶意软件和脆弱软件带来了日益凸显的安全问题,程序分析技术也随之迅速发展,出现了众多的程序安全分析与检测的方法。如传统的软件恶意行为检测方法,包括基于特征码匹配的静态行为分析技术、基于行为特征的动态沙箱分析技术、基于数据流分析的动态污点跟踪技术等。其中每种方法都有一定的技术优势与局限性,单独使用并不能检测出所有类型的恶意软件,因此往往需要将多种分析技术结合使用。例如在Android恶意软件检测领域中,静态行为分析技术能够全面覆盖被测软件面,获取敏感操作路径,但由于无法获得准确的上下文环境,存在误报。动态行为沙箱技术能够准确的验证行为的触发,但无法有效的主动覆盖路径,需要提供被测路径及路径执行的条件,软件覆盖面小。需要采用动静结合的方式进行恶意软件的检测。

在结合了多种安全分析技术的程序分析系统中,往往需要有统一的调度程序综合控制分析任务在多个分析模块之间的分发。但传统的调度方法由于主要考虑通用性,大多采用机械分发式,按照分析模块的任务类型、任务需求数量等简单的信息分配任务,并不能充分的利 用其它模块的知识,有目的性的进行调度。调度程序主要考虑上游模块的输出量和下游模块的保有量,按量分配,并没有按照策略的方式对上游模块的输出做进一步的分析。例如Android恶意软件检测领域中,普遍采用了动静结合的检测技术,其中动态分析包含了动态沙箱和动态污点跟踪两部分,污点跟踪主要是基于数据流分析,检测软件是否具有隐私泄漏行为。动态沙箱主要基于控制流,检测软件是否具有恶意扣费等其他恶意行为。静态分析获取敏感行为路径,动态分析根据敏感路径进行验证。一种场景是静态分析检测出被测软件具有隐私泄漏行为,后续动态分析中只需要采用动态污点跟踪技术来进行验证,无需采用动态沙箱检测。但由于调度程序无法利用静态分析的知识,只能根据静态分析的输出继续给动态沙箱分配任务,从而浪费了宝贵的计算资源。另一个场景是由于Android模拟器的局限性,有些软件在特定的条件下无法在模拟器中正常运行,基于模拟器的动态分析会存在恶意行为漏报的情况,需要真机动态分析模块另行检测,但由于调度程序无法获取这一信息,无法给真机动态分析模块进行调度。所以亟需一种基于策略的调度方法,针对上游模块输出结果,根据配置的策略信息,利用上游模块的知识,有目的性的调度任务,从而提高程序行为分析的效率。



技术实现要素:

本发明的目的是提供一种基于配置策略自动化调度多种程序分析模块的系统和方法,通过预配置策略和全局任务调度,自动衔接多种分析模块或多个分析阶段,实现程序全面、高效、自动化的分析过程。

本发明提供的技术方案如下:

一种基于策略的自动化程序分析系统,如图1所示,包含三个组成部分:数据源、分析单元、调度管理程序。数据源是待分析软件的集合,支持某种方式的检索与获取;分析单元是封装的软件分析模块,能够与调度程序通讯,完成指定软件某种方法或某一阶段的分析;调度管理程序一方面支持用户根据分析单元特点和分析过程配置分析策略,一方面通过解析配置策略和监控多个分析单元状态,实现分析任务的调度和管理(包括分发、监控、回收、审计等功能),最终形成多个分析单元的有效衔接与组合。

一种采用上述系统的基于策略的自动化程序分析方法,基于策略调度多种分析单元,实现数据源中待分析软件的安全检测过程,具体步骤如下:

1)用户预配置分析策略。用户需在配置中预定义分析过程包含的分析单元种类和数量,以及不同种类的分析单元之间的衔接策略。

2)调度管理程序解析用户配置,根据配置初始化各个分析单元和调度程序。

3)调度管理程序根据配置策略,将数据源中的待测软件分发给指定类型的分析单元。

4)各个分析单元获取调度程序分发的待测软件,进行某种方法或某个步骤的安全分析。分析完成后,记录分析状态与结果,并通知调度管理程序。

5)调度管理程序根据配置策略、分析单元分析状态与结果,将该软件分发给下一阶段某种类型的分析单元。

6)重复步骤4)~5),直到待测软件完成策略中指定的某个完整分析过程。

进一步,上述步骤1)中配置的分析策略是任意一种通用描述语言格式,如XML语言、自定义文档语言等。

进一步,上述步骤1)中配置的分析策略可以依据某种类型分析单元的分析结果或分析状态作为流转条件。

进一步,上述步骤3)、4)、5)中,调度管理程序与分析单元的通讯是任意一种通讯方式,如进程间通讯、数据库通讯等。

进一步,上述分析单元包括但不限于:动态UI探测模块、静态分析模块、动态污点跟踪模块、动态行为沙箱模块、漏洞探测模块、漏洞利用扫描模块、真机检测模块、人工分析模块。

与现有技术相比,本发明可以将多种分析方法或多个分析步骤有效融合为统一的分析过程,利用配置的策略信息,针对上游模块的输出结果和分析状态,有目的性的调度任务,从而提高分析结果的准确性。同时,通过调度管理程序,也能够方便得实现多组分析单元的并行处理,提高分析效率。

附图说明

图1是本发明的基于策略的自动化程序分析系统的结构图;

图2是本发明实施例的基于策略的自动化程序分析系统的结构图。

具体实施方式

以下参照附图对一种基于策略调度任务的Android恶意软件自动化检测方法及系统进行详细说明,但本发明不局限于下面的实施方式。

本实施例的整体架构如图2所示,该系统从结构上主要包含3个部分:数据源、4种Android应用分析单元、调度管理程序,其中调度管理程序包括调度程序、配置程序等。其中数据源为Android软件爬取模块,输出Android软件作为Android应用分析单元的输入任务;Android应用分析单元包括以下4种:动态UI探测模块、静态分析模块、动态污点跟踪模块、真机检测模块,运行时每种模块可并行0至若干个。

本实施例中,以XML文件作为策略配置文件,以MySQL数据库表作为调度管理程序与分析单元的通讯接口。用户可以在配置文件中分别对以上4种分析单元命名,每种分析单元均以Android软件作为待测任务,并输出指定格式的分析结果,如均为MySQL数据库表,且包含固定字段。

以下是两种常见分析场景:

第一种分析场景是:静态分析模块检测出被测软件具有潜在的恶意行为,后续由动态污点跟踪模块来进行验证,而无需进行真机模块的检测分析;静态分析模块检测出被测软件没有任何潜在的恶意行为,则结束该软件的检测过程。

第二种分析场景是:动态UI探测模块或静态分析模块检测出某被测软件无法在Android模拟器中正常运行,后续需要由真机动态分析模块进行检测分析,无需进入污点跟踪模块。

针对以上两种分析场景,用户配置文件示例如下所示:

<xml>

<PL name=”android_analysis”desc=”Android软件安全检测”>

<source name=”app_market”max=100000>

<unit name=”ACFG”desc=”动态UI探测模块”count=10seq=1/>

<unit name=”SA”desc=”静态分析模块”count=8seq=2/>

<unit name=”TC”desc=”污点跟踪模块”count=20/>

<unit name=”RP”desc=”真机检测模块”count=5/>

<policy priority=10content=”if Result(SA)=0then finish”/>

<policy priority=10content=”if Result(SA)=1then run(TC)”/>

<policy priority=20content=”if Status(ACFG)=0or Status(SA)=0thenrun(RP)”/>

</PL>

</xml>

其中,PL节点的各个属性为本次检测工作流的通用配置信息,source节点的各个属性为数据源的配置信息,unit节点的各个属性为每个分析单元的配置信息,policy节点的各个属性为检测配置策略的配置信息。4个unit节点分别对应4种类型的分析单元,用户可以定义分析单元的并行数量、默认运行顺序;3条运行策略分别定义了对于指定分析单元的特定分析结果或状态,应该进行的后续处理。

根据unit节点中seq属性描述,默认执行顺序为:先执行ACFG单元(动态UI探测模块,seq=1)、再执行SA单元(静态分析模块,seq=2)。

第一种分析场景由前两条policy节点内容所描述,即:SA单元运行结果为0(无潜在恶 意行为),则结束分析过程;SA单元运行结果为1(有潜在恶意行为),则执行TC单元(污点跟踪模块)。

第二种分析场景由第3条policy节点内容所描述,即:ACFG单元或SA单元分析状态为0(模拟器无法执行),则进入RP单元(真机检测模块)。

policy节点的priority属性规定了策略的优先级。即在分析过程中同时有多条策略满足配置策略时,优先执行的策略内容。如本配置文件中,若SA单元的某次分析结果为0、分析状态为0,即同时满足第1、3两条配置策略,则优先执行优先级高的第3条策略(priority=20)。

调度管理程序解析以上XML配置文件,将数据源、分析单元、策略相关的配置信息读入,并依此创建、初始化各个分析单元。本实施例中以MySQL数据库表作为调度程序与分析单元的通讯接口,因此分析单元的结果与状态信息、任务的分发信息等,均记录在特定数据库表中。各个分析单元通过写指定数据库表来获取任务、定时心跳、更新结果与状态信息等;调度管理程序也通过读写相应数据库表,来获取各个分析单元的任务运行情况,处理各个任务的后续分发过程。

为验证本发明方法的技术效果,本实验针对3组包含了5万待测软件的样本集,对比了未采用策略的自动化程序分析系统(即:待分析软件顺序地经过所有的分析模块)的分析成功率,数据如下表所示。经对比,基于策略的自动化程序分析系统能够有效提高分析成功率。

尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1