文章

文档加密软件核心技术:文件系统微过滤驱动(minifilter)

文档加密软件产品目前使用的技术有两种,一种是应用层的API HOOK,另一种则是文件系统的微过滤驱动技术。Ping32文档加密软件使用的是文件系统的微过滤驱动技术。在聊文件系统的微过滤(minifilter)之前,我们先聊聊通用的过滤驱动概念。

阅读更多

Ping32将在3.7.59中支持文件落地加密

文件落地是一个很场景化的描述,比如:微信收到了对方发来的一个Word文件;将U盘中的CAD图纸拷贝到了桌面……这些行为我们都可以理解为文件落地。如果站在技术角度来看待文件落地行为,我们可以理解为某个应用调用了(Nt)CreateFile创建了一个文件。在11月要发布的版本中,我们会引入对文件落地加密的支持,这个功能我们称之为:新建文件加密

文档透明加密的核心逻辑是将指定进程配置为授信进程,授信进程创建的文件自动加密,打开文件则自动解密;其余非授信进程则不具备打开查看文件解密视图的能力。在此基础上衍生出来半透明加密的概念,即:打开文件自动解密,但是创建文件不加密。这里面的一个重要的概念是授信进程。文件落地加密功能与文档透明加密核心的不同之处在于,文件落地加密没有授信进程的概念,这个很好理解,因为我们无法控制,到底是哪个软件进程实现了落地,比如:浏览器、网盘、QQ、微信、迅雷等软件都可以下载一个文件,这个过程就是文件落地,但是我们无法把这些软件设置为授信软件。

因此,在策略的交互设置中,我们仅仅设置了:加密的路径、加密的文件类型、忽略的路径、忽略的文件类型。通过这些组合,我们实现了全盘或者局部的指定文件类型的落地自动加密。

全盘加密

文件落地加密在使用场景上是简单易理解的,但是在技术细节上,会有若干问题,下面我将对其进行阐述说明。

1、优先执行授信软件的规则行为,并且规则匹配成功后不再匹配执行新建文件加密规则。
举个例子,我们设置了如下语义的新建文件加密规则:
对在 D:\Test1 目录下新建 *.txt 文件进行加密;
对在 D:\Test2 目录下新建 *.log 文件进行忽略;
同时,我们的透明加解密核心设置了针对记事本(notepad.exe)操作 *.txt 和 *.log 文件类型透明加解密的规则。那么会有以下几个问题:

1、记事本在 D:\Test1 中创建了一个 *.txt 文件,文件是否会被加密。
答:会被加密。加密是因为匹配到了授信软件的规则。

2、记事本在 D:\Test1 中创建了一个 *.log 文件,文件是否会被加密。
答:会被加密。加密是因为匹配到了授信软件的规则。

3、记事本在 D:\Test2 中创建了一个 *.log 文件,文件是否会被加密。
答:会被加密。因为系统会优先执行授信软件的规则行为,哪怕新建文件加密规则设置了:在 D:\Test2 目录下新建 *.log 文件进行忽略。

4、非授信软件在 D:\Test1 中创建了一个 *.txt 文件,文件是否会被加密。
答:会被加密。因为触发了新建文件加密规则。

 

2、Ping32仅支持针对新建文件对象的连续写入进行加密。
举个例子,我们需要将 123456 这几个字符写入到一个txt文档中。
一般来说,软件的API执行流程是CreateFile -> WriteFile(“123456”) -> CloseFile,针对这种API调用顺序,Ping32可以正常加密。但是如果软件的API调用风格是这样的:CreateFile -> WriteFile(“123”) -> CloseFile -> OpenFile -> WriteFile(“456”) -> CloseFile。那么这个场景使用新建文件加密是不安全的。事实上,这种场景是理论不严谨、存在安全缺陷的,即使我们引入某些算法进行优化,也很难保证都能得到妥善处理。

 

3、Ping32不支持网络路径的新建文件加密。
无论是通过映射网络驱动器的方式,还是直接通过网络共享路径直接访问,即使规则对路径匹配成功,Ping32都不会对网络路径下的新建文件进行加密。这个行为是符合设计意图的,并非缺陷。

 

4、请勿设置 ‘针对全盘范围对常见的文件类型进行落地加密’ 这种过于宽松的规则。
比如:全盘范围,新建 *.png 类型文件进行加密。很多软件后台默认行为可能会随时产生*.txt、*.jpg、*.png等常见文件类型的临时文件,这个过程用户如果不借助专业的工具是无法察觉的,如果借助ProcMon则一目了然。如果对这些后台行为产生的文件落地加密,则可能导致软件工作不正常的问题。所以请勿设置过于宽泛的规则。如果由于宽泛的规则导致某个软件使用的文件被加密了,可以使用本地加密文件扫描工具扫描并解密。

 

5、某些软件下载接收文件时,在完成前,文件后缀可能并非是实际后缀。
相信很多人都注意到这个现象,比如某个软件下载一个 *.mp4 文件,在下载过程中即创建一个新的文件用来接收数据流,但是这个新的文件类型可能并非 *.mp4,有可能是 *.mp4.xltmp,针对这种场景,需要设置正确的文件类型。

Ping32文档加密审批流程详解

文档加密软件为企业提供了高强度的数据防泄漏解决方案,在企业体验文档加密软件提供的安全稳定的保护同时,良好的交互性也是企业非常看重的一点,因为企业产生的数据并不仅仅存在于企业内部,有很多情况下公司的密文需要解密后外发,如果直接给与用户自行解密的权限,那么将会面临严重的数据安全问题,为了应对这个问题,Ping32文档加密也内置了更人性化的文件解密审批流程。

文档加密

审批流程权限设定
管理员可以赋予终端用户发起文件解密审批的权限,用户的在拥有此权限后即可发起文件解密审批。之后与流程相关的功能也需要管理员预先设定。对流程进行环节、审批人的设定,此时一个完整的流程审批才完成。
环节、审批人设定
终端提交的审批流程需要走哪些环节才能完成,这是需要预先设定的操作,一些组织架构简单的公司可以设定单一的环节,相反可以为了公司需要设定相对复杂的环境来保证审批的合规性。
此外每个环节中的审批人员同样需要设定,每个环节需要哪些用户审批,由单个人员还是多个人员来完成依然如此,因此Ping32文档加密提供了会签、或签多种审批方式,满足不同场景下的需求。
手机APP审批
此功能与PC审批流程核心功能基本一致,由于现在移动办公的普及,加密软件提供手机端的审批已经是趋势。
审批人员的操作日志
为了防止审批人员权限过大,Ping32文档加密提供了审批人员操作日志来对审批人员的权限进行追溯,防止发生非法操作。

客户端本地加密文件扫描组件(3.7.57)

正如之前的文章提到的那样,从3.7.57开始,客户端引入了一个本地加密文件扫描组件。通过此组件,你可以扫描本地磁盘上的被Ping32加密过的文档,效果请看截图。

使用方法
使用此功能,指定的终端必须开启了加密授权,同时加密策略中必须开启允许使用加密文件扫描工具。

满足上述条件后,客户端可以右击托盘图标,选择文档安全管理,点击扫描加密文件菜单。

扫描模式分为:全盘扫描和高级扫描。顾名思义,全盘扫描即意味着加密扫描工具会扫描本地所有磁盘上的文件,扫描进度取决于计算机性能,通常来说和磁盘类型和文件数量相关。如果扫描的是传统机械硬盘,那么可能需要较长时间才能完成扫描。如果你只想扫描指定的位置,可以点击高级扫描按钮,通过高级扫描,你可以只扫描指定位置的文件以及设定要扫描的文件类型。

此外,通过策略配置,管理员还可以设定是否允许终端直接解密扫描到的加密文件或者发起解密申请。

典型应用场景
在调试某种授权软件规则时,可能不可避免地会导致某些不相关的内部文件类型被加密。这些文件可能分散在一些不是显而易见的位置,比如:%AppData%、%ProgramFiles%的某些子目录里。如果想要快速找到这些加密文件并进行解密,那么则可以借助加密文件扫描组件。

请告知我们你需要的更多特性
我们始终高度重视用户的建议反馈,如果你在使用此组件的过程中有其他需求或者建议,请和我们反馈,我们期待和你进行沟通。

Ping32技术内幕:如何开发一个文档透明加密软件?

如需转载到其他平台,请联系我们取得授权,违者将严肃追究法律责任。

 

我于2008年进入安全行业,从事Windows方向的C\C++的底层研发工作。虽然那时Windows进入寻常百姓家,进入企业领域已有10年的光景,但是整体来说,技术资料和今天比还是相当匮乏,开源生态也不如今天这么完善。举个简单的例子就是做API HOOK用的微软官方的Detours库只开源了x86指令集的版本,x64版本售价9999美元,然而时至今日,Detours的x86,x64,ARM版本全部开源。过去十多年,我始终奋斗在研发一线,一路走来给我的感觉就是,解决一个技术难题越来越容易了。我时常在想,是什么造就了这种差异。答案显而易见,就是开源生态的发展,以及开发者的分享奉献精神。因此,我一直在评估是否有可能将Ping32文档加密的一些核心技术也开放出来,可能是开源的方式,亦或是技术分享的方式。

 

将一款商用产品的核心技术进行开放,这个想法不可谓不大胆。但是深思熟虑后,我们的立场很简单:数据安全用到的技术往往具备“冷、偏、难”的特点,这就导致鲜有企业有足够的技术积累,可以进入这个领域并孵化产品。结果就是市场无法良性健康发展,技术无法迭代升级。

 

随着《数据安全法》的颁布,以及Ping32新一代文档透明加密产品的发布,我想时机终于成熟了:我会将Ping32第一代文档加密产品的技术细节进行分享。虽然这并非完全的代码开源,但是涉及到的技术细节是立论严谨,经过工程实现检验的。这对于有意从事文档透明加密产品研究的团队来说,只要达到要求的知识储备,都可以在短期内实现一个具备商用价值的,从底层核心到上层权限管控的具备商用价值的透明加密产品,比如:图纸加密、文档加密、数据防泄漏、文档安全管理产品等。

 

Ping32第一代文档透明加密方案是基于应用层的HOOK技术实现的,在过去近十年的迭代发展过程中,积累了大量用户案例,稳定性得到了充分的验证。部分人聊到透明加密产品,言必谈论驱动层的方案如何更优。考虑商业场景应用的稳定性等因素,我依然认为应用层的透明加解密方案仍具极大的研究空间。此外,纵观目前国内做透明加密的厂商,大多数商用场景稳定的产品,透明加解密的核心逻辑依然是应用层方案,只不过辅以文件微过滤驱动实现小部分管控逻辑。

 

需要具备的知识储备

1.精通Windows平台下的C\C++开发,熟悉常见的数据结构和算法;
2.熟悉网络架构,了解各层的协议细节及应用场景,以及具备编写网络流量过滤器的能力;
3.精通Windows架构体系,了解Windows XP – Windows 10的架构变迁;
4.熟读《Windows核心编程》,读过《深入解析Windows操作系统》尤佳。
5.熟悉WinDbg,IDA,ProcExp,ProcMon等高级调试工具的使用。

总结就是扎实的操作系统、网络、软件调试理论基础。

 

分享内容涵盖以下主题,将定期以博客的形式更新到官网,敬请关注

1、需要“透明”处理的操作、属性有哪些?
2、生成文件内核对象句柄的途径有哪些以及应该如何处理?
3、文件大小的透明化处理;
4、文件指针的透明化处理;
5、其他属性的透明化处理;
6、Windows API 还是 Windows Native API;
7、内存映射文件的处理;
8、进程注入的艺术;
9、邮件白名单与透明解密网关的实现;
10、屏幕水印、打印水印、防截屏的实现;
11、剪切板、OLE等其他细节的处理;
12、不同文件系统的差异化处理;
13、优点与不足之处;

 

如果你对其他技术细节也感兴趣,也可以和我们取得联系。

Ping32文档加密软件规则配置教程

用户想要对终端上的一些编辑软件生成的文件进行加解密策略,则需要对终端此款软件进行加密规则设置。首先需要先添加授权软件,对授权软件设置加密规则,然后再对终端下发加密策略。

1. 添加授权软件
点击主菜单授权软件功能按钮,可以打开授权软件列表,系统内置多种类型授权软件,包括办公软件、编程开发、浏览器、图形图像、其他等类型。

点击页面左上角添加按钮,自定义添加授权软件,填写软件名称、类型、描述信息,支持点击名称后面图标按钮添加软件图标。(以新增XMind软件为例)

再点击授权软件页面左上角“+”按钮,添加授权软件进程及加密规则。选择常规设置标签,填写软件的进程名称、描述、验证模式和操作系统。(XMind软件,只有一个xmind.exe进程,有些其他软件可能会有多个可执行文件,同时需要把软件的其他可执行文件都找到。)

选择加密规则标签,点击添加按钮,添加加解密规则。规则可以选择为加密/解密或忽略,支持通配符和正则表达式类型填写规则(规则为文件格式)。(这里通过XMind生成的文件只有.xmind类型文件。而有些软件背后的行为可能不如用户眼前所见,比如world,他生成一个docx文档时,是先生成一个tmp文件,将数据先保存在tmp中,然后再重命名为docx,所以只配置docx加密规则是不生效的,还需要配置tmp的规则)。用户可以通过ProcMon来观察一个进程访问文件的行为。

若添加了多条规则,可以对已建规则进行上移或下移操作,终端将按规则顺序前后自上而下依次执行加密规则。
点击主菜单授权软件功能按钮,可以双击已有授权软件,进行规则调试,添加新规则或删除规则,比如双击 XMind 8 Update 9 软件,进入XMind授权软件页面。

双击已有进程规则,可以进入加密规则调试已建规则。也可以点击“+”或“-”按钮,新建或删除规则。
点击右侧红框内按钮,可以在后缀名窗口中添加该软件能生成的所有类型文件。

2. 开启加密策略
点击主菜单加密策略功能,弹出策略设置页面,选择常规设置标签,填写策略名称,选择生效终端、生效时间,支持此定义精确时间点。

选择授权软件标签,系统展示已添加的所有类型的授权软件,用户可以直接勾选需要设置文件加密的授权软件。

设置之后,点击应用按钮,将策略下发到终端。

Ping32文档透明加密软件基础概念

什么是文档透明加密?

透明加密是指,一个软件创建文件时,文件自动加密;打开文件时,文件自动解密。透明的意思是,用户是感知不到整个过程的。但是注意:这个文件在磁盘上真实状态是被加密的,验证方法就是,把这个文件拷贝到U盘带走,外部是无法解密打不开的;或者,把这个软件通过QQ、微信发送出去,外部也是没办法打开。

阅读更多

想要限制员工所有的外发途径都需要审批,这个如何实现?

对于绝大多数的生产型、设计型企业而言,内部的研发数据、设计图纸等于企业发展来讲是至关重要的,这部分资产一旦被恶意利用,将会给企业信息安全带来不可逆的严重影响。 阅读更多

Ping32文档加密的四大优势

信息化办公时代,数据安全越来越受到企业的重视 阅读更多

Ping32:企业信息保安系统

信息化办公时代,企业内部的专有信息需要通过合理的方式建立专属防线,来抵御内部信息泄密的风险。 阅读更多