OBD数据分析(三)(续)

博客探讨了OBD数据分析中如何应对入侵者注入周期性消息的攻击。由于受损节点和原始节点同时发送相同ID消息,导致频率变化。文章引用论文提到时钟偏差可能导致虚警,并提出一种双重检测规则,通过临时计数器过滤小于2毫秒循环时间的异常,设定时间周期以判断入侵攻击。实验结果显示了该方法的有效性。
摘要由CSDN通过智能技术生成

OBD数据分析(三)——入侵检测(在一定时间范围内的双重检测规则)

  • 检测消息的时候我们常会关注消息的频率,所以入侵者往往会试图注入周期性的消息进行攻击,但是当受损节点在总线上注入消息时,原始节点继续发送具有原始频率的相同ID的相同消息,消息频率会有显著变化。
  • 通过查阅论文我们知道,在发送ECU(the sending ECU)的时钟偏差等的影响下,可能出现虚警(False alarm),如下图
    在这里插入图片描述
    如图所示,这4000条样本消息中的两条具有小于2毫秒的循环时间
  • 所以定义一个双重检测规则,来避免这种虚警。(使用临时计数器来保存超过阈值的连续消息的数量, 然后通过检查该值是否计数多个消息或者否则指定零值来做出最终决定)
  • 我们定义了一个时间周期,为0.00015-0.00028,这段时间范围包括了优先级高的消息的抢占导致的时间延迟,和时钟偏差带来的误差。超出这段时间的消息则判断为有入侵攻击。
    运行结果如下
    在这里插入图片描述
    具体代码如下
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <sstream>
#include <algorithm>
#include <cmath>
using namespace std;
class message
{
   
   public: 
   string Timestamp;
   string timestamp;
   string Id;
   string iD;
   string id;
   string DLc;
   string dlc;
   string A;
   string Aa;//中间变量,有助于数据的输入
   string B
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值