CN109558752B - 主机白名单机制下一种快速实现文件鉴别的方法 - Google Patents

主机白名单机制下一种快速实现文件鉴别的方法 Download PDF

Info

Publication number
CN109558752B
CN109558752B CN201811314027.2A CN201811314027A CN109558752B CN 109558752 B CN109558752 B CN 109558752B CN 201811314027 A CN201811314027 A CN 201811314027A CN 109558752 B CN109558752 B CN 109558752B
Authority
CN
China
Prior art keywords
file
hash value
white list
hash
calculating
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
CN201811314027.2A
Other languages
English (en)
Other versions
CN109558752A (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.)
Liaoning Datang International New Energy Co Ltd
Beijing Winicssec Technologies Co Ltd
Original Assignee
Beijing Winicssec Technologies 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 Beijing Winicssec Technologies Co Ltd filed Critical Beijing Winicssec Technologies Co Ltd
Priority to CN201811314027.2A priority Critical patent/CN109558752B/zh
Publication of CN109558752A publication Critical patent/CN109558752A/zh
Application granted granted Critical
Publication of CN109558752B publication Critical patent/CN109558752B/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了主机白名单机制下一种快速实现文件鉴别的方法,所述方法包括以下步骤:步骤1、分片算法一;步骤2、分片算法二,按照固定大小分片,将相邻的若干分片组合并计算HASH值,记录在数据库;步骤3、分片算法三:按照PE的section进行分片并将section的属性字段与section数据体部分联合起来,计算HASH值并记录和校验;步骤4、分片算法四,按照PE的section进行分片并将section的属性字段与section数据体部分联合起来。本发明的有益效果是:解决了白名单软件导致的进程加载或运行速度变慢的问题,决了目前白名单软件造成的系统卡顿问题,分页控制通过Windows的内核编程从而实现了对可执行文件的内存分页控制并在分页交换的时快速校验分页的HASH值。

Description

主机白名单机制下一种快速实现文件鉴别的方法
技术领域
本发明属于计算机安全技术领域,尤其涉及主机白名单机制下一种快速实现文件鉴别的方法。
背景技术
目前,主机应用白名单技术是一种主机应用层安全防御常见技术,其区别于黑名单技术,用以对特定用途的计算机实现更加精准和相对固化的安全防御效果。既有的主机应用白名单技术,常见采用的文件检测和识别技术是通过HASH算法和数字签名机制,对待加载目标文件进行校验。全文HASH方法:文件加载前,将文件全文读入内存,计算HASH,然后在已有的HASH库中查询,根据查询结果和白名单策略,决定是否拒绝加载文件签名机制:作为纯HASH方法的补充,采用DSA签名算法,对待加载文件进行计算,并根据厂商签名,验证是否存在于白名单库中,进而决定加载动作。由于签名算法为非对称算法,签名易于验证但难以伪造,相对于HASH算法,签名机制能够防护HASH库/表被篡改的情形。但是,在白名单实际应用过程中,这两种方案都面临一个问题。随着系统架构由32位升级64位,操作系统的升级和补丁增加,文件过多、过大、文件频繁地被加载都会由于文件的实时检测导致效率降低,进程加载速度和运行速度都会变慢,严重影响用户体验。
由于Windows可执行文件有时候会非常大,典型见于一些音频/视频软件、游戏软件、图形图像专业处理软件。针对这类文件,Windows在加载可执行文件的时候会根据文件的大小建立磁盘PE文件与内存虚拟地址之间的映射关系,而不是一次性读取完整的可执行文件。在进程启动时,Windows会锁定可执行文件以保证进程退出前,再次读取文件时,文件不会发生变化导致错误,并读取PE文件头,将PE文件映射在内存空间中,实际却并不一定一次性完整读取整个PE文件。即使读取完整,由于每个进程有虚拟的2G用户态空间,有几十个进程或服务在同时运行,而实际上系统内存并没有这么多,所以操作系统的内存管理需要采用内存分页机制,将暂时不用的内存分片交换出去,需要执行的分片再从缓存或者硬盘上加载回来。也就是说,在进程执行期间,可能需要多次去读取硬盘,读取可执行文件的一部分。经观测,不同的环境中这个读取频率差异较大,有时这个频率很高,经常有每秒钟读取几十次甚至几百次的现象,个别情况下可超过每秒一千次。而针对文件建立的白名单库,其中只包含完整文件的hash和签名。对目标文件的校验过程是将目标文件视为一个普通文件,完整读取并计算一遍HASH,这个过程由白名单软件独立完成,有别于Windows的PE文件加载过程。如果在主机白名单中采用全文hash,在PE文件很大的时候,Windows频繁读取PE文件的某一分片,就会导致校验程序频繁全文读取一遍可执行文件,这会明显拖慢进程启动和运行速度。校验程序还需要对这些大文件执行HASH计算,消耗了大量的CPU。
一、现有技术方案之一:
目前的白名单机制,每当需要读取可执行文件分片时,都会引起白名单校验需要,在设备内存不足的情况下,会频繁发生读写磁盘IO的操作。白名单校验加载机制需要完整校验整个可执行文件。也就会造成重新读取整个文件并计算的动作。其结果是数倍地放大了磁盘读写操作。严重拖慢了系统速度。
现有技术方案一的缺点是:
1.消耗了大量CPU在重复的计算上,加载时间过长,用户体验差。
2.部分情况下会造成多任务抢占,系统死锁,反应严重变慢,用户体验更差。
二、现有的技术方案之二是,只在第一次加载文件的时候,完整读取文件并进行校验。现有技术二的缺点是:不会在计算机读取文件和计算Hash上浪费太多资源。但是这样的实现方式,安全性得不到保证。恶意软件能够设法在白名单校验过后,替换可执行文件的文件体,导致白名单校验的失效;
三、现有的技术方案之三是,校验文件发布厂商的数字签名。
现有技术三的缺点是:
1.不是所有可执行文件都有厂商的数字签名,这是现有技术三的最大问题,只有一些大的软件厂商对自己发布的文件进行了签名。有些厂商只对特定时间后发布的新版本文件采用了数字签名技术,而对之前发布的合法文件无法追溯。据统计,即使把微软自带的文件计算在内,一台计算机上的有签名的文件通常也不超过20%。
2.由于厂商签名不能随意修改,部分白名单厂商采用重新签名的方式代替HASH算法
3.厂商签名的方法与HASH算法具有同样的弱点,由于是对文件全文作签名,这个技术实现也会严重拖慢系统反应速度。
本发明的缩略语和关键术语定义如下:
Figure GDA0002945709690000031
发明内容
本发明的目的在于提供能够克服上述技术问题的主机白名单机制下一种快速实现文件鉴别的方法,本发明所述方法包括以下步骤:
步骤1、分片算法一:按照固定大小依次分片并依次计算HASH值并记录在数据库:
步骤1.1、预备阶段,根据操作系统版本和位数、文件系统确定分片大小,默认为4096字节;
步骤1.2、建立和学习白名单阶段:读取目标PE文件,按照4096字节为单位,将完整文件分割成为若干个段;
步骤1.3、对每一个段计算其HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤1.4、对尾部不足4096字节的数据,采用预设字符填充至4096字节,计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤1.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤1.6、重复步骤1.2至步骤1.5,直至学习白名单阶段结束,固化白名单;
步骤1.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤1.8、获取Windows欲读取的偏移量和长度,同步获取所加载的文件buffer,扩展读取到分片长度单位4096字节;
步骤1.9、在HASH列表中查找完全覆盖所述buffer的HASH块,读取HASH值;
步骤1.10、逐片计算分片的HASH值,并与数据库中已存储的值作比较;
步骤1.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
步骤2、分片算法二,按照固定大小分片,将相邻的若干分片组合并计算HASH值,记录在数据库,允许分组有重叠以实现多重校验并减少HASH数据总条数:
步骤2.1、预备阶段,根据操作系统版本和位数、文件系统,确定分片大小,默认为4096字节;
步骤2.2、建立和学习白名单阶段:读取目标PE文件,按照4096字节为单位,将完整文件分割成为若干个段;
步骤2.3、对前面若干个分片,独立计算其HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤2.4.1、对中部部分分片,将相邻分片联合计算HASH值,将文件名,序号,偏移位置,数据长度,HASH值存储入结构化数据库
步骤2.4.2、将相邻4个分片或8个分片联合计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库,相邻分片的选取算法根据PE文件结构决定,互相有重叠以减少计算量、加快速度和减少存储;根据步骤8中的记录对算法进行优化和更新;
步骤2.4.3、对尾部不足4096字节的数据采用预设字符填充至4096字节,计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤2.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤2.6、重复步骤2.2至步骤2.5,直至学习白名单阶段结束,固化白名单;
步骤2.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤2.8、获取Windows欲读取的偏移量和长度,同步获取所加载的文件buffer,扩展读取到分片长度单位4096字节,记录buffer位移和长度;
步骤2.9、在HASH列表中查找完全覆盖所述buffer的HASH块,读取HASH值;
步骤2.10、逐片计算分片的HASH值,并与数据库中已存储的值作比较;
步骤2.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
步骤3、分片算法三:按照PE文件的section进行分片并将section的属性字段与section数据体部分联合起来,作为基本白名单校验单元,计算HASH值并记录和校验:
步骤3.1、建立和学习白名单阶段:读取目标PE文件,根据PE文件头,分析PE文件的段结构,按段结构将完整文件分割成为若干个分片;
步骤3.2、正常PE文件有4个section,包括.text、.data、.rdata,针对文件分段名分段有异常,section过少、命名奇特的情况,即是病毒或加壳的文件,从白名单中移除,由用户最终判定;
步骤3.3、对所有分片,独立计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤3.4、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤3.5、重复步骤3.1至步骤3.4,直至学习白名单阶段结束,固化白名单;
步骤3.6、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤3.7、获取Windows欲读取的分片位置,同步获取所加载的文件section;
步骤3.8、在HASH列表中查找对应的HASH值;
步骤3.9、逐片计算每个section的HASH值,并与数据库中已存储的值作比较;
步骤3.10、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
步骤4、分片算法四,按照PE文件的section进行分片并将section的属性字段与section数据体部分联合起来,并将相邻分片联合作为校验单元,计算HASH并记录和校验:
步骤4.1、建立和学习白名单阶段:读取目标PE文件,根据PE文件头分析PE文件的段结构,按段结构将完整文件分割成为若干个分片;
步骤4.2、针对异常的文件分段名、分段情况,是否从白名单中移除,由用户最终判定;
步骤4.3、对所有分片,独立计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤4.4、对相邻分片联合计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤4.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤4.6、重复步骤4.1至步骤4.5,直至学习白名单阶段结束,固化白名单;
步骤4.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤4.8、获取Windows欲读取的分片位置,同步获取所加载的文件section;
步骤4.9、在HASH列表中查找对应的HASH值,如果Windows同时加载了多个section,则直接读取对应的联合分片的HASH值;
步骤4.10、计算每个section或联合section的HASH值,并与数据库中已存储的值作比较;
步骤4.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
需要说明的是,在步骤3或步骤4中,在白名单扫描和学习阶段,要解析PE结构,将所有分片独立计算HASH值并记录;在启动白名单保护后将某一分片从磁盘读入内存的时候检索HASH记录并计算分片的HASH值并校验HASH值。在步骤2中,要根据PE文件和操作系统智能动态调整分片方式以保证存储数据尽量少的情况下达到速度上的最佳优化效果。本发明所述方法是根据文件系统的分区大小和操作系统的配置情况将可执行文件进行分片并将每一分片分别预先计算HASH值来作为白名单的实现基础。
本发明的有益效果是:解决了白名单软件导致的进程加载或运行速度变慢的问题,通过设计多重校验提高了白名单软件的鉴别能力,进而提高了安全性,能够为白名单判别机制提供有效的补充判别依据。本发明所述方法采用空间换时间的技术构思并通过更细粒度的预先计算的HASH表和结构化存储好的HASH库以减少实际运行过程中文件加载过程中产生的过度的不必要的磁盘IO读写,同时减少不必要的大量重复的HASH值计算,从磁盘和CPU两个角度节约运行资源,从而大大提高运行速度。解决了目前白名单软件造成的系统卡顿问题,通过预先计算构造一个设计合理、可用、能快速检索的HASH库对每个可执行文件,需要存储若干个HASH值;本发明所述方法的分页控制通过Windows的内核编程从而实现了对可执行文件的内存分页控制并在分页交换的时快速校验分页的HASH值;在可执行文件加载之前将所有分片的HASH全部读入缓存以保证校验速度。
附图说明
图1是本发明所述方法的基本分片算法的示意图;
图2是本发明所述方法的联合分片算法的示意图;
图3是本发明所述方法的依据PE section的分片算法的示意图;
图4是本发明所述方法的依据PE section的联合分片算法的示意图。
具体实施方式
下面结合附图对本发明的实施方式进行详细描述。本发明所述方法包括以下步骤:
步骤1、分片算法一:按照固定大小依次分片并依次计算HASH值并记录在数据库,如图1所示:
步骤1.1、预备阶段,根据操作系统版本和位数、文件系统确定分片大小,默认为4096字节;
步骤1.2、建立和学习白名单阶段:读取目标PE文件,按照4096字节为单位,将完整文件分割成为若干个段;
步骤1.3、对每一个段计算其HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤1.4、对尾部不足4096字节的数据,采用预设字符填充至4096字节,计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤1.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤1.6、重复步骤1.2至步骤1.5,直至学习白名单阶段结束,固化白名单;
步骤1.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤1.8、获取Windows欲读取的偏移量和长度,同步获取所加载的文件buffer,扩展读取到分片长度单位4096字节;
步骤1.9、在HASH列表中查找完全覆盖所述buffer的HASH块,读取HASH值;
步骤1.10、逐片计算分片的HASH值,并与数据库中已存储的值作比较;
步骤1.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
步骤2、分片算法二,按照固定大小分片,将相邻的若干分片组合并计算HASH值,记录在数据库,允许分组有重叠以实现多重校验并减少HASH数据总条数,如图2所示:
步骤2.1、预备阶段,根据操作系统版本和位数、文件系统,确定分片大小,默认为4096字节;
步骤2.2、建立和学习白名单阶段:读取目标PE文件,按照4096字节为单位,将完整文件分割成为若干个段;
步骤2.3、对前面若干个分片,独立计算其HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤2.4.1、对中部部分分片,将相邻分片联合计算HASH值,将文件名,序号,偏移位置,数据长度,HASH值存储入结构化数据库
步骤2.4.2、将相邻4个分片或8个分片联合计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库,相邻分片的选取算法根据PE文件结构决定,互相有重叠以减少计算量、加快速度和减少存储;根据步骤8中的记录对算法进行优化和更新;
步骤2.4.3、对尾部不足4096字节的数据采用预设字符填充至4096字节,计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤2.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤2.6、重复步骤2.2至步骤2.5,直至学习白名单阶段结束,固化白名单;
步骤2.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤2.8、获取Windows欲读取的偏移量和长度,同步获取所加载的文件buffer,扩展读取到分片长度单位4096字节,记录buffer位移和长度;
步骤2.9、在HASH列表中查找完全覆盖所述buffer的HASH块,读取HASH值;
步骤2.10、逐片计算分片的HASH值,并与数据库中已存储的值作比较;
步骤2.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
步骤3、分片算法三:按照PE文件的section进行分片并将section的属性字段与section数据体部分联合起来,作为基本白名单校验单元,计算HASH值并记录和校验,如图3所示:
步骤3.1、建立和学习白名单阶段:读取目标PE文件,根据PE文件头,分析PE文件的段结构,按段结构将完整文件分割成为若干个分片;
步骤3.2、正常PE文件有4个section,包括.text、.data、.rdata,针对文件分段名分段有异常,section过少、命名奇特的情况,即是病毒或加壳的文件,从白名单中移除,由用户最终判定;
步骤3.3、对所有分片,独立计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤3.4、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤3.5、重复步骤3.1至步骤3.4,直至学习白名单阶段结束,固化白名单;
步骤3.6、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤3.7、获取Windows欲读取的分片位置,同步获取所加载的文件section;
步骤3.8、在HASH列表中查找对应的HASH值;
步骤3.9、逐片计算每个section的HASH值,并与数据库中已存储的值作比较;
步骤3.10、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
步骤4、分片算法四,按照PE文件的section进行分片并将section的属性字段与section数据体部分联合起来,并将相邻分片联合作为校验单元,计算HASH并记录和校验,如图4所示:
步骤4.1、建立和学习白名单阶段:读取目标PE文件,根据PE文件头分析PE文件的段结构,按段结构将完整文件分割成为若干个分片;
步骤4.2、针对异常的文件分段名、分段情况,是否从白名单中移除,由用户最终判定;
步骤4.3、对所有分片,独立计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤4.4、对相邻分片联合计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤4.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤4.6、重复步骤4.1至步骤4.5,直至学习白名单阶段结束,固化白名单;
步骤4.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤4.8、获取Windows欲读取的分片位置,同步获取所加载的文件section;
步骤4.9、在HASH列表中查找对应的HASH值,如果Windows同时加载了多个section,则直接读取对应的联合分片的HASH值;
步骤4.10、计算每个section或联合section的HASH值,并与数据库中已存储的值作比较;
步骤4.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
需要说明的是,在步骤3或步骤4中,在白名单扫描和学习阶段,要解析PE结构,将所有分片独立计算HASH值并记录;在启动白名单保护后将某一分片从磁盘读入内存的时候检索HASH记录并计算分片的HASH值并校验HASH值。在步骤2中,要根据PE文件和操作系统智能动态调整分片方式以保证存储数据尽量少的情况下达到速度上的最佳优化效果。本发明所述方法是根据文件系统的分区大小和操作系统的配置情况将可执行文件进行分片并将每一分片分别预先计算HASH值来作为白名单的实现基础。
本发明所述方法经实验测算,如果采用步骤1的算法,每个分片分别计算HASH值,HASH算法选用传统的MD5,则存储量约需所有目标可执行文件的1/256,在实际实现中,由于需要建立索引和部分不完整的分片,每1G文件需要增加8~10M的存储空间,存储浪费并不明显,但显著效果是:部分实验环境下,加载及运行速度能够提高1000倍以上,采用合并分片的方法,存储量能够控制在低的水平,例如原始数据的1/1024,加载速度也能够提高几十倍。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的范围内,能够轻易想到的变化或替换,都应涵盖在本发明权利要求的保护范围内。

Claims (5)

1.主机白名单机制下一种快速实现文件鉴别的方法,其特征在于,包括以下步骤:
步骤1、分片算法一:按照固定大小依次分片并依次计算HASH值并记录在数据库;
步骤2、分片算法二,按照固定大小分片,将相邻的若干分片组合并计算HASH值,记录在数据库,允许分组有重叠以实现多重校验并减少HASH数据总条数;
步骤3、分片算法三:按照PE文件的section进行分片并将section的属性字段与section数据体部分联合起来,作为基本白名单校验单元,计算HASH值并记录和校验;
步骤4、分片算法四,按照PE文件的section进行分片并将section的属性字段与section数据体部分联合起来,并将相邻分片联合作为校验单元,计算HASH并记录和校验。
2.根据权利要求1所述的主机白名单机制下一种快速实现文件鉴别的方法,其特征在于,所述步骤1包括以下步骤:
步骤1.1、预备阶段,根据操作系统版本和位数、文件系统确定分片大小,默认为4096字节;
步骤1.2、建立和学习白名单阶段:读取目标PE文件,按照4096字节为单位,将完整文件分割成为若干个段;
步骤1.3、对每一个段计算其HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤1.4、对尾部不足4096字节的数据,采用预设字符填充至4096字节,计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤1.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤1.6、重复步骤1.2至步骤1.5,直至学习白名单阶段结束,固化白名单;
步骤1.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤1.8、获取Windows欲读取的偏移量和长度,同步获取所加载的文件buffer,扩展读取到分片长度单位4096字节;
步骤1.9、在HASH列表中查找完全覆盖所述buffer的HASH块,读取HASH值;
步骤1.10、逐片计算分片的HASH值,并与数据库中已存储的值作比较;
步骤1.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
3.根据权利要求1所述的主机白名单机制下一种快速实现文件鉴别的方法,其特征在于,所述步骤2包括以下步骤:
步骤2.1、预备阶段,根据操作系统版本和位数、文件系统,确定分片大小,默认为4096字节;
步骤2.2、建立和学习白名单阶段:读取目标PE文件,按照4096字节为单位,将完整文件分割成为若干个段;
步骤2.3、对前面若干个分片,独立计算其HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤2.4.1、对中部部分分片,将相邻分片联合计算HASH值,将文件名,序号,偏移位置,数据长度,HASH值存储入结构化数据库
步骤2.4.2、将相邻4个分片或8个分片联合计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库,相邻分片的选取算法根据PE文件结构决定,互相有重叠以减少计算量、加快速度和减少存储;根据步骤8中的记录对算法进行优化和更新;
步骤2.4.3、对尾部不足4096字节的数据采用预设字符填充至4096字节,计算HASH值,将文件名、序号、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤2.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤2.6、重复步骤2.2至步骤2.5,直至学习白名单阶段结束,固化白名单;
步骤2.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤2.8、获取Windows欲读取的偏移量和长度,同步获取所加载的文件buffer,扩展读取到分片长度单位4096字节,记录buffer位移和长度;
步骤2.9、在HASH列表中查找完全覆盖所述buffer的HASH块,读取HASH值;
步骤2.10、逐片计算分片的HASH值,并与数据库中已存储的值作比较;
步骤2.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
4.根据权利要求1所述的主机白名单机制下一种快速实现文件鉴别的方法,其特征在于,所述步骤3包括以下步骤:
步骤3.1、建立和学习白名单阶段:读取目标PE文件,根据PE文件头,分析PE文件的段结构,按段结构将完整文件分割成为若干个分片;
步骤3.2、正常PE文件有4个section,包括.text、.data、.rdata,针对文件分段名分段有异常,section过少、命名奇特的情况,即是病毒或加壳的文件,从白名单中移除,由用户最终判定;
步骤3.3、对所有分片,独立计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤3.4、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤3.5、重复步骤3.1至步骤3.4,直至学习白名单阶段结束,固化白名单;
步骤3.6、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤3.7、获取Windows欲读取的分片位置,同步获取所加载的文件section;
步骤3.8、在HASH列表中查找对应的HASH值;
步骤3.9、逐片计算每个section的HASH值,并与数据库中已存储的值作比较;
步骤3.10、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
5.根据权利要求1所述的主机白名单机制下一种快速实现文件鉴别的方法,其特征在于,所述步骤4包括以下步骤:
步骤4.1、建立和学习白名单阶段:读取目标PE文件,根据PE文件头分析PE文件的段结构,按段结构将完整文件分割成为若干个分片;
步骤4.2、针对异常的文件分段名、分段情况,是否从白名单中移除,由用户最终判定;
步骤4.3、对所有分片,独立计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤4.4、对相邻分片联合计算其HASH值,将文件名、section名字、偏移位置、数据长度、HASH值存储入结构化数据库;
步骤4.5、对完整文件仍然计算HASH值,存储入结构化数据库;
步骤4.6、重复步骤4.1至步骤4.5,直至学习白名单阶段结束,固化白名单;
步骤4.7、进入白名单校验阶段,启动白名单报警模式或防护模式,通过安装文件驱动HOOK住操作系统每一次对PE文件的读取操作;
步骤4.8、获取Windows欲读取的分片位置,同步获取所加载的文件section;
步骤4.9、在HASH列表中查找对应的HASH值,如果Windows同时加载了多个section,则直接读取对应的联合分片的HASH值;
步骤4.10、计算每个section或联合section的HASH值,并与数据库中已存储的值作比较;
步骤4.11、比较结果为相同,继续进行下一步,如果比较结果不同,则触发报警或防护操作。
CN201811314027.2A 2018-11-06 2018-11-06 主机白名单机制下一种快速实现文件鉴别的方法 Active CN109558752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811314027.2A CN109558752B (zh) 2018-11-06 2018-11-06 主机白名单机制下一种快速实现文件鉴别的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811314027.2A CN109558752B (zh) 2018-11-06 2018-11-06 主机白名单机制下一种快速实现文件鉴别的方法

Publications (2)

Publication Number Publication Date
CN109558752A CN109558752A (zh) 2019-04-02
CN109558752B true CN109558752B (zh) 2021-05-07

Family

ID=65865979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811314027.2A Active CN109558752B (zh) 2018-11-06 2018-11-06 主机白名单机制下一种快速实现文件鉴别的方法

Country Status (1)

Country Link
CN (1) CN109558752B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367926A (zh) * 2020-02-27 2020-07-03 星辰天合(北京)数据科技有限公司 分布式系统的数据处理方法和装置
CN114579954B (zh) * 2021-08-26 2023-03-24 华为技术有限公司 安全启动校验的方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752326A (zh) * 2011-04-19 2012-10-24 腾讯科技(深圳)有限公司 在下载文件时处理数据的方法、客户端、服务器和系统
CN102768678A (zh) * 2012-06-14 2012-11-07 奇智软件(北京)有限公司 文件操作方法及装置
CN104679830A (zh) * 2015-01-30 2015-06-03 乐视网信息技术(北京)股份有限公司 一种文件处理方法和装置
CN107944232A (zh) * 2017-12-08 2018-04-20 郑州云海信息技术有限公司 一种基于白名单技术的主动防御系统的设计方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8804507B2 (en) * 2011-03-31 2014-08-12 Avaya, Inc. Method and apparatus for temporal-based flow distribution across multiple packet processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752326A (zh) * 2011-04-19 2012-10-24 腾讯科技(深圳)有限公司 在下载文件时处理数据的方法、客户端、服务器和系统
CN102768678A (zh) * 2012-06-14 2012-11-07 奇智软件(北京)有限公司 文件操作方法及装置
CN104679830A (zh) * 2015-01-30 2015-06-03 乐视网信息技术(北京)股份有限公司 一种文件处理方法和装置
CN107944232A (zh) * 2017-12-08 2018-04-20 郑州云海信息技术有限公司 一种基于白名单技术的主动防御系统的设计方法及系统

Also Published As

Publication number Publication date
CN109558752A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
US8561194B2 (en) Memory storage device and memory controller and virus scanning method thereof
JP5881859B2 (ja) ストレージ装置
US20020166059A1 (en) Methods and apparatus for protecting against viruses on partitionable media
US8694767B2 (en) Method and system for NAND flash support in an autonomously loaded secure reprogrammable system
US20200192826A1 (en) Flash Translation Layer with Hierarchical Security
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
US20050144501A1 (en) Method for recovering data in EXT2 file system, and computer-readable storage medium recorded with data-recovery program
US20120296878A1 (en) File set consistency verification system, file set consistency verification method, and file set consistency verification program
US20120117367A1 (en) Electronic apparatus and booting method thereof
CN113553010A (zh) 一种光盘文件校验方法、光盘刻录方法及计算设备
CN109558752B (zh) 主机白名单机制下一种快速实现文件鉴别的方法
KR20170125698A (ko) 일반화된 기록 동작 검증 방법
US8281398B2 (en) Reordering document content to avoid exploits
JP6089890B2 (ja) ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム
WO2013159621A1 (en) Method and system for speeding up computer program
US20220155974A1 (en) Device with flash memory and method for writing/erasing/updating data in flash memory thereof
JP2005115562A (ja) フラッシュrom制御装置
US11615019B2 (en) Non-volatile storage device, host device, and data storage system to increase data write speed
CN109344089B (zh) 一种操作norflash的方法及装置
JP7202030B2 (ja) 記憶装置内の悪意のある動作を検出するためのモジュールおよび方法
JP5270271B2 (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
CN111465926A (zh) 信息处理装置、信息处理方法和信息处理程序
CN117271440B (zh) 一种基于freeRTOS文件信息存储方法、读取方法及相关设备
CN113253947B (zh) 一种重删方法、装置、设备及可读存储介质
JP2008134777A (ja) ファイル割当テーブルのキャッシュ方法

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220526

Address after: 907, 9 / F, block F, No. 9, Shangdi 3rd Street, Haidian District, Beijing 100085

Patentee after: BEIJING WINICSSEC TECHNOLOGIES CO.,LTD.

Patentee after: Liaoning Datang International New Energy Co., Ltd

Address before: 907, 9 / F, block F, No. 9, Shangdi 3rd Street, Haidian District, Beijing 100085

Patentee before: BEIJING WINICSSEC TECHNOLOGIES CO.,LTD.