陈斯迅
(中国石油管道公司 科技信息处,河北 廊坊 065000)
在信息化高度发展的时代,网络打印机在人们的生活和办公中成为了经常使用的电子设备,但随着越来越多的打印机连接到互联网上,作为一个提供服务的电子设备,打印机本身也受到各种信息安全威胁。本文主要分析了网络打印机可能存在的信息安全隐患,并提出了相关的防护措施。
打印机面临着多个方面的信息安全隐患,根据信息安全的基本3要素(保密性、完整性、可用性),主要存在以下几方面的隐患。
打印机面临的最大信息安全威胁来自于保密性。作为必须要打印的文档,通常都会涉及涉密信息,对于公用打印机来说,打印文档时被其他人员偷看是一个常见的泄密途径,而对于网络打印机而言,打印文档的同时会把文档的信息缓存在打印机内部,而通过远程窃取打印机内部打印文件成为网络打印机面临的一大威胁。
打印文档的目的是把存储在电脑上面的电子文档内容完整打印出来,而如果入侵者使打印的纸质文件的内容和原本的电子文档内容不一致,则会破坏信息的完整性。一方面,如果篡改了重要文件并没被发现,会造成不可预测的损失,另一方面,入侵者通过操控大规模打印机打印出对社会产生危害的言论,也会对企业造成严重的负面影响。
打印机可用性遭到破坏所造成的损失在这三种要素中是最小的,但是也是经常会面临的,因为对于一个入侵者来说,使打印机不能工作显然要比窃取信息或篡改信息要容易的多,而打印机经常出现故障也会浪费使用者的时间。
作业控制语言一般用于管理置纸托盘和纸张数量等打印机设置状态,其中比较标准的作业控制语言则是PJL、PCL。从安全角度来说,PJL更实用,因为它不仅能应用于当前任务,还能做出一些参数设置,如打印显示或读写状态等。
页面描述语言(PDL)是一种面向输出效应的语言,用于描述打印或照排的版面,不仅具有版面描述功能,还具有计算机设计的特点,即可处理文字,又可处理图象,各种软件在排版和图形处理之后形成PDL形式,就可汇总在一页上输出。PS(PostScript)语言是一种标准的PDL语言。PostScript是基于堆栈的图灵完备编程语言,它包含400多种指令和操作符,从安全角度来说,这些指令和操作符可以被攻击利用,入侵控制了PostScript解释器就能实现代码执行等恶意操作。
打印设备通常支持的协议有:互联网打印协议(IPP)、行式打印后台程序(LPD)、SMB协议和9100原始端口打印协议。这些协议都各有特点,如打印作业队列管理或报告等。
互联网打印协议IPP(Internet Printing Protocol)是一个在互联网上打印的标准网络协议,用户可以通过互联网远程进行打印及管理打印。用户可以通过相关界面来控制打印品使用的纸张种类、分辨率等各种参数。当使用IPP来进行远程打印时一般将一台电脑作为打印机服务器,而远程电脑可通过访问打印机服务器来进行远程打印。通过9100原始端口进行打印一般是通过网络直接连接打印机进行打印,使用者在控制面板中通过添加网络打印机,并使用网络打印机时正是使用的该协议。
打印机通常都有一个管理页面,通过Web服务的方式来方便用户进行操作,这些操作可以代替在打印机上使用按钮的操作,用来设置打印机的纸张、色彩等各种参数,也可以用来设置打印机的网络配置,当然也会通过Telnet命令行的方式来提供用户管理入口。
Snmp网络协议用来管理诸如打印机、路由器、服务器等各种网络设备的基本网络通信协议,使用它们还可以检索设备名称和状态,通常在电脑上添加新的网络打印机时,使用的就是这个协议。
HTTP协议本身就是一个明文协议,入侵者通过在打印机和需要打印文档的电脑之间捕捉数据。虽然HTTP协议通常用来设置打印机的参数,类似于打印机的使用纸张大小、颜色等数值,窃取这些信息并没有太大的价值,但是一些打印机如HP color laserjet 5000系列,提供了通过HTTP进行打印的界面,当用户通过HTTP页面进行打印时,打印的文档就存在被窃取的风险。另外,IPP协议是建立在HTTP协议之上的,使用该协议打印时会面临同样的风险。
当然,现在绝大多数打印机都会提供HTTPS协议,一般都会有强制使用HTTPS协议的设置,从而在远程操作的电脑和打印机之间就可以进行密文传输,大大提升了安全性。但是,HTTPS协议所面临的信息安全漏洞在打印机上也存在,最典型的“受戒礼漏洞”“疯怪漏洞”,都是使用了已被证实不安全的加密算法,这些漏洞在打印机中是普遍存在的。
使用HTTP协议访问打印机Web页面时,打印机默认是没有用户名和密码的,这是非常危险的。当打印机连网之后,除了打印机管理员之外,其他的任何用户都有可能访问打印机,虽然打印机的Web页面里不一定能发现打印文档的缓存信息,但是对打印机进行任意的设置也会破坏其可用性。
Telnet协议是用来进行远程管理打印机的另一常见协议,Telnet和HTTP一样存在明文传输的问题,而且打印机的Telnet访问同样是默认不设置用户密码。
Snmp协议的默认团体名(相当于口令)是Public,通过Snmp协议可以在远程读取打印机的相关信息。另外,通过使用Snmpset命令和PJL语言可以使打印机恢复出厂设置,相关命令如下。
该协议使用的TCP端口号为9100,作为人们最经常使用的打印协议,都是通过该协议打印文档,其面临的信息安全风险也最多。
通过远程访问打印机,一些非法用户可以通过打印机打印一些用户不希望看到的信息。例如,根据softpedia.news网站报道,一名黑客入侵了上千台网络打印机,并使其打印出带有种族主义及反犹太人等信息的内容。在编制完成一份关于美国和澳大利亚缺乏防护及对外开放端口的打印机统计列表之后,他编写了一个简单的bash脚本,其作用是通过网络连接到打印机的9100端口,然后发送一个PostScript文件,而这个文件中包含有危害社会的言论,而在大多数打印机中默认行为就是把这个文件打印出来。具体的bash脚本如下。
通过打印机工具PRET可以通过9100端口访问打印机系统。目前,打印机支持的语言主要包括PJL、PCL、PostScript,以PJL语言为例,访问IP地址为192.168.1.1的打印机,通过命令pret.py 192.168.1.1 pjl,可以进入打印机系统,同时选择相应命令。以HP激光打印机为例,可以用以下PJL代码获取当前打印任务信息。
@PJL SET HOLD=ON
另外,在进入打印机系统后,可以通过打印机PJL语言等命令的形式对打印机进行任意操作,会对打印机的可用性造成破坏,例如,可以通过Delete命令删除文件,通过Reset或者Restart命令可以对打印机恢复出厂设置或者重新启动。
网络打印机作为一个企业、家庭普遍使用的网络产品,面临着诸多信息安全风险。由于其自身特点决定了打印机一般作为个人专用或者是几个人使用的设备,对于一台网络打印机来说,合法用户通常不会超过10人,通常会将打印机部署在办公内网或者家庭网络中,但可以访问打印机的潜在人员的数量往往远大于合法用户。由于无线网在家庭网络中普及,在无线网络中的打印机会遭受无线网络信息威胁,而对于企业中使用打印机,尤其在一些大型企业中,使用同一个企业内网的人数往往超过10万人,对网络打印机的威胁也会随人数的增加而变大。为了规避风险,企业和个人用户可以及时更新厂商的补丁或是升级系统的最新版本,但是有很多风险并不能通过升级系统来规避,所以有必要在使用打印机之前做好相关的安全配置。
和任何的连网设备一样,网络打印机也需要设置用户名密码,防止非法用户对打印机设置进行破坏。打印机密码包括HTTP(包括HTTPS)密码和Telnet密码,通常这些用户名密码只设置一个,其他都会同步修改成相同的。
网络打印机会启动很多网络协议,有的协议在具体的使用情景中是用不到的,根据信息安全的最小化原则,用户应该关闭这些协议。Telnet协议的功能可以由HTTP所替代,通常可以关闭,而HTTP协议也可以由HTTPS所替代。Snmp协议在电脑上添加打印机时需要用到,办公电脑需要通过Snmp协议获取打印机信息,而在具体打印文档时并不使用Snmp协议,如果使用Snmp协议应该修改默认团体名Public,或者所有合法用户在自己的机器上添加了打印机后,关闭Snmp协议。
对应HTTPS协议的相关漏洞如“受戒礼”“疯怪”等,一般使用了不安全的加密算法如RC4,或者是使用了位数较低的密钥。在一些打印机中,用户可以对加密强度进行设置,可以选用最高等级的加密算法来屏蔽这些漏洞。
网络打印机的IP地址设置和办公电脑的设置是一样的,通常需要设置本机IP地址、子网掩码和默认网关,但是和办公电脑不同的是,打印机本身一般不需要上网,而且通常只被一个部门的人员使用,而一个部门的人员的IP地址一般只在一个Vlan内,不需要通过路由器就可以访问。所以设置打印机默认网关时可以不设置或者设置为本身的IP地址,这样就可以使打印机只能被本机Vlan中的IP地址访问,可以减少被非法入侵的威胁。
网络打印机通常会有一个访问控制列表,用户可以在列表上保存需要使用打印机的合法用户的IP地址,只有这些地址可以访问网络打印机,从而禁止了大部分的网络威胁。当然,用户需要确保这些访问控制列表中的IP地址对应的电脑不被入侵者控制。
本文对网络打印机常见的信息安全隐患和解决措施进行了分析。网络打印机作为一个普遍使用的设备,对其进行安全防护往往难以由企业的信息安全人员进行统一维护,通常都是由使用者进行维护,而打印机的使用者对打印机的具体知识往往并不十分了解,更缺乏信息安全方面的基本概念,这正是网络打印机信息安全方面存在的最大问题。为了确保网络打印机安全,组织和企业内部有必要加强培训和宣传,使一般使用人员掌握最简单的信息安全操作(例如设置密码和白名单)是信息安全工作的重要组成部分。