4、防火墙基础概念:防火墙的定义与工作原理、包过滤防火墙、状态检测防火墙、应用层防火墙

各位同学,今天我们聊聊防火墙。说实话,防火墙这个概念在IT网络里已经存在几十年了,但在车载网络里,它还是个相对新鲜的事物。我个人习惯把防火墙比作「门卫」——它决定谁可以进来,谁必须滚蛋。

4.1 防火墙的定义与工作原理

防火墙,说白了就是一个网络边界上的安全设备。它按照预设的规则,对进出的网络流量进行审查和管控。你想想看,车载网络里那么多ECU,那么多总线,如果没有防火墙,那不就等于把家门敞开着吗?

它的工作原理其实不复杂:

  • 接收数据包:从网络接口抓取每一个经过的数据包
  • 解析包头:提取源IP、目的IP、端口号、协议类型等信息
  • 匹配规则:拿这些信息去跟预设的规则表做比对
  • 执行动作:允许通过、拒绝丢弃、或者记录日志

我在项目中遇到过一件事:某款车型的T-Box(远程通信终端)总是被攻击者扫描端口。后来我们加了一条防火墙规则,直接把所有非必要的入站连接全部丢掉。嗯,从那以后,扫描日志就安静了。

核心要点:防火墙不是万能的,但它能挡住90%的「瞎搞」流量。剩下的10%,需要靠其他安全机制来补。

4.2 包过滤防火墙

包过滤防火墙,这是最基础、最老派的一种。它只看数据包的头部信息,不关心数据包里面装了什么。

它的判断依据很简单:

  • 源IP地址
  • 目的IP地址
  • 源端口号
  • 目的端口号
  • 协议类型(TCP、UDP、ICMP等)

举个例子,假设我们想禁止外部设备访问车载网关的调试端口(比如端口5555),可以这样配置:

# 伪代码示例:包过滤规则
规则1: 拒绝 任何 -> 网关IP:5555 (TCP)
规则2: 允许 任何 -> 任何 (其他流量)

你看,就这么简单。但问题也来了——它只看「信封」,不看「信的内容」。攻击者完全可以伪造一个合法的IP地址,然后发送恶意数据。我曾经在测试中发现,一个简单的IP欺骗攻击,就能绕过这种防火墙。

注意:包过滤防火墙对UDP和ICMP攻击几乎无能为力。因为UDP没有连接状态,ICMP又经常被滥用做DDoS攻击。在车载网络里,我建议只把它作为第一道防线,别指望它解决所有问题。

4.3 状态检测防火墙

状态检测防火墙,比包过滤聪明多了。它不光看每个数据包的头,还会记录「连接状态」。你想想看,一个TCP连接有三次握手,有数据传输,有四次挥手。状态检测防火墙会跟踪这些状态变化。

它的工作原理是这样的:

  1. 当一个SYN包进来,防火墙创建一个「连接表项」
  2. 记录源IP、目的IP、端口、序列号等信息
  3. 后续的数据包必须匹配这个连接表项
  4. 如果收到一个不属于任何已建立连接的RST包,直接丢弃

我记得有一次,我们在做车载以太网的渗透测试。攻击者尝试发送伪造的TCP RST包来中断通信。包过滤防火墙完全没反应,但状态检测防火墙立刻识别出这个RST包不属于任何已建立的连接,直接把它扔了。嗯,这就是状态检测的价值。

个人经验:在车载网络中,状态检测防火墙特别适合用在域控制器之间的通信链路上。因为域控制器之间的连接通常是长连接,状态表维护起来比较方便。但如果连接数太多(比如超过10万条),状态表会撑爆内存,这点要注意。

4.4 应用层防火墙

应用层防火墙,也叫深度包检测(DPI)防火墙。它不光看包头,还会拆开数据包,检查应用层的内容。说白了,它是个「拆信检查」的门卫。

它能做什么?

  • 检查HTTP请求是否包含SQL注入语句
  • 检测SOME/IP服务调用是否合法
  • 识别并阻止恶意文件传输
  • 验证诊断协议(如UDS)的会话序列是否正确

举个例子,在车载网络中,UDS诊断协议经常被滥用。攻击者可能发送一个非法的诊断会话请求。应用层防火墙可以这样处理:

# 伪代码示例:UDS诊断请求过滤
规则: 检查UDS请求中的SID(服务标识符)
如果 SID == 0x10(诊断会话控制):
    检查源地址是否在白名单中
    如果不在白名单: 丢弃并记录日志
    如果在白名单: 允许通过
否则:
    允许通过

我曾经在项目里遇到过一件事:某OEM的测试团队在路试时,发现车辆偶尔会进入「工程模式」。查了半天,发现是某个ECU收到了伪造的UDS请求。后来我们在网关上加了一层应用层防火墙,专门检查UDS请求的合法性。从那以后,这个问题再也没出现过。

避坑指南:应用层防火墙虽然强大,但性能开销也大。每检查一个数据包,都要做大量的字符串匹配和协议解析。在车载嵌入式平台上,CPU资源有限,别把所有流量都丢给应用层防火墙。我建议只对关键协议(如UDS、SOME/IP、DoIP)做深度检查,其他流量交给状态检测防火墙处理。

4.5 三种防火墙的对比

特性 包过滤防火墙 状态检测防火墙 应用层防火墙
检查深度 网络层/传输层头部 网络层/传输层 + 连接状态 网络层到应用层
性能开销
安全性
适用场景 简单ACL控制 域间通信 关键协议保护
车载典型应用 CAN/CAN FD网关 车载以太网域控 UDS/DoIP诊断

好了,关于防火墙的基础概念,我们就讲到这里。下一节我们会深入聊聊如何在车载网络中实际部署这些防火墙。记住一句话:没有最好的防火墙,只有最合适的防火墙。选型的时候,一定要结合你的硬件平台、网络拓扑和安全需求来定。