一种Windows环境下打印审计的方法
技术领域
本发明属于计算机系统安全管理技术领域,特别涉及一种Windows环境下打印审计的方法。
背景技术
目前,打印设备已广泛应用于办公环境中,为人们带来方便的同时也提高了保密信息泄露的风险度。在现有技术中,监控打印行为主要有两种方法:一种是在打印计算机上安装代理程序,利用打印池监控API接口来获取打印数据;另一种是部署一台监控服务器,在服务器中安装监控程序,所有的打印机都与监控服务器进行连接,这样一来,所有的打印数据都会流经汇总到监控服务器,实现对打印行为的监控。
第一种方法能够监控打印行为,获取打印数据包括:文档名称、文档大小、文档页数等。其不足之处在于无法获取打印的文件名称、无法备份打印内容。
第二种方法对第一种方法有所改善,除了获取第一种方法的打印数据外,还可以实现备份打印内容。其不足之处在于必须调整打印机连接部署方式,让所有的打印机都和监控服务器连接。对于规模比较大或者比较分散的办公网络来说,采用这种方法具体操作非常困难。
综上所述,在现有技术中,需要调整打印机连接部署方式来实现监控打印机的打印行为并获取打印审计信息。在此种情况下,无法在大规模或是较为分散的网络环境中实现监控行为,无法真实、完整的获取打印审计信息。因此,需要找到一种方法,能够在不调整打印机连接部署方式的情况下,真实、准确地获取完整的打印审计信息,同时,还能够实现备份打印内容机制。
发明内容
本发明主要解决的技术问题是:提供一种Windows环境下打印审计的方法,该方法在不调整打印机连接部署方式的情况下,能够监控打印行为,全面审计打印文件,完整地记录审计信息,包括:打印机名称、打印进程名称、打印机IP地址、文件名称、文件路径、文件类型、文件大小、打印页数、打印份数、文件所在的计算机IP地址,并且还能够实现备份打印文件。
为解决上述技术问题,本发明采用如下技术方案:
一种Windows环境下打印审计的方法,包含以下步骤:
a.打印过滤:在用户通过应用程序发起打印操作后,获取打印操作所携带的上下文信息;根据该上下文信息得到打印作业的基本信息;将所述上下文信息和打印作业的基本信息存储在内存中;
所述上下文信息包括:打印作业ID、文档名称;
所述打印作业的基本信息包括:打印作业ID、文档名称、打印机名称、打印进程名称;
b.打印分析:通过分析打印作业的基本信息中的文档名称获取文件名称、文件路径,将文件名称、文件路径存储在内存中;
c.获取打印份数:
根据打印作业的打印进程名称进行判断,如果该打印作业的打印进程名称是微软的字处理软件,则枚举打印池中所有的打印作业,获取与打印作业ID相同的打印作业的打印份数;如果该打印作业的打印进程名称不是微软字处理软件,则利用API挂钩捕获应用程序设置打印作业属性的操作,从打印作业属性中获取打印份数;
将打印份数存储在内存中;
d.获取打印页数:利用API挂钩捕获应用程序绘制打印作业的操作,获取打印页数,将打印页数存储在内存中;
e.获取打印机IP地址、文件类型、文件大小和文件所在的计算机IP地址:
通过打印机名称解析出打印机IP地址并存储在内存中;
通过文件名称、文件路径获取文件类型、文件大小、文件所在的计算机IP地址并存储在内存中;
f.生成审计数据:汇总步骤a至步骤e存储在内存中的信息,生成审计数据;
所述审计数据包括:打印机名称、打印进程名称、打印机IP地址、文件名称、文件路径、文件类型、文件大小、打印页数、打印份数、文件所在的计算机IP地址;
g.备份打印文件:
生成备份文件名称:备份文件名称由三部分构成:第一部分是计算机名称,第二部分是当前时间,第三部分是文件名称;
将打印文件拷贝到临时目录中,以备份文件名称命名。
在所述步骤b中,通过分析打印作业的文档名称获取文件名称、文件路径;进一步包括以下步骤:
b1.用户在打印文件时,应用程序首先打开该文件并将该文件中的内容读取到内存中,获取所述应用程序启动以来打开的所有文件,生成打开文件列表,将打开文件列表中的每个文件与打印作业的文档名称匹配,如果匹配成功,则跳到步骤b4;如果匹配失败,则继续执行步骤b2;
b2.获取所述应用程序的句柄表,将句柄表中的每个条目与打印作业的文档名称匹配,如果匹配成功,则跳到步骤b4;如果匹配失败,则继续执行步骤b3;
b3.获取“最近打开的文档”文件夹中的所有快捷方式名称,将每个快捷方式名称与打印作业的文档名称匹配,如果匹配成功,则继续执行步骤b4;如果匹配失败,结束;
b4.得到该打印作业的文件名称、文件路径。
本发明的有益效果在于:本发明的Windows环境下实现打印审计的方法,可针对不同的网络环境,在不调整打印机连接部署方式的情况下,实现对打印文件的全面审计,何时哪台计算机执行了打印操作,打印了哪种类型的文件等,完整地记录文件属性,并且能够将所打印的文件进行备份,有效地防止机密信息通过打印方式泄漏和扩散。
附图说明
图1是本发明的打印审计的方法的流程图;
图2是本发明的打印审计的方法的步骤b的流程图;
图3是本发明的实施例的打印审计系统的结构示意图。
具体实施方式
下面将结合附图及实例,对本发明做进一步详细描述。
本发明提供了一种Windows环境下打印审计的方法,其应用场景为局域网环境,如图3所示,该局域网包括控制台计算机301、客户端计算机302、打印服务器303和公共打印设备,该公共打印设备为一台普通的打印机304,客户端计算机302的操作系统为Windows操作系统,通过客户端计算机302监控打印行为来获取打印审计数据,在控制台计算机301上显示审计数据,从而实现打印审计。
例如,客户端计算机302的计算机名称为APC、IP地址为192.168.0.85,打印机名称为HP P2055D、IP地址为192.168.0.88,用户通过客户端计算机302,使用Word应用程序打开一个文件路径为C:\用户\Administrator\桌面、文档名称为“新年贺词”、文件类型为.doc、大小为200k、页数为5页的文件。对文件名称为“新年贺词.doc”的文件执行打印整个文档的操作,设置打印份数为10份。
如图1所示,本发明的打印审计的方法的具体工作步骤如下:
a.打印过滤101:在客户端计算机302上,通过Word应用程序发起打印操作,打印文件名称为“新年贺词.doc”的文件,先获取该打印操作所携带的上下文信息,包括:打印作业ID2、文档名称“新年贺词”;根据该上下文信息得到打印作业的基本信息,包括:打印作业ID2、文档名称“新年贺词”、打印机名称HP P2055D、打印进程名称WINWORD.exe;将所述上下文信息和所述打印作业的基本信息存储在内存中;
b.打印分析102:通过分析打印作业的基本信息中的文档名称“新年贺词”获取文件名称、文件路径,如图2所示,分析获取文件名称、文件路径的具体步骤如下:
步骤201:用户在打印文件名称为“新年贺词.doc”的文件时,WORD应用程序首先打开该文件,并将该文件中的内容读取到内存中,获取WORD应用程序启动以来打开的所有文件,生成打开文件列表,将打开文件列表中的每个文件与该打印作业的文档名称“新年贺词”匹配;如果匹配成功,则跳到步骤204;如果匹配失败,则继续执行步骤202;
步骤202:获取WORD应用程序的句柄表,将句柄表中的每个条目与该打印作业的文档名称“新年贺词”匹配;如果匹配成功,则跳到步骤204;如果匹配失败,则继续执行步骤203;
步骤203:获取“最近打开的文档”文件夹中的所有快捷方式名称,将每个快捷方式名称与该打印作业的文档名称“新年贺词”匹配;如果匹配成功,则继续执行步骤204;如果匹配失败,则跳到步骤c;
步骤204:得到该打印作业的文件名称“新年贺词.doc”、文件路径C:\用户\Administrator\桌面;
c.获取打印份数103:根据该打印作业的打印进程名称WINWORD.exe进行判断,该打印作业的打印进程名称是微软的字处理软件;通过枚举打印池中所有的打印作业,获取与该打印作业ID2相同的打印作业的打印份数,将获取到的打印份数10份作为审计信息中的打印份数;
d.获取打印页数104:利用API挂钩捕获WORD应用程序绘制打印作业的操作,获取到打印页数5页;
e.获取打印机IP地址、文件类型、文件大小和文件所在的计算机IP地址105:
通过打印机名称HP P2055D解析出打印机IP地址为192.168.0.88;通过文件名称“新年贺词.doc”、文件路径C:\用户\Administrator\桌面获取到文件类型为.doc、文件大小为200k、文件所在的计算机IP地址为192.168.0.85;将所述打印机IP地址、文件类型、文件大小、文件所在的计算机IP地址存储在内存中;
f.生成审计数据106:汇总步骤a至步骤e存储在内存中的信息,生成审计数据;
所述审计数据包括:打印机名称HP P2055D、打印进程名称WINWORD.exe、打印机IP地址192.168.0.88、文件名称“新年贺词.doc”、文件路径C:\用户\Administrator\桌面、文件类型.doc、文件大小200k、打印页数5页、打印份数10份、文件所在的计算机IP地址192.168.0.85;
g.备份打印文件107:
生成备份文件名称:APC_2012-02-20-13-15-40-新年贺词.doc;
将打印文件拷贝到临时目录中,以备份文件名称APC_2012-02-20-13-15-40-新年贺词.doc命名。
客户端计算机302通过TCP协议将监控打印行为获得的审计数据和备份的打印文件APC_2012-02-20-13-15-40-新年贺词.doc发送至控制台计算机301,在控制台计算机301上显示审计数据,从而实现对打印操作的审计。
本发明的方法也可监控打印其他格式的打印文件,例如EXCEL、PPT、PDF、TXT、JNT等文本文件和JPG、TIF、PNG等各种图片格式文件,以及CAD、CAXA等各种图形格式文件,等等。