一种应用程序安全验证方法及装置制造方法及图纸

技术编号:24517883 阅读:49 留言:0更新日期:2020-06-17 06:53
本发明专利技术公开了一种应用程序安全验证方法,在计算设备中执行,包括:在应用程序启动运行时以及运行过程中,判断待载入内存的目标文件是否为可执行文件;若目标文件为可执行文件,则将应用程序的当前进程号和可执行文件的文件名加入待验证链表,将当前进程作为待验证进程,将其状态设置为休眠;获取待验证链表,验证待验证链表中的可执行文件的安全性,将验证结果写回待验证链表;唤醒待验证进程,根据进程号来查找待验证链表中是否包括待验证进程所操作的可执行文件的验证结果,当查找到验证结果时,根据验证结果来允许或拒绝将相应的可执行文件载入内存,以使应用程序继续运行或终止运行。本发明专利技术一并公开了相应的应用程序安全验证装置和计算设备。

An application security verification method and device

【技术实现步骤摘要】
一种应用程序安全验证方法及装置
本专利技术涉及Linux应用安全
,尤其涉及一种Linux操作系统下的用于验证应用程序安全性的方法及装置。
技术介绍
Linux操作系统被广泛应用于服务器、手机以及嵌入式等领域。随着Linux系统的推广和普及,基于Linux操作系统的应用程序越来越多,应用程序的安全性问题逐渐被开发者及用户所重视。恶意的应用程序可能非法获取用户信息,病毒或恶意程序可能通过篡改系统中的其他程序来实现入侵,从而给系统安全带来威胁。因此,需要提供一种应用于Linux操作系统的应用程序安全验证方法。
技术实现思路
为此,本专利技术提供一种应用程序安全验证方法及装置,以力图解决或至少缓解上面存在的问题。根据本专利技术的第一个方面,提供一种应用程序安全验证方法,在计算设备中执行,包括:可选地,在根据本专利技术的应用程序安全验证方法中,在应用程序启动运行时以及运行过程中,判断待载入内存的目标文件是否为可执行文件;若目标文件为可执行文件,则将所述应用程序的当前进程号和所述可执行文件的文件名加入待验证链表,将所述当前进程作为待验证进程,并将其状态设置为休眠;获取所述待验证链表,验证待验证链表中的可执行文件的安全性,将验证结果写回所述待验证链表;唤醒待验证进程,根据进程号来查找待验证链表中是否包括待验证进程所操作的可执行文件的验证结果,当查找到验证结果时,根据验证结果来允许或拒绝将相应的可执行文件载入内存,以使应用程序继续运行或终止运行。可选地,在根据本专利技术的应用程序安全验证方法中,可执行文件包括可执行程序和动态链接库。可选地,在根据本专利技术的应用程序安全验证方法中,按照以下步骤来判断待载入内存的目标文件是否为可执行文件:判断内核可执行文件指针是否非空、目标文件对内存映射区域的权限是否为可读且可执行、目标文件对内存映射区域的共享及存储方式是否包括私有方式;若以上三个判断条件均为是,则所述目标文件为可执行文件。可选地,在根据本专利技术的应用程序安全验证方法中,若以上三个判断条件至少一个为否,则所述目标文件不是可执行文件,将所述目标文件载入内存,以便应用程序继续运行。可选地,在根据本专利技术的应用程序安全验证方法中,在所述将所述应用程序的当前进程号和所述可执行文件的文件名加入待验证链表的步骤之前,还包括步骤:判断所述可执行文件是否位于预先配置的可信目录;若所述可执行文件位于上述可信目录,则将所述可执行文件载入内存,以使应用程序继续运行。可选地,在根据本专利技术的应用程序安全验证方法中,可信目录包括系统软件目录/usr与系统启动目录/boot。可选地,在根据本专利技术的应用程序安全验证方法中,可执行文件包括待载入数据、签名和数字证书,所述签名为采用所述数字证书对应的私钥对所述待载入数据的映射值进行加密而得到;所述验证待验证链表中的可执行文件的安全性的步骤包括:计算所述待载入数据的映射值;采用所述数字证书中记载的公钥对所述签名进行解密,得到解密结果;若计算出的映射值与所述解密结果相同,则所述可执行文件安全。可选地,在根据本专利技术的应用程序安全验证方法中,映射值为哈希值。可选地,在根据本专利技术的应用程序安全验证方法中,验证待验证链表中的可执行文件的安全性的步骤还包括:在已验证缓存中查找所述可执行文件的验证结果,其中,所述已验证缓存中存储有自上次安全性验证后未被修改的可执行文件的验证结果;若未查找到所述可执行文件的验证结果,则通过对比待载入数据的映射值与签名的解密结果来判断可执行文件的安全性。可选地,在根据本专利技术的应用程序安全验证方法中,当在待验证链表中未查找到待验证进程的可执行文件的验证结果时,将该待验证进程的状态设置为休眠。可选地,在根据本专利技术的应用程序安全验证方法中,待验证链表存储于设备文件中,所述获取所述待验证链表以及将验证结果写回所述待验证链表的步骤通过所述设备文件的读、写接口完成。可选地,在根据本专利技术的应用程序安全验证方法中,进程的休眠和唤醒机制包括:等待队列、netlinksocket、信号量。根据本专利技术的第二个方面,提供一种应用程序安全验证装置,驻留于计算设备中,包括内核模块和用户态验证模块,所述内核模块适于:在应用程序启动运行时以及运行过程中,判断待载入内存的目标文件是否为可执行文件;若目标文件为可执行文件,则将所述应用程序的当前进程号和所述可执行文件的文件名加入待验证链表,将所述当前进程作为待验证进程,并将其状态设置为休眠;唤醒所述用户态验证模块,以便所述用户态验证模块验证待验证链表中的可执行文件的安全性;以及在所述用户态验证模块将验证结果写回待验证链表后,唤醒待验证进程,根据进程号来查找待验证链表中是否包括待验证进程所操作的可执行文件的验证结果,当查找到验证结果时,根据验证结果来允许或拒绝将相应的可执行文件载入内存,以使应用程序继续运行或终止运行;所述用户态验证模块适于:获取所述待验证链表,验证待验证链表中的可执行文件的安全性,以及将验证结果写回所述待验证链表。可选地,在根据本专利技术的应用程序安全验证装置中,可执行文件包括待载入数据、签名和数字证书,所述签名为采用所述数字证书对应的私钥对所述待载入数据的映射值进行加密而得到;所述用户态验证模块适于按照以下步骤来验证待验证链表中的可执行文件的安全性:计算所述待载入数据的映射值;采用所述数字证书中记载的公钥对所述签名进行解密,得到解密结果;若计算出的映射值与所述解密结果相同,则所述可执行文件安全。可选地,在根据本专利技术的应用程序安全验证装置中,还包括签名模块,所述签名模块适于:计算可执行文件的待载入数据的映射值,采用数字证书对应的私钥对所述映射值进行加密以得到签名;以及将所述签名和所述数字证书写入所述可执行文件中。根据本专利技术的第三个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行上述应用程序安全验证方法。根据本专利技术的第四个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行上述应用程序安全验证方法。本专利技术的应用程序安全验证方案通过结合内核模块与用户态验证模块,实现了Linux操作系统下的应用程序安全验证,大大提高了Linux操作系统的安全性。当应用程序启动运行时以及运行过程中,在内核将应用程序的可执行文件载入内存之前,唤醒用户态验证模块,以便用户态验证模块来验证可执行文件的安全性。内核模块根据用户态验证模块提交的验证结果来采取相应措施。若验证结果为安全,则将可执行文件载入内存,以使应用程序继续运行;若验证结果为不安全,则拒绝将可执行文件载入内存,从而使应用程序终止运行,出错退出。应用程序的可执行文件中记载有待载入数据的签名和数字证书,数字证书经认证中心认证,能够用于确认应用程序的来源。用户态验证模块根据数据证书中记载的公钥来对其可执行文件进行安全验证,实现了应用程序从开发、下载安装到运行的安全管理闭环,保证了应用程序的本文档来自技高网...

【技术保护点】
1.一种应用程序安全验证方法,在计算设备中执行,包括:/n在应用程序启动运行时以及运行过程中,判断待载入内存的目标文件是否为可执行文件;/n若目标文件为可执行文件,则将所述应用程序的当前进程号和所述可执行文件的文件名加入待验证链表,将所述当前进程作为待验证进程,并将其状态设置为休眠;/n获取所述待验证链表,验证待验证链表中的可执行文件的安全性,将验证结果写回所述待验证链表;/n唤醒待验证进程,根据进程号来查找待验证链表中是否包括待验证进程所操作的可执行文件的验证结果,当查找到验证结果时,根据验证结果来允许或拒绝将相应的可执行文件载入内存,以使应用程序继续运行或终止运行。/n

【技术特征摘要】
1.一种应用程序安全验证方法,在计算设备中执行,包括:
在应用程序启动运行时以及运行过程中,判断待载入内存的目标文件是否为可执行文件;
若目标文件为可执行文件,则将所述应用程序的当前进程号和所述可执行文件的文件名加入待验证链表,将所述当前进程作为待验证进程,并将其状态设置为休眠;
获取所述待验证链表,验证待验证链表中的可执行文件的安全性,将验证结果写回所述待验证链表;
唤醒待验证进程,根据进程号来查找待验证链表中是否包括待验证进程所操作的可执行文件的验证结果,当查找到验证结果时,根据验证结果来允许或拒绝将相应的可执行文件载入内存,以使应用程序继续运行或终止运行。


2.如权利要求1所述的方法,其中,所述可执行文件包括可执行程序和动态链接库。


3.如权利要求1或2所述的方法,其中,按照以下步骤来判断待载入内存的目标文件是否为可执行文件:
判断内核可执行文件指针是否非空、目标文件对内存映射区域的权限是否为可读且可执行、目标文件对内存映射区域的共享及存储方式是否包括私有方式;
若以上三个判断条件均为是,则所述目标文件为可执行文件。


4.如权利要求3所述的方法,其中,若以上三个判断条件至少一个为否,则所述目标文件不是可执行文件,将所述目标文件载入内存,以便应用程序继续运行。


5.如权利要求1-4中任一项所述的方法,其中,在所述将所述应用程序的当前进程号和所述可执行文件的文件名加入待验证链表的步骤之前,还包括步骤:
判断所述可执行文件是否位于预先配置的可信目录;
若所述可执行文件位于所述可信目录,则将所述可执行文件载入内存,以使应用程序继续运行。


6.如权利要求5所述的方法,其中,所述可信目录包括系统软件目录/usr和系统启动目录/boot。


7.如权利要求1-6中任...

【专利技术属性】
技术研发人员:张磊王耀华闫博文
申请(专利权)人:北京深之度科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1