当前位置: 首页 > news >正文

建设招标网是什么网站/百度一下你就知道官网下载安装

建设招标网是什么网站,百度一下你就知道官网下载安装,wordpress设置登录页面模板,国内装修公司文章目录 车联网安全入门——CAN总线模糊测试介绍主要特点使用场景 模糊测试(Fuzz Testing)CAN 总线模糊测试(CAN Packet Fuzzing)主要步骤工具和软件主要目标 Can-Hax安装使用获得指纹模糊测试 SavvyCAN 总结参考 车联网安全入门…

文章目录

  • 车联网安全入门——CAN总线模糊测试
    • 介绍
      • 主要特点
      • 使用场景
    • 模糊测试(Fuzz Testing)
      • CAN 总线模糊测试(CAN Packet Fuzzing)
        • 主要步骤
        • 工具和软件
        • 主要目标
      • Can-Hax
        • 安装
        • 使用
          • 获得指纹
          • 模糊测试
      • SavvyCAN
    • 总结
    • 参考

车联网安全入门——CAN总线模糊测试

🚀🚀最近对于车联网安全非常有兴趣,但是不知道怎么入门,无意间发现了ICSim,可以用来简单模拟一下汽车,学习了一段时间后决定写一下笔记,怕自己学完就忘记了(仅供学习参考)。

介绍

🚀🚀ICSim 是一个用于模拟车辆仪表集群的工具,专门为 SocketCAN 设计。SocketCAN 是 Linux 内核中的一个模块,用于支持控制器局域网(CAN)接口。

主要特点

  1. 仪表集群模拟:ICSim 可以模拟车辆仪表盘,包括速度表、转速表、燃油表等。这对于开发和测试基于 CAN 总线的汽车电子系统非常有用。
  2. 与 SocketCAN 集成:ICSim 与 Linux 的 SocketCAN 接口集成,允许用户通过标准的 SocketCAN 工具与模拟器进行通信和调试。
  3. 教育和开发:它是汽车网络和协议学习的一个极佳工具,可以帮助工程师、研究人员和学生理解 CAN 总线的工作原理和应用。

使用场景

  • 软件开发:在开发车辆电子控制单元(ECU)时,可以使用 ICSim 进行初步测试,而无需实际的车辆硬件。
  • 教学和培训:提供一个虚拟的车辆环境,便于教学 CAN 总线通信。
  • 调试和验证:与实际车辆硬件的连接前,先在模拟环境中验证通信和功能。

🚀🚀项目地址如下所示:

zombieCraig/ICSim: Instrument Cluster Simulator (github.com)

🚀🚀安装教程如下:

车联网安全入门——ICSim模拟器使用-CSDN博客

模糊测试(Fuzz Testing)

🚀🚀模糊测试(Fuzz Testing)是一种用于发现软件漏洞和缺陷的自动化测试技术。其核心思想是通过向系统输入大量随机或半随机的数据,观察系统的响应,从而发现潜在的错误和安全漏洞。模糊测试常用于安全性测试和稳定性测试。

CAN 总线模糊测试(CAN Packet Fuzzing)

🚀🚀CAN Packet Fuzzing 是将模糊测试应用于控制器局域网(CAN)总线的一种技术。CAN 总线是现代汽车中用于电子控制单元(ECU)之间通信的关键协议。模糊测试在这个上下文中的主要目标是通过发送异常或无效的 CAN 数据帧,来发现车辆网络协议栈中的漏洞和缺陷。

主要步骤
  1. 定义测试范围:确定要测试的 CAN 网络的节点和消息类型。
  2. 生成模糊数据:使用随机或半随机的方法生成 CAN 数据帧。这些数据帧可以是完全随机的,也可以在现有合法数据的基础上进行变异。
  3. 发送模糊数据:将生成的模糊数据帧发送到 CAN 总线上,模拟正常通信环境。
  4. 监控系统行为:观察系统对这些模糊数据的响应,记录任何异常行为或系统崩溃。
  5. 分析和报告:分析捕获的异常行为,找出潜在的漏洞,并生成测试报告。
工具和软件
  • ICSim:虽然主要是用于模拟和测试,但也可以配置为进行初步的 CAN 模糊测试。
  • SavvyCAN:用于捕获和分析 CAN 数据,结合其他模糊测试工具一起使用。
  • 其他模糊测试工具:例如 Can-Hax,CANard、CANalyzat0r 以及定制的脚本和程序,可以生成和发送模糊数据帧。
主要目标
  • 安全性测试:发现并修复可能被恶意利用的漏洞。
  • 稳定性测试:确保系统在异常输入情况下的稳定性,避免意外崩溃或错误。
  • 协议验证:验证 CAN 协议实现的健壮性,确保其能正确处理所有类型的数据帧。

Can-Hax

🚀🚀这个工具是我刷视频的时候刷到的,是一个油管博主的开源工具,个人感觉还比较好用,就来介绍一下,当然了SavvyCAN是真的无敌!!!!!!

安装

🚀🚀我们直接从GitHub克隆下来就好了,这点比较的简单:

git clone https://github.com/rybolov/Can-Hax.git
cd Can-Hax
使用

🚀🚀Can-Hax是使用can-utils的指纹和模糊控制器区域网络(CAN)数据包/帧的实用程序,可用于大多数Linux。

🚀🚀CAN有效载荷模板有以下几种:0=在使用中未观察到,H=观察到的十六进制值,N=观察到的十进制值,所以它看起来像00NHHHHH。

获得指纹

🚀🚀我们使用如下命令来获得我们的指纹,xxxxxxx.log是我们使用candump存储下来的日志文件,xxxxxx.json是我们的指纹文件。

python ./can-hax.py --fingerprint --input xxxxxxx.log -d "ICSIM Vehicle Simulator" -o xxxxxx.json

🚀🚀比如我使用如下命令,便得到了以下输出:

python ./can-hax.py --fingerprint --input candump-2024-06-01_104423.log -d "ICSIM Vehicle Simulator" -o can_1_fingerprint.json

🚀🚀输出:

/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.Testing if candump-2024-06-01_104423.log is a file.
candump-2024-06-01_104423.log is most definitely a file.Found cansend. We can use this to send CAN packets.
First 3 lines read in as:
(1717253063.833375) vcan0 161#000005500108001C
(1717253063.833432) vcan0 191#010010A141000B
(1717253063.833439) vcan0 164#0000C01AA8000004Date of last log line: 2024.06.01
Found 37 CAN IDs.
{"date": "2024.06.01","description": "ICSIM Vehicle Simulator","fingerprints": {"039": "00NH","095": "N0000NHN000000NN","133": "00000000HN","136": "000N0000000000NH","13A": "00000000000000NH","13F": "0000000N000000NH","143": "NHNH00HH","158": "00000000000000NH","161": "00000NN00N0N00NH","164": "0000H0NHHN0000NN","166": "H0NN00NN","17C": "00000000N00000NN","183": "000000NH0000N0NH","188": "00000000","18E": "0000NH","191": "0N00N0HNNN00NH","19B": "00000H000000","1A4": "0000000N000000NH","1AA": "NHHH00000000NNNH","1B0": "000H0000000NNN","1CF": "N00N000000NH","1D0": "000000000000000H","1DC": "0N0000NH","21E": "0NHNNNNNNN0NNH","244": "0000000NHH","294": "0N0H000NHHNH00NH","305": "N0NN","309": "00000000000000HN","320": "0000NN","324": "NNNN000000000HNH","333": "000000000000NH","37C": "HH00HH000NNH00NH","405": "00000N00000000NH","40C": "0NNHNNNHNNNNNNNH","428": "0N0N0000NNNHNH","454": "NNHHNN","5A1": "NN0000000000NNNH"},"version": "2"
}
Done. Total realtime was 0:00:01.

🚀🚀我们来简单介绍一下里面的数据大概是什么意思:

 "133": "00000000HN",

🚀🚀133代表的是can总线ID号,后面0代表的是从来没有变化,一直是0;H表示的是十六进制,也就是说,这一位出现过十六进制数;N代表十进制,也就是这一位没有出现过十六进制的数。

模糊测试

🚀🚀接下来我们开始进行模糊测试了,这个就是全部模糊(可能需要很长时间,可以缩短时延),会一个一个进行测试。

python ./can-hax.py --fuzz --input xxxxxx.json --can vcan0
_____                   _   _            
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.Testing if can_1_fingerprint.json is a file.
can_1_fingerprint.json is most definitely a file.Found cansend. We can use this to send CAN packets.
CANID 161 00000NN00N0N00NH complexity is 7
Sending CAN frame:  161#0000000000000000
Sending CAN frame:  161#0000000000000001

–input,–can可以使用-i和-c简化。

🚀🚀除了全部测试之外,我们还可以测试特定的CAN ID,我们可以指定–canid。

python ./can-hax.py --fuzz --canid 19B --input can_1_fingerprint.json --can vcan0
 _____                   _   _            
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.Testing if can_1_fingerprint.json is a file.
can_1_fingerprint.json is most definitely a file.Found cansend. We can use this to send CAN packets.
CANID 19B 00000H000000 complexity is 2
Sending CAN frame:  19B#000000000000

-timing 1,表示的是时延,然后时延为一秒,使用命令如下所示

python ./can-hax.py --fuzz --canid 19B --input can_1_fingerprint.json --can vcan0 --timing 1

🚀🚀我们还可以使用–Quick或–Superquick快速指定一组简化的可能值。

python ./can-hax.py --fuzz --canid 19B --input can_1_fingerprint.json --can vcan0 --timing 1 --quick
 _____                   _   _            
/  __ \                 | | | |           
| /  \/ __ _ _ __ ______| |_| | __ ___  __
| |    / _` | '_ \______|  _  |/ _` \ \/ /
| \__/\ (_| | | | |     | | | | (_| |>  < \____/\__,_|_| |_|     \_| |_/\__,_/_/\_\
Can-Hax: Fingerprint and fuzz CAN traffic.Testing if can_1_fingerprint.json is a file.
can_1_fingerprint.json is most definitely a file.Found cansend. We can use this to send CAN packets.
CANID 19B 00000H000000 complexity is 2
Sending CAN frame:  19B#000000000000
Sending CAN frame:  19B#000001000000
Sending CAN frame:  19B#000009000000
Sending CAN frame:  19B#00000A000000
Sending CAN frame:  19B#00000B000000
Sending CAN frame:  19B#00000F000000
Running zeroize now.

Quick是只有0,1,9,A,B,F这几个数,然后Superquick只有0,9,F这几个极端的值。

🚀🚀自适应测试计算有效负载模板复杂程度的指标,并使用一组简化的可能值。

python ./can-hax.py --fuzz --adaptive --input can_1_fingerprint.json --can vcan0

🚀🚀这个就是自适应,但是我一直是递增一,所以感觉不是很好用,我们搭配上面那些就能进行简单的模糊测试了。

SavvyCAN

🚀🚀这个就是直接模糊测试了,比较无脑,当然我们也可以自己设置一些规则,但是我在测试的时候就已经把我的车门给打开了,裂开,太强啦!!!

在这里插入图片描述

总结

🚀🚀CAN 总线模糊测试是一种强大的方法,用于发现和修复汽车网络系统中的安全漏洞和稳定性问题。通过系统地生成和发送异常 CAN 数据帧,测试人员可以识别出潜在的缺陷,从而增强车辆电子系统的安全性和可靠性。结合 ICSim, Can-Hax和 SavvyCAN 等工具,可以有效地进行 CAN 总线模糊测试,并为车辆网络安全提供坚实的保障。

参考

https://www.youtube.com/watch?v=fXTJ6TH32Vg

相关文章:

车联网安全入门——CAN总线模糊测试

文章目录 车联网安全入门——CAN总线模糊测试介绍主要特点使用场景 模糊测试&#xff08;Fuzz Testing&#xff09;CAN 总线模糊测试&#xff08;CAN Packet Fuzzing&#xff09;主要步骤工具和软件主要目标 Can-Hax安装使用获得指纹模糊测试 SavvyCAN 总结参考 车联网安全入门…...

JDBC常见异常(10)—预编译模式下占位符动态排序字段失效

场景需求 需要根据不同的列进行对应的排序操作&#xff0c;实现动态列名排序 类似&#x1f41f;动态查询或更新 但是JDBC预编译模式下占位符的排序字段失效 SQL语句 分页查询 select * from (select t.*, rownum rn from(select * from emp order by empno desc) t where …...

爬虫入门教程:爬虫概述

在数字化时代&#xff0c;数据已经成为我们生活和工作中不可或缺的一部分。而如何高效、准确地获取这些数据&#xff0c;成为了许多领域面临的共同问题。今天&#xff0c;我们就来一起探讨一下爬虫技术&#xff0c;这个能够自动从互联网上抓取信息的神奇工具。 一、什么是爬虫…...

【工具】windows下VMware17解锁mac安装选项(使用unlocker427)

目录 0.简介 1.环境 2.安装前后对比 3.详细安装过程 3.1 下载unlocker427 1&#xff09;下载地址 2&#xff09;下载unlocker427.zip 3&#xff09;解压之后是这样的 4&#xff09;复制iso中的两个文件到你本地的VMware的安装目录下 5&#xff09;复制windows下的所有…...

JS 自测题 —— 手写 class

现有三种菜单&#xff1a;button 类型&#xff0c;select 类型&#xff0c;modal 类型。 共同特点 title icon 属性isDisabled 方法&#xff08;可直接返回 false&#xff09;exec 方法&#xff0c;执行菜单的逻辑 不同 button 类型&#xff0c;执行 exec 时打印 helloselect …...

Keras深度学习框架实战(7):使用YOLOV8和KerasCV进行高效的图像物体识别

1、绪论 1.1 KerasCV简介 KerasCV是一个专注于计算机视觉任务的模块化组件库&#xff0c;基于Keras构建&#xff0c;可与TensorFlow、JAX或PyTorch等框架配合使用。 概念与定位&#xff1a; KerasCV是Keras API的水平扩展&#xff0c;提供了一系列新的第一方Keras对象&#x…...

Django视图层探索:GET/POST请求处理、参数传递与响应方式详解

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…...

磁盘配额的具体操作

磁盘配额&#xff1a; linux的磁盘空间有两个方面&#xff1a;第一个是物理空间&#xff0c;也就是磁盘的容量 第二个inode号耗尽&#xff0c;也无法写入 linux根分区&#xff1a;根分区的空间完全耗尽&#xff0c;服务程序崩溃&#xff0c;系统也无法启动了。 为了防止有人…...

STM 32_HAL_SDIO_SD卡

STM32的SDIO&#xff08;Secure Digital Input Output&#xff09; 接口是一种用于SD卡和MMC卡的高速数据传输接口。它允许STM32微控制器与多种存储卡和外设进行通信&#xff0c;支持多媒体卡&#xff08;MMC卡&#xff09;、SD存储卡、SDI/O卡和CE-ATA设备。STM32的SDIO控制器…...

人脸识别系统之动态人脸识别

二&#xff0e;动态人脸识别 1.摄像头人脸识别 1.1.导入资源包 import dlib import cv2 import face_recognition from PIL import Image, ImageTk import tkinter as tk import os注&#xff1a;这些导入语句允许您在代码中使用这些库和模块提供的功能&#xff0c;例如创建…...

Opencv实用笔记(一): 获取并绘制JSON标注文件目标区域(可单独保存目标小图)

文章目录 背景代码 背景 如果我们想要根据json标注文件&#xff0c;获取里面的指定目标的裁剪区域&#xff0c;那么我们可以根据以下代码来实现&#xff08;也可以校验标注情况&#xff09;。 代码 from tqdm import tqdm import os, json, cv2, copy import numpy as npdef…...

LabVIEW在高校电力电子实验中的应用

概述&#xff1a;本文介绍了如何利用LabVIEW优化高校电力电子实验&#xff0c;通过图形化编程实现参数调节、实时数据监控与存储&#xff0c;并与Simulink联动&#xff0c;提高实验效率和数据处理能力。 需求背景高校实验室在进行电机拖动和电力电子实验时&#xff0c;通常使用…...

rtsp python实现

1. rtsp rtp rtcp https://hope-wisdom.blog.csdn.net/article/details/138259027 2.rtsp加速 https://mp.weixin.qq.com/s/0C1b-8pFw0HaE1xpNbrxxw 3. 实现了一部分获取数据 import socket import base64 import threading import struct# 定义 RTSP 请求 def send_rtsp_…...

RHCE (Linux进阶) Ubuntu 操作系统安装教程

一、在官网下载iso镜像文件 下载地址&#xff1a; https://cn.ubuntu.com/download/server/step1#downloads&#xff08;下载最新的Ubuntu 20.04 LTS服务器版本&#xff09; 二、VMware安装配置过程 基本安装过程 1、新建虚拟机 2、选择典型即可 3、设置下载好的Ubuntu对应路…...

vue-router 源码分析——1. 路由匹配

这是对vue-router 3 版本的源码分析。 本次分析会按以下方法进行&#xff1a; 按官网的使用文档顺序&#xff0c;围绕着某一功能点进行分析。这样不仅能学习优秀的项目源码&#xff0c;更能加深对项目的某个功能是如何实现的理解。这个对自己的技能提升&#xff0c;甚至面试时…...

百度云下载不限速方式集合

使用解析网站配合Motrix工具软件 下载Motrix工具&#xff1a;Motrix下载链接打开解析网址&#xff1a;解析网站获取&#xff0c;将百度网盘链接粘贴到解析网站&#xff0c;获取下载链接。在Motrix中配置Aria2 RPC地址&#xff1a;ws://localhost:16800/jsonrpc开始下载&#x…...

2024年6月1日 (周六) 叶子游戏新闻

Embracer探讨单机游戏大作涨价超过70美元的可能性在Embracer集团等待公布新公司名称的同时&#xff0c;他们对游戏大作的价格上涨做出了评论。几年来&#xff0c;游戏大作的价格已经达到了70美元的门槛。Embracer集团的CEO Lars Wingefors在采访中表示&#xff0c;电子游戏行业…...

MathorCup挑战赛获奖名单公示,第九届研讨会及颁奖典礼即将举行

近日&#xff0c;备受瞩目的2024年第十四届MathorCup高校数学建模挑战赛圆满落幕&#xff0c;竞赛组委会于近日公示了获奖名单初稿。本届竞赛自2024年4月12日至16日举行&#xff0c;吸引了来自全国740所高校的9119支队伍踊跃参与&#xff0c;其中包括本科生、研究生、专科生及教…...

vulnhub靶机xptosystem

下载地址&#xff1a;https://download.vulnhub.com/xpto/xptosystem.ova 主机发现 端口扫描 服务扫描 漏洞扫描 看一下web 目录爆破 那不用说肯定看看robots.txt 要检查readme去看看 看不懂 这个是靶场吧很像 在最后看着挺像url路径的 还真是&#xff0c;我直接base64 坏了还…...

Spring Boot详解:深入了解与实践

文章目录 1. Spring Boot简介1.1 什么是Spring Boot&#xff1f;1.2 Spring Boot的历史背景1.3 Spring Boot的核心特点 2. Spring Boot的核心概念2.1 自动配置2.1.1 自动配置原理2.1.2 自定义配置 2.2 Spring Boot Starter2.3 Spring Boot CLI 3. Spring Boot的主要功能模块3.1…...

FreeRtos进阶——中断的内部逻辑

中断与非中断API的区别 BaseType_t xQueueSendToBack(QueueHandle_t xQueue,const void *pvItemToQueue,TickType_t xTicksToWait); BaseType_t xQueueSendToBackFromISR(QueueHandle_t xQueue,const void *pvItemToQueue,BaseType_t *pxHigherPriorityTaskWok…...

Centos7对比Ubuntu一些常用操作差异点

Centos7对比Ubuntu一些常用操作差异点 CentOS 7将于2024年6月30日停止维护&#xff0c;CentOS8已经转为Rhel的上游项目。同时Centos7的软件仓库中&#xff0c;部分软件版本较老。后续使用过程中可以考虑切换到Ubuntu。 下面总结了一些两个系统的常见差异点&#xff0c;包括软…...

24、matlab二维和三维网格(meshgrid函数)以及散点数据插值 griddata()函数

1、二维和三维网格(meshgrid函数) 语法 语法1:[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。 语法2:[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)length(x) 的方形网格坐标。 语法3:[X,Y,Z] = meshgrid(x,y,…...

Codeforces Round 950 (Div. 3)

好久没写题解了&#xff0c;今天来写个题解。 A - 问题 Generator #include "bits/stdc.h" using namespace std;#define int long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0); #define all(x) x.begin(),x.end() #define pi pair<in…...

弘君资本炒股开户:如何看待股价波动?

在股票商场上股价的动摇无疑是投资者最为关心的话题之一&#xff0c;面临股价的起伏不定投资者往往会感到迷茫和焦虑。关于怎么看待股价动摇&#xff0c;弘君资本下面就为大家详细介绍一下。 股价动摇是股市运行的常态&#xff0c;股市是国民经济的晴雨表&#xff0c;股票价格…...

操作系统实验六 文件系统验证实验

前言 当时由于假期的原因&#xff0c;我们不需要做实验五&#xff0c;所以实验六是我们做的最后一个实验&#xff0c;因此实验五就需要靠大家自己完成了。 1.实验目的 初步掌握Linux系统文件权限和IO操作。 2.实验内容 熟悉Linux系统文件权限和使用相关IO函数进行文件创建和…...

python中的循环控制语句break与continue

学习这两个语句之前&#xff0c;我们要先了解这两个语句是什么意思&#xff1a; break&#xff1a;中断、打破的意思。所以它的跳出循环的意思 continue&#xff1a;继续的意思&#xff0c;意思是跳过当前条件&#xff0c;继续循环 新需求来了&#xff01;我们不仅要告诉 Py…...

C语言笔记23 •文件操作•

1.为什么要使用文件&#xff1f; 文件&#xff0c;顾名思义就是存储我们所写在电脑上的文本内容。如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失 了&#xff0c;等再次运⾏程序&#x…...

新项目来了,JDK 17和JDK 21 该如何选择?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …...

友顺科技(UTC)分立器件与集成IC产品选型和应用

友顺科技股份有限公司成立于1990年&#xff0c;是全球领先的集成电路与功率半导体厂商 ,集团总部位于台北&#xff0c;生产基地位于福州、厦门。 友顺科技具有完整模拟组件产品线&#xff0c;其中类比IC涵盖各种稳压器、PWM控制IC, 放大器、比较器、逻辑IC、Voltage Translato…...