FileLock 驱动加密
1. 它到底是什么?
FileLock 是一个内核驱动文件 (通常命名为 FileLock.sys),安装在 C:\Windows\System32\drivers 目录下。
它的角色是:在操作系统的最底层(内核层)拦截所有程序对文件的读写操作,并自动判断"要不要加解密"。
- 不是独立软件:它不是你在网上看到的那种"文件夹加密锁"小工具,而是企业级 DLP 客户端的一个核心驱动模块。
- 工作层级极低:它比任何应用程序(如 Word、记事本)都更底层。应用程序发出的"打开文件"指令,会先经过 FileLock 驱动,然后才到达真正的硬盘文件。
2. 它是如何实现"透明加解密"的?
这正是它实现"透明"的关键。当你在受保护的电脑上操作文件时,背后是这样一套流程:
第一步:判断进程名
FileLock 驱动内部维护了一个"加密进程白名单",比如 notepad.exe、winword.exe、explorer.exe 等。
- 当
notepad.exe试图打开文件 → 进入加密流程 - 当
hack.exe(非白名单进程)试图打开文件 → 不提供解密服务,读出来就是乱码
第二步:判断扩展名
在进程白名单的基础上,驱动还会检查文件的扩展名,比如 .docx、.xlsx、.pdf 等。
- 只有进程在白名单内 且 扩展名在加密列表中,驱动才会执行加解密操作。
第三步:拦截并处理
- 读文件时(自动解密) :驱动拦截
ReadFile操作,读取硬盘上的密文 → 解密 → 把明文返回给notepad.exe。用户看到的是正常内容。 - 写文件时(自动加密) :驱动拦截
WriteFile操作,把notepad.exe传来的明文 → 加密 → 写入硬盘存成密文。
整个过程用户毫无感知,应用程序也毫不知情,这就是"透明"的来源。
3. 这种技术的核心特点
| 维度 | 说明 |
|---|---|
| 实现位置 | Windows 内核层(驱动),比 Ring 3 应用层更底层、更难绕过 |
| 管控粒度 | 进程名 + 文件扩展名 |
| 拦截技术 | Hook 文件系统相关 API(如 CreateFile、ReadFile、WriteFile) |
| 对用户影响 | 完全透明,无感知 |
| 安全性 | 较高。普通用户无法轻易关闭或绕过,因为驱动在系统启动时就会加载 |
| 潜在风险 | 如果仅依赖进程名判断,攻击者可能通过改程序名绕过(如把恶意程序改名为 winrar.exe) |
4. 一个真实的例子
以某款 DLP 产品(易赛通)为例,其驱动程序就是 FileLock.sys。有人研究后发现,它判断是否加密的逻辑是:
只有"特定进程"操作"特定扩展名"的文件时才加解密
基于这个发现,就出现了一种绕过方法:
- 把自己的程序改名为
winrar.exe(进入白名单) - 用这个程序读取被加密的文件 → 驱动自动解密,拿到明文数据
- 把明文数据另存为
.temp文件(不在加密扩展名列表中)→ 驱动不加密 - 解密完成
这也说明,仅依赖进程名+扩展名的驱动加密,并非绝对安全。更高级的产品会结合进程路径、签名、行为分析等多种手段。
5. 总结
| 概念 | 关系 |
|---|---|
| 透明加解密 | 一种能力/效果(用户无感知,自动加密) |
| FileLock 驱动 | 实现这种能力的一种技术手段(内核驱动拦截文件操作) |
所以当你再听到"FileLock 驱动加密"时,可以理解为:DLP 产品通过一个叫 FileLock.sys 的内核驱动,在系统底层拦截文件读写操作,从而实现透明加解密的效果。
如果你还想了解驱动加密与其他加密方式(如应用层加密、磁盘加密)的区别,或者想知道现代 DLP 如何解决"改名绕过"这类问题,可以继续问我。