温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
嵌入式
通信
设备
安全
测试
技术
胡兆华
2023 年 1 月 Jan 2023Digital Technology&Application第 41 卷 第 1 期Vol.41 No.1数字技术与应用213中图分类号:TP311文献标识码:A 文章编号:1007-9416(2023)01-0213-04DOI:10.19695/12-1369.2023.01.65嵌入式通信设备安全测试技术中国电子科技集团公司第三十研究所胡兆华张一嵌入式通信设备的安全漏洞是通信系统受到网络安全威胁的重要原因之一。近年来,基于嵌入式系统的各类产品如雨后春笋般层出不穷,在通信领域更是广泛使用。嵌入式通信设备的安全性不仅涉及个人隐私,甚至关乎国家安全。嵌入式通信设备正面临日益严重的攻击威胁,安全状况极为严峻。为了应对嵌入式通信设备安全性提升的迫切要求,本文对嵌入式通信设备的特点及安全脆弱性进行分析,通过对相关安全性测试技术的研究,提出了适用于嵌入式通信设备安全性测试的内容和方法,为嵌入式通信设备的安全测试提供方法指导,也为安全防护能力提升提供设计参考。1 嵌入式通信设备的安全分析1.1 嵌入式通信设备概述嵌入式通信设备具有功能稳定、可靠性高、高实时性、系统资源占用少等特点,一般部署于通信网络中,通过特定的通信协议与外部实体进行交互,如图 1 所示。嵌入式通信设备的高可靠性决定了其运行的高安全性需求,其安全性很大程度上与嵌入式系统的安全性紧密相关。对于嵌入式通信设备而言,一方面受限于硬件尺寸、系统资源等因素,系统自身的安全防护能力非常有限;另一方面,作为通信设备,其部署的应用环境使其直接暴露在通信网络的各种攻击力量下,因此,对嵌入式通信设备的安全防御能力评估非常重要。1.2 嵌入式通信设备安全脆弱性分析嵌入式通信设备通过各类通信协议与外部实体进行数据交互,设备内部采用嵌入式操作系统,由应用程序实现各种业务功能。嵌入式通信设备可能存在操作系统漏洞、应用软件漏洞、通信协议漏洞等,容易被攻击者攻击和渗透。1.2.1 操作系统脆弱性主流的嵌入式操作系统包括 Vxworkd、Linux、uC/OS-II 等,本文以嵌入式 Linux 系统为例进行操作系统脆弱性分析。Linux 操作系统作为自由、开放的系统软件,设计初衷并非安全操作系统,因此安全防护措施并不完善,需要依赖使用者在应用中去提升其安全性。嵌入式 Linux 系统存在的主要安全脆弱点如下:(1)访问控制:Linux 系统主流发行版本均为自主访问控制,自主访问控制机制未考虑用户角色、程序可信度等安全要素,故不能提供有效的安全性保障;(2)系统管理:为方便管理和操作,Root 账户拥有系统的所有权限,这种机制不符合“最小特权”管理原则。Root 账户可运行任意程序,这种过高的特权可能导致较高的安全风险;(3)文件系统访问:容易出现 Root 权限的滥用而普通用户权限不足的情况;(4)网络协议:网络协议栈中部分协议存在安全漏洞;(5)系统日志方面:Linux 系统的日志缺乏资源访问记录和事件详情记录,无法跟踪和记录非法操作,也缺少必要的日志分析与警告。1.2.2 应用软件缺陷应用软件漏洞是嵌入式通信设备脆弱性的主要来源,主要有编码错误和环境配置错误两大类,进一步细分,还收稿日期:2022-10-18作者简介:胡兆华(1972),女,四川成都人,硕士研究生,高级工程师,研究方向:信息安全、软件测试等。图 1 嵌入式通信设备与外部实体的交互Fig.1 Interactions between the embedded communication equipment and the external entity外部实体嵌入式通信设备交互协议人机交互通信数据数字技术与应用 第 41 卷214可以分为以下几类:(1)输入验证错误:对用户提供的输入数据未进行合法性检查,攻击者可输入非法数据对系统进行攻击;(2)缓冲区溢出错误:当程序缓冲区写入数据超过其规定长度时,会造成缓冲区溢出,破坏程序正常的堆栈,使程序执行其他代码;(3)边界条件错误:程序未对边界条件进行有效判断;(4)意外情况错误:程序处理逻辑中未正确处理异常情况而导致运行出错;(5)设计错误:程序处理逻辑不严谨,或是为了调试方便而设计的一些“后门”;(6)配置错误:系统或应用的配置错误,比如访问权限配置错误、参数配置错误等。1.2.3 通信协议脆弱性嵌入式通信设备通信协议的脆弱性,一方面原因是协议设计上的安全缺陷;另一方面原因是协议实现时的编码错误。通信协议一般有以下几类常见的脆弱性:(1)数据的机密性:通信交互的敏感数据未进行加密保护,攻击者可以在通信线路上直接探测或捕获通信设备与外部实体间传输的敏感数据;(2)数据的完整性:通信双方交互信息未进行完整性保护,攻击者可轻易对通信线路上的数据进行篡改或删除,而数据接收方却不能察觉或未进行数据正确性验证;(3)协议数据的抗重放:通信双方对交互的协议数据没有抗重放检测能力,攻击者可截获通信协议数据并原封不动地重新发送给数据接收方,接收方不能判断该协议数据是否是已经接收过的数据;(4)协议的弱认证性:通信协议数据在交互过程中,缺乏对交互对象的身份验证或者是身份验证力度较弱,交互数据很容易被攻击者仿冒,接收方却不能觉察交互对象的改变,攻击者可进而实施信息窃取或拒绝服务等攻击。1.3 传统安全测试手段的局限性传统的安全性测试方法和工具主要面向通用 IT 系统,不能完全满足对嵌入式通信设备进行安全性测试的需要,主要原因如下:(1)嵌入式通信设备非标准通用设备,采用的嵌入式操作系统经过定制化开发或裁剪,通用安全漏洞扫描工具的扫描结果可能存在大量误报;(2)嵌入式通信设备采用了较多的定制化软件,公开安全漏洞较少,传统安全评估分析工具难以对其进行安全性评估;(3)嵌入式通信设备采用专用通信协议,通用协议测试工具不支持这类专用协议,无法开展相关协议分析测试。综上所述,传统安全测试手段缺乏对嵌入式通信设备定制化开发程序的测试实践和技术积累,基于通用设备或协议的安全性测试工具并不完全适用于嵌入式通信设备的安全性测试。2 嵌入式通信设备安全性测试方法针对当前嵌入式通信设备的安全现状,在已有嵌入式通信设备安全脆弱性分析实践的基础上,本文总结了适用于嵌入式通信设备的安全性测试方法,在充分利用传统安全性测试手段的基础上,采用已知漏洞分析、未知漏洞挖掘以及安全配置检查等相结合的方法对嵌入式通信设备进行安全性测试。2.1 已知漏洞分析方法已知漏洞分析主要用于发现嵌入式操作系统内核、三方应用服务等的已知缺陷,主要有 4 种分析方法:版本扫描、原理扫描、补丁对比和人工分析。这几种分析技术的原理及优缺点对比如表 1 所示。2.2 未知漏洞挖掘方法嵌入式通信设备的未知漏洞挖掘,主要针对应用软件或通信协议中的潜在未知安全漏洞。漏洞挖掘的方法有静态分析、动态分析和人工分析 3 种,如表 2 所示。2.2.1 静态分析方法嵌入式通信设备漏洞挖掘的静态分析方法,一般使用代码静态分析工具对程序代码进行静态字符串搜索,表 1 漏洞分析的技术原理及对比Tab.1 Technical principles and compareisons of vulnerablility analysis 漏洞分析技术测试原理优点缺点典型工具版本扫描通过对操作系统或软件的版本进行识别,再和相关漏洞库进行对比,识别存在的问题。漏报少、速度快,对系统或业务影响小误报多,尤其在系统进行过修复但版本号不变的情况下,无法确认漏洞的修复情况杀毒软件如:ClamAV、Chkrootkit 等原理扫描通过漏洞利用原理,对相关服务进行攻击性安全漏洞扫描,并通过数据交互结果判断是否存在漏洞1。准确率高,误报少漏报率要高于版本扫描,对系统或业务的影响要比版本扫描大绿盟、墨云等补丁对比针对软件漏洞修复补丁或版本升级程序,对比打补丁前后的二进制文件,对未升级前程序的漏洞进行准确定位。漏洞位置定位准,误报少对测试人员技术能力和经验要求高BeyondCompare、IDACompare、BinaryDiffing 等人工分析通过漏洞公告分析、获取漏洞类型及细节(大多不会公布),再对照受影响软件及版本来确认漏洞的存在。漏报少、准确率高速度慢2023 年第 1 期215胡兆华张一:嵌入式通信设备安全测试技术实现代码缺陷的发现。测试者获取嵌入式系统的源码,可以使用源代码扫描工具自动进行代码分析,常用的源代码扫描工具有Klocwork、Cppcheck、Parasoft C/C+test 等。对于不能提供源码的系统或软件,比如:执行文件、三方库等,可以采用基于目标码的二进制分析工具实现静态分析。二进制分析工具采用二进制逆向分析技术实现文件扫描和分析,再人工对扫描结果判断、筛选,最终确认问题。基于目标码的分析方法一般涉及程序编译器、计算机硬件指令系统、可执行文件格式等方面的分析技术,实现难度较大。目前较为成功的商业化二进制分析工具有CodeSonar、SwiftBinary、Cybellum 等,开源的分析工具,包括 angr、BAP、cew_checker、BinAbslnspector 等,它们在实际项目中代码质量保障上发挥了重要的作用。2.2.2 动态分析方法动态分析方法作为静态分析方法的补充,在嵌入式通信设备的漏洞挖掘中有重要作用。动态分析方法分为白盒分析和黑盒分析两类。白盒分析方法主要是对动态运行的程序代码流进行分析2,通过设置断点动态跟踪目标程序代码流,以检测有缺陷的函数调用及其参数,主流的代码分析工具都支持代码流的分析。黑盒分析方法分为数据流分析和格式分析两种。数据流分析对业务或管理数据流进行分析,并尝试构造输入非常规的数据来触发漏洞。格式分析可用于协议漏洞分析,通过解析协议数据包,对涉及字符串数据的操作进行分析。对动态 Web 页面、文件格式和通信协议等的动态分析通常采用模糊测试工具实现。实际嵌入式设备的漏洞挖掘过程中,静态分析、动态分析和人工分析方法的综合使用已经成为未来的主要方向。2.3 安全策略配置检查嵌入式设备除了软件代码存在脆弱性,操作系统的安全策略缺失或不足也是导致设备容易受到恶意攻击的原因之一,因此对操作系统的安全策略配置进行检查是嵌入式设备安全性测试的重要内容。操作系统的安全策略配置检查主要从访问控制、文件系统安全、运行安全三方面进行。2.3.1 访问控制安全对系统的关键或敏感文件访问权限进行设置,禁止非授权访问。对系统重要文件访问制定安全策略,实施严格的强制访问控制。2.3.2 文件系统安全(1)重要文件加固:通过 chattr 命令对系统重要文件或目录进行锁定1;(2)临时目录安全:临时目录中所有用户均有读写权限,需要禁止在/tmp、/var/tmp、/dev/shm 等临时目录下执行应用程序1。2.3.3 安全运行策略(1)用户登录:删除多余的用户和用户组3,限制冗余的用户登录权限;对用户登录次数进行限制;使用普通用户登录,禁止 Root 登录;远程登录使用密钥,禁止密码登录;(2)系统服务:关闭不需要的系统服务;(3)系统开机启动过程:不允许通过输入按键中断启动过程;(4)密码策略:系统口令的过期时间进行限制,对口令复杂度进行设置,对新口令的历史重用度进行限制;(5)帐户策略:对账户历史命令保存条数、账户使用超时时间进行限制;(6)账户切换:只允许指定用户组使用 su 命令切换到 Root 用户;(7)登录界面隐藏系统版本信息;(8)开启防火墙;(9)最小权限原则:系统只赋予每个管理员完成任务所需的最小权限,且职责分离;(10)行为监控审计:启用必要的日志记录。3 应用实践结合上述安全性测试技术和方法,对某嵌入式通信设备进行了应用实践,测试环境如图 2 所示。被测嵌入式通信设备、陪测设备和测试平台通过交换机相连,测试终端 1 控制测试平台执行测试,监控终端对被测通信设备的状态进行监控,测试终端 2 直连被测设备,对设备进行系统安全配置测试。3.1 测试过程测试终端 1 控制测试平台执行以下安全性测试:(1)