2022 年 7 月 17 日 | 暂无评论
EaseFilter File System Filter Driver SDK 是一个内核组件模块,位于 I/O 管理器和文件系统之间的层。 文件系统过滤器驱动程序拦截针对文件系统或另一个文件系统过滤器驱动程序的请求。 通过在请求到达预期目标之前拦截请求,过滤器驱动程序可以扩展或替换请求的原始目标提供的功能。
当用户应用程序调用 Win32 API 访问文件时,过滤驱动程序可以拦截该 I/O,并根据过滤规则设置的策略,将 I/O 信息发送给用户,或根据设置修改/阻止访问,如下图所示。
过滤驱动程序的编程无疑是一项挑战,为了简化您的开发工作,并为您提供一个强大且经过良好测试的文件系统过滤驱动程序,该驱动程序可在微软支持的所有版本和补丁发布的 Windows 操作系统上运行,EaseFilter SDK 为您提供了一个完整的模块化环境,用于在您的应用程序中构建活动文件系统过滤驱动程序。
使用 EaseFilter File Monitor Filter Driver SDK,您可以通过注册感兴趣的事件类型来跟踪文件更改事件,当文件句柄关闭后文件被更改时将发送通知。通过文件更改事件,您可以知道用户名、进程名、文件名和事件类型。
如果您想在创建新文件时收到通知,可以注册事件“NotifyFileWasCreated”。 如果您想在文件写入数据时收到通知,可以注册事件“NotifyFileWasWritten”。 如果您想在文件被移动或重命名时收到通知,您可以注册事件“NotifyFileWasRenamed”。 如果您想在文件被删除时收到通知,可以注册事件“NotifyFileWasDeleted”。 如果您想在文件安全性更改时收到通知,可以注册事件“NotifyFileSecurityWasChanged”。 如果您想在文件信息(文件属性、文件时间、文件大小)更改时收到通知,可以注册事件“NotifyFileInfoWasChanged”。
通过EaseFilter File Monitor Filter Driver SDK,您可以在文件I/O完成并从文件系统返回后获取文件I/O信息。 常见的文件I/O信息包括用户名、进程名、文件名、文件属性、文件大小和I/O返回状态,如果I/O不成功,您将得到错误代码。 对于每种不同类型的文件 I/O,它都有自己特定的 I/O 数据。 对于创建 I/O,来自 CreateFile win32 API,您将获得文件创建选项、创建结果、文件被打开、创建、覆盖或打开失败。 对于读、写I/O,您将知道读或写偏移量、读或写长度、读或写数据以及如果成功则返回读或写长度。 对于查询或设置文件信息I/O,您将知道信息类别和数据。
使用EaseFilter File Control Filter Driver SDK,您可以通过两种方式控制文件I/O,一种是在预定义过滤规则中设置文件控制访问标志,通过访问标志,您可以阻止任何文件I/O O、阻止文件创建、文件打开、文件读取、文件写入、文件更改、文件重命名和文件删除。 使用此选项,您可以根据文件名、用户名或进程名设置控制策略。 该选项的优点是简单高效,缺点是必须预先定义控制策略。
控制文件 I/O 的另一个选项是注册预文件 I/O 回调函数,然后您将在文件 I/O 进入文件系统之前获得回调,在您的回调函数中您可以阻止或传递 此文件 I/O 基于文件 I/O 信息。 此选项的优点是可以动态控制文件 I/O,缺点是性能较慢。
借助 EaseFilter File System Encryption Filter Driver SDK,它为您提供基于访问文件的加密解决方案。 加密过滤驱动程序将加密或解密过程集成在同一个读或写I/O中,它可以显着提高加密性能,而不需要额外的IO。
要使用 EaseFilter Encryption Filter Driver SDK 自动加密文件,您可以在过滤规则中设置主加密密钥,然后可以使用相同的加密密钥和唯一的初始向量加密所有文件。 或者您可以在过滤规则中设置回调函数,然后您可以从回调函数中获取加密密钥和初始向量,通过此选项,您可以为每个文件拥有唯一的加密密钥,您可以设置中央密钥管理 服务。
您可以使用过滤规则策略设置向特定用户或进程授权加密文件访问权限。 您还可以设置过滤规则策略来禁止特定用户或进程读取加密数据,它只会获取原始加密数据,例如备份软件、复制软件,它们需要获取原始加密文件。
对于每个加密文件,文件头都会附加一个标头,您可以将自己的控制元数据放在那里作为数字版权管理。 通过数字版权管理,您可以授权用户或进程读取文件,或阻止未经授权的用户或进程访问您的文件。
以下是使用File Monitor Filter Driver SDK 的示例,演示如何创建文件过滤规则以在文件更改时获取通知事件。 它还演示了如何注册文件 I/O 回调函数。 当文件I/O被触发时,回调函数将被调用。
FilterControl filterControl = new FilterControl();
if (!filterControl.StartFilter(filterType, serviceThreads, connectionTimeOut,licenseKey, ref lastError))
{
Console.WriteLine("Start Filter Service failed with error:" + lastError);
return;
}
//create a file monitor filter rule, every filter
//rule must have the unique watch path.
FileFilter fileMonitorFilter = new FileFilter(watchPath);
//Filter the file change event to monitor all file change events.
fileMonitorFilter.FileChangeEventFilter = (FilterAPI.FileChangedEvents)FilterAPI.NotifyAllFileEvents;
//register the file change callback events.
fileMonitorFilter.NotifyFileWasChanged += NotifyFileChanged;
//Filter the monitor file IO events
fileMonitorFilter.MonitorFileIOEventFilter = (ulong)(MonitorFileIOEvents.OnFileOpen | MonitorFileIOEvents.OnFileRead);
//fileMonitorFilter.OnFileOpen += OnFileOpen;
//fileMonitorFilter.OnFileRead += OnFileRead;
filterControl.AddFilter(fileMonitorFilter);
if (!filterControl.SendConfigSettingsToFilter(ref lastError))
{
Console.WriteLine("SendConfigSettingsToFilter failed." + lastError);
return;
}
Process Monitor SDK
File Security Filter Driver SDK
Using EaseFilter Filter Driver SDK
EEFD Transparent File Encryption SDK
EaseFilter File Access Control SDK
EaseFilter File Access Monitor SDK
Process Control SDK
Registry Protection SDK
自动文件加密演示
文件保护器分步演示
文件监视器分步演示
文件访问控制列表
认证与授权
零信任文件访问安全
黑名单和白名单
网络文件监控和保护器
阻止文件访问 USB 驱动器
设置可信进程权限
使用标头加密文件
随时随地加密文件
跟踪应用程序中的文件更改
如何设置文件访问权限
文件访问过滤规则