一种用于打印服务系统及设备的自动化安全检测方法技术方案

技术编号:36421162 阅读:11 留言:0更新日期:2023-01-20 22:29
本发明专利技术属于漏洞检测的技术领域,公开了一种用于打印服务系统及设备的自动化安全检测方法,包括对打印机设备的固件进行解包处理;对固件解包后得到的文件系统进行分析,定位其中的边界二进制;针对获得的边界二进制进行静态分析,发现其中与设备配置类操作相关的危险控制流;针对发现的危险控制流,使用符号执行技术进行路径探索和约束求解,通过污点分析验证漏洞是否满足触发的条件,最终给出警报。最终给出警报。最终给出警报。

【技术实现步骤摘要】
一种用于打印服务系统及设备的自动化安全检测方法


[0001]本专利技术属于漏洞检测的
,具体涉及一种用于打印服务系统及设备的自动化安全检测方法。

技术介绍

[0002]随着远程办公逐渐成为一种趋势,传统打印机逐渐被网络打印机取代,其携带大量敏感数据并且开放网络服务端口的特点,使其逐渐成为攻击者眼中极具价值的攻击目标。存在安全缺陷的打印机可能受到的攻击危害有:拒绝服务、打印任务控制、信息泄露、任意代码执行等,但针对打印机的安全研究却没有得到充分的重视,还未有专门针对打印服务的自动化安全分析方法。
[0003]为此,本专利技术设计并实现了一套针对打印服务系统及设备的自动化安全检测方法,能够自动化地发现打印机设备固件程序中存在的安全问题。

技术实现思路

[0004]本专利技术提供一种用于打印服务系统及设备的自动化安全检测方法,能够有效地检测出打印机等嵌入式系统固件中存在的缓冲区溢出和命令注入漏洞,提高安全性。
[0005]本专利技术可通过以下技术方案实现:
[0006]一种用于打印服务系统及设备的自动化安全检测方法,包括以下步骤:
[0007]S1,对打印机设备的固件进行解包处理;
[0008]S2,对固件解包后得到的文件系统进行分析,定位其中的边界二进制;
[0009]S3,针对获得的边界二进制进行静态分析,发现其中与设备配置类操作相关的危险控制流;
[0010]S4,针对发现的危险控制流,使用符号执行技术进行路径探索和约束求解,通过污点分析验证漏洞是否满足触发的条件,最终给出警报。
[0011]进一步,把从网络通信数据包中获取的设备配置数据存储起来的函数定义为配置设定函数config_setter,把查找并读取先前存储设备配置数据的函数定义为配置读取函数config_getter,
[0012]建立包含source、sink、config_setter和config_getter函数的函数列表,基于函数调用图,利用静态分析方法,以接收外界数据的source函数为起点,寻找含有sink函数的函数调用路径,过程中会将从source函数到config_setter、从config_getter函数到sink函数的控制流拼接在一起,从而识别出边界二进制中与设备配置类操作相关的控制流即为危险控制流。
[0013]进一步,若所述sink函数的参数为常量字符串,借助Ghidra软件分析工具中SymbolicPropogator类中的成员函数getRegisterValue,计算sink函数的参数对应寄存器的值是否指向常量字符串所在的地址,若是,则认定所述sink函数所在的控制流不是危险控制流。
[0014]进一步,对于危险控制流,对于危险控制流,建立一个包含config_setter函数和config_getter函数调用的虚拟节点,将被数据共享操作中断的两处控制流联系起来,再使用动态符号执行技术进行路径探索和约束求解。
[0015]进一步,采用基于Angr框架的动态符号执行技术,在进行路径探索时,将程序按基本块划分,初始状态下将ip寄存器设置为危险控制流中source调用点所在函数的第一个基本块的地址,然后不断进行单步执行,直至完成所有基本块的探索;
[0016](1)当ip寄存器的内容包含有符号变量时,判断符号变量是否带有污点属性,若是,则将当前函数调用的所有参数都进行污点标记;若否,则直接跳过;
[0017](2)当后继基本块的地址小于等于当前基本块的地址时,则判断此时符号执行过程中遇到了循环结构,再判断循环次数是否达到预设值,若达到,则跳出循环结构,继续下一个基本块探索。
[0018]进一步,通过对通信函数的调用和对协议字符串的引用来识别边界二进制,判断标准设置为对于每个二进制文件,将通信函数调用次数记为nc,将协议字符串引用次数记为ns,初始值都为零,先检查代码段中每个函数调用指令的目的地址,如果调用的函数在规定的通信函数列表中,若有,则nc=nc+1;再检查数据段中的字符串是否在规定的协议字符串中,若有,则ns=ns+协议字符串的交叉引用数;最后根据计算score=(1+kc*nc)*(1+ks*ns),其中kc=3,ks=1,将score值最高的二进制文件作为边界二进制。
[0019]本专利技术有益的技术效果如下:
[0020]采用本专利技术提供的针对打印服务系统及设备的自动化安全检测方法,能够有效地检测出打印机等嵌入式系统固件中存在的缓冲区溢出和命令注入漏洞。与现有的其他分析方法相比,本专利技术创新性地总结了物联网设备在进行设备配置操作时的特点,能够有效处理数据共享函数将安全敏感控制流打断的问题,同时针对网络打印服务的一些特点进行了优化。整个自动化分析过程的时间开销较为合理,能够为漏洞挖掘工作节省大量的人工分析成本。
附图说明
[0021]图1为本专利技术提供的总体流程示意图;
[0022]图2为本专利技术提供的总体结构示意图;
[0023]图3为本专利技术提供的函数调用图的示意图。
具体实施方式
[0024]下面结合附图及较佳实施例详细说明本专利技术的具体实施方式。
[0025]打印机等嵌入式系统除了存在与PC平台上类似的通用类型漏洞,还特别存在一类由设备配置操作(device setting)导致的安全漏洞。在管理和使用物联网设备时,常常需要对设备进行一些参数配置,比如DNS服务器地址的设置、打印服务网络端口号的设置等,正常情况下,系统会使用认证或授权机制对管理设备的用户进行限制,但如果系统接收数据前的认证不充分,并且不安全地使用了攻击者精心构造的设备配置数据,就可能导致命令注入和缓存区溢出等安全问题。
[0026]基于对上述设备配置类漏洞特点的充分总结,本专利技术设计了一套能够对打印服务
系统及设备进行自动化安全分析的技术方案,如图1

2所示,包括如下步骤:
[0027]步骤S1,对打印机设备的固件进行解包处理,可借助Binwalk框架来完成固件解包工作。
[0028]Binwalk是目前广泛使用的固件解包工具,能够扫描固件映像,并识别常见嵌入式文件格式和文件系统,进而提取出固件中的各个文件,供进一步分析使用,可在代码中直接调用“binwalk

Me$firmware”命令,其中
“‑
e”的选项表示自动提取固件中已知的文件类型,
“‑
M”选项表示递归地扫描已提取的文件,这样Binwalk会不断地解包子文件,直到所有文件均被提取出来为止。但Binwalk只支持大部分常见格式的解析,部分固件会采用厂商自定义的格式,因此还需要在Binwalk的基础上进行扩展,以支持对一些特殊固件格式的解析,比如HP的BDL格式的固件、Xerox的DLM格式的固件等。总之,再在进行“固件解包模块”时,首先识别固件的格式是否属于本专利技术支持的特殊格式,如果是,就直接对其进行针对性的解包操作;如果识别失本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于打印服务系统及设备的自动化安全检测方法,其特征在于包括以下步骤:S1,对打印机设备的固件进行解包处理;S2,对固件解包后得到的文件系统进行分析,定位其中的边界二进制;S3,针对获得的边界二进制进行静态分析,发现其中与设备配置类操作相关的危险控制流;S4,针对发现的危险控制流,使用符号执行技术进行路径探索和约束求解,通过污点分析验证漏洞是否满足触发的条件,最终给出警报。2.根据权利要求1所述的用于打印服务系统及设备的自动化安全检测方法,其特征在于:把从网络通信数据包中获取的设备配置数据存储起来的函数定义为配置设定函数config_setter,把查找并读取先前存储设备配置数据的函数定义为配置读取函数config_getter,建立包含source、sink、config_setter和config_getter函数的函数列表,基于函数调用图,利用静态分析方法,以接收外界数据的source函数为起点,寻找含有sink函数的函数调用路径,过程中会将从source函数到config_setter、从config_getter函数到sink函数的控制流拼接在一起,从而识别出边界二进制中与设备配置类操作相关的控制流即为危险控制流。3.根据权利要求2所述的用于打印服务系统及设备的自动化安全检测方法,其特征在于:若所述sink函数的参数为常量字符串,可借助Ghidra软件分析工具中SymbolicPropogator类中的getRegisterValue等成员函数,计算sink函数参数对应寄存器的值是否指向常量字符串所在的地址,若是,则认定所述sink函数所在的控制流不是危险控制流。4.根据权利要求2所述的用于打印服务...

【专利技术属性】
技术研发人员:陆华夏皮伟李公顶
申请(专利权)人:上海旷沃科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1