CN111914250B - 一种Linux系统脚本程序运行时验证与管控方法 - Google Patents

一种Linux系统脚本程序运行时验证与管控方法 Download PDF

Info

Publication number
CN111914250B
CN111914250B CN202010829845.7A CN202010829845A CN111914250B CN 111914250 B CN111914250 B CN 111914250B CN 202010829845 A CN202010829845 A CN 202010829845A CN 111914250 B CN111914250 B CN 111914250B
Authority
CN
China
Prior art keywords
file
script file
script
interpreter
kernel
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
Application number
CN202010829845.7A
Other languages
English (en)
Other versions
CN111914250A (zh
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.)
Nfs China Software Co ltd
Original Assignee
Nfs China Software 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 Nfs China Software Co ltd filed Critical Nfs China Software Co ltd
Priority to CN202010829845.7A priority Critical patent/CN111914250B/zh
Publication of CN111914250A publication Critical patent/CN111914250A/zh
Application granted granted Critical
Publication of CN111914250B publication Critical patent/CN111914250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

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)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种Linux系统脚本程序运行时验证与管控方法,具体涉及计算机操作系统安全增强技术领域,包括在内核中定义存储脚本文件解释器路径的全局变量和接口函数,还在内核中增加一个配置文件和开机服务,并在execve系统调用中增加HOOK点;系统启动时将脚本文件解释器的路径加载到内核中。本发明通过对IMA机制进行了补充,并提供了一种基于IMA机制的脚本文件运行时验证和管控方法,可以在执行脚本文件时验证脚本文件的度量值,以管控脚本文件的执行过程,从而判断脚本文件的内容是否发生了变化,如果脚本文件的内容发生了变化,可以拒绝执行脚本文件,从而保证计算机系统安全。

Description

一种Linux系统脚本程序运行时验证与管控方法
技术领域
本发明涉及计算机操作系统安全增强技术领域,更具体地说,本发明涉及一种Linux系统脚本程序运行时验证与管控方法。
背景技术
随着科技的不断发展,计算机系统已经深入到人们生活的方方面面,极大的方便了人们的生活和工作。同时,计算机和网络安全事件频发,严重影响了国家安全、社会稳定和经济发展。为了应对计算机和网络安全事件,人们提出了各种解决方案,比如防火墙、入侵检测、杀毒软件、可信计算,等等。其中,可信计算是最后一道防线,当黑客突破防火墙、入侵检测、杀毒软件的防护,侵入计算机系统内部后,可信计算仍可对入侵行为进行拦截。
可信计算(TrustedComputing)是一项由可信计算联盟(TrustedComputingGroup)推动和开发的技术,其核心目标之一是保证系统和应用的完整性。任何软件,在运行前必须先进行完整性和正确性检查,经过检查后才能运行。可信计算主要通过度量和验证等技术手段实现,度量指采集系统或软件的正确状态作为参考值,验证指将系统或软件运行时的状态与参考值进行比较,如果一致,则验证通过,系统或软件可以运行;如果不一致,则验证失败,系统或软件不允许运行。
Linux操作系统中最具代表性的可信计算技术是IBM公司在UsenixSecuritySymposium2014会议上提出的IMA(IntegrityMeasurement Architecture)机制,该机制被Linux基金会合并到Linux内核2.6.30主线代码中,并持续进行更新。具体而言,IMA机制的实施包含两个主要的步骤,分别是度量和验证。
度量指安装完操作系统后,遍历系统中每一个文件,并根据文件内容计算出一个初始度量值作为参考,保存在文件的属性中。同样的,当安装完一个新的软件后,也需要度量该软件包含的所有文件。
验证指当运行一个软件或打开一个文件时,再次计算文件的度量值。如果文件内容发生了变化(比如被恶意篡改了),度量值会发生变化。将新的度量值与初始度量值进行比对,如果两个度量值一样,则允许运行软件或打开文件;如果两个度量值不一样,则禁止运行软件或打开文件。
从代码实现层面看,IMA机制定义了四种主要的验证类型,分别是:FILE_CHECK、MMAP_CHECK、MODULE_CHECK、BPRM_CHECK。FILE_CHECK代表普通文件,IMA机制在open系统调用中增加了验证函数,验证通过才能打开文件;MMAP_CHECK代表动态库文件,IMA机制mmap系统调用中增加了验证函数,验证通过才能映射动态库到内存中;MODULE_CHECK代表内核模块文件,IMA机制在init_module系统调用中增加了验证函数,验证通过后才能加载内核模块;BPRM_CHECK代表ELF格式的可执行文件,IMA机制在execve系统调用中增加了验证函数,验证通过后才可以运行可执行文件。
系统管理员可以设置IMA机制的验证类型,从而对一种或多种类型的文件进行验证。例如设置MMAP_CHECK和BPRM_CHECK两种类型,则只验证动态库文件和ELF格式的可执行文件,不验证普通文件和内核模块文件。即使普通文件的内容发生了变化,仍然能够打开并读取文件内容;即使内核模块文件的内容发生了变化,仍然能加载内核模块文件。
需要特别注意的一点是:Linux操作系统中存在两种类型的软件,ELF格式的可执行文件和python、perl等语言编写的脚本文件。ELF格式的可执行文件通过execve系统调用执行,受BPRM_CHECK管控;脚本文件不通过execve系统调用执行,而是依靠相应类型的脚本文件解释器(通常是ELF格式的可执行文件)解析执行,execve系统调用执行脚本文件解释器,脚本文件解释器通过open系统调用打开脚本文件,逐行读取、解析并执行脚本文件的内容。由于execve系统调用执行的是脚本文件解释器,不是脚本文件,因此脚本文件不受BPRM_CHECK管控,即使脚本文件的内容发生了变化,脚本文件仍能执行,这就存在安全隐患。
由于脚本文件解释器需要通过open系统调用打开脚本文件,所以解决该安全隐患的一种方法是系统管理员设置FILE_CHECK类型的验证,但是这种方法存在缺陷。由于设置了FILE_CHECK类型的验证,用户打开每个文件时都要进行验证。一种常见的场景是编辑文档,编辑文档后,文档文件的内容发生了变化,当用户再次打开文档文件时,IMA机制会检测到文件内容发生了变化,从而拒绝打开文件,用户就无法查看文件和继续编辑文件了。另外一种常见的场景是系统设置,Linux系统中很多设置保存在配置文件中,当用户修改了某项设置后,新的设置会写入到配置文件中,由于配置文件的内容发生了变化,系统无法再次打开配置文件读取其中的配置,可能导致系统出现异常。
发明专利申请《一种基于IMA保护Linux操作系统安全的系统和方法》(申请号201811295705.5)利用IMA机制搭建了一套可信计算系统。由于其完全基于IMA机制,因此不能解决IMA机制的固有缺陷。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了克服现有技术的上述缺陷,本发明的实施例提供一种Linux系统脚本程序运行时验证与管控方法,可以在执行脚本文件时验证脚本文件的度量值,从而判断脚本文件的内容是否发生了变化,如果脚本文件的内容发生了变化,可以拒绝执行脚本文件,从而保证计算机系统安全,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种Linux系统脚本程序运行时验证与管控方法,包括在内核中定义存储脚本文件解释器路径的全局变量和接口函数,还在内核中增加一个配置文件和开机服务,并在execve系统调用中增加HOOK点;系统启动时将脚本文件解释器的路径加载到内核中;运行脚本文件前,首先验证脚本文件的度量值,并以此管控脚本文件的运行过程。
优选的,在内核中定义全局变量,保存系统支持的脚本文件解释器的路径;在内核中定义接口函数,接收从用户态传递过来的脚本文件解释器的路径,并保存在内核全局变量中。
优选的,增加一个配置文件,保存脚本文件解释器的名称;增加一个开机服务,系统启动时读取配置文件中保存的脚本文件解释器的名称,解析成脚本文件解释器的路径,通过内核接口函数写入到内核全局变量中。
优选的,所述开机服务的具体运行步骤为:
S101:判断所述保存脚本文件解释器名称的配置文件是否存在,如果存在,则进入步骤S102;如果不存在,则进入步骤S106;
S102:读取所述保存脚本文件解释器名称的配置文件中的一行数据,然后进入步骤S103;
S103:判断读取的数据是否为空,如果不为空,表示读取了一种类型的脚本文件解释器,则进入步骤S104;如果为空,表示所述保存脚本文件解释器名称的配置文件已经解析完毕,则进入步骤S106;
S104:查找系统中是否存在该种类型的脚本文件解释器的可执行文件,如果不存在,则返回步骤S102;如果存在,则进入步骤S105;
S105:通过内核接口函数将该种类型的脚本文件解释器的路径写入内核中,然后返回步骤S102;
S106:结束。
优选的,在execve系统调用中增加HOOK点,用以检查execve加载的可执行程序是否为脚本文件解释器,并验证脚本文件的度量值,从而管控脚本文件的执行过程。
优选的,所述脚本文件运行时验证和管控的具体步骤包括:
S201:验证execve系统调用加载的可执行文件的度量值是否正确,如果正确,则进入步骤S202;如果不正确,则进入步骤S205;
S202:检索所述保存脚本文件解释器路径的内核变量,判断execve系统调用加载的可执行文件是否是脚本文件解释器,如果是,则进入步骤S203;如果不是,则进入步骤S206;
S203:从execve系统调用的参数列表中解析出脚本文件的路径,然后进入步骤S204;
S204:验证脚本文件的度量值是否正确,如果不正确,则进入步骤S205;如果正确,则进入步骤S206;
S205:验证失败,提示度量值不正确,然后退出execve系统调用;
S206:验证成功,继续执行原始的execve系统调用代码。
本发明的技术效果和优点:
本发明通过对IMA机制进行了补充,并提供了一种基于IMA机制的脚本文件运行时验证和管控方法,可以在执行脚本文件时验证脚本文件的度量值,以管控脚本文件的执行过程,从而判断脚本文件的内容是否发生了变化,如果脚本文件的内容发生了变化,可以拒绝执行脚本文件,从而保证计算机系统安全。
附图说明
附图用来提供对本发明技术方案的进一步理解,构成本发明的一部分,本发明的实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例的将脚本文件解释器的路径写入到内核的流程图。
图2为本发明实施例的脚本文件运行时验证和管控方法的流程图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
本发明提供了一种Linux系统脚本程序运行时验证与管控方法,包括但不限于在内核中定义接口函数和变量,用于接收和存储脚本文件解释器的路径;系统启动时将脚本文件解释器的路径写入到内核中;在execve系统调用中增加HOOK点,判断execve系统调用加载的可执行文件是否是脚本文件解释器,如果是脚本文件解释器,则进一步验证脚本文件的度量值,从而管控脚本文件的执行过程。
进一步的,脚本文件为采用python、bash、perl、ruby等语言编写的代码文件,不同于ELF格式的可执行文件,这种类型的代码文件依靠相应类型的脚本文件解释器解析执行;所述度量值,是根据文件(不限于脚本文件)的内容计算得出的文件完整性校验值,当文件内容发生变化后,文件完整性校验值会发生变化。
进一步的,内核接口函数为利用sysfs文件系统实现的接口函数,其作用是加载脚本文件解释器的路径到内核中;所述内核变量为一全局变量,其作用是存储脚本文件解释器的路径。
进一步的,系统启动时将脚本文件解释器的路径写入到内核中,包括保存脚本文件解释器名称的配置文件和开机自启动服务。
进一步的,保存脚本文件解释器名称的配置文件,为/etc下的一个配置文件,保存了系统支持的所有类型的脚本文件解释器的名称,每行表示一种类型的脚本文件解释器。
进一步的,开机自启动服务,为基于systemd机制设计的一个系统服务,该服务开机时自动运行,该服务的作用是读取并解析所述保存脚本文件解释器名称的配置文件,然后利用内核接口函数将系统支持的脚本文件解释器的路径写入到内核中。
进一步的,系统启动时将脚本文件解释器的路径写入到内核中的具体步骤包括:
S101:判断所述保存脚本文件解释器名称的配置文件是否存在,如果存在,则进入步骤S102;如果不存在,则进入步骤S106;
S102:读取所述保存脚本文件解释器名称的配置文件中的一行数据,然后进入步骤S103;
S103:判断读取的数据是否为空,如果不为空,表示读取了一种类型的脚本文件解释器,则进入步骤S104;如果为空,表示所述保存脚本文件解释器名称的配置文件已经解析完毕,则进入步骤S106;
S104:查找系统中是否存在该种类型的脚本文件解释器的可执行文件,如果不存在,则返回步骤S102;如果存在,则进入步骤S105;
S105:通过内核接口函数将该种类型的脚本文件解释器的路径写入内核中,然后返回步骤S102;
S106:结束。
进一步的,execve系统调用中的HOOK点为在execve系统调用中插入的一段代码,这段代码的作用是获取和验证脚本文件的度量值,度量值正确,则继续执行原始的execve系统调用;度量值不正确,则退出execve系统调用。
进一步的,脚本文件运行时验证和管控的具体步骤包括:
S201:验证execve系统调用加载的可执行文件的度量值是否正确,如果正确,则进入步骤S202;如果不正确,则进入步骤S205;
S202:检索所述保存脚本文件解释器路径的内核变量,判断execve系统调用加载的可执行文件是否是脚本文件解释器,如果是,则进入步骤S203;如果不是,则进入步骤S206;
S203:从execve系统调用的参数列表中解析出脚本文件的路径,然后进入步骤S204;
S204:验证脚本文件的度量值是否正确,如果不正确,则进入步骤S205;如果正确,则进入步骤S206;
S205:验证失败,提示度量值不正确,然后退出execve系统调用;
S206:验证成功,继续执行原始的execve系统调用代码。
进一步的,S203的具体步骤包括:
S2031:从execve系统调用的参数列表argv中获取一个参数,然后进入步骤S2032;
S2032:判断参数是否为NULL,如果不为NULL,进入步骤S2033;如果为NULL,说明execve系统调用没有参数,或者所有参数已经解析完毕,结束;
S2033:判断该参数是否是保存在磁盘上的一个文件,如果不是,则返回步骤S2031;如果是,获取该文件的路径。
进一步的,S204的具体步骤包括:
S2041:根据文件的路径获取文件的属性信息;
S2042:判断文件的属性信息中是否包含文件的初始度量值,如果包含,则进入步骤S2043;若不包含,则验证失败;
S2043:根据IMA机制提供的算法计算文件现在的度量值,然后进入步骤S2044;
S2044:比较文件现在的度量值和初始度量值是否相同,如果相同,则验证成功;如果不相同,则验证失败。
实施方式具体为:在内核代码中定义变量char*g_ima_scriptlets[IMA_SCRIPTLETS_NUM],其中IMA_SCRIPTLETS_NUM是系统支持的脚本文件解释器的数量,g_ima_scriptlets用来保存脚本文件解释器的路径,如python解释器的路径是/usr/bin/python,perl解释器的路径为/usr/bin/perl。
在内核代码sysfs文件系统中中增加一个新的文件/sys/kernel/security/ima/ima-scriptlets,并在内核代码中实现该文件的读写函数。写函数的作用是获取文件/sys/kernel/security/ima/ima-scriptlets的数据,并保存到变量g_ima_scriptlets中;读函数的作用是读取变量g_ima_scriptlets的值,并写保存到文件/sys/kernel/security/ima/ima-scriptlets中。
增加配置文件/etc/ima-scriptlets,该配置文件用于保存脚本文件解释器的名称,如python解释器的名称是python,perl解释器的名称是perl,每行代表一个脚本文件解释器。
增加基于systemd的开机服务ima-scriptlets.service,该服务的作用是系统启动时读取配置文件/etc/ima-scriptlets中脚本文件解释器的名称,解析成脚本文件解释器的路径,写入文件/sys/kernel/security/ima/ims-scriptlets中。
将脚本文件解释器的路径写入到内核中,流程如图1所示,步骤包括:
S101:检查配置文件/etc/ima-scriptlets是否存在,如果存在,则进入步骤S102;如果不存在,则进入步骤S106;
S102:读取配置文件/etc/ima-scriptlets中一行数据,然后进入步骤S103;
S103:判断读取的数据是否为空,如果不为空,表示读取了一种类型的脚本文件解释器,进入步骤S104;如果为空,表示配置文件/etc/ima-scriptlets已经解析完毕,进入步骤S106;
S104:通过which命令查找脚本文件解释器的路径,如果能获取到路径,说明这是一种有效的脚本文件解释器,则进入步骤S105;如果不能获取到路径,说明这是一种无效的脚本文件解释器,则返回步骤S102,继续读取下一行数据;
S105:通过echo命令将步骤S104中获取的脚本文件解释器的路径写入文件/sys/kernel/security/ima/ima-scriptlets中,从而加载到内核中。然后返回步骤S102,继续读取下一行数据;
S106:结束。
脚本文件运行时验证和管控的流程如图2所示,步骤包括:
S201:验证execve系统调用加载的可执行文件的度量值是否正确,如果正确,则进入步骤S202,如果不正确,则进入步骤S205;
S202:遍历变量g_ima_scriptlets中保存的脚本文件解释器列表,并与execve系统调用加载的可执行文件进行比较,如果在g_ima_scriptlets中查找到,说明execve系统调用加载的可执行文件是脚本文件解释器,则进入步骤S203;如果查找不到,说明execve系统调用加载的可执行文件不是脚本文件解释器,则进入步骤S206;
S203:execve系统调用的参数argv是传递给可执行文件的参数列表,对于脚本文件解释器而言,脚本文件也是通过参数argv传递进来的。遍历argv中每个参数,从中取出表示脚本文件的参数,然后进入S204;
S204:从脚本文件的security.ima属性中取出脚本文件的初始度量值,利用IMA机制提供的算法计算脚本文件现在的度量值,比较两个度量值是否相同,如果不同,则进入步骤S205;如果相同,则进入步骤S206;
S205:验证失败,提示度量值不正确,然后退出execve系统调用;
S206:验证成功,继续执行原始的execve系统调用代码。
进一步的,S203的具体步骤包括:
S2031:通过count函数获取argv中参数的数量,然后调用strncpy_from_user函数获取argv中的一个参数,然后进入步骤S2032;
S2032:判断获取的参数是否为NULL,如果不为NULL,则进入步骤S2033;如果为NULL,说明所有参数已经解析完毕,结束;
S2033:通过kern_path函数获取脚本文件的路径,如果返回值为0,说明参数表示的是一个文件;如果返回值不为0,说明参数不是一个文件,返回步骤S2301。
进一步的,S204的具体步骤包括:
S2041:通过igrab函数获取该文件的inode节点,inode节点中保存了文件的基本信息,然后进入步骤S2402;
S2042:通过getattr函数从文件的inode节点中获取security.ima属性,即文件的初始度量值。若获取的security.ima属性为空,说明文件没有初始度量值,验证失败;若获取的security.ima属性不为空,则进入步骤S2043;
S2043:通过IMA机制提供的算法,计算文件现在的完整性度量值,然后进入步骤S2044;
S2044:对比IMA机制的完整性度量值和从security.ima获取的初始度量值,如果两个度量值相同,则验证成功;如果两个度量值不同,则验证失败。
最后应说明的几点是:首先,虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明的基础上,以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围;
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合。

Claims (4)

1.一种Linux系统脚本程序运行时验证与管控方法,其特征在于:包括在内核中定义存储脚本文件解释器路径的全局变量和接口函数,还在内核中增加一个配置文件和开机服务,并在execve系统调用中增加HOOK点;系统启动时将脚本文件解释器的路径加载到内核中;运行脚本文件前,首先验证脚本文件的度量值,并以此管控脚本文件的运行过程;
在内核中定义接口函数,接收从用户态传递过来的脚本文件解释器的路径,并保存在内核全局变量中;
增加一个配置文件,保存脚本文件解释器的名称;增加一个开机服务,系统启动时读取配置文件中保存的脚本文件解释器的名称,解析成脚本文件解释器的路径,通过内核接口函数写入到内核全局变量中;
在execve系统调用中增加HOOK点,用以检查execve加载的可执行程序是否为脚本文件解释器,并验证脚本文件的度量值,从而管控脚本文件的执行过程。
2.根据权利要求1所述的一种Linux系统脚本程序运行时验证与管控方法,其特征在于:在内核中定义全局变量,保存系统支持的脚本文件解释器的路径。
3.根据权利要求1所述的一种Linux系统脚本程序运行时验证与管控方法,其特征在于:所述开机服务的具体运行步骤为:
S101:判断所述保存脚本文件解释器名称的配置文件是否存在,如果存在,则进入步骤S102;如果不存在,则进入步骤S106;
S102:读取所述保存脚本文件解释器名称的配置文件中的一行数据,然后进入步骤S103;
S103:判断读取的数据是否为空,如果不为空,表示读取了一种类型的脚本文件解释器,则进入步骤S104;如果为空,表示所述保存脚本文件解释器名称的配置文件已经解析完毕,则进入步骤S106;
S104:查找系统中是否存在该种类型的脚本文件解释器的可执行文件,如果不存在,则返回步骤S102;如果存在,则进入步骤S105;
S105:通过内核接口函数将该种类型的脚本文件解释器的路径写入内核中,然后返回步骤S102;
S106:结束。
4.根据权利要求1所述的一种Linux系统脚本程序运行时验证与管控方法,其特征在于:所述脚本文件运行时验证和管控的具体步骤包括:
S201:验证execve系统调用加载的可执行文件的度量值是否正确,如果正确,则进入步骤S202;如果不正确,则进入步骤S205;
S202:检索所述保存脚本文件解释器路径的内核变量,判断execve系统调用加载的可执行文件是否是脚本文件解释器,如果是,则进入步骤S203;如果不是,则进入步骤S206;
S203:从execve系统调用的参数列表中解析出脚本文件的路径,然后进入步骤S204;
S204:验证脚本文件的度量值是否正确,如果不正确,则进入步骤S205;如果正确,则进入步骤S206;
S205:验证失败,提示度量值不正确,然后退出execve系统调用;
S206:验证成功,继续执行原始的execve系统调用代码。
CN202010829845.7A 2020-08-18 2020-08-18 一种Linux系统脚本程序运行时验证与管控方法 Active CN111914250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010829845.7A CN111914250B (zh) 2020-08-18 2020-08-18 一种Linux系统脚本程序运行时验证与管控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010829845.7A CN111914250B (zh) 2020-08-18 2020-08-18 一种Linux系统脚本程序运行时验证与管控方法

Publications (2)

Publication Number Publication Date
CN111914250A CN111914250A (zh) 2020-11-10
CN111914250B true CN111914250B (zh) 2022-05-17

Family

ID=73279046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010829845.7A Active CN111914250B (zh) 2020-08-18 2020-08-18 一种Linux系统脚本程序运行时验证与管控方法

Country Status (1)

Country Link
CN (1) CN111914250B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860240B (zh) * 2021-04-23 2021-07-16 武汉深之度科技有限公司 脚本验证方法、脚本签名方法及计算设备
CN114168934A (zh) * 2021-11-30 2022-03-11 麒麟软件有限公司 一种linux的内核级进程动态度量方法
CN115629994B (zh) * 2022-12-21 2023-04-28 北京中科网威信息技术有限公司 实现防火墙视图与内核视图切换方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998049821A1 (en) * 1997-04-29 1998-11-05 Global Adsi Solutions, Inc. Methods and apparatus for creating automated servers for display telephones
CN101593259A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 软件完整性验证方法及系统
CN102244659A (zh) * 2011-06-30 2011-11-16 成都市华为赛门铁克科技有限公司 安全策略脚本执行方法、装置以及安全策略系统
CN103400063A (zh) * 2013-08-06 2013-11-20 深信服网络科技(深圳)有限公司 脚本文件执行方法及装置
CN103885875A (zh) * 2012-12-21 2014-06-25 中国银联股份有限公司 脚本验证装置及方法
CN104050003A (zh) * 2014-06-27 2014-09-17 浪潮集团有限公司 一种采用shell脚本启动Nutch采集系统的方法
RU2584507C1 (ru) * 2014-12-19 2016-05-20 Закрытое акционерное общество "Лаборатория Касперского" Способ обеспечения безопасного выполнения файла сценария
CN106560830A (zh) * 2016-07-01 2017-04-12 哈尔滨安天科技股份有限公司 一种Linux嵌入式系统中的安全防护方法及系统
CN108509795A (zh) * 2018-04-25 2018-09-07 厦门安胜网络科技有限公司 一种监控elf文件调用系统函数的方法、装置及存储介质
CN109543413A (zh) * 2018-11-01 2019-03-29 郑州云海信息技术有限公司 一种基于IMA保护Linux操作系统安全的系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631198B2 (en) * 2005-05-10 2009-12-08 Seagate Technology Protocol scripting language for safe execution in embedded system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998049821A1 (en) * 1997-04-29 1998-11-05 Global Adsi Solutions, Inc. Methods and apparatus for creating automated servers for display telephones
CN101593259A (zh) * 2009-06-29 2009-12-02 北京航空航天大学 软件完整性验证方法及系统
CN102244659A (zh) * 2011-06-30 2011-11-16 成都市华为赛门铁克科技有限公司 安全策略脚本执行方法、装置以及安全策略系统
CN103885875A (zh) * 2012-12-21 2014-06-25 中国银联股份有限公司 脚本验证装置及方法
CN103400063A (zh) * 2013-08-06 2013-11-20 深信服网络科技(深圳)有限公司 脚本文件执行方法及装置
CN104050003A (zh) * 2014-06-27 2014-09-17 浪潮集团有限公司 一种采用shell脚本启动Nutch采集系统的方法
RU2584507C1 (ru) * 2014-12-19 2016-05-20 Закрытое акционерное общество "Лаборатория Касперского" Способ обеспечения безопасного выполнения файла сценария
CN106560830A (zh) * 2016-07-01 2017-04-12 哈尔滨安天科技股份有限公司 一种Linux嵌入式系统中的安全防护方法及系统
CN108509795A (zh) * 2018-04-25 2018-09-07 厦门安胜网络科技有限公司 一种监控elf文件调用系统函数的方法、装置及存储介质
CN109543413A (zh) * 2018-11-01 2019-03-29 郑州云海信息技术有限公司 一种基于IMA保护Linux操作系统安全的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
可信Linux关键组件验证方案的研究;叶波等;《计算机工程》;20061120(第22期);第169-171页 *

Also Published As

Publication number Publication date
CN111914250A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN111914250B (zh) 一种Linux系统脚本程序运行时验证与管控方法
CN102799817B (zh) 用于使用虚拟化技术进行恶意软件保护的系统和方法
RU2514140C1 (ru) Система и способ увеличения качества обнаружений вредоносных объектов с использованием правил и приоритетов
US9027075B2 (en) Enforcing security rules at runtime
CN110225029B (zh) 注入攻击检测方法、装置、服务器及存储介质
RU2535506C2 (ru) Система и способ формирования сценариев модели поведения приложений
AU2021206497B2 (en) Method and apparatus for authority control, computer device and storage medium
CN111159713B (zh) 基于SELinux的自学习可信策略构建方法及系统
US11971988B2 (en) Detection of suspicious objects in customer premises equipment (CPE)
CN106529281A (zh) 一种可执行文件处理方法及装置
CN110457892B (zh) 一种嵌入式系统权限管理方法及系统
CN113791824B (zh) 一种终端设备的外设驱动加载方法、系统及介质
CN115758356A (zh) 一种对Android应用实施可信静态度量的方法、存储介质及设备
CN115659340A (zh) 一种仿冒小程序识别方法、装置、存储介质及电子设备
CN102270132B (zh) Linux操作系统中脚本行为的控制方法
US9158558B1 (en) Methods and systems for providing application manifest information
CN114880667A (zh) 一种脚本检测方法及装置
KR102324950B1 (ko) 취약점을 효율적으로 탐지할 수 있는 아키텍처로 구성된 힙 영역 메모리 관리 방법 및 그 장치
KR101862382B1 (ko) 안드로이드 환경에서의 어플리케이션 데이터 관리 방법 및 장치
CN110716863A (zh) 一种强制访问控制规则测试方法、系统、终端及存储介质
CN115640269B (zh) 一种基于按需复制的安卓应用安装加速方法
CN116775147B (zh) 一种可执行文件处理方法、装置、设备及存储介质
CN107967142B (zh) 面向USBKey的更新方法、系统
CN107220537B (zh) 一种程序内存布局信息泄露行为的检测方法
CN117370979A (zh) 一种系统软件脱壳方法及装置

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