10月10日,中国工程院院士倪光南在首届新型智慧城市建设国际峰会上,发表了题为《推进网信领域的自主可控替代》的演讲。倪光南表示,在中兴事件后,美国的单边主义再次凸起,贸易战打响,加之近期美国副总统彭斯的讲话,对中国形成了相当大的挑战。而在推进国产自主可控这件事情上,他觉得重要阵地在“网信”。
2010 年 6 月,一个名为 Stuxnet处于休眠状态的病毒潜伏在伊朗的铀浓缩设施网络中,Stuxnet在位于纳坦兹的离心机中被激活,控制了30%的纳坦兹设施的计算机,致使伊朗暂时关闭了核设施和核电厂,震网病毒感染了全球超过20万台电脑,摧毁了伊朗浓缩铀工厂五分之一的离心机。震网病毒的感染途经是通过U盘传播,然后修改PLC控制软件代码,使PLC向用于分离浓缩铀的离心机发出错误的命令。
Armis研究团队在VxWorks中发现了11个零日漏洞,VxWorks可能是使用的最广泛的操作系统。VxWorks被超过20亿台设备使用,包括关键的工业,医疗和企业设备。
这25个安全漏洞被统称为BadAlloc,是由内存分配整数溢出( Integer Overflow)或环绕错误(Wraparound)引起的。攻击者可以利用这些漏洞导致系统奔溃,并在受感染的IoT和OT系统上远程执行恶意代码。
来自404实验室安全研究团队的对于VxWorks 工控实时操作系统进行的 Fuzzing 与漏洞挖掘调试、利用的安全探究。 0x00 前言 关于VxWorks,这里引用44CON议题《攻击 VxWorks:从石器时代到星际》探究(http://www.freebuf.com/vuls/78277.html) 一文章中的介绍: VxWorks 是世界上使用最广泛的一种在嵌入式系统中部署的实时操作系统,是由美国WindRiver公司(简称风河公司,即WRS 公司)于1983年设计开发的。其市场范围跨越所有的安全
在前面的文章中,我们已经成功编译并启动了 VxWorks,本文将重点介绍 VxWorks 的启动流程,并使用GDB进行调试以更深入地研究启动过程。
连接Target Server后,Host端可以启动一个叫Host Shell的工具
在《Tool之TargetServer(vx6)》里介绍了Workbench下如何启动TargetServer来连接WDB,今天看看Tornado里的操作
实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任,并控制所有实时任务协调一致运行的操作系统。
bootrom或VxWorks镜像一般可以编程成多种文件类型,例如bootrom、bootrom.bin、bootrom.hex、bootrom.pxe、vxWorks、vxWorks.bin等
有了Disk,它还只是一个Device,一般在使用时,还要在Disk上创建块设备,并将这个块设备格式化。而格式化为哪种文件系统,就看具体需求了。
如果硬件还没到位,软件如何开展工作?可以使用《Tool之Simulator》或者《Vx7之VmWare》。不过VmWare WorkStation是收费的(哪位知道价格),只能用免费的VmWare Player。有朋友提示可以考虑免费的VirtualBox,今天就试试这个VB 还是分四步走吧 VirtualBox 官网下载VirtualBox和Extension Pack https://www.virtualbox.org/wiki/Downloads
航空软件并不神秘,从计算机架构上来说,同普通的计算机系统并无太大区别,都是由处理器,总线,I/O设备,存储设备,网络设备,通讯设备,操作系统和应用软件所构成的。仅仅是为了满足很高指标的可靠性,健壮性和实时性,而采用了另一套东西而已。
组件INCLUDE_VRFS,virtual root file system。这是一个虚拟的文件系统,仅是提供了一个POSIX风格的虚拟根目录"/"。在这个目录里,可以看到其它以"/"开始,且只包含一个"/"的设备
之前波音737MAX空难失事事件牵动人心,让人对航空出行又平添了一份不信任,根据最新消息显示,美国联邦航空局对737 MAX机型的大量评估授权给波音公司自身进行,安全评估存在严重缺陷。也传出了波音737 MAX客机的培训都是通过平板电脑软件进行这样让人毛骨悚然的内幕。
题图来自 Decoding Rust: Everything You Need to Know About the Programming Language[1]
VxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时操作系统。WRS 公司 组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。
近日,全球汽车行业零部件巨头安波福(Aptiv)对外披露,宣布以43亿美元从私募股权公司TPG Capital手中收购智能边缘软件服务商风河(Wind River),后者此前主要服务航空航天、国防、通讯以及汽车行业。2021年,风河的营收约为4亿美元,目前拥有1300名员工,包括1000名技术人员。
要想测试网卡的传输速度,可以使用UDP或TCP,自己写一段收发程序,实现起来并不复杂。不过,VxWorks6/7里已经封装了一个比较完整的工具 - sockperf
FTP分两部分:Server和Client。Server监听网络上其它设备(Client)的连接请求;Client连接到Server后,可以操作Server的文件,例如上传、下载、改名、删除等。VxWorks既支持Server,也支持Client。
前一段时间,波音737MAX空难失事事件牵动人心,让人对航空出行又平添了一份不信任,根据最新消息显示,美国联邦航空局对737 MAX机型的大量评估授权给波音公司自身进行,安全评估存在严重缺陷。也传出了波音737 MAX客机的培训都是通过平板电脑软件进行这样让人毛骨悚然的内幕。
VIP,就是VxWorks Image Project,Workbench中最基本的工程了,用于构建系统镜像
Simulator可以模拟硬件设备并运行VxWorks系统。这个模拟的系统可以提供VxWorks的大部分标准功能,包括网络、Shell等等。而且它的构建过程与构建真实硬件设备镜像的过程也基本是一样的。有了它,我们就可以脱离硬件设备,直接在Host上开发、运行、测试VxWorks应用。这样在项目开发阶段,尽可能的减少了对硬件设备的依赖。而外界与这个VxWorks系统进行交互的应用程序,是区分不出它是模拟设备还是真实的硬件设备。因此,除了可以加快软件开发进度,Simulator在很多领域也可以给我们提供帮助,例如教学、项目展示等。 Simulator对应用层提供的API与真实设备上的API没有什么区别,有区别的仅是对外设的访问,也就是无法提供一些外设的驱动程序。Simulator至少可以模拟以下硬件或功能
VxWorks设备在启动时会给自己指定一个名字 - target name。后来这个名字去哪里了?
北京时间 8 月 6 日早间消息,路透社援引消息人士的说法称,由于使用来自一家美国公司的过时软件,华为在英国正面临调查。调查者担心,这种软件可能会造成安全风险。
[vxWorks *]# rtp exec [-s | -c] [-i] [-g | -a | -z] [-x | -X] [-p <priority>] [-u <stacksize>] [-o <rtpOptions>] [-t <taskOptions>] [-v <level>] [-e name=value] <filename> [--] [args] [&]
硬件平台环境如下图所示,采用两台带有以太网口的设备相连,一端是PC机插有PCIe的FPGA开发板,运行Windows操作系统;另一端是嵌入式设备,运行VxWorks操作系统。
VxWorks在运行时,一般都会使用一个Console,提供基本IO操作,例如:显示printf()的输出、提供Kernel Shell服务等等。
使用VIP编译VxWorks Image时,可能会遇到某些组件不可选,甚至找不到的情况
在开发Embedded RTOS时,多是采用交叉式的开发方式,VxWorks就是一个典型代表。运行VxWorks的远程设备,称之为Target;运行IDE(例如Workbench、Tornado)的本地设备,称之为Host。貌似也有人跟它们叫下位机和上位机。
不管用哪个OS,做过网络应用的,应该都用过ping命令吧,它通过发送ICMP的ECHO_REQUEST报文,来测试对端计算机在网络上是否可达。VxWorks当然也支持它了,包含组件INCLUDE_PING后,就可以在Shell或Code中使用ping()了
https://us-cert.cisa.gov/ics/advisories/icsa-21-119-04 https://msrc-blog.microsoft.com/ https://os.mbed.com/blog/entry/M ... cess-vulnerability/ 今早看到Mbed OS的博文,报道了这个事情,从这次公布的报告来看,受到影响的系统基本都是大家熟知的OS。 1、Azure Defender for IoT安全研究小组,最近发现了IoT和OT设备中的一系列关键内存分配漏洞,攻击者可以利用这些漏洞绕过安全控制,以执行恶意代码或导致系统崩溃。这些远程代码执行(RCE)漏洞涵盖了超过25个CVE,并可能影响从消费者和医疗IoT到工业IoT,运营技术(OT)和工业控制系统的广泛领域。这些漏洞存在于标准内存分配功能中,这些功能涵盖了广泛使用的实时操作系统(RTOS),嵌入式软件开发工具包(SDK)和C标准库(libc)实现。这些发现已通过微软安全响应中心(MSRC)和国土安全部(DHS)领导的负责人披露与供应商共享,从而使这些供应商能够调查和修补漏洞。 2、考虑到IoT和OT设备的普遍性,如果成功利用这些漏洞,则对各种组织构成巨大的潜在风险。迄今为止,微软尚未发现任何迹象表明存在利用这些漏洞的迹象。但是,强烈建议尽快修补其系统。同时,考虑到修补IoT / OT设备可能很复杂。对于无法立即打补丁的设备,建议减轻控制措施,例如:通过最小化或消除易受攻击的设备在网络上的暴露程度来减少攻击面;实施网络安全监控,以发现危害的行为指标。 3、注意,微软的Azure RTOS ThreadX在其默认配置中不易受到攻击。
风河引以自豪地宣布,VxWorks实时操作系统(RTOS)助力NASA洞察号探测器(InSight Lander)完成火星之旅重要里程碑,开始向红色星球减速12300mph并已成功着陆。风河VxWorks被应用于洞察号探测器的航空电子系统,助力NASA完成了此项任务,这是继2012年火星科学实验室好奇号任务之后,风河RTOS系统再次登陆火星。着陆后,洞察号将钻入火星表面,在2020年11月24日之前,它都将留在火星执行科学任务并收集有关这颗星球如何形成的数据信息(相当于火星上的一年零40天,或接近两个地球年)。
包含了它之后,VxWorks就会调用usrSerial.c的usrSerialInit()来加载串口设备
我以往的经验,这样情况多是地址错误引起的,而主要的地址错误就是栈溢出(或者叫栈越界)。我们写个例子模拟一下
在《Task之调度策略》里介绍了VxWorks的主要调度策略,而有了RTP之后,系统又是如何调度的呢?其实非常非常简单:RTP不参与调度,VxWorks还是使用之前的调度策略,即所有Task基于优先级抢占,以及默认关闭的时间片轮转。这确保在任何给定的时刻,系统中准备运行的最高优先级Task都将执行,而不管该Task是在内核中还是在任何进程中。相比之下,非实时系统主要使用分时调度策略,以及动态调整进程优先级,以确保没有进程会长期无法使用CPU,并且没有进程独占CPU。VxWorks的时间片轮转也是一种分时策略,但它不会干扰优先级的抢占,因此它具有确定性,保证了实时性。
根据配置的不同,VxWorks系统在启动时,会同步启动一些系统任务,其中有的任务在完成自己的工作后就会退出,而有的会一直运行下去。常见的系统任务如下:
Kernel Shell是VxWorks系统的一个Component(组件),是在Target端驻留的命令行。可以通过系统默认的全局IO来访问,即多数架构的串口0或者X86架构的PC Console;也可以通过Telnet或rlogin进行远程访问。
VxWorks在物理设备上运行时,如果要使用图形库(例如WindML、Zinc、Tilcon、QT等等),就需要使用相应显卡的驱动。遗憾的是,所有显卡厂家基本都不会发布VxWorks版本的驱动。幸运的是,所有显卡都支持VBE - VESA BIOS Extensions。VESA - Video Electronics Standards Association,是一个制定视频显示标准的国际组织。因此,WindRiver只需要提供一个VESA驱动,VxWorks就可以使用绝大多数的显卡了。
ScopeTools里还有个成员叫做ProfileScope,从Vx67开始,改名为Performance Profiler
PV操作是计算机领域一个有名的术语。它由荷兰人Dijkstra提出,是一种典型的同步机制,P(荷兰语passeren)表示通过,V(荷兰语vrijgeven)表示释放。
默认情况下,在Tornado2.x/VxWorks5.x里,Host端动态加载应用程序后,Target端是看不到的,当然也就无法调用/访问了。多数人在工作时,习惯动态加载应用程序,如果没有开Host Shell,用的是Target Shell,例如通过Telnet或者串口,那就不能调用动态加载的应用程序。例如Host Shell里的ld<a.out,在Target Shell里用moduleShow(),是看不到它的,也无法使用a.out里的函数。同样,Target端加载符号后,Host端也是看不到的,例如Target Shell里的ld<b.o,在Host Shell里也是看不到的。如果在VxWorks里包含组件"synchronize host and target symbol tables",Target Server里选中"Synchronize Target/Host Symbol Tables"选项
DKM,就是Workbench里的Downloadable Kernel Module project,这种工程用于管理/构建系统内核空间里的应用模块
对于Vx5和Vx6来说,这个Package通常包含了一堆C文件、几个汇编文件、几个cdf文件、一些头文件、一个makefile文件、一个readme文件(版本信息),和一个target.ref文件(这个BSP的专属文档)。到了Vx7,BSP被大大简化,主要成分就是cdf和dts文件了
刚刚发布的VxWorks 7 24.03集成了一个Benchmark Suite:rtos-benchmark。这个测试涵盖了Task/Thread、Mutex、Semaphore、Message queue等领域,并支持VxWorks API和POSIX API两种标准。今天把它跑了跑,步骤如下
虽然现在64位处理器越来越多,而且VxWorks也从6.9开始提供64位处理器的支持,但是目前VxWorks更多的应用场景还是32位的。那么VxWorks在32位处理器上最多可以使用多少内存呢?
DosFS是VxWorks的常用文件系统,它兼容于微软DOS的文件系统。今天以X86上的Vx69为例,来看看如何在设备上挂接这个DosFS
领取专属 10元无门槛券
手把手带您无忧上云