CN109542451A - 一种基于软件行为声明的动态安全度量方法 - Google Patents

一种基于软件行为声明的动态安全度量方法 Download PDF

Info

Publication number
CN109542451A
CN109542451A CN201811351535.8A CN201811351535A CN109542451A CN 109542451 A CN109542451 A CN 109542451A CN 201811351535 A CN201811351535 A CN 201811351535A CN 109542451 A CN109542451 A CN 109542451A
Authority
CN
China
Prior art keywords
software
behavior
action
statement
software action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811351535.8A
Other languages
English (en)
Inventor
曾颖明
郭敏
王斌
陈志浩
姚金利
曾淑娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN201811351535.8A priority Critical patent/CN109542451A/zh
Publication of CN109542451A publication Critical patent/CN109542451A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于软件行为声明的动态安全度量系统及方法,涉及信息安全技术领域。本发明通过研究软件在正常运行中对与信息安全相关访问操作的边界,在此基础之上,依托软件行为声明,采用动态植入技术、软件可信要素检测技术和软件历史行为分析等对软件可信程度的度量方法,构建基于软件行为声明的动态可信度量框架,实现对软件是否“言行一致”的有效判定,从而对软件系统进行深度的安全监测,为构建安全可靠的网络信息系统打下坚实的基础。

Description

一种基于软件行为声明的动态安全度量方法
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于软件行为声明的动态安全度量方法。
背景技术
随着信息技术的飞速发展,一方面,随着软件规模的不断增大,软件的开发、集成和演化越来越复杂,导致软件在发布时总会含有一些已知或未知的缺陷。尤其是操作系统这类航母级的软件,微软近几年发布的Windows严重级别安全漏洞越来越多。另一方面,软件的开发环境从传统静态封闭的状态变成互联网环境下动态开放的状态。如Linux类操作系统、Android类操作系统,越来越多的软件漏洞和缺陷被发现并被恶意攻击者利用。
在传统的软件安全度量架构中,度量点都设置在某个或某些事先规定好的时刻(指静态的安全度量或者周期性的安全度量)。这种度量点的设置有如下几个不足:一方面,度量点由系统设计者决定,而不是由实际的使用者决定,因此在灵活性上受到影响;另一方面,容易遭遇典型的“进程在被度量前未受攻击,而在度量后遭到破坏”问题,即静态度量会给出错误的结果,周期性度量如果其度量周期长于进程完整性被损坏的时间,也可能发现不了这样的破坏。
软件的运行过程可以看成是由软件所产生的若干个行为组成,显然静态完整性度量有很大的局限性,只有通过对软件行为的可信度量才能真正保证软件的动态可信。现阶段可信计算技术能够较好的实现硬件可信、固件可信,但目前动态度量尚不完全成熟,如何实现软件行为的动态可信,不仅是可信计算技术深入发展面临的关键问题,也是确保系统安全的关键所在。
软件动态可信是指,软件在实际运行过程中所产生的行为与软件的预期行为是一致的,即其没有被非法中断和终止,没有被侵入、也没有被非法篡改,也没有违规和越权等偏离行为。如果软件行为发生的偏离超过指定阈值,则判定软件行为不可信。软件的预期行为如何定义和约束是实现动态安全度量的重要问题。由于软件本身的行为千变万化,如果要完整的描述软件本身的具体行为,不但需要极其复杂的行为说明文档,而且过于复杂的行为说明文档本身就不具有可检测性。即检测软件过于细节的具体行为,需要耗费极其庞大的计算机资源,甚至检测过程耗费的资源要大大超过软件运行本身的资源消耗。
传统针对软件的静态安全度量技术已经不能满足安全需求,同时也存在多方面的缺陷和不足,亟需开展对软件进行动态可信度量的方法研究,挖掘对软件系统可信程度的有效度量方法,实现对网络信息系统的深度安全防护,为构建安全可靠的网络信息系统打下坚实的基础。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何对软件系统可信程度进行有效度量,实现对网络信息系统的深度安全防护。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于软件行为声明的动态安全度量系统,包括:
软件行为声明管理模块,用于实现软件行为声明的管理功能,使得行为分析工具能够直接取得与软件当前版本号相符的软件行为声明;所述软件行为声明是指由软件开发者提交的、将软件具体行为中与软件可信相关的软件行为指标集合列出的文档说明;
内嵌监测模块,用于在软件编译时通过动态植入技术直接内嵌到发布的软件包中,实时获取软件当前正在发生的真实行为,并且将这些行为数据打包像应用系统层抛出,使得监测客户端能够获取这一部分数据;
安全编译工具,用于利用MSBuild的编译器结构,在软件编译时,检测软件代码中对预设系统关键资源的访问指令,在这些指令前后加入行为记录的指令,并且将这些指令编译到最终发布的软件包中;
监测客户端,用于接收所述内嵌监测模块抛出的软件真实行为信息,并将其转化为软件行为记录,同时将行为记录提交到行为分析工具进行分析,从而对软件行为做出动态度量;
行为分析工具,用于接收监测客户端提交而来的软件运行行为记录,同时读取软件行为声明管理模块发布的软件行为声明,将二者进行对比,实现对软件进行动态可信度量。
优选地,所述系统还包括历史行为分析工具,用于获取由所述监测客户端通过长期记录得到的软件行为记录,得到行为声明以外的规律性信息,在软件真实行为突发性的与惯常规律不符时发出告警。
优选地,所述系统还包括声明规则挖掘工具,用于挖掘出软件行为声明中尚未提到,但在软件行为记录中有所表现的行为规律。
优选地,所述监测客户端还用于能够对软件违规异常行为做出反应。
本发明还提供了一种基于软件行为声明的动态安全度量方法,包括以下步骤:
步骤1:度量指标确定和任务规划
对软件行为声明中定义的检测内容进行评估、筛选,从指标对于软件可信度量的意义、指标的可检测性进行评估,并从中选出软件行为关键检测指标作为软件可信度量的指标体系;软件行为声明中包含一系列指标,用来划定软件具体行为的安全界限,如:软件是否会访问关键的系统文件,是否会访问用户隐私数据,是否会访问网络等等;
步骤2:软件行为检测模块植入
将软件行为检测模块通过动态植入的方式,在软件发布时嵌入到软件包中,同时采用安全编译技术,保证软件行为不会绕过软件行为检测模块发生;
步骤3:软件动态度量计算
在取得软件运行的真实数据基础上,将软件运行的真实行为与软件开发商提供的软件行为声明进行对比,从而得到软件是否是按照软件行为声明中规定的行为在运行,进而对软件可信做出度量结果;
步骤4:度量结果和安全处置
在软件违规行为发生时,根据不同的违规行为严重程度,采用不同的应对策略,使得违规行为对系统和用户的影响降到最低,最后根据软件历史行为记录的数据基础,对软件惯常行为做出挖掘,并由此辅助软件行为声明的规则的修订。
优选地,步骤1中软件行为声明中包含的指标,包括软件是否会访问关键的系统文件。
优选地,步骤1中软件行为声明中包含的指标,包括是否会访问用户隐私数据。
优选地,步骤1中软件行为声明中包含的指标,包括是否会访问网络。
(三)有益效果
本发明通过研究软件在正常运行中对与信息安全相关访问操作的边界,在此基础之上,依托软件行为声明,采用动态植入技术、软件可信要素检测技术和软件历史行为分析等对软件可信程度的度量方法,构建基于软件行为声明的动态可信度量框架,实现对软件是否“言行一致”的有效判定,从而对软件系统进行深度的安全监测,为构建安全可靠的网络信息系统打下坚实的基础。
附图说明
图1为本发明的系统原理框图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明提出一种基于软件行为声明的动态安全度量方案,假定可信行为声明是描述与软件可信性相关的软件行为的集合,包含描述软件的预期行为,这些描述被可信行为声明的提出者承认,作为可信软件的重要组成部分。考虑到如果对所有的软件行为进行行为声明,就会造成大量的资源消耗,包括行为声明的描述文件及检测模块的运行。因此,本发明重点对软件行为是否越界进行重点安全度量,对于在“界限”内的软件具体行为则不过多关注。
通过研究软件在正常运行中对与信息安全相关访问操作的边界,在此基础之上,依托软件行为声明,采用动态植入技术、软件可信要素检测技术和软件历史行为分析等对软件可信程度的度量方法,构建基于软件行为声明的动态可信度量框架,实现对软件是否“言行一致”的有效判定,从而对软件系统进行深度的安全监测,为构建安全可靠的网络信息系统打下坚实的基础。
本发明提出软件行为声明来定义和描述软件的预期行为。软件行为声明是指软件开发者提交的,将软件具体行为中与软件可信相关的软件行为指标集合列出的文档说明,作为可信软件的一部分,被软件开发者承认,作为判断软件行为是否可信的重要依据。软件行为声明中包含了一系列指标,这些指标主要用来划定软件具体行为的安全界限,如:软件是否会访问关键的系统文件,是否会访问用户隐私数据,是否会访问网络等等。
本发明首先提出了一种基于软件行为声明的动态安全度量系统,如图1所示,包括:
(1)软件行为声明管理模块
软件行为可信要素的检测中,软件行为声明作为检测指标的定义,同时也作为检测结果出现后,用以对照、判断软件可信度的标准,是整个软件行为可信要素检测系统的数据基础。这一部分分为软件行为声明存储和软件行为声明引擎两部分。软件行为声明管理模块用于将软件行为声明的管理功能加以封装,使得在软件行为声明管理模块之上构建的其他部分模块(行为分析工具)能够直接取得与软件当前版本号相符的软件行为声明。
(2)内嵌监测模块
内嵌监测模块用于在软件编译时通过动态植入技术直接内嵌到发布的软件包中,实时的获取软件当前正在发生的真实行为,并且将这些行为数据打包像应用系统层抛出,使得监测客户端能够获取这一部分数据,用以与软件行为声明进行对照,从而对软件可信度进行度量。
(3)安全编译工具
安全编译工具主要借助MSBuild的编译器结构,在软件编译时,检测到软件代码中对系统关键资源的访问指令,在这些指令前后加入行为记录的指令,并且将这些指令编译到最终发布的软件包中。
(4)监测客户端
监测客户端接受内嵌监测模块抛出的软件真实行为信息,并将其转化为软件行为记录,同时将行为记录提交到行为分析工具进行分析,从而对软件行为做出动态度量。同时监测客户端还能够对软件违规异常行为做出反应,例如通知管理员、阻断严重违规行为等。
(5)行为分析工具
行为分析工具接收监测客户端提交而来的软件运行行为记录,同时读取软件行为声明管理模块发布的软件行为声明,将二者进行对比从而达到对软件进行动态可信度量的目的。
(6)历史行为分析工具
监测客户端通过长期记录的软件行为记录,被提交到历史行为分析工具中,历史行为分析工具能够针对长期的软件行为数据,总结出行为声明以外的规律性信息,在软件真实行为突发性的与惯常规律不符时,通知管理员,从而达到根据软件历史行为预测软件为止违规行为的目的。
(7)声明规则挖掘工具
长期记录的软件行为记录,能够辅助软件行为声明的制定者修订软件行为声明中不足的部分,声明规则挖掘工具用于挖掘出软件行为声明中尚未提到,但在软件行为记录中有所表现的行为规律。
另外,为验证本发明所述的软件行为可信要素检测系统的可行性,采用基于Windows系统的.NET平台进行了设计验证,从工程上证明本发明设计的系统切实可行。
本发明的安全度量工作流程包括软件度量指标确定、度量任务规划、软件行为检测模块植入、软件动态度量计算、度量结果和安全处置,具体包括以下四个步骤:
步骤1:度量指标确定和任务规划。对软件行为声明中定义的检测内容进行了评估、筛选,从指标对于软件可信度量的意义、指标的可检测性等方面对其进行了评估,并从中选出了软件行为关键检测指标作为软件可信度量的指标体系;软件行为声明中可包含了一系列指标,用来划定软件具体行为的安全界限,如:软件是否会访问关键的系统文件,是否会访问用户隐私数据,是否会访问网络等等。
步骤2:软件行为检测模块植入。在明确了软件行为检测指标体系的前提下,将软件行为检测模块通过动态植入的方式,在软件发布时嵌入到软件包中,同时采用安全编译技术,保证软件行为不会绕过软件行为检测模块发生,从而保证了软件行为检测对软件行为的覆盖度;
步骤3:软件动态度量计算。在取得了软件运行的真实数据基础上,将软件运行的真实行为与软件开发商提供的软件行为声明进行对比,从而得到软件是否是按照软件行为声明中规定的行为在运行,进而对软件可信做出度量结果。
步骤4:度量结果和安全处置。在软件违规行为发生时,如何根据不同的违规行为严重程度,采用不同的应对策略,使得违规行为对系统和用户的影响降到最低,最后根据软件历史行为记录的数据基础,对软件惯常行为做出挖掘,并由此辅助软件行为声明的规则的修订。
本发明从软件行为声明入手,在明确软件行为检测指标后,可以对软件运行中的行为和边界进行监测,保证了对软件运用情况的实时安全度量。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (8)

1.一种基于软件行为声明的动态安全度量系统,其特征在于,包括:
软件行为声明管理模块,用于实现软件行为声明的管理功能,使得行为分析工具能够直接取得与软件当前版本号相符的软件行为声明;所述软件行为声明是指由软件开发者提交的、将软件具体行为中与软件可信相关的软件行为指标集合列出的文档说明;
内嵌监测模块,用于在软件编译时通过动态植入技术直接内嵌到发布的软件包中,实时获取软件当前正在发生的真实行为,并且将这些行为数据打包像应用系统层抛出,使得监测客户端能够获取这一部分数据;
安全编译工具,用于利用MSBuild的编译器结构,在软件编译时,检测软件代码中对预设系统关键资源的访问指令,在这些指令前后加入行为记录的指令,并且将这些指令编译到最终发布的软件包中;
监测客户端,用于接收所述内嵌监测模块抛出的软件真实行为信息,并将其转化为软件行为记录,同时将行为记录提交到行为分析工具进行分析,从而对软件行为做出动态度量;
行为分析工具,用于接收监测客户端提交而来的软件运行行为记录,同时读取软件行为声明管理模块发布的软件行为声明,将二者进行对比,实现对软件进行动态可信度量。
2.如权利要求1所述的系统,其特征在于,所述系统还包括历史行为分析工具,用于获取由所述监测客户端通过长期记录得到的软件行为记录,得到行为声明以外的规律性信息,在软件真实行为突发性的与惯常规律不符时发出告警。
3.如权利要求1所述的系统,其特征在于,所述系统还包括声明规则挖掘工具,用于挖掘出软件行为声明中尚未提到,但在软件行为记录中有所表现的行为规律。
4.如权利要求1所述的系统,其特征在于,所述监测客户端还用于能够对软件违规异常行为做出反应。
5.一种基于软件行为声明的动态安全度量方法,其特征在于,包括以下步骤:
步骤1:度量指标确定和任务规划
对软件行为声明中定义的检测内容进行评估、筛选,从指标对于软件可信度量的意义、指标的可检测性进行评估,并从中选出软件行为关键检测指标作为软件可信度量的指标体系;软件行为声明中包含一系列指标,用来划定软件具体行为的安全界限,如:软件是否会访问关键的系统文件,是否会访问用户隐私数据,是否会访问网络等等;
步骤2:软件行为检测模块植入
将软件行为检测模块通过动态植入的方式,在软件发布时嵌入到软件包中,同时采用安全编译技术,保证软件行为不会绕过软件行为检测模块发生;
步骤3:软件动态度量计算
在取得软件运行的真实数据基础上,将软件运行的真实行为与软件开发商提供的软件行为声明进行对比,从而得到软件是否是按照软件行为声明中规定的行为在运行,进而对软件可信做出度量结果;
步骤4:度量结果和安全处置
在软件违规行为发生时,根据不同的违规行为严重程度,采用不同的应对策略,使得违规行为对系统和用户的影响降到最低,最后根据软件历史行为记录的数据基础,对软件惯常行为做出挖掘,并由此辅助软件行为声明的规则的修订。
6.如权利要求5所述的方法,其特征在于,步骤1中软件行为声明中包含的指标,包括软件是否会访问关键的系统文件。
7.如权利要求5所述的方法,其特征在于,步骤1中软件行为声明中包含的指标,包括是否会访问用户隐私数据。
8.如权利要求5所述的方法,其特征在于,步骤1中软件行为声明中包含的指标,包括是否会访问网络。
CN201811351535.8A 2018-11-14 2018-11-14 一种基于软件行为声明的动态安全度量方法 Pending CN109542451A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811351535.8A CN109542451A (zh) 2018-11-14 2018-11-14 一种基于软件行为声明的动态安全度量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811351535.8A CN109542451A (zh) 2018-11-14 2018-11-14 一种基于软件行为声明的动态安全度量方法

Publications (1)

Publication Number Publication Date
CN109542451A true CN109542451A (zh) 2019-03-29

Family

ID=65847234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811351535.8A Pending CN109542451A (zh) 2018-11-14 2018-11-14 一种基于软件行为声明的动态安全度量方法

Country Status (1)

Country Link
CN (1) CN109542451A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117075948A (zh) * 2023-10-12 2023-11-17 阿里巴巴(成都)软件技术有限公司 一种软件上线的检测方法、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040163079A1 (en) * 2003-02-13 2004-08-19 Path Communications, Inc. Software behavior pattern recognition and analysis
CN102193861A (zh) * 2011-03-15 2011-09-21 北京邮电大学 一种基于数据挖掘的软件可信性度量与评估方法
CN103714290A (zh) * 2013-12-26 2014-04-09 北京工业大学 一种软件行为获取、监控与验证方法
CN104517057A (zh) * 2014-12-22 2015-04-15 中国人民解放军信息工程大学 基于可信计算的软件混合度量方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040163079A1 (en) * 2003-02-13 2004-08-19 Path Communications, Inc. Software behavior pattern recognition and analysis
CN102193861A (zh) * 2011-03-15 2011-09-21 北京邮电大学 一种基于数据挖掘的软件可信性度量与评估方法
CN103714290A (zh) * 2013-12-26 2014-04-09 北京工业大学 一种软件行为获取、监控与验证方法
CN104517057A (zh) * 2014-12-22 2015-04-15 中国人民解放军信息工程大学 基于可信计算的软件混合度量方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JEAN-MARIE BORELLO 等: "Dynamic Malware Detection by Similarity Measures between Behavioral Profiles: An Introduction in French", 《2011 CONFERENCE ON NETWORK AND INFORMATION SYSTEMS SECURITY》 *
王志勇: "基于行为声明的动态可信度量技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117075948A (zh) * 2023-10-12 2023-11-17 阿里巴巴(成都)软件技术有限公司 一种软件上线的检测方法、设备和介质
CN117075948B (zh) * 2023-10-12 2023-12-26 阿里巴巴(成都)软件技术有限公司 一种软件上线的检测方法、设备和介质

Similar Documents

Publication Publication Date Title
Johnson et al. A meta language for threat modeling and attack simulations
Sommestad et al. The cyber security modeling language: A tool for assessing the vulnerability of enterprise system architectures
Bugeja et al. IoTSM: an end-to-end security model for IoT ecosystems
Rouland et al. Specification, detection, and treatment of STRIDE threats for software components: Modeling, formal methods, and tool support
Khaled et al. Assessing the severity of smart attacks in industrial cyber-physical systems
Ouchani et al. Specification, verification, and quantification of security in model-based systems
Fu et al. A critical-path-coverage-based vulnerability detection method for smart contracts
Wolf et al. Safe and secure cyber-physical systems and internet-of-things systems
Alexopoulos et al. The tip of the iceberg: On the merits of finding security bugs
Apvrille et al. Harmonizing safety, security and performance requirements in embedded systems
Iannone et al. Toward automated exploit generation for known vulnerabilities in open-source libraries
Zhu et al. Detecting privilege escalation attacks through instrumenting web application source code
CN109542451A (zh) 一种基于软件行为声明的动态安全度量方法
Williams Secure software lifecycle knowledge area issue
Zulkernine et al. Software security engineering: toward unifying software engineering and security engineering
Antoniol Keynote paper: Search based software testing for software security: Breaking code to make it safer
Munteanu et al. Impact analysis of cyber-physical attacks on a water tank system via statistical model checking
Barateiro et al. Addressing digital preservation: Proposals for new perspectives
Siavvas Static analysis for facilitating secure and reliable software
CN117592989B (zh) 一种基于区块链的支付信息安全管理方法及系统
Doinea Open Source Security–Quality Requests
Jain et al. A clairvoyant approach to evaluating software (in) security
Briland Addressing false data injection attacks in iot systems with a domain specific language within an industrial context
Park et al. Tools for information security assurance arguments
Alkussayer Towards a secure software development framework based on an integrated engineering process

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190329

RJ01 Rejection of invention patent application after publication