车联网安全车端威胁入侵检测系统的实现与思考
日期:2024年05月21日 阅:6
作者介绍:
猪皮苏,某新能源车企车联网安全负责人,以打工猪态度勤恳深耕车联网场景安全解决方案;
吐司2,某新能源车企资深渗透工程师,在应急响应、入侵对抗、研发安全方面拥有丰富检验;
yong.H,某新能源车企基础安全负责人,多家互联网大厂经验,专注于红蓝对抗、,以攻促防建设企业安全,重点工作是研究和防御复杂的网络威胁,提升企业的安全防护能力;
Zzb:某新能源车企安全负责人,专注于企业安全建设和安全体系建设,拥有丰富的安全专业知识和经验,致力于保护企业的资产和信息免受威胁;
腹黑、LDrakura、安安小飞飞、HOPE、Winghr对本文亦有贡献。
作为车联网领域的信息安全工作者,笔者在近两年的实际工作中,能够明显感受到汽车智能化和互联化程度不断提高,这使得智能网联车辆面临着日益增多的网络安全威胁。同时,全球多个国家和地区均已制定了各自的监管法规和标准,这也对我国汽车品牌在海外市场的发展提出了一些硬性安全条件。在基于安全威胁和法规遵从要求的基础上,笔者希望通过本文,循序渐进地探讨一下汽车端侧入侵对抗防护的新思路及可行性。
一、车端NIDS应用概览
目前,我们看到市面上大多数车端IDPS产品,多数基于主机安全模式下的HIDS与NIDS进行移植实施。但由于车端本身的算力性能限制,直接进行全量由主机端向车端的策略平移,落地性不仅非常差,而且实际防护效果也非常不理想,主要体现在车端特有场景难以匹配,容易造成实际硬件性能与算力浪费。因此,识别车端与原有主机的差异化攻击场景及部署方式是量化车端IDPS策略使其真正有效可用的前提。
车端 NIDS作为IDPS系统的重要组成部分,它的主要职责只有一个:实时监测车载网络流量,及时发现并应对潜在的安全威胁。NIDS探针在车端可通过利用多种检测策略对流量包进行深度分析和协议识别检测网络威胁。目前,车端NIDS探针主要集中于对识别已知攻击模式的识别与防御,相信随着技术发展,后续亦可通过行为分析等手段持续提升能力,主动发现未知威胁,从而提供更为全面的网络安全防护。
1、 部署架构
NIDS主要包含CAN网络(控制器局域网)的检测分析,如CAN DLC 检测、周期检测、上下文检测、UDS 协议检测等;以太网络的检测分析,如 DDoS 攻击、SOME/IP 检测、DoIP 检测、扫描检测、深度包检测等。这些特点和传统的IDS系统非常相似。
在当前跨域融合的电子电器架构中,一般情况下从上到下分为链接传输层(TBOX)、跨域融合层(IVI、ADAS、GW)、区域控制层(VIU)、传感执行层,其中NIDS往往需要部署在TBOX、IVI、ADAS这几个主要控制器上,从而更好地抓取网络流量(均可以定义为网络边界),在一些ECU、VID层面反而不适合部署NIDS。在此,我们想强调的核心差异点在于:
1、车载NIDS的部署网络边界差异
传统的NIDS部署模式通常在网络边界POP点或网络核心进行流量镜像,以此实现对网络流量的监控和分析。然而,车载网络具有其特殊性,车载NIDS的部署模式需充分考虑近端组网的场景,且涉及多个零部件的协同工作。在这种场景下,以零部件为单网络部署节点成为了一种现有的较为普遍的方案。这种部署模式将NIDS直接部署在车载网络的各个节点上,实现对每个节点的实时监控和分析。
2、部署节点的判定标准差异
车载NIDS的部署点也并非可以以网关、ADAS、IVI、TBOX一概而论。首先,我们需要考虑车端电子电器架构的组网特点。车载网络通常由多个零部件组成,这些零部件在网络上的对外暴露面各不相同。因此,我们需要根据零部件的暴露面进行标准评估,以确定哪些节点需要部署NIDS,可参照如下判断标准:
2、常见网络威胁检测的方法
NIDS探针基于网络流量的特征,一般可以基于以下几种方式来进行威胁检测:
每种类型的检测策略都有其独特的实施方式和特点,每种检测策略亦都有其优势和局限性,因此在实际应用中,NIDS通常会采用多种策略相结合的方式,以提高检测的准确性和全面性。
二、 车载以太网络威胁检测分析
网络威胁检测需要包括以下内容:
1. 源地址与目标地址:通过分析流量包的源地址和目标地址,可以判断流量是否来自可信的设备或网络。
2. 端口号:端口号用于标识不同的服务或应用。通过检查端口号,可以判断流量是否与目标服务或应用相关。
3. 协议类型:不同的协议类型具有不同的结构和特点。通过识别协议类型,可以进一步分析流量包的具体内容。
4. 数据包内容:数据包的内容是判断是否存在恶意攻击的关键。通过分析数据包的内容,可以检测是否存在异常行为或攻击模式。通过分析流量包的源地址和目标地址,可以判断流量是否来自可信的设备或网络。
在实际应用中,网络威胁检测的实现包括四层检测和七层检测两种方式。四层检测主要关注网络层和传输层的协议信息,一般会提取出5元组(协议,源IP, 源端口, 目的ip, 目的端口)。nids会检查通过车载网络的每个数据包,确保只有符合安全策略的连接能够通过。例如,对于白名单的流量,nids会允许其通过;而对于黑名单或者异常连接发出警告。在实施过程中,nids通过维护一份白名单或黑名单,来定义哪些连接是合法的,哪些是需要告警的。同时,nids利用流量模式分析技术,对流量包的频率、大小、持续时间等特征进行分析,以识别可能的异常行为。
而七层检测则更深入地关注应用层协议的内容,能够对传输的数据包进行更细致的分析。通过深度包检测(DPI)技术,nids能够解析数据包中的应用层协议,如DNS、MQTT、SSH、SOME/IP、DoIP、TLS等,并检查其内容是否包含恶意代码、广告、非法网站等威胁。
我们认为,在车载网络系统中,采用七层网络威胁检测方式尤为重要,因为许多车载应用和服务都依赖于应用层协议进行通信。通过七层检测,nids能够实现对这些应用的实时监控和威胁识别,从而保护车辆免受网络攻击。其中:
1、链路层
在链路层,我们主要监测的是mac地址。MAC地址用于标识网络中的设备,通过分析MAC地址,可以判断流量是否来自可信的设备。后续用于识别mac地址是否被伪造,因为在车端场景下车内零部件mac地址大概率不会频繁变更,因此,如果发现某个MAC地址频繁变或与其他设备的MAC地址冲突,那么可能意味着该MAC地址被伪造了。另外,如果某个MAC地址突然出现在不应该出现的网络位置,或者其流量模式与正常行为不符,那么这可能意味着存在潜在的安全风险。
2、网络层
在网络层,我们主要关注的是Ip地址,包含源ip、目的ip、端口,以及此处可以检测到是当前数据包是基于tcp还是udp协议。IP地址就像是每个设备的“身份证”,源IP还是目的IP,是所有数据包传输的起点和终点。通过解析IP地址,我们可以跟踪数据的来去。而端口则像是设备上的“门牌号”,因为不同的应用程序或服务会使用不同的端口进行通信。
3、传输层
在传输层中,我们主要解析出端口数据包含源端口和目的端口,源端口指的是数据发送方所使用的端口号,而目的端口则是数据接收方所监听的端口号。通过对端口进行恶意扫描是常见的攻击手段,攻击者通过扫描目标主机的端口,尝试发现其开放的服务并进而实施攻击,往往端口的探测与扫描也是攻击的开端。因此监控控制源端口和目的端口的使用情况尤为必要。
4、应用层
我们认为依据欧盟R155法规与《汽车整车信息安全技术要求》,车载nids所需关注的攻击场景主要聚焦于车端侧攻击,基于车端实际可能实施的攻击场景,车载nids目前有效的检测策略其实需要在原有传统主机安全上做大量的减法,而且完全可以被量化出一个基础的策略集。在此,我们总结了以下车载常用协议及我们认为实际在车端需要关注的攻击类型与原因:
协议类型 | 报文结构 | 攻击类型 | 车载场景解析 |
HTTP | 通用web漏洞:获取域内传输配置信息已知组件漏洞探测及利用逻辑漏洞:越权访问 | 我们认为以黑客视角,近端实现和车端控制器组网后,有可能为拿到例如用户名密码的配置文件会尝试对http的进行sql注入,此部分nids检测策略优先级较高。其次,对报文体中的已知漏洞探测与攻击也存在一定可能性,但由于车载http报文所使用场景更为简单固定,引入漏洞的可能性相对较小。另外,在主机安全中常见的跨站攻击因其需要一一对应的交互回应,目前其实并不适用于车端场景。 | |
SOME/IP | 1、异常请求ID篡改:这里常见的包含Message ID中的服务ID,方法ID,这些ID应都有对应配置列表,nids可通过比较id是否位于配置列表中的白名单检测方式实现,如果NIDS监测到出现了不在这个ID里面访问,证明可能存在未知请求或fuzz。畸形报文:payload中存在不合适的字符串(payload过大/存在异常函数) | 无论是Someip、Doip还是其他车载私有协议,其本质都有共通之处且依赖于车企本身对此协议应用于实际服务的场景。目前为止,车内的访问节点非常单一,往往tbox对应的应该只有一个特定于IVI的IP访问它,每个控制器都有对应固定几个访问它的ip列表名单,如果出现了在此配置之外的IP访问,则可以考虑未知非法请求;另外,对于每个的tcp请求频次也是基于服务有固定参数的,如果有超量的请求数,亦需要进行风险识别Example:OTA时,ivi向tbox做升级包获取的请求,nids需首先此服务场景下的判断ip(来源IP目的IP)是否正确,再识别ftp请求数是否合理 | |
DoIP | 其中DOIP报文消息内容中所包含的UDS请求的数据和车辆或设备的标识信息(如VIN码)是我们重点关注的对象,这既是DOIP作为应用层报文的主要异同所在也是我们威胁场景分析以及识别参与通信的车辆或设备依据。 | 1、非法请求:通过白名单识别 源目IP地址、端口号、协议类型、数据包大小、协议头部信息、消息内容、车辆或设备的标识信息、时间戳等。 |
三、部分车端入侵威胁的典型检测场景
我们在此总结了一些常见车端nids的检测实例供参考,这些场景均参照了R155标准的相关解读。
场景1、非法端口探测扫描
在扫描行为中,数据包被用来探测目标系统的开放端口、服务状态等敏感信息,从而为后续的攻击行为提供情报。在感知非法的端口探测扫描时,车载NIDS探针主要关注以下几个特征值:
常见扫描类型及其数据包特征
扫描方式 | 描述 | 特征 |
SYN扫描 | 1、发送只包含SYN标志位的TCP数据包用于探测目标主机的端口状态。2、大量向目标系统的不同端口发送SYN或ACK数据包,以探测开放的端口和运行的服务。 | 正常特征:1、只包含SYN标志位的TCP数据包: 用于探测目标主机的端口状态,SYN=1,ACK=0。2、SYN=1,ACK=1: 代表连接开始并且已经得到响应,该端口处于开放状态。3、RST: 代表连接重置,该端口处于关闭状态。恶意特征:1、大量向目标系统的不同端口发送SYN或ACK数据包: 用于探测开放的端口和运行的服务。2、异常特征: 恶意扫描行为可能表现为频繁发送大量的SYN或ACK数据包到目标系统的不同端口,以探测目标系统的开放端口和服务情况。 |
ACK扫描\FIN扫描\NULL扫\XMAS扫描 | 1、分析TCP包的ACK/FIN/NULL/XMAS标志位。2、ACK扫描不依赖于建立完整的TCP连接,因此nids需要更加谨慎地分析数据包的上下文信息,以避免误报。如果发现大量的ACK包针对未建立连接的端口发送,这可能是ACK扫描的迹象。3、如果一个IP地址在短时间内向大量不同的端口发送SYN或ACK数据包 | ACK扫描:正常特征: ACK标志位被设置,用于确认数据包接收。恶意特征: 大量的ACK包针对未建立连接的端口发送,用于探测目标主机的端口状态。FIN扫描:正常特征: FIN标志位被设置,表示发送端已经完成发送数据,并要求关闭连接。恶意特征: SYN标志位为0,同时FIN标志位被设置,用于探测目标主机的端口状态。NULL扫描:正常特征: SYN、FIN、ACK标志位均为0。恶意特征: SYN、FIN、ACK标志位均为0,用于探测目标主机的端口状态。XMAS扫描:正常特征: SYN=1,FIN=1,PSH=1。恶意特征: SYN=0,同时FIN、PSH等标志位被设置,用于探测目标主机的端口状态。 |
场景2、 TCP-DDoS攻击
DDOS攻击的策略库已经非常成熟了,覆盖了从传输层到应用层各种场景。我们认为,车载NIDS在检测TCP DDoS攻击时,主要关注以下字段和特征:
监测项 | 监测原因 |
源IP地址 | 通过分析源IP地址的分布和变化,可以识别出是否存在大量来自相同或相似IP地址的流量。这是判断是否存在僵尸网络节点的一个关键指标。 |
目标IP地址 | 观察目标IP地址的流量情况,可以判断攻击是否针对特定的系统或服务。如果目标IP地址的流量异常增长,则可能是DDoS攻击的迹象。 |
数据包大小 | DDoS攻击中,攻击者可能会发送大量小数据包或少数大数据包,以消耗目标系统的处理能力。因此,数据包大小也是检测DDoS攻击的一个重要特征。 |
数据包速率 | DDoS攻击通常伴随着高速率的流量发送。因此,通过监测数据包速率的变化,可以及时发现DDoS攻击的迹象。 |
场景3、恶意软件检测-车端木马后门
攻击者通常会利用网络流量来发起攻击,因此分析网络流量中的特征可以帮助我们发现攻击行为。常见的攻击特征包括:
以Metasploit生成的木马TLS证书特征分析为例,Metasploit是一款常用的渗透测试工具,可以生成各种类型的木马。这些木马通常会使用TLS(Transport Layer Security)协议进行加密,以隐藏网络流量。我们可以通过分析木马的TLS证书来识别其恶意行为。
Metasploit生成的木马TLS证书通常具有以下特征:
结语
除以太网外,CAN网络在车载通信中扮演着至关重要的角色,然而却存在着多种安全问题。目前,CAN总线缺乏足够的安全保护措施,导致信息的保密性、完整性、可用性、真实性和不可抵赖性受到威胁。消息在总线上可以被任意节点读取,且缺乏消息认证码或数字签名保护,增加了信息泄露和篡改的风险。此外,对ECU进行固件修改时使用口令等弱认证技术,容易受到攻击。CAN协议的滥用也存在,攻击者可以利用总线仲裁机制进行拒绝服务攻击,或发送恶意错误帧消息使ECU失效。常见的攻击方式包括丢弃、修改、读取、欺骗、洪泛和重放攻击,以上都对车载CAN总线网络构成潜在威胁,后续我们也希望在车端HIDS上继续研究更新,并于期待下次与大家再次探讨。