20199136 2019-2020-2 《网络攻防实践》期末大作业

一、论文信息


1.论文及作者相关信息

这篇论文题目为《Exposing Congestion Attack on Emerging Connected Vehicle based Traffic Signal Control》出自2018年NDSS会议,论文作者Qi Alfred Chen 2018年博士毕业于美国密歇根大学安娜堡分校的计算机科学工程专业,现为美国加州大学欧文分校计算科学系的教授助理。作者的主要研究方向为网络和系统安全性,其中包括软件安全性,网络协议安全性,DNS系统安全性等,近期研究方向主要集中在智能系统和IoT中的安全问题,例如,智能家居系统,智能交通系统和自动驾驶汽车系统。


2.研究背景

2016年9月,美国运输部(USDOT)启动了CV试点计划,互联车辆(CV)技术使用无线通信来连接车辆和基础设施,其目标是显著改善交通运输系统的机动性,安全性,以及对环境的影响和公共机构运营。尽管CV技术优势巨大,但网络连接数量的急剧增加也为网络攻击打开了一扇新门。为了确保车辆和运输基础设施的安全以及驾驶员和行人的安全,因此了解该技术潜在的安全漏洞非常重要,以便可以在全国范围内部署该技术之前主动予以解决。


二、相关知识点


1.CV通信技术

CV环境
通信类型 车对车(V2V)通信 车对基础设施(V2I)通信
设备类型 车载单元(OBU) 路边单元(RSU)

在这种CV环境中,车辆使用OBU定期向周围的车辆和基础设施广播基本安全消息(BSM),包括自身实时轨迹数据(例如位置和速度)。这样可以在车辆侧实现一系列安全功能,例如盲区警告和变道警告,并且还使交通基础设施能够利用实时交通数据来改善交通控制性能。为增强CV环境中的通信安全性,USDOT将在车辆和基础设施方面都部署安全和证书管理系统(SCMS)。这是一个公共密钥基础结构(PKI)系统,要求每条BSM消息都必须由发送者事先发出的数字证书进行签名,因此,接收者可以在对其进行操作之前先对其进行验证。


2.I-SIG系统

作为基于CV的运输系统的第一个安全性研究,针对在DMA程序中开发的基于CV的交通控制系统,称为智能交通信号系统(I-SIG)。在该系统中,利用通过DSRC传输的实时车辆轨迹数据在十字路口执行更有效的交通信号控制。该系统已经在Anthem和PaloAlto的实际交叉路口进行了测试,并显示出很高的效率。

  • I-SIG系统环境结构图
  • I-SIG系统拓扑结构图:

3.COP(相位控制优化)算法

COP算法的输入是交叉路口每个接近车辆的预计到达时间,该时间定义为车辆到达其当前车道停车杆的预计剩余时间。基于到达时间,COP使用动态规划方法来计算总延迟最小的最佳信号方案。为了估计总延迟,COP首先根据当前队列长度来估计车辆的释放时间。如果没有队列,就没有延迟;否则,它将使用排队模型来估计清除车辆前方队列的时间。然后,车辆的延迟时间就是释放时间减去到达时间

1 procedure COP(T,r,γ)
2 begin
3     Initializej:=1,s0:=x0:=v(s0)=0;
4     for sj =r to T do
5     begin
6          If sj– r <γ then
7                  Xj(sj):={0};
8 else
9      Xj(sj)={0,γ ,γ +1,… ,sj- r};
10     For each xj ∈ Xj(sj)  do
11     begin
12        If xj ==0  then
13   sj-1:=sj; // phase j is allocated zero time
14 else
15   sj-1:=sj – xj – r;//forward recursion, clearly sj = sj-1 + xj + r (for the current suggested value of xj)
16          νj’(sj,xj):= fj(sj,xj) •vj-1(sj-1);   // evaluating the value fn at the particular state sj with the control variable set to xj
17       end// end for xj
18       xj*:= argminxjvj’(sj,xj);// computing the optimal value of the control variable at state sj
19       vj(sj) := vj’(sj,xj*);// computing the optimal value fn at state sj given the optimal value of the control var xj*
20   end // end for sj
21    j:= j + 1;     // next stage
22 Repeat the above loop (line 4) until the stopping criterion is satisfied
23 end// end procedure COP

4.EVLS算法

如果COP算法仅针对装备车辆的信号计划进行了优化,则发现如果装备车辆的比例不够高(例如小于95%),则会大大降低其有效性。由于估计市场渗透率至少需要25-30年才能达到95%,因此I-SIG系统使用称为EVLS(位置和速度估算)的算法来估算未配备车辆的轨迹数据。
EVLS算法基于预测的到达车辆数量优化交叉口各相位的绿灯时间。其中包括两个层面的优化:上层为采用动态规划算法的思路优化各个相位组的时间,下层为优化每个相位组中相位的绿灯时间的整数优化模型。

1 procedure Solve(rank, p, r, γ)
\\ rank: processor id
\\ p: number of processors
2 begin
3     j := 1; sj_1 := 0; v := 0; \\ v is the value function
3     while checkStoppingCriteria(v,j-1)
4     begin
5         for sj := r + rank to T step p
6         begin
7             TargetProcIds := {sj + r + γ, … ,Min(sj + r+ γ + p, T)};
8             if j > 1 then
9                 AllToAll v [si][j-1], xj_star[sj][j-1]
10         end
11     end
12     v [sj][j] = Minxj_star (fj(sj,xj) . v [sj_1][j-1])for
all     xj in { sj, sj-1, …, γ, 0};
13       xj_star[sj][j] = xj_star;
14 end
15 j:=j+1;
16 end
17 ReportSolution();

4.最后车辆优势

  • 描述:由最新到达的车辆确定的信号计划所带来的影响。
  • 攻击:攻击者尽可能迟的到达,以增加其他方向上排队车辆的延迟。
  • 基本原因:安全性与可部署性之间的折衷。有限的决策时间迫使选择次优配置。这种次优的配置意外地暴露了这种影响。


三、分析过程


1.威胁模型

  • 恶意车主故意控制OBU发送欺骗数据
    • 物理方式,无线方式或恶意软件的破坏
  • 只能欺骗数据,例如位置和速度
    • 由于USDOT的车辆证书系统,无法伪造身份

2.攻击目的

  • 造成交通拥堵
  • 增加交叉路口车辆的总延误
    • 颠覆I-SIG的设计目标
    • 损坏:城市功能和个人(浪费的燃料,时间)
    • 影响: 政治和经济方面等

3.分析方法概述

  • 分析I-SIG系统的核心算法,并确定可能会影响该算法的轨迹数据欺骗策略。
  • 列举I-SIG系统上已确定策略的所有数据欺骗选项,以了解堵塞攻击有效性的上限。

作为分析的第一步,首先分析并攻击输入的数据流,以确定数据欺骗策略。
下图显示了I-SIG中的攻击输入数据流系统。在进行简单的判断后,对车辆轨迹数据条目的列表(包括在过渡期间包含装备的车辆和估计的未配备车辆的条目)进行处理,以形成一个称为到达表的结构。


4.攻击重现的结果分析

  • 在PR为25%的所有情况下,E1可以增加总延迟的60%以上。
  • 当PR为25%时,EVLS算法中未装备的车辆估计中的误差大于通用交叉路口设置中的误差,导致攻击效率降低。尽管如此,总延误增加百分比仍然很高(46.2%):对于车辆而言,一小时的出行现在需要将近一个半小时,这表明运输机动性显着下降。
  • E3的结果比漏洞分析中的攻击更有效:当PR分别为75%和50%时,平均延迟增加百分比分别为181.6%和193.3%,比漏洞分析中的百分比高出5倍以上。25%PR情况下的增长略低,但仍约为漏洞分析的4倍。



5.防御讨论

  • 过渡期的鲁棒算法设计:防止过渡期的信号控制算法对数据欺骗攻击过于敏感
  • 路侧设备单元(RSU)的性能改进:以便可以在信号控制中使用更优化的配置
  • 对基础设施传感器进行数据欺骗检测:检测和过滤具有攻击性的BSM消息

四、论文的复现

该论文的复现难点在于

  • 交通仿真软件Vissim的重写和再编译()
  • 交通数据的搜集与查找

或许是论文选的不太好,完全超出知识和能力范围,做着做着就偏建模方向了。以下两个代码有关于软件的再编译,只实现了一小部分。

# 读取评价文件
rawdata = pd.read_table(r'CUsers1.kna', encoding='gbk')
needdata = rawdata.iloc[8]
needdata1 = pd.DataFrame([jj.split(';') for jj in needdata['Node evaluation']])
needdata1.columns = needdata1.iloc[0]
needdata1 = needdata1.iloc[1]
needdata1[' Delay(All)'] = needdata1[' Delay(All)'].astype(float)
needdata1['aveQueue'] = needdata1['aveQueue'].astype(float)
needdata1 = needdata1[3].reset_index(drop=True)

fig, ax = plt.subplots(nrows=1, ncols=2)
ax[0].plot(needdata1[' tStart'].astype(float), needdata1[' Delay(All)'].astype(float), 'o-', label='Delay')
ax[1].plot(needdata1[' tStart'].astype(float), needdata1['aveQueue'].astype(float), 'o-', label='aveQueue')
ax[0].legend()
ax[1].legend()
import win32com.client as com
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#加载接口及文件
vissim_com = com.Dispatch("Vissim.Vissim")
vissim_com.LoadNet(r'C:\Users\1.inp')
vnet = vissim_com.net
SgCtrls = vnet.SignalControllers
SgGrps1 = SgCtrls.GetSignalControllerByNumber(1).SignalGroups.GetSignalGroupByNumber(1)

# 设置仿真参数
Sim = vissim_com.simulation
Sim.RandomSeed = 60
Sim.Resolution = 10
Sim.Period = 1200
# 打开评价
eval = vissim_com.Evaluation
eval.SetAttValue('DATACOLLECTION', True)
dceval = eval.DataCollectionEvaluation
dceval.SetAttValue('FILE', True)
dceval.SetAttValue('COMPILED', True)

# 开始仿真
for SimStep in range(1, int(Sim.Period * Sim.Resolution)):
    Sim.RunSingleStep()
#设置两个信号方案
    if SimStep / Sim.Resolution < 600:#注意除以Sim.Resolution,才对应当前仿真秒
        SgGrps1.SetAttValue("REDEND", 1)
        SgGrps1.SetAttValue("GREENEND", 55)
    else:
        SgGrps1.SetAttValue("REDEND", 1)
        SgGrps1.SetAttValue("GREENEND", 5)
Sim.stop()
posted @ 2020-06-29 11:43  考完了改名了  阅读(382)  评论(0编辑  收藏  举报