联系hashgameCONTACT hashgame
地址:广东省广州市
手机:13988889999
电话:020-88889999
邮箱:admin@qq.com
查看更多
Rhashgamehashgame
你的位置: 首页 > hashgame

一种基于双HASH验证的主机防御方法和系统与流程HASH GAME - Online Skill Game ET 300

发布时间:2025-02-24 16:33:13  点击量:

  HASH GAME - Online Skill Game GET 300

一种基于双HASH验证的主机防御方法和系统与流程HASH GAME - Online Skill Game GET 300

  4.然而,上述三种现有的主机防御方法均存在一些不可忽略的缺陷:全文校验法在设备内存不足的情况下,分片在内存中切入切出,会频繁引起白名单校验,而白名单校验机制需要完整校验整个可执行文件,也就会造成重新读取整个文件并计算的动作,其结果是数倍地放大了磁盘读写操作,且消耗大量cpu在重复的计算上,严重拖慢了系统速度;分片校验法减少了全文校验法中白名单校验产生的过度的不必要的磁盘读写,同时减少不必要的大量重复的hash值计算,从磁盘读写和cpu两个角度节约资源,同时提高进程加载速度和运行速度,但这种方案会使得预先存储的白名单库十分庞大,占用更大的磁盘空间,同时庞大的白名单增大了hash冲突,从而降低了主机的防御效果;签名校验法非所有可执行文件都有厂商的数字签名,只有一些大的软件厂商对自己发布的文件进行了签名,且有些厂商只对特定时间后发布的新版本文件采用了数字签名技术,而对此前发布的合法文件无法追溯,这使得无法对主机的全部可执行文件进行白名单校验,据统计,即使把微软自带的文件计算在内,一台计算机上的有签名的文件通常也不超过20%。

  14.优选地,当可执行文件是.exe进程文件时,步骤(1)具体为,首先使用服务管理器函数启动用于监控.exe进程文件加载的驱动程序,其后使用该驱动程序的入口函数创建驱动程序的设备对象,用pssetcreateprocessnotifyroutineex函数注册用于监控.exe进程文件加载的回调函数,然后设备对象调用该回调函数过滤当前的.exe进程文件,回调函数中是对当前的.exe进程文件进行第一hash计算,并判断哈希计算的结果是否存在于预先存储的第一白名单数据库中,如果是,则不对回调函数做操作,加载该.exe进程文件,然后进入步骤(2);否则将回调函数的参数状态设置为status_unsuccessful,表示加载该.exe进程文件的请求不通过,阻止加载该.exe进程文件,然后过程结束。

  15.优选地,当可执行文件是.dll模块文件或.sys模块文件时,步骤(1)具体为,首先使用服务管理器函数启动用于监控.dll或.sys模块文件加载的驱动程序,其后使用驱动程序的入口函数创建驱动的设备对象,用pssetloadimagenotifyroutine函数注册用于监控.dll或.sys模块文件加载的回调函数;然后设备对象调用该回调函数过滤当前.dll模块文件或.sys模块文件,回调函数中是对当前的.dll或.sys模块文件进行第一hash计算,并判断哈希计算的结果是否存在于预先存储的第一白名单数据库中,如果是,则不对回调函数做操作,加载该.dll模块文件或.sys模块文件,然后进入步骤(2);否则回调函数调用denyloaddriver,阻止加载该.dll模块文件或.sys模块文件,然后过程结束。

  16.优选地,步骤(2)具体为,首先使用服务管理器函数将挂钩(hook)驱动加载到操作系统中,然后使用操作系统中被挂钩的读函数zwreadfile对该分片所属的可执行文件进行第二hash计算,并判断计算的结果是否存在于预先存储的第二白名单数据库中,如果是,则读取该分片上的数据,zwreadfile函数返回status_success,表示对该分片的读取请求允许通过,过程结束;否则阻止对该分片上数据的读取,zwreadfile函数返回status_access_denied,表示对该分片的读取请求不允许通过,过程结束。

  28.本发明的基本思路在于,提供一种基于双hash验证的主机防御方法,在主机加载可执行文件时,校验整个可执行文件的内容,一旦可执行文件加载到进程中,windows系统会锁定整个可执行文件,保证其在磁盘时不能被修改,防止分片读入内存发生执行错误;在主机读取磁盘内的分片时,由于分片所在的可执行文件已经通过加载校验,那么就不需要对整个文件进行校验,只要确保该可执行文件存在白名单内,即取可执行文件前一部分字节验证可执行文件是否存在白名单内。

  34.进而言之,当可执行文件是.exe进程文件时,本步骤具体为,首先使用服务管理器函数启动用于监控.exe进程文件加载的驱动程序,其后使用该驱动程序的入口函数创建驱动程序的设备对象,用pssetcreateprocessnotifyroutineex函数注册用于监控.exe进程文件加载的回调函数,然后设备对象调用该回调函数过滤当前的.exe进程文件,回调函数中是对当前的.exe进程文件进行第一hash计算,并判断哈希计算的结果是否存在于预先存储的第一白名单数据库中,如果是,则不对回调函数做操作,加载该.exe进程文件,然后进入步骤(2);否则将回调函数的参数状态设置为status_unsuccessful,表示加载该.exe进程文件的请求不通过,阻止加载该.exe进程文件,然后过程结束。

  35.当可执行文件是.dll模块文件或.sys模块文件时,本步骤具体为,首先使用服务管理器函数启动用于监控.dll或.sys模块文件加载的驱动程序,其后使用驱动程序的入口函数创建驱动的设备对象,用pssetloadimagenotifyroutine函数注册用于监控.dll或.sys模块文件加载的回调函数;然后设备对象调用该回调函数过滤当前.dll模块文件或.sys模块文件,回调函数中是对当前的.dll或.sys模块文件进行第一hash计算,并判断哈希计算的结果是否存在于预先存储的第一白名单数据库中,如果是,则不对回调函数做操作,加载该.dll模块文件或.sys模块文件,然后进入步骤(2);否则回调函数调用denyloaddriver,阻止加载该.dll模块文件或.sys模块文件,然后过程结束;

  41.总而言之,由于windows系统中分片读入的频率远高于可执行文件的加载频率,本发明实施例通过面对加载可执行文件与内存读取分片两种情况,使用不同的hash计算与校验,提高了可执行文件实时检测的综合效率和系统运行性能,节约了在内存频繁读入分片时对可执行文件完整校验耗费的大量cpu计算资源;同时白名单库仍保持与可执行文件同一数量级,避免了白名单过于庞大带来的hash冲突问题;且实现方案简洁,降低实现成本,并控制过程风险,最终保障主机提供服务的效率和抵御外界的防御能力。

【返回列表页】

顶部

地址:广东省广州市  电话:020-88889999 手机:13988889999
Copyright © 2018-2025 哈希游戏(hash game)官方网站 版权所有 非商用版本 ICP备案编: