CN106560830A - 一种Linux嵌入式系统中的安全防护方法及系统 - Google Patents

一种Linux嵌入式系统中的安全防护方法及系统 Download PDF

Info

Publication number
CN106560830A
CN106560830A CN201610510542.2A CN201610510542A CN106560830A CN 106560830 A CN106560830 A CN 106560830A CN 201610510542 A CN201610510542 A CN 201610510542A CN 106560830 A CN106560830 A CN 106560830A
Authority
CN
China
Prior art keywords
linux
executable file
user
signature verification
dynamic link
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
CN201610510542.2A
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.)
Harbin Antiy Technology Co Ltd
Original Assignee
Harbin Antiy Technology Co Ltd
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 Harbin Antiy Technology Co Ltd filed Critical Harbin Antiy Technology Co Ltd
Priority to CN201610510542.2A priority Critical patent/CN106560830A/zh
Publication of CN106560830A publication Critical patent/CN106560830A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

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

Abstract

本发明公开了一种Linux嵌入式系统中的安全防护方法及系统,包括:监控Linux内核空间,若存在调用可执行文件的行为,则对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行。本发明所述技术方案不仅能够在系统烧录、启动阶段验证系统的可靠性,还能防止恶意用户篡改ELF文件进而威胁整个系统的安全。

Description

一种Linux嵌入式系统中的安全防护方法及系统
技术领域
本发明涉及Linux嵌入式系统的安全技术领域,尤其涉及一种Linux嵌入式系统中的安全防护方法及系统。
背景技术
SOC是System on Chip的缩写,直译是“芯片级系统”,通常简称“片上系统”。因为涉及到“Chip”, SOC身上也会体现出“集成电路”与“芯片”之间的联系和区别,其相关内容包括集成电路的设计、系统集成、芯片设计、生产、封装、测试等等。跟“芯片”的定义类似,SOC更强调的是一个整体,在集成电路领域,给它的定义为:由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其中包含完整的硬件系统及其承载的嵌入式软件。
在嵌入式系统中,SOC厂商为了安全考虑,会在SOC中内置一次性可编程存储,用于在系统烧录、升级和启动阶段验证BootLoader、操作系统内核、根文件系统镜像等固件是否为可信任的来源。
现有技术虽然能够在系统烧录和启动阶段验证Bootloader、内核、根文件系统镜像是否为可信任的来源,但此种方式不能防止恶意程序篡改系统中的ELF文件,这里的ELF文件指Linux系统中的二进制可执行文件、动态链接库、可动态加载的内核模块等。
发明内容
本发明所述的技术方案通过监控Linux内核空间和用户空间,当存在调用可执行文件或者解析可执行文件依赖的动态链接库的行为,则对所述可执行文件或者动态链接库进行签名验证,从而从源头上禁止被恶意篡改的ELF文件的执行。
本发明采用如下方法来实现:一种Linux嵌入式系统中的安全防护方法,包括:
监控Linux内核空间,若存在调用可执行文件的行为,则对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行。
进一步地,所述监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行,具体为:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
进一步地,还包括:选择在Linux内核启动的预设阶段,对用户空间的ld-linux.so链接器进行签名验证,若验证成功,则允许内核代码继续执行,否则停止其执行。所述预设阶段通常为Linux内核启动的最后阶段。
上述方法中,所述对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
其中,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
本发明可以采用如下系统来实现:一种Linux嵌入式系统中的安全防护系统,包括:
内核空间监控模块,用于监控Linux内核空间,若存在调用可执行文件的行为,则调用所述签名验证模块对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
用户空间监控模块,用于监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则调用所述签名验证模块对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行;
签名验证模块,用于基于预设的加解密算法对输入信息进行签名验证。
进一步地,所述用户空间监控模块,具体用于:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
进一步地,还包括:链接器监控模块,用于选择在Linux内核启动的预设阶段,调用所述签名验证模块对用户空间的ld-linux.so链接器进行签名验证,若验证成功,则允许内核代码继续执行,否则停止其执行。
上述系统中,所述签名验证模块,具体用于:对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
其中,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
综上,本发明给出一种Linux嵌入式系统中的安全防护方法及系统,通过在Linux内核空间代码和Linux用户空间代码多处添加对ELF文件的签名验证逻辑,当监控存在调用可执行文件的行为,或者存在解析可执行文件依赖的动态链接库的行为时,则及时对相关可执行文件、动态链接库或者内核模块进行签名验证,只有验证成功才允许其进一步执行。
有益效果为:本发明所述技术方案不仅能够在系统烧录、升级和启动阶段对Bootloader、内核、根文件系统等镜像进行签名验证,还能防止恶意用户或者程序篡改根文件系统中的单个ELF文件,进而达到阻止一切不可信任来源的ELF文件在系统内执行。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种Linux嵌入式系统中的安全防护方法实施例1流程图;
图2为本发明提供的一种Linux嵌入式系统中的安全防护方法实施例2流程图;
图3为本发明提供的一种Linux嵌入式系统中的安全防护系统实施例1结构图;
图4为本发明提供的一种Linux嵌入式系统中的安全防护系统实施例2结构图。
具体实施方式
本发明给出了一种Linux嵌入式系统中的安全防护方法及系统实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种Linux嵌入式系统中的安全防护方法实施例1,如图1所示,包括:
S101监控Linux内核空间,若存在调用可执行文件的行为,则对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
其中,可以通过在Linux内核空间执行进程创建的函数中添加代码,一旦存在调用可执行文件的行为,则对可执行文件进行签名验证;
S102监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行。
其中,可以通过修改libc的代码,一旦存在解析可执行文件依赖的动态链接库的行为,则对动态链接库进行签名验证。
优选地,所述监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行,具体为:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
其中,即使进程的加载和创建必须由Linux内核来完成,但是解析可执行文件依赖的动态链接库时将移权到用户空间的链接器来完成,所以要对可执行文件依赖的动态链接库进行签名验证,则只需要修改该链接器的源代码,对该链接器进行监控,就可以及时获取相关的动态链接库进行后续的验证工作;在glibc、bionic等基础C库中,还包括利用dlopen函数来解析可执行文件的动态链接库,所以为了全面保证动态链接库来源的可靠性,除了对链接器进行监控,还需要监控dlopen函数,进而全面保证动态链接库来源的可信任性。
上述方法实施例中,所述对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
上述方法实施例中,由于SOC中一次性可编程存储的物理特性,写入SOC中的公钥数据一旦写入后不能更改,从而保证了公钥信息的可靠性。
其中,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
在上述方法实施例1中,由于已经确保了可执行文件和相关动态链接库的可信任性,所以不需要在调用insmod或modprobe的函数时执行验证操作,也可以保证内核模块来源的可靠性。并且,上述签名验证依赖的算法可以根据需要选择,包括但不限于:非对称加密算法。
本发明其次提供了一种Linux嵌入式系统中的安全防护方法实施例2,如图2所示,包括:
S201监控Linux内核空间,若存在调用可执行文件的行为,则对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
S202监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行。
S203选择在Linux内核启动的预设阶段,对用户空间的ld-linux.so链接器进行签名验证,若验证成功,则允许内核代码继续执行,否则停止其执行。其中,所述预设阶段可以根据需要选择,可以但不限于:Linux内核启动的最后阶段。
上述方法实施例2中,由于ld-linux.so链接器是由Linux内核直接加载并进行调用执行的ELF文件,当Linux内核空间在加载可执行文件时,会通过ld-linux.so链接器进行解析该可执行文件依赖的动态链接库,因此,要保证该ld-linux.so链接器本身并没有遭到恶意代码的注入,从而从源头上保证相关动态链接库的可信度。
优选地,所述监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行,具体为:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
上述方法实施例中,所述对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
其中,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
本发明还提供了一种Linux嵌入式系统中的安全防护系统实施例1,如图3所示,包括:
内核空间监控模块301,用于监控Linux内核空间,若存在调用可执行文件的行为,则调用所述签名验证模块303对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
用户空间监控模块302,用于监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则调用所述签名验证模块303对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行;
签名验证模块303,用于基于预设的加解密算法对输入信息进行签名验证。
优选地,所述用户空间监控模块,具体用于:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
上述系统实施例1中,所述签名验证模块,具体用于:对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
其中,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
本发明还提供了一种Linux嵌入式系统中的安全防护系统实施例2,如图4所示,包括:
内核空间监控模块401,用于监控Linux内核空间,若存在调用可执行文件的行为,则调用所述签名验证模块403对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
用户空间监控模块402,用于监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则调用所述签名验证模块403对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行;
签名验证模块403,用于基于预设的加解密算法对输入信息进行签名验证;
链接器监控模块404,用于选择在Linux内核启动的预设阶段,调用所述签名验证模块403对用户空间的ld-linux.so链接器进行签名验证,若验证成功,则允许内核代码继续执行,否则停止其执行。
优选地,所述用户空间监控模块,具体用于:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
上述系统实施例中,所述签名验证模块,具体用于:对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
其中,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
如上所述,上述实施例给出了一种Linux嵌入式系统中的安全防护方法及系统实施例,基于Linux开发的嵌入式系统中,所有可执行程序和动态链接库在发布的过程中,使用厂商专用的产品签名私钥对所有的相关ELF文件进行数字签名;而在系统运行的过程中则利用本发明所公开的上述实施例对相关ELF进行签名验证,若验证成功则允许其继续执行,否则禁止其继续执行。
综上,上述实施例解决了现有技术只是在系统烧录、升级和启动阶段进行签名验证,而无法保证在系统启动后,存在恶意软件或者用户对文件系统内的ELF文件进行篡改操作等问题。上述所提供的实施例通过监控Linux内核空间和用户空间,若发现存在可执行文件启动,或者存在解析相关动态链接库的行为,则对所述可执行文件或者动态链接库等ELF文件进行签名验证,只有验证成功的才允许其执行。上述发明实施例可以进一步配合将公钥存储在带有一次性可编程存储的SOC中,这样不仅可以有效阻止不可信来源的ELF文件被恶意代码注入的问题,全面提升Linux系统的安全性;而且由于SOC中一次性可编程存储的物理特性,导致向SOC中写入公钥后,不能再次更改,保证了芯片内部公钥信息的可靠性。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种Linux嵌入式系统中的安全防护方法,其特征在于,包括:
监控Linux内核空间,若存在调用可执行文件的行为,则对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行。
2.如权利要求1所述的方法,其特征在于,所述监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行,具体为:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
3.如权利要求1所述的方法,其特征在于,还包括:选择在Linux内核启动的预设阶段,对用户空间的ld-linux.so链接器进行签名验证,若验证成功,则允许内核代码继续执行,否则停止其执行。
4.如权利要求3所述的方法,其特征在于,所述对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
5.如权利要求2或3或4所述的方法,其特征在于,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
6.一种Linux嵌入式系统中的安全防护系统,其特征在于,包括:
内核空间监控模块,用于监控Linux内核空间,若存在调用可执行文件的行为,则调用所述签名验证模块对所述可执行文件进行签名验证,若验证成功,则允许所述可执行文件继续执行,否则停止其执行;
用户空间监控模块,用于监控Linux用户空间,若存在解析可执行文件依赖的动态链接库的行为,则调用所述签名验证模块对所述动态链接库进行签名验证,若验证成功,则允许所述解析行为继续执行,否则停止其执行;
签名验证模块,用于基于预设的加解密算法对输入信息进行签名验证。
7.如权利要求6所述的系统,其特征在于,所述用户空间监控模块,具体用于:
监控Linux用户空间的ld-linux.so链接器,若所述ld-linux.so链接器在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许所述ld-linux.so链接器继续运行,否则,停止ld-linux.so链接器的继续执行;或者,
监控Linux用户空间的dlopen函数,若所述dlopen函数在解析可执行文件依赖的动态链接库,则对所述动态链接库进行签名验证,若验证成功,则允许dlopen函数继续执行,否则停止dlopen函数继续执行。
8.如权利要求6所述的系统,其特征在于,还包括:链接器监控模块,用于选择在Linux内核启动的预设阶段,调用所述签名验证模块对用户空间的ld-linux.so链接器进行签名验证,若验证成功,则允许内核代码继续执行,否则停止其执行。
9.如权利要求8所述的系统,其特征在于,所述签名验证模块,具体用于:对所述可执行文件、所述动态链接库或者所述用户空间的ld-linux.so链接器组成的ELF文件进行签名验证,具体为:
计算ELF文件的MD5值,使用厂商持有的私钥对该MD5值进行运算,将运算结果追加到ELF文件的末尾;
当加载ELF文件时,提取ELF文件末尾的值,获取SOC中一次性可编程存储指向的公钥进行还原,并与ELF文件自身的MD5值比较,若相同,则验证成功,否则验证失败。
10.如权利要求7或8或9所述的系统,其特征在于,所述可执行文件包括:Linux内核直接调用的可执行文件、用户空间使用exec函数调用的可执行文件或者用户空间使用shell调用的可执行文件。
CN201610510542.2A 2016-07-01 2016-07-01 一种Linux嵌入式系统中的安全防护方法及系统 Pending CN106560830A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610510542.2A CN106560830A (zh) 2016-07-01 2016-07-01 一种Linux嵌入式系统中的安全防护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610510542.2A CN106560830A (zh) 2016-07-01 2016-07-01 一种Linux嵌入式系统中的安全防护方法及系统

Publications (1)

Publication Number Publication Date
CN106560830A true CN106560830A (zh) 2017-04-12

Family

ID=58485647

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610510542.2A Pending CN106560830A (zh) 2016-07-01 2016-07-01 一种Linux嵌入式系统中的安全防护方法及系统

Country Status (1)

Country Link
CN (1) CN106560830A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368738A (zh) * 2017-06-06 2017-11-21 百富计算机技术(深圳)有限公司 一种智能设备的防Root方法及装置
CN109510825A (zh) * 2018-11-13 2019-03-22 许昌许继软件技术有限公司 动态库加密方法和装置及动态库防劫持方法和装置
CN109726547A (zh) * 2019-01-28 2019-05-07 北京和利时工业软件有限公司 一种文件执行管理方法及相关装置
CN110633566A (zh) * 2019-06-27 2019-12-31 北京无限光场科技有限公司 一种侵入检测方法、装置、终端设备及介质
CN110874467A (zh) * 2018-08-29 2020-03-10 阿里巴巴集团控股有限公司 信息处理方法、装置、系统以及处理器、存储介质
CN111291371A (zh) * 2020-01-10 2020-06-16 北京深之度科技有限公司 一种应用程序安全验证方法及装置
CN111783072A (zh) * 2020-07-15 2020-10-16 北京同源华安软件科技有限公司 Linux系统下的安全控制方法和装置
CN111914250A (zh) * 2020-08-18 2020-11-10 中科方德软件有限公司 一种Linux系统脚本程序运行时验证与管控方法
CN112292678A (zh) * 2019-01-04 2021-01-29 百度时代网络技术(北京)有限公司 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
CN112379898A (zh) * 2020-12-01 2021-02-19 上海爱信诺航芯电子科技有限公司 一种用于v2x设备的软件安全启动方法及系统
CN112612486A (zh) * 2020-12-28 2021-04-06 湖北芯擎科技有限公司 存储器烧录方法、装置和待烧录芯片
CN112613023A (zh) * 2020-12-28 2021-04-06 厦门市美亚柏科信息股份有限公司 一种认证信息生成算法的保护方法和终端
CN114091023A (zh) * 2021-11-23 2022-02-25 国汽智控(北京)科技有限公司 可执行文件的检查方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394467A (zh) * 2014-12-15 2015-03-04 珠海迈越信息技术有限公司 机顶盒应用程序的下载方法及机顶盒
CN104504311A (zh) * 2015-01-19 2015-04-08 炫彩互动网络科技有限公司 一种安全的sdk制作和运行方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394467A (zh) * 2014-12-15 2015-03-04 珠海迈越信息技术有限公司 机顶盒应用程序的下载方法及机顶盒
CN104504311A (zh) * 2015-01-19 2015-04-08 炫彩互动网络科技有限公司 一种安全的sdk制作和运行方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
褚力行: "基于数字签名的Linux兼容内核上应用程序的安全机制", 《CNKI优秀硕士学位论文全文库》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368738B (zh) * 2017-06-06 2020-04-03 百富计算机技术(深圳)有限公司 一种智能设备的防Root方法及装置
CN107368738A (zh) * 2017-06-06 2017-11-21 百富计算机技术(深圳)有限公司 一种智能设备的防Root方法及装置
CN110874467B (zh) * 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 信息处理方法、装置、系统以及处理器、存储介质
CN110874467A (zh) * 2018-08-29 2020-03-10 阿里巴巴集团控股有限公司 信息处理方法、装置、系统以及处理器、存储介质
CN109510825A (zh) * 2018-11-13 2019-03-22 许昌许继软件技术有限公司 动态库加密方法和装置及动态库防劫持方法和装置
CN112292678A (zh) * 2019-01-04 2021-01-29 百度时代网络技术(北京)有限公司 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统
CN109726547A (zh) * 2019-01-28 2019-05-07 北京和利时工业软件有限公司 一种文件执行管理方法及相关装置
CN110633566A (zh) * 2019-06-27 2019-12-31 北京无限光场科技有限公司 一种侵入检测方法、装置、终端设备及介质
CN111291371A (zh) * 2020-01-10 2020-06-16 北京深之度科技有限公司 一种应用程序安全验证方法及装置
CN111783072A (zh) * 2020-07-15 2020-10-16 北京同源华安软件科技有限公司 Linux系统下的安全控制方法和装置
CN111914250A (zh) * 2020-08-18 2020-11-10 中科方德软件有限公司 一种Linux系统脚本程序运行时验证与管控方法
CN111914250B (zh) * 2020-08-18 2022-05-17 中科方德软件有限公司 一种Linux系统脚本程序运行时验证与管控方法
CN112379898A (zh) * 2020-12-01 2021-02-19 上海爱信诺航芯电子科技有限公司 一种用于v2x设备的软件安全启动方法及系统
CN112612486A (zh) * 2020-12-28 2021-04-06 湖北芯擎科技有限公司 存储器烧录方法、装置和待烧录芯片
CN112613023A (zh) * 2020-12-28 2021-04-06 厦门市美亚柏科信息股份有限公司 一种认证信息生成算法的保护方法和终端
CN112613023B (zh) * 2020-12-28 2023-04-28 厦门市美亚柏科信息股份有限公司 一种认证信息生成算法的保护方法和终端
CN114091023A (zh) * 2021-11-23 2022-02-25 国汽智控(北京)科技有限公司 可执行文件的检查方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN106560830A (zh) 一种Linux嵌入式系统中的安全防护方法及系统
EP2962241B1 (en) Continuation of trust for platform boot firmware
US9021244B2 (en) Secure boot administration in a Unified Extensible Firmware Interface (UEFI)-compliant computing device
US9881162B2 (en) System and method for auto-enrolling option ROMS in a UEFI secure boot database
US9633210B2 (en) Keying infrastructure
US9881158B2 (en) Secure option ROM control
US9325506B2 (en) Cryptographically enforcing strict separation of environments
CN112445537B (zh) 操作系统可信启动方法、装置、移动终端和存储介质
CN105205401A (zh) 基于安全密码芯片的可信计算机系统及其可信引导方法
EP2854070A1 (en) Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package
CN102880828B (zh) 一种针对虚拟化支撑环境的入侵检测与恢复系统
CN106096418B (zh) 基于SELinux的开机安全等级选择方法、装置及终端设备
US8701195B2 (en) Method for antivirus in a mobile device by using a mobile storage and a system thereof
WO2021249359A1 (zh) 数据完整性保护的方法和装置
CN112231702B (zh) 应用保护方法、装置、设备及介质
US9659171B2 (en) Systems and methods for detecting tampering of an information handling system
CN104657636A (zh) 产生结构的方法和相应的结构
US10019577B2 (en) Hardware hardened advanced threat protection
CN112955889A (zh) 安全启动装置及方法
CN104537281A (zh) 用于移动应用保护的系统和方法
US10095855B2 (en) Computer system and operating method therefor
CN113868691B (zh) 一种基于云原生的区块链的授权运行方法及装置
US20200244461A1 (en) Data Processing Method and Apparatus
CN113836529A (zh) 进程检测方法、装置、存储介质以及计算机设备
CN108228219B (zh) 一种带外刷新bios时验证bios合法性的方法及装置

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170412

WD01 Invention patent application deemed withdrawn after publication