Abstract

ITS是当今典型的智能应用。为了实现更安全和更高效的运输系统的目标,发现ITS的脆弱性起着重要作用。本文基于ITS的通信视图分析了ITS的威胁源。提出了一个协议漏洞发现框架,用于基于模糊测试和自动分析保护ITS应用程序,支持机器学习,遗传算法和模式识别技术。最后,还给出了ITS中开放网络视频接口论坛(ONVIF)协议上的漏洞发现的典型案例,以证明所提议的协议漏洞发现框架的有效性和实用性。该案例的实验结果表明,协议漏洞发现框架支持以有效的方式发现ITS的漏洞。将不同协议模糊测试模式和分析模式组合到一个框架中的挑战,以及限制也被报告和讨论。最后,本文总结了ITS框架的未来研究方向和应用。(没啥新思路)

Keywords—ITS, protocol vulnerability discovery, threat model,fuzzing, automatic analysis

relevant information
作者 Liang Ming, Gang Zhao, Minhuan HuangЪ, Ling PangЪ, Jin Li, Jingzhe Zhang, Dan Li, Shuaibing Lu
单位 National Key Laboratory of Science and Technology on Information System Security
出处 2018 IEEE Third International Conference on Data Science in Cyberspace
原文地址 https://ieeexplore.ieee.org/iel7/8411555/8411822/08411968.pdf
源码地址
发表时间 2018年

I. 引言

智能交通系统(ITS)是一种重要的交通基础设施,在自动事件检测,智能视频监控,车辆到基础设施,动态交通灯序列等方面有着快速发展[1]。 ITS中涉及许多用户,控制器,演员和操作员。中心或领域中的每个实体直接或间接地改变了商品的流动方式。中心到现场(C2F)通信和中心到中心(C2C)通信使中心系统之间以及中心系统与该中心管理的多个控制或监视设备之间能够进行通信,从而有效地交换控制指令和状态以及交通流量信息[2]。

但保护ITS是他们为公共交通提供信息服务的基础。发现ITS的脆弱性是保护ITS并使流量畅通的有效方法[3]。 2015年,一则新闻震惊全国,黑客远程控制了一辆吉普车并在高速公路上杀死了它的发动机[4]。作为一种信息系统,ITS将比传统的计算机系统和网络遇到类似甚至更多的网络威胁。在ITS中,C2F通信和C2C通信是两种根本不同类型的交通控制通信,并且已经研究了许多方法来提高通信的安全性[5]。然而,ITS总体上继承了与计算机系统和无线网络相关的固有问题。

Fuzzing是一种黑盒测试方法,是一种黑盒软件测试技术,已广泛应用于发现通信协议的漏洞。有一些通用的模糊测试框架,如SPIKE [6]和ProtoFuzz [7],它们不支持ITS应用程序。其他工具如ircfuzz [8],dhcpfuzz [9]和InfigoFTPStressFuzzer [10]分别用于模糊特殊协议,但没有用于ITS协议漏洞发现的特殊模糊测试工具。

本文探讨了在实际网络中发现和分析ITS协议漏洞的有效性。各种应用协议可能会导致ITS的风险。本文将研究ITS的安全性,威胁和协议漏洞发现问题。本文的其余部分安排如下:第二部分总结了ITS的ITS通信视图和威胁源。在第III节中,提出了ITS的协议漏洞发现框架及其模糊设计,自动分析和概念验证案例。第四节讨论了这种提议的测试方法的挑战和局限性。最后一节第五节总结了整篇论文

II.通信视图和威胁源

A. ITS的通信视图

协同和智能交通的架构参考(ARC-IT)是ITS的最新参考架构模型[11]。 ARC-IT提供了一个用于规划,定义和集成智能交通系统的通用框架,包括所有连接的车辆应用。它涵盖了国家ITS架构7.1版和互联汽车参考ITS架构(CVRIA)2.2版的所有范围和内容。此体系结构中有企业视图,功能视图以及物理视图和通信视图。特别地,图1中的通信视图描述了提供物理对象之间的互操作性所必需的协议,其提供了保护ITS的一般方式。

在通信视图中,ITS上面的IP协议栈中使用了大量协议。典型的信息层协议包括NTCIP(ITS协议的国家运输通信)系列,ONVIF(开放式网络视频接口论坛)等,应用层协议包括SNMP,STMP,HTTP,FTP,SOAP,C2C XML,DATEX [12] ], 等等。每个协议都负责ITS中相应类型的应用程序。特别是NTCIP标准为运营运输管理系统的机构提供了更高的灵活性和选择。 NTCIP标准的使用消除了跨机构协调的障碍,并允许不同类型和不同制造商的设备混合在同一通信线路上。例如,NTCIP 1203是用于动态消息标志(DMS)的NTCIP对象定义,ONVIF规范定义了网络客户端和设备之间的通信过程,这使得使用已定义的通用和良好的接口来构建不同制造商的设备和接收器网络视频系统成为可能。

B. ITS的威胁来源

除了未经授权的攻击外,还有一些攻击者可能伪装成合法用户。由于有很多用户,谁可以生成数据,在ITS发送消息和接收警报,因此内部攻击将越来越受欢迎。根据通信视图,以下列出了ITS中存在的安全威胁和攻击:

  • 应用层威胁包括消息重放攻击,消息篡改攻击,恶意消息攻击以及其他人员攻击,欺骗,嗅探和拒绝服务的攻击方式。消息重放攻击意味着攻击者重新发送合法用户最初发送的旧消息,以增加网络流量并导致拥塞。消息篡改攻击意味着攻击者作为中间人修改消息,然后将其发送出去以造成问题或误导用户。恶意消息攻击包括C2F,C2C和V2V通信中的恶意消息攻击,攻击者向网络中的其他节点发送虚假信息;从而误导用户并可能造成严重破坏。
  • 传输层和网络层威胁包括伪造RSU攻击,拒绝服务,基础密钥泄漏以及其他通信干扰攻击。伪造RSU攻击是获取车辆节点的信息,然后扰乱车辆网络通信。传输和网络层中的拒绝服务是通过临时或无限期地中断连接到车辆网络的节点中的服务来使其预期用户无法使用网络资源。基础密钥泄漏是一种威胁,因为V2V通信中使用的主密钥可能被攻击者嗅探和滥用。
  • 数据链路层和物理层威胁包括物理损坏,构建障碍和能源干扰。物理损坏是使汽车中的RSU或传感器物理损坏或混乱。建筑障碍是通过设置建筑物,墙壁等障碍物来中断车辆网络的无线信号通信。能量扰动是通过能量和功率控制来干扰车辆网络的无线通信。

在上述威胁中,中间人攻击可能会危及ITS的机密性。嗅探可能会损害ITS的信息完整性。嗅探和欺骗可能会损害ITS的消息不可否认性。拒绝服务,物理攻击,信号中断和能源干扰可能会影响ITS的可用性。

显然,与通信有关的威胁是关键问题,发现协议漏洞和安全协议是ITS安全的基础。除了这些技术威胁之外,ITS还面临着许多安全管理风险,例如操作故障,个人安全设置错误,车辆丢失引起的钥匙泄漏,租车误用等。总之,所有这些威胁和对抗方法都会给ITS带来风险,并大大提高ITS协议漏洞的可能性

III.基于模糊的远程协议漏洞发现的自动框架

A.漏洞发现框架

协议漏洞发现是ITS安全的关键问题。在下文中,我们将介绍基于模糊测试的ITS协议的自动漏洞发现框架。 ITS中的信息层和应用层中有许多协议用于各种功能,服务和场景。 ITS中的所有设备都将与各自的协议进行通信。为了对各种应用层协议和信息层协议(如IETF HTTP,IETP FTP,SOAP,NTCIP系列和ONVIF)进行模糊测试,我们将构建ITS协议漏洞分析的通用框架。

在NTCIP系列中,应用程序级别采用SNMP,STMP,FTP,TFTP,C2C XML,DATEX等。在ONVIF标准中,应用程序级别采用SOAP / HTTP。所有这些应用程序级协议都可以在TCP / IP堆栈上运行。由于ITS中的几乎所有通信协议都在IP网络上工作,因此可以基于IP数据包通信以一般方式构建漏洞发现框架,如图2所示。

在图2中,ITS的协议漏洞发现框架包括三个组件:数据包捕获,模糊测试生成器和漏洞分析。 Packet Capture组件负责在线捕获软件包并将其输出到Fuzzing Generator组件以进行消息自定义,并将其输出到Vulnerability Analysis组件以发现漏洞。Fuzzing Generator组件负责自定义模糊测试消息,这些消息将发送到ITS中的目标并触发其漏洞。在Fuzzing Generator组件中,ITS,C2F和C2C通信都支持许多应用层协议,如SNMP,STMP,FTP,TFTP,C2C XML,DATEX和SOAP。并且可以使用各种模糊变量(例如静态模糊测试向量,源代码和随机数据)来组成请求模糊消息,这将在第III B节中详细描述。漏洞分析组件负责通过比较和分析来自Fuzzing Generator组件的请求消息和来自Packet Capture组件的响应消息来发现ITS中目标的漏洞。在漏洞分析组件中,机器学习算法,遗传算法和模式识别技术可用于自动发现漏洞以获得更高的效率,这将在第III节C中详细描述。通过使用学习和培训,漏洞分析组件可以构建一个强大的机器学习模型进行分类。通过将响应消息与关联的请求模糊消息进行比较,分类模型可以识别目标设备中的协议漏洞。一旦发现漏洞,模糊测试生成器组件将停止模糊测试,并且漏洞分析组件将存储所有请求模糊消息,模式和响应消息以供进一步验证。

该协议漏洞发现框架扩展了传统的计算机网络协议测试思想,为发现ITS的协议漏洞提供了一整套功能。通过漏洞分析组件,我们可以解码响应消息来检查关联请求消息的回复,并找出ITS的漏洞。此外,请求模糊消息有时可能会将目标设备堵塞在ITS中。为了确保目标仍然有效,Fuzzing Generator组件应定期运行探测工具,例如ping,以检查ITS中目标的工作状态。

B.漏洞发现中的模糊设计

模糊测试是一种有效的信息定制方法,可以发现网络和信息系统中的协议漏洞。生成模糊消息的工作流程如图3所示。在工作流程图中,模糊消息定制是一个关键组件,它将模糊测试数据排列成与测试协议规范兼容的消息。为了自动生成请求模糊消息,可以通过下面详细描述的模糊模式对该过程进行形式化和编程。可以从静态模糊测试向量,随机数据和IP数据包捕获工具获得的源代码导入模糊测试数据。

基于TCP / IP,有一些典型的漏洞发现模糊模式,我们可以在形式化中描述它们,如下所示。

  • 模式1:方法+目标地址+ [标题] + <协议名称> + [数据] + [功能]

  • 模式2:方法+目标地址+ [标题] + <随机数据> +数据

  • 模式3:[方法] +目标地址+ [标题] + [数据] + [功能]

在模式1,模式2和模式3中,METHOD是自定义请求消息中的操作。它包括GET,POST,PUT,SET,GET-REQUEST,GET-NEXT-REQUEST,SET-REQUEST,GET-RESPONSE,TRAP等,它们在SOAP,SNMP和STMP中使用。 METHOD部分通常可以填充静态模糊矢量。 TARGET ADDRESS指定目标设备,可以是URI,请求ID,IP地址,服务地址等。对于目标设备,TARGET ADDRESS是确定的。 HEADERS包括各种标头信息,例如Accept,Cache-Control,Content-Encoding,Content-Language,Content-Length,Content-Type,Error Status,Error Index等。 HEADERS通常可以从捕获的数据包中填充源代码。 PROTOCOL NAME是经过测试的协议及其版本的名称,例如HTTP / 1.0,HTTP / 1.1等。而PROTOCOL NAME是模式中的可选部分。 DATA指定协议规范下的消息内容,它可以是认证,功能和其他静态文本的全部或部分,通常可以通过在线捕获的数据包填充源代码。RANDOM DATA可以是任何随机字符,可用于模糊认证,功能等。 FUNCTIONS包括协议中的所有可用操作函数,例如GetUsers,CreatUser,GetDeviceInformation,SystemReboot等,它们可以在协议规范下填充静态模糊测试向量。随机数据和函数也可以是DATA的一部分。在所有模式中,方括号[]表示内部变量是静态模糊矢量,而天使括号<>表示内部变量是可选的。

显然,模式1,模式2和模式3只是请求消息的可用漏洞模糊模式的三个代表,它们适合ITS中的相应模糊测试应用。模式1侧重于通过修改消息数据来发现消息重放和消息修改中的协议漏洞。模式2侧重于通过修改部分消息数据来发现认证信息中协议的漏洞。模式3侧重于通过修改方法(如GET,SET等)来发现协议的漏洞。此外,对于各种协议,根据需要,还可以在模糊消息中使用一些新的模糊化请求消息模式。

事实上,漏洞模糊测试模式只是抽象了请求消息的关键字符。例如,在模式2中,METHOD,目标地址,若干HEADERS,变量RANDOM DATA和其他DATA组成关键字符向量,其表示具有类似模糊测试模式的一些请求消息。这些关键字符对于自动分析请求消息和响应消息非常有帮助,这将在下面进一步描述。

C.漏洞发现中的自动分析

模糊测试后,我们可以通过智能方法比较请求消息和响应消息,如机器学习模型,遗传算法,模式识别等。这是实现自动分析的关键步骤。一些典型的漏洞分析模式包括但不限于以下内容。

  • 模式4:[请求字符] + [状态代码] ->“通过/失败”

在模式4中,“请求字符”是请求模糊消息的关键字符。 STATUS CODES是响应消息的状态,例如HTTP状态码,并且可以在摘要中反映模糊消息的结果。 PASS / FAIL是漏洞发现的分类标签。例如,如果STATUS CODE为“200 OK”且REQUEST CHARACTER为“HTTP / 1.1”,则相应的SOAP请求消息可能会发现目标设备上的漏洞,并且漏洞发现的分类标签应为“PASS”。另一方面,如果STATUS CODE是“401 Unauthorized”且REQUEST CHARACTER是模式2,则相应的SOAP请求消息可能不会在目标设备上发现身份验证漏洞,并且漏洞发现的分类标签应为“FAIL”。 STATUS CODE可以通过源代码从在线捕获的数据包或协议规范获得。

  • 模式5:[请求字符] + [敏感字符] ->“通过/失败”

在模式5中,“请求字符”是模糊请求消息的关键字符。敏感字符是指响应消息中的敏感信息,例如用户名和执行结果,可以在捕获的数据包的源代码中找到。PASS / FAIL是漏洞发现的分类标签。例如,如果REQUEST CHARACTERS为“HTTP / 1.1”且SENSITIVE CHARACTERS为“<tt:UserLevel> Administrator </ tt:UserLevel>”,则相应的请求消息可能会在目标设备上发现身份验证漏洞,并且分类标签为漏洞发现应该是“PASS”。另一方面,如果REQUEST CHARACTERS为“HTTP / 1.1”且敏感字符不匹配,则相应的请求消息可能无法在目标设备上发现身份验证漏洞,并且漏洞发现的分类标签应为 “FAIL ”。

  • 模式6:[请求字符] + [错误字符] ->“通过/失败”

在模式6中,请求字符是请求模糊消息的关键字符。错误字符是指响应消息中的错误警报或不合理的信息,例如输入文本,未记录的服务等。 PASS / FAIL是漏洞发现的分类标签。例如,如果REQUEST CHARACTERS是“Fuzzing work?”,这是一个有意识的输入字符串,并且响应消息还包含一个ERROR CHARACTERS“Fuzzing work?”,这与我们在请求消息中的输入相同,那么相应的请求消息可能会发现目标设备中的XSS漏洞,并且漏洞发现的分类标签应为“PASS”。相反,如果没有匹配的ERROR CHARACTERS,则相应的请求消息可能不会在目标设备上发现身份验证漏洞,并且漏洞发现的分类标签应为“FAIL”。错误字符可以通过源代码从线上捕获的数据包获得,也可以通过故意输入获得。

  • 模式7:[请求字符] + [请求超时] -> 通过/失败

在模式7中,REQUEST CHARACTERS是模糊请求消息的关键字符。 REQUEST TIMEOUT表示响应消息无法在所需时间内到达。 PASS / FAIL是漏洞发现的分类标签。例如,如果请求CHARACTERS是一个SNMP请求,和该请求后请求超时出现时,则对应的请求消息可能发现在目标装置中的拒绝服务(DoS)的脆弱性,以及脆弱性发现的分类标签应该是“PASS” 。相反,如果没有匹配的REQUEST TIMEOUTS,则DoS漏洞发现的分类标签应为“FAIL”。 REQUEST TIMEOUTS可以通过源代码从在线捕获的数据包或协议规范获得。

在模式4,模式5,模式6和模式7中,方括号[]表示内部变量是静态模糊矢量,它允许构建数据集以定义包含大量值的变量。例如,[REQUEST CHARACTERS]可以是请求消息的字符数据集。通过这些模式,可以创建足够的训练样本并将其用于机器学习模型。经过训练,我们可以使用该机器学习模型自动判断响应并在线请求消息。如果结果是PASS,这意味着请求消息发现漏洞,那么我们可以深入研究漏洞及其漏洞利用工具。实际上,除了这种自动分析方法之外,模式4,模式5,模式6和模式7也可以用于手动响应消息识别。通过这些精心设计的模式和字符,我们可以确定当前设备中是否存在漏洞。

如上所述,模式4,模式5,模式6和模式7中的请求字符可以是模式1,模式2和模式3的全部或任何部分。并且所有模式为处理请求消息和响应消息提供了良好的参考。 自动实现ITS的漏洞发现。在发现具有漏洞的可疑目标设备后,我们可以进一步分析并找到确切的漏洞地址,然后给出漏洞描述和改进建议。

D.漏洞发现案例

在这种情况下,我们将使用第III节中描述的漏洞发现框架对ITS中的ONVIF摄像机进行实际漏洞分析.ONVIF规范与SOA兼容,并且所有设备功能都被抽象为Web服务并使用简单对象访问协议(SOAP)通过HTTP进行通信。不幸的是,SOAP 1.1没有包含签名消息的条款,因此缺乏安全性。因此,我们使用设计良好的SOAP消息来模糊此漏洞所涉及的远程ONVIF设备。

基于上面的漏洞发现框架,我们在真实的网络实验环境中执行漏洞分析。实验场景是交叉路口上方的视频监控应用程序,如图4所示。我们可以访问ITS并访问此ONVIF摄像机,但我们没有摄像机的管理员权限。

为了在框架中实现Fuzzing Generator组件来制作模糊消息,我们使用Python语言开发了一个原型来修改具有与ONVIF规范兼容的各种功能的实际消息,然后将自定义消息发送到实际网络中的测试相机。真实的消息由Wireshark工具在线捕获。我们使用模式1作为自定义请求消息的参考,字符及其值如表I所示。因此,根据模式1,METHOD是POST,TARGET ADDRESS是摄像机IP地址,HEADERS是典型的HTTP标题和PROTOCOL NAME是HTTP / 1.1,DATA专注于从真实消息解码的认证信息,而FUNCTIONS是功能向量,包括Getusers,CreatUser,GetDeviceInformation,SystemReboot等。 Fuzzing Generator原型可以向ONVIF摄像机保留模糊消息,所有这些请求消息都存储在数据库中以供进一步分析。自定义请求消息之一如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:tds="http://www.onvif.org/ver10/device/wsdl"
xmlns:tt="http://www.onvif.org/ver10/schema"> <s:Header
xmlns:s="http://www.w3.org/2003/05/soap-envelop
<wsse:Security xmlns:wsse="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/
oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-username-tokenprofile-
1.0#PasswordDigest">keys</wsse:Password><wsse:Nonce>k
eys</wsse:Nonce>
<wsu:Created>time</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</s:Header>
<soap:Body>
<tds: Getusers />
</soap:Body>
</soap:Envelope>

在这种情况下,自动漏洞分析组件使用模式4实现。模式4中的参数及其值如表II所示。因此,根据模式4,REQUEST CHARACTERS是模式1,一旦响应消息的STATUS CODE为“200 OK”就会出现PASS。为了简化漏洞分析过程,我们使用模式识别来演示此步骤。我们在线捕获响应数据包并检查其状态代码,并将所有响应数据包存储在数据库中,以便与其请求消息进行相关性分析。与上述请求消息相关联的响应消息之一如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
HTTP/1.1 200 OK
Date: Wed, 28 Mar 2018 14:05:02 GMT
Server: App-webs/
Connection: close
Content-Length: 2300
Content-Type: application/soap+xml; charset=utf-8
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soapenvelope" …><env:Body><tds:GetUsersResponse><tds:User
><tt:Username>admin</tt:Username>
<tt:UserLevel>Administrator</tt:UserLevel>
</tds:User>
<tds:User><tt:Username>user6</tt:Username>
<tt:UserLevel>User</tt:UserLevel>
</tds:User>
</tds:GetUsersResponse>
</env:Body>
</env:Envelope>

上面的响应消息回复状态代码“200 OK”,这意味着根据模式4,其请求消息触发了漏洞。实际上,经过测试的ONVIF摄像机会错误地响应管理员用户。在请求消息和响应消息中进行分析后,我们发现测试的摄像机存在ONVIF认证漏洞,漏洞位置是SOAP标头中的标识认证片段。由于它是ONVIF协议中的致命漏洞,因此我们还可以通过使用此框架对相机的云台变焦和录制服务进行模糊处理时发现类似的现象。从这个案例中,我们可以发现第III节A中提出的漏洞发现框架可以有效地远程发现ITS的协议漏洞。

IV.测试方法的挑战和限制分析

协议漏洞发现框架提供了一种通过请求模糊消息来查找ITS及其设备的协议漏洞的方法。但是仍然存在许多安全问题,例如社会工程威胁,结构脆弱性,能量干扰物理层中的电源中断等等。在这种情况下,ITS不仅应该通过通信视图中的协议测试进行分析,还要检查系统级和物理视图。
随着ITS应用的发展,应用协议将来会越来越多,因此将不同的消息定制协议组合到一个框架中将是一个挑战,需要在框架中用新的协议栈模块扩展第三节A中的框架。

V.结论

协议漏洞发现是保护ITS本身的关键问题。由于ITS在公共交通中公开广泛部署,越来越多的攻击和威胁会极大地影响ITS的可用性并损害其完整性和机密性,甚至使道路交通比以前更加糟糕。本文从ITS通信的角度提出了ITS威胁的分类,为ITS协议漏洞发现提供了良好的指导。接下来,提出了一种协议漏洞发现框架,用于通过使用模糊消息定制和自动分析来保护ITS,其支持机器学习算法,遗传算法和模式识别技术。最后,还给出了关于ITS中ONVIF协议漏洞的选定概念验证案例,以证明所提议的协议漏洞发现框架的有效性和实用性。可以在丰富可用的请求消息模式和漏洞分析模式以及扩展协议栈模块方面做进一步的工作,以提高协议漏洞发现框架对更多协议的能力。