SEFS
简洁 稳定 高效 兼容
双缓存layerfsd架构 引领业内技术方向
数万点商用部署 支撑众多产品稳定运行

扯下进程加密中的授权进程如何识别

八月 17, 2011admin技术分享5

所谓进程加密,当然只加密部分进程的文件操作。称之为授权进程。那么在文件过滤中如何识别授权进程呢?。

首先是进程识别的时机问题,我们不需要在每个IRP来到的时候去做进程的识别过程,这将是大量的低级劳动。一般放在进程创建的时机。判断为授权进程后,放入一个链表即可。SEFS是在ImageLoadNotify中识别的,这里可以轻松的得到进程的全路径。

再说说识别算法,最简单是判断进程名称,或者是进程全路径。最严格的是判断进程Bin的HASH。再折中的做法是判断进程Bin的特征码。目前这3种SEFS均支持。但是在实际运用还在一些问题。

HASH过于严格,进程名称过于宽松,特征码呢,实施人员不能很好的理解,所以在部署过程中,加密策略的制定,成了一件头疼的事情。

后来跟某个友厂的同行交流,他们从进程Bin的资源信息中判断 内部名称或者是原始文件名称之类的信息。突然觉得也不错,在安全性和易用性之间似乎是个不错的平衡点。所以现在SEFS最新的版本也增加了这个功能。授权进程的识别,可以移到应用层。按照开发商自定义的判断逻辑进程识别。

安全?易用?永恒的话题!

 

5 Comments

  1. Xiao70八月 23, 2011 at 5:49 下午Reply

    我做的layerfsd,还在CreateProcessNotify中判断父进程如果是授权进程创建的子进程,那么子进程也是授权进程,Hash的时候支持整个文件跟文件中指定位置指定长度Hash两种方式O(∩_∩)O~。其实在CreateProcessNotify取得文件对象然后读文件内容效率比LoadImageNotify更高

    • admin八月 27, 2011 at 1:38 上午ReplyAuthor

      CreateProcessNotify在win2000下要获取进程的全路径比较费力,没有文档化的方法。这是主要的原因。

  2. Xiao70八月 29, 2011 at 10:19 上午Reply

    win2000下可以直接取到fileobject,0×284偏移的pImageFileName就是fileobject中的ImageFileName,减去ImageFileName在fileobject的偏移就是进程的fileobject了,O(∩_∩)O~

    • admin八月 29, 2011 at 12:23 下午ReplyAuthor

      呵呵,我说的是文档化的。

  3. Xiao70九月 14, 2011 at 5:18 下午Reply

    有机会加个qq聊聊不?

Leave a reply

电子邮件地址不会被公开。 必填项已用 * 标注

*