CN111259348B - 一种安全运行可执行文件的方法及*** - Google Patents
一种安全运行可执行文件的方法及*** Download PDFInfo
- Publication number
- CN111259348B CN111259348B CN202010104230.8A CN202010104230A CN111259348B CN 111259348 B CN111259348 B CN 111259348B CN 202010104230 A CN202010104230 A CN 202010104230A CN 111259348 B CN111259348 B CN 111259348B
- Authority
- CN
- China
- Prior art keywords
- executable file
- acl
- digital signature
- main body
- operation instruction
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000011022 operating instruction Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims 1
- 241000700605 Viruses Species 0.000 abstract description 20
- 238000012795 verification Methods 0.000 abstract description 18
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000008676 import Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种安全运行可执行文件的方法及***,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件。本发明在运行可执行文件之前,对可执行文件进行了多次验证,将携带病毒和/或恶意程序的可执行文件进行滤除,实现可执行文件的安全运行。
Description
技术领域
本发明涉及计算机技术领域,更具体的说,涉及一种安全运行可执行文件的方法及***。
背景技术
随着工业化与信息化在国家电网的融合,以及近年来网络通信技术的快速发展,在网络应用大力发展的同时,网络的开放性也带来了巨大的安全隐患,存在被病毒攻击的风险。由于计算机病毒逐渐从高度依赖“零日”漏洞,演变为不依赖“零日”漏洞的高度定制化特种病毒,因此,如何对病毒进行拦截成为了保障电力物联网安全运行的重要条件。
目前病毒拦截方式主要为病毒特征检测技术,通过对病毒特征进行检测,来对病毒进行针对性的拦截,从而防止病毒传播。然而,病毒存在大量变种,采用病毒特征检测方式来防止病毒传播已无法满足物联网终端在新形势下的安全需求。
发明内容
有鉴于此,本发明公开一种安全运行可执行文件的方法及***,以实现在运行可执行文件之前,对可执行文件进行了多次验证,将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现可执行文件的安全运行。
一种安全运行可执行文件的方法,包括:
当检测到可执行文件被调用时,获取所述可执行文件、所述可执行文件的调用主体以及所述调用主体对所述可执行文件的操作指令;
判断所述调用主体对所述可执行文件的所述操作指令是否有效;
如果是,则拦截所述调用主体对所述可执行文件执行的所述操作指令;
判断所述可执行文件、所述调用主体和所述操作指令是否存在于预先设置的ACL中,其中,所述ACL中的内容包括:主体、客体和操作指令;
如果是,则判断所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名是否匹配;
如果是,则判断所述可执行文件的数字签名是否可信;
如果是,则加载所述可执行文件,并启动新进程运行所述可执行文件。
可选的,还包括:
当所述调用主体对所述可执行文件的所述操作指令无效,或者所述可执行文件、所述调用主体和所述操作指令不存在于所述ACL中,或者所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名不匹配,或者所述可执行文件的数字签名不可信,则禁止所述可执行文件运行。
可选的,在所述加载所述可执行文件,并启动新进程运行所述可执行文件之后,还包括:
将运行的所述可执行文件存储至预先构建的可信云数据库。
可选的,还包括:
当检测到所述可信云数据库中存储的可执行文件发生变更后,基于变更后的可执行文件生成新的ACL;
对所述新的ACL进行数据签名,得到目标ACL;
将所述目标ACL写入区块链分布式账本。
可选的,还包括:
将写入所述目标ACL的区块链分布式账本同步发送至所述可信云数据库和客户端。
一种安全运行可执行文件的***,包括:
获取单元,用于当检测到可执行文件被调用时,获取所述可执行文件、所述可执行文件的调用主体以及所述调用主体对所述可执行文件的操作指令;
第一判断单元,用于判断所述调用主体对所述可执行文件的所述操作指令是否有效;
拦截单元,用于在所述第一判断单元判断为是的情况下,拦截所述调用主体对所述可执行文件执行的所述操作指令;
第二判断单元,用于判断所述可执行文件、所述调用主体和所述操作指令是否存在于预先设置的ACL中,其中,所述ACL中的内容包括:主体、客体和操作指令;
第三判断单元,用于在所述第二判断单元判断为是的情况下,判断所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名是否匹配;
第四判断单元,用于在所述第三判断单元判断为是的情况下,判断所述可执行文件的数字签名是否可信;
加载单元,用于在所述第四判断单元判断为是的情况下,加载所述可执行文件,并启动新进程运行所述可执行文件。
可选的,还包括:
禁止单元,用于当所述调用主体对所述可执行文件的所述操作指令无效,或者所述可执行文件、所述调用主体和所述操作指令不存在于所述ACL中,或者所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名不匹配,或者所述可执行文件的数字签名不可信,则禁止所述可执行文件运行。
可选的,还包括:
存储单元,用于在所述加载单元在所述加载所述可执行文件,并启动新进程运行所述可执行文件之后,将运行的所述可执行文件存储至预先构建的可信云数据库。
可选的,还包括:
生成单元,用于当检测到所述可信云数据库中存储的可执行文件发生变更后,基于变更后的可执行文件生成新的ACL;
签名单元,用于对所述新的ACL进行数据签名,得到目标ACL;
写入单元,用于将所述目标ACL写入区块链分布式账本。
可选的,还包括:
发送单元,用于将写入所述目标ACL的区块链分布式账本同步发送至所述可信云数据库和客户端。
从上述的技术方案可知,本发明公开了一种安全运行可执行文件的方法及***,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,并不会执行操作指令,而是进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件,任何一个验证未通过,均禁止可执行文件运行。由于本发明在运行可执行文件之前,对可执行文件进行了多次验证,因此,可以将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现了可执行文件的安全运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种安全运行可执行文件的方法流程图;
图2为本发明实施例公开的一种安全运行可执行文件的***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种安全运行可执行文件的方法及***,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,并不会执行操作指令,而是进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件,任何一个验证未通过,均禁止可执行文件运行。由于本发明在运行可执行文件之前,对可执行文件进行了多次验证,因此,可以将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现了可执行文件的安全运行。
参见图1,本发明一实施例公开的一种安全运行可执行文件的方法流程图,该方法应用于客户端,该方法包括步骤:
步骤S101、当检测到可执行文件被调用时,获取所述可执行文件、所述可执行文件的调用主体以及所述调用主体对所述可执行文件的操作指令;
具体的,在实际应用中,当用户调用某个可执行文件时,会获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,其中,该调用主体也即待执行主体的调用账号,调用主体对可执行文件的操作指令,比如,执行、读、写等。
其中,可执行文件中包含有应用程序。
步骤S102、判断所述调用主体对所述可执行文件的所述操作指令是否有效,如果是,则执行步骤S103,如果否,则执行步骤S108;
具体的,当用户调用某个可执行文件时,操作***会将可执行文件、调用主体和所述操作指令发送至操作***内核,由操作***内核确定调用主体对所述可执行文件的所述操作指令是否有效,具体判断过程可参见现有成熟方案,此处不再赘述。当确定调用主体对可执行文件的操作指令有效时,操作***中的安全模块会Hook该操作,并对可执行文件、调用主体和操作指令进行第二次验证。
其中,操作***内核是指大多数操作***的核心部分。它由操作***中用于管理存储器、文件、外设和***资源的那些部分组成。操作***内核通常运行进程,并提供进程间的通信。
Hook是是一种操作***调试中断机制,中文译为“挂钩”或“钩子”。在对特定的***事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到***的通知,这时程序就能在第一时间对该事件做出响应。
本实施例中,操作***中设置有Hook模块,Hook模块用于拦截***对文件的读、写、执行等操作。
步骤S103、拦截所述调用主体对所述可执行文件执行的所述操作指令;
在实际应用中,可以在操作***中设置拦截模块,利用该拦截模块调用LSM安全模块接口,LSM是Linux Secrity Module的简称,即linux安全模块。拦截模块是一种轻量级通用访问控制框架,适合于多种访问控制模型在它上面以内核可加载模块的形实现。
其中,拦截模块由访问文件驱动和访问进程驱动组成,拦截模块可以对文件读、写和执行操作进行拦截。
在拦截模块中设置有ACL(Access Control Lists,访问控制列表),ACL可支持粗粒度的读、写和执行操作,也可以支持***OP指令级的细粒度操作。ACL中的内容包括:主体、客体和操作指令,主体可以包括:账户、进程和IP中的任意一个或多个组合,客体可以包括:文件、进程、服务、磁盘、设备和网络等。
本实施例中,主体指的是可执行文件的调用主体,客体指的是可执行文件。在实际应用中,默认ACL为程序白名单,即允许执行的一组操作行为描述。
需要说明的是,本实施例采用操作***内核的Hook技术来控制操作***的执行文件的调用和进程运行控制,由此获取操作***的控制权,Root用户也无法绕过拦截模块的控制。本步骤的关键作用是把控应用程序入口,当用户需要调用可执行文件时,操作***接收到用户对可执行文件的操作指令时,也即操作***检测到可执行文件被调用时,会先判断原生权限,也即判断调用主体对可执行文件的操作指令是否有效,如果是,则在调用操作指令时,Hook技术在此时进行拦截,也就是说,即使原生权限验证通过,也不会使可执行文件在操作***中随意执行。
步骤S104、判断所述可执行文件、所述调用主体和所述操作指令是否存在于预先设置的ACL中,如果是,则执行步骤S105,如果否,则执行步骤S108;
需要说明的是,本实施例中通过可信云数据库生成程序白名单,该程序白名单也即ACL,终端的操作***只能执行ACL中的可执行文件。
其中,生成的ACL可作为白名单导出。
终端的安全模块可以导入ACL。
在实际应用中,ACL可导入访问控制模型,例如,基于角色的访问控制(RBAC,RoleBased Access Control)、强制访问控制模型(MAC,Mandatory Access Control)、基于属性的访问控制(ABAC,Attribute Based Access Control)等安全策略。
步骤S105、判断所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名是否匹配,如果是,则执行步骤S106,如果否,则执行步骤S108;
其中,拦截模块会对ACL中的客体,也即可执行文件进行数字签名,具体的,拦截模块采用单向散列函数对ACL中的客体进行数字签名,该数字签名具体为MD5数字签名。
单向散列函数:又称单向Hash函数、杂凑函数,用于把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。
本实施例通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配来确定可执行文件是否被篡改,当两者匹配时,表明可执行文件的数字签名未被篡改,反之,当两者不匹配时,表明可执行文件的数字签名被篡改,此时,禁止可执行文件运行。
步骤S106、判断所述可执行文件的数字签名是否可信,如果是,则执行步骤S107,如果否,则执行步骤S108;
其中,确定可执行文件的数字签名是否可信,可以通过判断可执行文件的数字签名是否在未被篡改时生成,具体可参见现有成熟方案,此处不再赘述。
步骤S107、加载所述可执行文件,并启动新进程运行所述可执行文件。
步骤S108、禁止所述可执行文件运行。
综上可知,本发明公开的安全运行可执行文件的方法,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,并不会执行操作指令,而是进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件,任何一个验证未通过,均禁止可执行文件运行。由于本发明在运行可执行文件之前,对可执行文件进行了多次验证,因此,可以将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现了可执行文件的安全运行。
为进一步优化上述实施例,在步骤S107之后,还可以包括:
将运行的所述可执行文件存储至预先构建的可信云数据库。
其中,存储至可信云数据库的可执行文件均具有数字签名,该数据签名可以为采用Hash算法生成MD5数字签名。
需要说明的是,本发明通过建立可信云数据库来维护所有可能在终端执行的执行文件。通过可信云数据库对这些执行文件进行管理、发布和更新等,由此终端的操作***只能通过可信云数据库来更细执行文件中的程序。
本发明通过将通过验证的可执行文件存储至可新云数据库,实现将所有需要在泛物联网终端运行的应用程序统一整理归集。
在实际应用中,在构建可信云数据库时,可以采用云架构,构建可信程序的管理平台,利用H5开发的WEB UI进行管理。可信云数据库可进行新程序发布、程序更新、程序管理、版本管理、文件同步、备份还原、下载控制等功能。
为保证ACL的安全性,防止ACL被篡改,本发明对ACL进行了区块链化。
因此,为进一步优化上述实施例,安全运行可执行文件的方法还可以包括步骤:
当检测到所述可信云数据库中存储的可执行文件发生变更后,基于变更后的可执行文件生成新的ACL;
对所述新的ACL进行数据签名,得到目标ACL;
将所述目标ACL写入区块链分布式账本。
为进一步优化上述实施例,还可以包括:
将写入所述目标ACL的区块链分布式账本同步发送至所述可信云数据库和客户端。
其中,客户端可以根据目标ACL进行文件和进程的访问控制。
需要特别说明的是,对ACL进行区块链化中的所需的全部通信均采用HTTPS(HyperText Transfer Protocol over SecureSocket Layer,超文本传输安全协议)加密方式传输。
为进一步优化上述实施例,还可以包括:
1)建立拦截模块,所述拦截模块由访问文件驱动和访问进程驱动组成,用于拦截调用主体对可执行文件执行的操作指令;
2)建立基础模块;
其中,所述基础模块包括:ACL同步子模块、Hash计算子模块、访问控制子模块和链数据读写子模块。
ACL同步子模块,用于接收通过区块链下发的ACL白名单规则;
Hash计算子模块,用于针对操作***调用的可执行文件进行数字签名,并判断可执行文件的数字签名与在ACL中对应的可执行文件的数字签名是否匹配,以确定所述可执行文件是否被篡改;
访问控制子模块,用于根据ACL确定操作***当前运行的可执行文件是否被允许,以确定所述可执行文件允许运行或拒绝运行;
链数据读写子模块,用于获取区块链分布式账本中的ACL信息,并将操作***的软件安装和变更内容记录到所述区块链分布式账本中。
3)建立应用模块;
其中,所述应用模块包括:日志发送子模块、安全更新子模块、下载子模块和安全执行子模块;
日志发送子模块,用于对客户端产生的日志数据进行保存,并能够将所述日志数据发送至预设位置;
安全更新子模块,用于,监测可信云数据库中的软件版本,检测到新的软件版本时,执行更新操作;
下载子模块,用于从可信云数据库下载更新的软件;
安全执行子模块,用于检测客户端各个子模块的执行情况,排出发现客户端的运行故障。
综上可知,本发明公开的安全运行可执行文件的方法,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,并不会执行操作指令,而是进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件,任何一个验证未通过,均禁止可执行文件运行。由于本发明在运行可执行文件之前,对可执行文件进行了多次验证,因此,可以将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现了可执行文件的安全运行。
其次,本发明采用可信云数据库发布新软件,并进行统一维护管理,当可信云数据库中存储的可执行文件发生变更后,生成新的ACL,采用区块链技术的ACL管理***,可以将ACL写入区块链分布式账本,并可全称跟踪和回溯软件的迭代过程,各终端***可以从区块链上获取ACL,从可信云数据库更新软件,从而实现度整个配变网络的软件环境的为主。
另外,本发明中必需通过ACL添加进行才可以运行,因此,即使通过零日攻击取得Root等特权,也无法随意执行程序。
与上述方法实施例相对应,本发明还公开了一种安全运行可执行文件的***。
参见图2,本发明一实施例公开的一种安全运行可执行文件的***的结构示意图,该***应用于客户端,该***包括:
获取单元201,用于当检测到可执行文件被调用时,获取所述可执行文件、所述可执行文件的调用主体以及所述调用主体对所述可执行文件的操作指令;
具体的,在实际应用中,当用户调用某个可执行文件时,会获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,其中,该调用主体也即待执行主体的调用账号,调用主体对可执行文件的操作指令,比如,执行、读、写等。
其中,可执行文件中包含有应用程序。
第一判断单元202,用于判断所述调用主体对所述可执行文件的所述操作指令是否有效;
具体的,当用户调用某个可执行文件时,操作***会将可执行文件、调用主体和所述操作指令发送至操作***内核,由操作***内核确定调用主体对所述可执行文件的所述操作指令是否有效,具体判断过程可参见现有成熟方案,此处不再赘述。当确定调用主体对可执行文件的操作指令有效时,操作***中的安全模块会Hook该操作,并对可执行文件、调用主体和操作指令进行第二次验证。
其中,操作***内核是指大多数操作***的核心部分。它由操作***中用于管理存储器、文件、外设和***资源的那些部分组成。操作***内核通常运行进程,并提供进程间的通信。
Hook是是一种操作***调试中断机制,中文译为“挂钩”或“钩子”。在对特定的***事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到***的通知,这时程序就能在第一时间对该事件做出响应。
本实施例中,操作***中设置有Hook模块,Hook模块用于拦截***对文件的读、写、执行等操作。
拦截单元203,用于在所述第一判断单元202判断为是的情况下,拦截所述调用主体对所述可执行文件执行的所述操作指令;
在实际应用中,可以在操作***中设置拦截模块,利用该拦截模块调用LSM安全模块接口,LSM是Linux Secrity Module的简称,即linux安全模块。拦截模块是一种轻量级通用访问控制框架,适合于多种访问控制模型在它上面以内核可加载模块的形实现。
其中,拦截模块由访问文件驱动和访问进程驱动组成,拦截模块可以对文件读、写和执行操作进行拦截。
在拦截模块中设置有ACL(Access Control Lists,访问控制列表),ACL可支持粗粒度的读、写和执行操作,也可以支持***OP指令级的细粒度操作。ACL中的内容包括:主体、客体和操作指令,主体可以包括:账户、进程和IP中的任意一个或多个组合,客体可以包括:文件、进程、服务、磁盘、设备和网络等。
本实施例中,主体指的是可执行文件的调用主体,客体指的是可执行文件。在实际应用中,默认ACL为程序白名单,即允许执行的一组操作行为描述。
需要说明的是,本实施例采用操作***内核的Hook技术来控制操作***的执行文件的调用和进程运行控制,由此获取操作***的控制权,Root用户也无法绕过拦截模块的控制。本步骤的关键作用是把控应用程序入口,当用户需要调用可执行文件时,操作***接收到用户对可执行文件的操作指令时,也即操作***检测到可执行文件被调用时,会先判断原生权限,也即判断调用主体对可执行文件的操作指令是否有效,如果是,则在调用操作指令时,Hook技术在此时进行拦截,也就是说,即使原生权限验证通过,也不会使可执行文件在操作***中随意执行。
第二判断单元204,用于判断所述可执行文件、所述调用主体和所述操作指令是否存在于预先设置的ACL中,其中,所述ACL中的内容包括:主体、客体和操作指令;
需要说明的是,本实施例中通过可信云数据库生成程序白名单,该程序白名单也即ACL,终端的操作***只能执行ACL中的可执行文件。
其中,生成的ACL可作为白名单导出。
终端的安全模块可以导入ACL。
在实际应用中,ACL可导入访问控制模型,例如,基于角色的访问控制(RBAC,RoleBased Access Control)、强制访问控制模型(MAC,Mandatory Access Control)、基于属性的访问控制(ABAC,Attribute Based Access Control)等安全策略。
第三判断单元205,用于在所述第二判断单元204判断为是的情况下,判断所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名是否匹配;
其中,拦截模块会对ACL中的客体,也即可执行文件进行数字签名,具体的,拦截模块采用单向散列函数对ACL中的客体进行数字签名,该数字签名具体为MD5数字签名。
单向散列函数:又称单向Hash函数、杂凑函数,用于把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。
本实施例通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配来确定可执行文件是否被篡改,当两者匹配时,表明可执行文件的数字签名未被篡改,反之,当两者不匹配时,表明可执行文件的数字签名被篡改,此时,禁止可执行文件运行。
第四判断单元206,用于在所述第三判断单元205判断为是的情况下,判断所述可执行文件的数字签名是否可信;
其中,确定可执行文件的数字签名是否可信,可以通过判断可执行文件的数字签名是否在未被篡改时生成,具体可参见现有成熟方案,此处不再赘述。
加载单元207,用于在所述第四判断单元206判断为是的情况下,加载所述可执行文件,并启动新进程运行所述可执行文件。
综上可知,本发明公开的安全运行可执行文件的***,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,并不会执行操作指令,而是进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件,任何一个验证未通过,均禁止可执行文件运行。由于本发明在运行可执行文件之前,对可执行文件进行了多次验证,因此,可以将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现了可执行文件的安全运行。
因此,为进一步优化上述实施例,上述***还可以包括:
禁止单元,用于当所述调用主体对所述可执行文件的所述操作指令无效,或者所述可执行文件、所述调用主体和所述操作指令不存在于所述ACL中,或者所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名不匹配,或者所述可执行文件的数字签名不可信,则禁止所述可执行文件运行。
为进一步优化上述实施例,上述***还可以包括:
存储单元,用于在所述加载单元207在所述加载所述可执行文件,并启动新进程运行所述可执行文件之后,将运行的所述可执行文件存储至预先构建的可信云数据库。
其中,存储至可信云数据库的可执行文件均具有数字签名,该数据签名可以为采用Hash算法生成MD5数字签名。
需要说明的是,本发明通过建立可信云数据库来维护所有可能在终端执行的执行文件。通过可信云数据库对这些执行文件进行管理、发布和更新等,由此终端的操作***只能通过可信云数据库来更细执行文件中的程序。
本发明通过将通过验证的可执行文件存储至可新云数据库,实现将所有需要在泛物联网终端运行的应用程序统一整理归集。
在实际应用中,在构建可信云数据库时,可以采用云架构,构建可信程序的管理平台,利用H5开发的WEB UI进行管理。可信云数据库可进行新程序发布、程序更新、程序管理、版本管理、文件同步、备份还原、下载控制等功能。
为保证ACL的安全性,防止ACL被篡改,本发明对ACL进行了区块链化。
因此,为进一步优化上述实施例,上述***还可以包括:
生成单元,用于当检测到所述可信云数据库中存储的可执行文件发生变更后,基于变更后的可执行文件生成新的ACL;
签名单元,用于对所述新的ACL进行数据签名,得到目标ACL;
写入单元,用于将所述目标ACL写入区块链分布式账本。
为进一步优化上述实施例,上述***还可以包括:
发送单元,用于将写入所述目标ACL的区块链分布式账本同步发送至所述可信云数据库和客户端。
其中,客户端可以根据目标ACL进行文件和进程的访问控制。
需要特别说明的是,对ACL进行区块链化中的所需的全部通信均采用HTTPS(HyperText Transfer Protocol over SecureSocket Layer,超文本传输安全协议)加密方式传输。
综上可知,本发明公开的安全运行可执行文件的***,当检测到可执行文件被调用时,获取可执行文件、可执行文件的调用主体以及调用主体对可执行文件的操作指令,当确定调用主体对可执行文件的操作指令有效时,并不会执行操作指令,而是进一步验证可执行文件、调用主体和操作指令是否存在于预先设置的ACL中,通过将可执行文件的数字签名与在ACL中对应的可执行文件的数字签名进行匹配验证可执行文件是否被篡改,以及验证可执行文件的数字签名是否可信,当所有的验证均通过时才会加载可执行文件,并启动新进程运行可执行文件,任何一个验证未通过,均禁止可执行文件运行。由于本发明在运行可执行文件之前,对可执行文件进行了多次验证,因此,可以将携带病毒和/或恶意程序的可执行文件进行滤除,从而实现了可执行文件的安全运行。
其次,本发明采用可信云数据库发布新软件,并进行统一维护管理,当可信云数据库中存储的可执行文件发生变更后,生成新的ACL,采用区块链技术的ACL管理***,可以将ACL写入区块链分布式账本,并可全称跟踪和回溯软件的迭代过程,各终端***可以从区块链上获取ACL,从可信云数据库更新软件,从而实现度整个配变网络的软件环境的为主。
另外,本发明中必需通过ACL添加进行才可以运行,因此,即使通过零日攻击取得Root等特权,也无法随意执行程序。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种安全运行可执行文件的方法,其特征在于,包括:
当检测到可执行文件被调用时,获取所述可执行文件、所述可执行文件的调用主体以及所述调用主体对所述可执行文件的操作指令;
判断所述调用主体对所述可执行文件的所述操作指令是否有效;
如果是,则拦截所述调用主体对所述可执行文件执行的所述操作指令;
判断所述可执行文件、所述调用主体和所述操作指令是否存在于预先设置的ACL中,其中,所述ACL中的内容包括:主体、客体和操作指令;
如果是,则判断所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名是否匹配,其中,当所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名匹配时,表明所述可执行文件的数字签名未被篡改;
如果是,则判断所述可执行文件的数字签名是否可信;
如果是,则加载所述可执行文件,并启动新进程运行所述可执行文件。
2.根据权利要求1所述的方法,其特征在于,还包括:
当所述调用主体对所述可执行文件的所述操作指令无效,或者所述可执行文件、所述调用主体和所述操作指令不存在于所述ACL中,或者所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名不匹配,或者所述可执行文件的数字签名不可信,则禁止所述可执行文件运行。
3.根据权利要求1所述的方法,其特征在于,在所述加载所述可执行文件,并启动新进程运行所述可执行文件之后,还包括:
将运行的所述可执行文件存储至预先构建的可信云数据库。
4.根据权利要求3所述的方法,其特征在于,还包括:
当检测到所述可信云数据库中存储的可执行文件发生变更后,基于变更后的可执行文件生成新的ACL;
对所述新的ACL进行数据签名,得到目标ACL;
将所述目标ACL写入区块链分布式账本。
5.根据权利要求4所述的方法,其特征在于,还包括:
将写入所述目标ACL的区块链分布式账本同步发送至所述可信云数据库和客户端。
6.一种安全运行可执行文件的***,其特征在于,包括:
获取单元,用于当检测到可执行文件被调用时,获取所述可执行文件、所述可执行文件的调用主体以及所述调用主体对所述可执行文件的操作指令;
第一判断单元,用于判断所述调用主体对所述可执行文件的所述操作指令是否有效;
拦截单元,用于在所述第一判断单元判断为是的情况下,拦截所述调用主体对所述可执行文件执行的所述操作指令;
第二判断单元,用于判断所述可执行文件、所述调用主体和所述操作指令是否存在于预先设置的ACL中,其中,所述ACL中的内容包括:主体、客体和操作指令;
第三判断单元,用于在所述第二判断单元判断为是的情况下,判断所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名是否匹配,其中,当所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名匹配时,表明所述可执行文件的数字签名未被篡改;
第四判断单元,用于在所述第三判断单元判断为是的情况下,判断所述可执行文件的数字签名是否可信;
加载单元,用于在所述第四判断单元判断为是的情况下,加载所述可执行文件,并启动新进程运行所述可执行文件。
7.根据权利要求6所述的***,其特征在于,还包括:
禁止单元,用于当所述调用主体对所述可执行文件的所述操作指令无效,或者所述可执行文件、所述调用主体和所述操作指令不存在于所述ACL中,或者所述可执行文件的数字签名与在所述ACL中对应的可执行文件的数字签名不匹配,或者所述可执行文件的数字签名不可信,则禁止所述可执行文件运行。
8.根据权利要求6所述的***,其特征在于,还包括:
存储单元,用于在所述加载单元在所述加载所述可执行文件,并启动新进程运行所述可执行文件之后,将运行的所述可执行文件存储至预先构建的可信云数据库。
9.根据权利要求8所述的***,其特征在于,还包括:
生成单元,用于当检测到所述可信云数据库中存储的可执行文件发生变更后,基于变更后的可执行文件生成新的ACL;
签名单元,用于对所述新的ACL进行数据签名,得到目标ACL;
写入单元,用于将所述目标ACL写入区块链分布式账本。
10.根据权利要求9所述的***,其特征在于,还包括:
发送单元,用于将写入所述目标ACL的区块链分布式账本同步发送至所述可信云数据库和客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010104230.8A CN111259348B (zh) | 2020-02-20 | 2020-02-20 | 一种安全运行可执行文件的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010104230.8A CN111259348B (zh) | 2020-02-20 | 2020-02-20 | 一种安全运行可执行文件的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111259348A CN111259348A (zh) | 2020-06-09 |
CN111259348B true CN111259348B (zh) | 2023-03-07 |
Family
ID=70949633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010104230.8A Active CN111259348B (zh) | 2020-02-20 | 2020-02-20 | 一种安全运行可执行文件的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111259348B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113971289A (zh) * | 2020-07-08 | 2022-01-25 | 支付宝(杭州)信息技术有限公司 | 区块链一体机的可信启动方法及装置 |
CN112491812B (zh) | 2020-07-08 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 区块链一体机的哈希更新方法及装置 |
CN113536242A (zh) * | 2021-07-09 | 2021-10-22 | 深圳市元征未来汽车技术有限公司 | 动态库调用方法、装置、终端设备以及存储介质 |
CN114091023A (zh) * | 2021-11-23 | 2022-02-25 | 国汽智控(北京)科技有限公司 | 可执行文件的检查方法、装置、设备和存储介质 |
WO2023112170A1 (ja) * | 2021-12-14 | 2023-06-22 | 日本電信電話株式会社 | ログ出力装置、ログ出力方法およびログ出力プログラム |
CN115129677B (zh) * | 2022-08-30 | 2022-11-22 | 睿云奇智(青岛)科技有限公司 | 一种算子文档的同步方法及装置 |
CN116680696B (zh) * | 2023-08-04 | 2024-02-13 | 深圳市科力锐科技有限公司 | 病毒程序检测方法、装置及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004879A (zh) * | 2010-11-22 | 2011-04-06 | 北京北信源软件股份有限公司 | 一种识别可信任进程的方法 |
CN102542182A (zh) * | 2010-12-15 | 2012-07-04 | 苏州凌霄科技有限公司 | 基于Windows平台的强制访问控制装置及控制方法 |
CN104735091A (zh) * | 2015-04-17 | 2015-06-24 | 三星电子(中国)研发中心 | 一种基于Linux***的用户访问控制方法和装置 |
CN106295319A (zh) * | 2016-08-02 | 2017-01-04 | 中标软件有限公司 | 操作***安全防护方法 |
CN109063480A (zh) * | 2018-07-25 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种自签名的可执行文件启动控制方法与*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707620B2 (en) * | 2005-05-06 | 2010-04-27 | Cisco Technology, Inc. | Method to control and secure setuid/gid executables and processes |
US20120310983A1 (en) * | 2010-02-11 | 2012-12-06 | Hemant Mittal | Executable identity based file access |
-
2020
- 2020-02-20 CN CN202010104230.8A patent/CN111259348B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004879A (zh) * | 2010-11-22 | 2011-04-06 | 北京北信源软件股份有限公司 | 一种识别可信任进程的方法 |
CN102542182A (zh) * | 2010-12-15 | 2012-07-04 | 苏州凌霄科技有限公司 | 基于Windows平台的强制访问控制装置及控制方法 |
CN104735091A (zh) * | 2015-04-17 | 2015-06-24 | 三星电子(中国)研发中心 | 一种基于Linux***的用户访问控制方法和装置 |
CN106295319A (zh) * | 2016-08-02 | 2017-01-04 | 中标软件有限公司 | 操作***安全防护方法 |
CN109063480A (zh) * | 2018-07-25 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种自签名的可执行文件启动控制方法与*** |
Non-Patent Citations (1)
Title |
---|
操作***安全技术研究及优化设计;王昆;《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》;20060615(第06期);第32-35,58-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111259348A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111259348B (zh) | 一种安全运行可执行文件的方法及*** | |
US9860263B2 (en) | System and method for assessing data objects on mobile communications devices | |
JP6019484B2 (ja) | サーバで結合されたマルウェア防止のためのシステムと方法 | |
US9740852B2 (en) | System and method for assessing an application to be installed on a mobile communications device | |
US9100389B2 (en) | Assessing an application based on application data associated with the application | |
US8875289B2 (en) | System and method for preventing malware on a mobile communication device | |
US7530106B1 (en) | System and method for security rating of computer processes | |
KR101565230B1 (ko) | 샌드박스에 참조들을 유지하는 시스템 및 방법 | |
KR20180097527A (ko) | 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션 | |
EP3168770B1 (en) | Executing process monitoring | |
US20210264030A1 (en) | Integrated application analysis and endpoint protection | |
JP6134395B2 (ja) | アプリケーション制御のためのリスクベースの規則のシステム及び方法 | |
US20230134122A1 (en) | Continuous risk assessment for electronic protected health information | |
JP2014509421A (ja) | Usbホストシステムの拡張usbプロトコルスタックのためのセキュリティ手段 | |
Chaugule et al. | A specification based intrusion detection framework for mobile phones | |
RU101233U1 (ru) | Система ограничения прав доступа к ресурсам на основе расчета рейтинга опасности | |
JP2006107505A (ja) | アクセス認可のapi | |
US9219728B1 (en) | Systems and methods for protecting services | |
US8640242B2 (en) | Preventing and detecting print-provider startup malware | |
CN111783087A (zh) | 可执行文件恶意执行的检测方法及装置、终端、存储介质 | |
Chang et al. | Towards a multilayered permission‐based access control for extending Android security | |
Jeong et al. | SafeGuard: a behavior based real-time malware detection scheme for mobile multimedia applications in android platform | |
Kim et al. | Linux based unauthorized process control | |
He | Research on Security Architecture of Mobile System | |
Zhao et al. | Development Analysis of Trusted Computing Technology of Smart Mobile Terminal |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |