国内很多的xxxx单位都需要过安全资质的,有了相应的资质才有资格接安全项目,所以很多白皮书上都有打印机审计,于是催生了下游公司增加这种功能,不过很多只是有这个打印机审计功能,在实际使用的时候又有多少家会真正用这个功能?

目前很多的打印机监控产品或者功能都放在了终端安全产品里了,也就是通常在windows/linux PC上完成,Android需要定制ROM,和手机厂商不是铁兄弟一般是做不了的,MAC就不要想了.

通常的做法有两种,一种是应用层的hook,另外一种是内核的hook.

目前打印机通常是cups,它的实现架构如下,原图:

应用层的hook需要修改打印机守护程序,将任务的转发接口给hook住,通常应用层hook的方法就是封装新库,设置成pre load方式优先链接符号到修改库中.这种方式比较简单,但是cups也是不停地发展,需要适配各个版本的cups程序接口.

另一种是内核的hook,应用程序和打印后台程序总是需要通信的,目前默认/var/run/cups/cups.sock还有127.0.0.1:631,后者还好说,使用tcpdump来抓包,前者是unix套接字,高版本内核上的基于ebpf的bcc能够直接抓取,低版本就需要做一点点的编程工作,使用jprobe来完成,下面是一个简单的样本

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/kprobes.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <net/sock.h>
#include <net/af_unix.h>
#include <linux/string.h>
#include <linux/inet.h>
static int unix_mkname(char *unix_path, int len, struct socket *sock, struct msghdr *msg)
{struct sock *peer = NULL;if (msg->msg_namelen) {DECLARE_SOCKADDR(struct sockaddr_un *, sunaddr, msg->msg_name);if (!sunaddr->sun_path[0]) {unix_path[0] = '@';strncpy(unix_path + 1, sunaddr->sun_path + 1, len - 2);} else {strncpy(unix_path, sunaddr->sun_path, len - 1);}} else {if (unix_sk(sock->sk)->addr) {if (!unix_sk(sock->sk)->addr->name->sun_path[0]) {unix_path[0] = '@';strncpy(unix_path + 1, unix_sk(sock->sk)->addr->name->sun_path + 1, len - 2);} else {strncpy(unix_path, unix_sk(sock->sk)->addr->name->sun_path, len - 1);}} else {peer = unix_peer_get(sock->sk);if (peer && unix_sk(peer)->addr) {if (!unix_sk(peer)->addr->name->sun_path[0]) {unix_path[0] = '@';strncpy(unix_path + 1, unix_sk(peer)->addr->name->sun_path + 1, len - 2);} else {strncpy(unix_path, unix_sk(peer)->addr->name->sun_path, len - 1);}}if (peer) sock_put(peer);}}return 0;
}
static int j_unix_stream_sendmsg(struct socket *sock, struct msghdr *msg, size_t len) {struct iov_iter *i = &msg->msg_iter;char unix_path[256] = {0};char *buff = kzalloc(i->iov->iov_len, GFP_ATOMIC);;unix_mkname(unix_path, sizeof(unix_path), sock, msg);copy_from_user(buff, i->iov->iov_base, i->iov->iov_len);
.....kfree(buff);jprobe_return();return 0;
}static struct jprobe jp1 = {.entry            = j_unix_stream_sendmsg,.kp = {.symbol_name   = "unix_stream_sendmsg",},
};
static int __init jprobe_init(void)
{return register_jprobe(jp1);
}
static void __exit jprobe_exit(void)
{unregister_jprobe(jp1);
}
module_init(jprobe_init)
module_exit(jprobe_exit)
MODULE_LICENSE("GPL");

之后需要解析包,这是另外要给话题了。

上面的两种方式都是将PC当做监控对象,而这个活动中有两个对象,操纵者和被操纵者,我们现在只关心操纵者的行为,换个角度,我们可以关心被操纵者的行为。一种方法是和打印机厂商合作,但是打印机厂商众多,意味着你需要和市面上见到的所有厂商都需要做沟通,说服合作,实现这样一个需求会给他们带来销售额的增长吗?

而另一个方法是在PC和打印机中间做监控,通过监控他们之间的流量和数据实现审计的目的。
1.通过网络镜像的方法镜像所有到打印机的流量。目前打印机基本都是通过网络提供服务的,它有自己的ip,一种是在现有的交换机或者路由上做镜像设置,网络流量到一个PC上做数据分析提取;另一种通过在打印机的网线中间增加一个hub进行流量镜像。
2.进行包检测,目前大部分都是HTTP+ipp方式,这种非常容易解析。不过目前已经支持HTTPS方式了,只不过默认没有使用这种方式
相对于传统的PC端包拦截和检测,我更喜欢后一种,对于目前的业务没有什么大的影响更加轻量级。如果有人能做这样一款小产品的话而且物美价廉相信会有中小型公司会喜欢这个,看一下他们的打印纸都跑哪去了

打印机审计产品的一种思路相关推荐

  1. 日志审计产品(转载)

    由于业务需要,在网上粗略整理了一些日志审计系统: 安恒明御 天融信网络卫士 网御神州SecFox-LA Manageengine -Event Analyzer 分类 安恒明御 天融信网络卫士 网御神 ...

  2. 3种思路,快速打破制造业质量追溯困境,成为行业领先企业

    制造业的竞争,归根结底是 生产效率.成本控制 和 管理能力 的竞争.传统制造企业在生产中常常遇到的各种问题:交货紧急.产品返工.进度拖延-就是一颗颗试金石,谁能做好各生产环节的质量把控和追溯,谁就能在 ...

  3. 数据库审计产品购买者指南

    引言 随着信息技术的不断发展,数字信息逐渐成为一种重要资产,尤其是在过去的20多年里,作为信息的主要载体--数据库,其相关应用在数量和重要性方面都取得了巨大的增长.包括政府机构.企事业单位.制造业.商 ...

  4. 2006年四种思路帮你创业

    自主创业与其他投资渠道和理财工具相比,创业在层面上,更多了一重生活方式的含义.创业是一种生活方式,在某种意义上,生活方式也在一定程度改变着创业的思路和方向. 理财市场风起云涌,朝"盈&quo ...

  5. 技术人才的出路在哪里,5种选择和2种思路

    作为一名对技术很感兴趣的技术人,一直在探索自己的出路. 为什么会有这个问题呢? 随便一个懂技术的人,吃饱穿暖太简单了.问题是,稍微厉害一点的技术人,都有自己的野心或志向.  有的,专注技术,成了某个领 ...

  6. 2022年数据库审计产品排行榜-必看!

    目前市面上数据库审计产品比较多,但大家不知道哪款好,不知道排名是怎样,这里就给大家汇总了一下,大家一定要看哦! 2022年数据库审计产品排行榜-必看! 1.行云管家 2.启明星辰 3.绿盟 4.安华金 ...

  7. 平台建设规划的三种思路——互联网平台建设

    互联网平台建设的第04篇文章,主要分享的是保险公司互联网平台建设规划的三种思路. 以下是数字化转型的分享线路图,您现在所在的位置为序号的分享:生态圈建设中,最关键的一部分,载体之平台建设. 以下是正文 ...

  8. 数据库审计产品给用户带来哪些益处?

    本文讲的是数据库审计产品给用户带来哪些益处,1. 满足合规性要求,顺利通过IT审计 目前,越来越多的单位面临一种或者几种合规性要求.比如,在美上市的中国移动集团公司及其下属分子公司就面临SOx法案的合 ...

  9. 数据库审计产品购买指南

    随着信息技术的不断发展,数字信息逐渐成为一种重要资产,尤其是在过去的20多年里,作为信息的主要载体--数据库,其相关应用在数量和重要性方面都取得了巨大的增长.包括政府机构.企事业单位.制造业.商业等在 ...

最新文章

  1. 完美解决Invalid layout of java.lang.String at value问题的方法
  2. MyEclipse10安装SVN插件
  3. [图示]营销理论:不同时代的用户如何接受一个新事物?
  4. 延时消息_手把手实现一条延时消息
  5. Product Distribution chain id F4 value help的实现
  6. ajax乱码解决汇总
  7. 安卓手机关闭底部键盘灯的方法(htc G11亲测有效)
  8. computed用发_Vue中的computed属性和nextTick方法
  9. Shiro(二)通过shiro实现登录 连接数据库+集成Springboot
  10. 华为P50系列旗舰恐延期至5月发布:首发预装鸿蒙系统
  11. java eclipse 入门_Eclipse使用入门教程介绍
  12. Sentinel服务熔断OpenFeign_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0054
  13. 网络工程师之子网划分
  14. 入门必备-经典的分子动力学软件LAMMPS简版手册
  15. vue源码解析-实现
  16. iredmail mysql 密码_iRedMail 批量创建用户 (repost)
  17. Java编写五线谱上的音符_记住五线谱上音符的方法
  18. Linux环境Java给图片加水印中文乱码处理
  19. 中国半导体如何自我救赎
  20. 安葬于西敏寺的英国国教主教的墓志铭:

热门文章

  1. js如何修改对象的padding属性
  2. 民间秘术——可怕的死亡诅咒
  3. Dell Inspiron 5520 笔记本盲刷BIOS
  4. 直播课堂系统,打造出超过线下培训场景200%的在线学习课堂
  5. Python-3:循环-练习
  6. 美国乳品公司试点区块链技术改善食品供应链
  7. 2020年电商设计风格分析
  8. IIC OLED笔记
  9. html标记是否都包含开始和结束,所有HTML标记符都包括开始标记符和结束标记符()...
  10. buuctf 四面八方(四方密码)