一种基于Linux预链接的文件基线防御方法、装置及存储设备制造方法及图纸

技术编号:23288401 阅读:21 留言:0更新日期:2020-02-08 18:22
本发明专利技术实施例公开一种基于Linux预链接的文件基线防御方法、装置及存储设备,用以解决利用预链接程序会导致文件MD5变更,导致无法辨别文件是否被恶意修改的问题。该方法包括:读取预链接配置文件;确定可执行文件;对可执行文件执行预链接;记录可执行文件的修改时间及修改内容;利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。

A file baseline defense method, device and storage device based on Linux pre link

【技术实现步骤摘要】
一种基于Linux预链接的文件基线防御方法、装置及存储设备
本专利技术实施例涉及计算机反病毒领域,尤其涉及一种基于Linux预链接的文件基线防御方法、装置及存储设备。
技术介绍
Linux系统中提供了预链接程序,即prelink,该程序用来预链接可执行文件,使可执行文件能够更快地执行,但使用预链接程序会导致可执行文件内容的修改,进而导致可执行文件的MD5变更,使基线信息频繁变更。而MD5的变更会导致无法辨别文件是否被恶意修改,在现有技术中,通常选择在可执行文件发生变化时,将可执行文件内容读入内存,进行预链接操作的逆操作,将可执行文件信息还原,再得到MD5,用来区分该文件是否被破坏。但是该方式存在以下几个问题:1.局限性较强,仅适用于Linux平台。如果prelink更新预链接的方式,无法继续适用;而且在安卓系统中,也存在类似的预链接技术,用于优化APP的启动速度,该方法不能适用。2.每次可执行文件发生变更时,都重新进行计算MD5,而此时的文件并未被真正的破坏,且每次计算都包含两次磁盘读写,效率较低。3.基线信息的频繁变动也会导致服务端的压力较大。4.在分析可执行文件信息时,当程序所携带的库文件与系统本地的文件不匹配时,可能造成崩溃。
技术实现思路
基于上述存在的问题,本专利技术实施例提供一种基于Linux预链接的文件基线防御方法、装置及存储设备,用以解决利用预链接程序会导致文件MD5变更,导致无法辨别文件是否被恶意修改的问题。本专利技术实施例公开一种基于Linux预链接的文件基线防御方法,包括:读取预链接配置文件;确定可执行文件;对可执行文件执行预链接;记录可执行文件的修改时间及修改内容;利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。进一步地,确定可执行文件后,还包括:遍历可执行文件路径,并将可执行文件原始信息存储至内存中;对可执行文件执行预链接后,还包括:将预链接后的可执行文件信息存储至内存中。进一步地,将可执行文件未被修改的部分的名称,起始位置及偏移信息记录在数据表中。进一步地,若可执行文件大于20M,截取文件部分内容,计算该部分的MD5。本专利技术实施例公开一种基于Linux预链接的文件基线防御的装置,包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:读取预链接配置文件;确定可执行文件;对可执行文件执行预链接;记录可执行文件的修改时间及修改内容;利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:确定可执行文件后,还包括:遍历可执行文件路径,并将可执行文件原始信息存储至内存中;对可执行文件执行预链接后,还包括:将预链接后的可执行文件信息存储至内存中。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:将可执行文件未被修改的部分的名称,起始位置及偏移信息记录在数据表中。进一步地,所述处理器还用于加载所述存储器中存储的指令以执行:若可执行文件大于20M,截取文件部分内容,计算该部分的MD5。本专利技术实施例同时公开一种基于Linux预链接的文件基线防御装置,包括:读取模块:用于读取预链接配置文件;确定执行模块:用于确定可执行文件;预链接模块:用于对可执行文件执行预链接;记录模块:记录可执行文件的修改时间及修改内容;计算判断模块:用于利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。本专利技术实施例提供了一种存储设备,所述存储设备中存储有多条指令,所述指令适于由处理器加载并执行本专利技术实施例提供的基于Linux预链接的文件基线防御方法步骤。与现有技术相比,本专利技术提供的基于Linux预链接的文件基线防御方法、装置及存储设备,至少实现了如下的有益效果:读取预链接配置文件;确定可执行文件;对可执行文件执行预链接;记录可执行文件的修改时间及修改内容;利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。利用预链接程序未修改部分进行MD5计算,这样可以减少计算量,也使基线不再频繁变更,同时也可以更容易辨别文件是否被恶意修改。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的基于Linux预链接的文件基线防御的方法流程图;图2为本专利技术实施例提供的基于Linux预链接的文件基线防御的装置结构图;图3为本专利技术实施例提供的又一基于Linux预链接的文件基线防御的装置结构图。具体实施方式为了使本专利技术的目的,技术方案和优点更加清楚,下面结合附图,对本专利技术实施例提供的基于程序逻辑识别同源攻击的方法的具体实施方式进行详细地说明。应当理解,下面所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。通过二进制对比Linux系统在预链接前后可执行文件内容,发现预链接技术并非改变全部文件,修改位置主要集中在文件头部,即通过修改可执行文件的节段头部和程序头部来实现加速的加载。通过进一步对修改进行分析,便可找到预链接算法不会修改的文件部分。基于此,本专利技术实施例提供了基于Linux预链接的文件基线防御方法流程图,如图1所示,包括:步骤11,读取预链接配置文件;在读取预链接配置文件之前,首先判断系统中是否存在预链接程序,若存在预链接,根据预链接配置文件决定对哪些文件进行预链接。步骤12,确定可执行文件;确定可执行文件后,还包括:遍历可执行文件路径,并将可执行文件原始信息存储至内存中。步骤13,对可执行文件执行预链接;预链接程序包括但不限于prelink程序,对可执行文件执行预链接目前都是通过修改Linux系统的可执行文件的头部链接信息实现的,而Linux系统的可执行文件的头部包含两类不同的头部信息,分别是programheader(程序头部)和sectionheader(节段头部),包含了该文件的不同节段的信息以及程序运行信息;对可执行文件执行预链接后,还包括:将预链接后的可执行文件信息存储至内存中。步骤14,记录可执行文件的修改时间及修改内容;步骤15,利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。其中,获取可执行文件未被修改的部分的方法为:解析可执行文件,读取头部信息p本文档来自技高网...

【技术保护点】
1.一种基于Linux预链接的文件基线防御的方法,其特征在于:/n读取预链接配置文件;/n确定可执行文件;/n对可执行文件执行预链接;/n记录可执行文件的修改时间及修改内容;/n利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。/n

【技术特征摘要】
1.一种基于Linux预链接的文件基线防御的方法,其特征在于:
读取预链接配置文件;
确定可执行文件;
对可执行文件执行预链接;
记录可执行文件的修改时间及修改内容;
利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否被恶意修改。


2.如权利要求1所述的方法,其特征在于,
确定可执行文件后,还包括:遍历可执行文件路径,并将可执行文件原始信息存储至内存中;
对可执行文件执行预链接后,还包括:将预链接后的可执行文件信息存储至内存中。


3.如权利要求1所述的方法,其特征在于:
将可执行文件未被修改的部分的名称,起始位置及偏移信息记录在数据表中。


4.如权利要求1所述的方法,其特征在于:
若可执行文件大于20M,截取文件部分内容,计算该部分的MD5。


5.一种基于Linux预链接的文件基线防御的装置,其特征在于:所述装置包括存储器和处理器,所述存储器用于存储多条指令,所述处理器用于加载所述存储器中存储的指令以执行:
读取预链接配置文件;
确定可执行文件;
对可执行文件执行预链接;
记录可执行文件的修改时间及修改内容;
利用可执行文件未被修改的部分,计算并记录可执行文件MD5,判断可执行文件是否...

【专利技术属性】
技术研发人员:刘一飞徐翰隆肖新光王小丰
申请(专利权)人:北京安天网络安全技术有限公司
类型:发明
国别省市:北京;11

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

1