起底震网病毒的来龙去脉

2010年,震网病毒被发现,引起世界哗然,在后续的10年间,陆陆续续有更多关于该病毒的背景和细节曝光。今年,《以色列时报》和《荷兰日报》又披露了关于此事件的更多信息,基于这些信息,我们重新梳理了震网病毒的来龙去脉。
伊朗自从上世纪50年代开始便有意开展核计划,但直到本世纪初才在浓缩铀生产有所突破,这得益于巴基斯坦核武器之父阿卜杜勒·卡迪尔·汗(Abdul Qadeer Khan)的帮助,此人在上世纪80年代从一家荷兰公司窃取了离心机的设计图纸,并卖给了伊朗。2003年,美国和英国截获了一艘计划向伊朗运输离心机的利比亚船只,其离心机采用的是德国西门子的Step-7型号。
小布什政府和奥巴马政府认为,如果伊朗被证实发展核武器,以色列可能会对伊朗核设施发动空袭,进而引起一场地区战争。之后,一个名为“奥林匹克运动”的计划开始执行,该计划涉及五个国家的情报机构,包括美国、以色列、荷兰、德国以及英国,该计划的目的是通过投放计算机病毒至伊朗的铀浓缩基地,以破坏或推迟伊朗的核武器计划,也被看作一种兵不血刃的方式。
计划的核心是一款名为Stuxnet的蠕虫病毒,中文称为震网病毒,该病毒的研发始于小布什政府时期,并在奥巴马政府期间被继续执行。根据卡巴斯基事后对于该病毒规模和复杂性的评估,震网病毒至少有10人以上的研发团队,历经2-3年研发,大约花费10亿美金。虽然美国和以色列政府都没有正式承认研发了此病毒,但2011年为庆祝以色列国防军领导人加比·阿什肯纳兹(Gabi Ashkenazi)退休而制作的一段视频中,将震网病毒列为了他领导下的成果之一。
震网病毒的攻击目标伊朗纳坦兹(Natanz)工厂(一所从2000年开始建设的铀浓缩工厂)的Windows系统、Windows系统中控制离心机的西门子软件以及PLC自身的嵌入式软件,当震网病毒感染一台计算机时,它会检查该计算机是否连接到西门子Step-7型号的可编程逻辑控制器(PLC,是计算机与工业机械交互和控制的方式)。如果没有检测到PLC,病毒什么也不做,如果有检测到,那么病毒会改变PLC的编程让离心机不规则旋转,从而损坏离心机。同时通过控制器计算机显示离心机一切工作正常,这就使得工作人员很难检测或诊断出离心机的问题。
震网病毒被设计为可以通过U盘传播,运行时包括了用户模式和内核模式,并窃取和利用两个台湾设备制造商的私钥证书来为病毒的内核程序做数字签名,同时利用了至少四个Windows系统的0-day漏洞:一个Windows快捷方式漏洞、一个打印假后台程序漏洞、两个特权升级漏洞、西门子PLC软件的0-day漏洞。
为了让震网病毒能够进入纳坦兹的铀浓缩工厂的计算机,攻击者通过一些渠道将病毒投放到纳坦兹工厂,这需要在伊朗本地的人员完成,因此荷兰情报机构AIVD在2005年招募了一名伊朗工程师埃里克·范·萨本(Erik van Sabben)作为间谍,此人有技术背景,在伊朗有自己的生意,社会关系强大,并在伊朗有自己的家人,因此是理想的间谍人选。
为了称为纳坦兹工厂的供应商,美国和以色列成立了两家公司尝试成为纳坦兹工厂的供应商,其中一家成功获得了工厂的供应商资质,这名伊朗工程师便以这家公司员工名义开展工作和行动。在此期间,该工程师还向情报机构提供了有关离心机和安装的数据,以便病毒的研发人员能够针对纳坦兹工厂中的系统进行开发。之后,震网病毒通过这名工程师成功完成了投放和植入,并又通过工厂内的计算机完成了相互传播和感染。
最先发现蠕虫病毒影响的外界人士是国际原子能机构(IAEA)的检查人员,他们获准进入纳坦兹设施,他们的部分工作是检查并从铀浓缩工厂中移除受损的离心机,以确保它们不会被用于将铀偷运到其他地区。在纳坦兹这样规模的工厂中,每年大约有800台离心机无法使用。但在2010年,IAEA开始注意到损坏离心机的数量异常之高,一位检查员估计有近1000台离心机无法使用,但IAEA并未意识到这种异常和病毒相关。
2010年,震网病毒被意外传播到了纳坦兹工厂之外的其他计算机中,当时伊朗一个办公室的计算机遇到重启和蓝屏死机的情况,即便重装系统也无济于事,当地的安全专家无法定位问题和原因,于是联系了远在白俄罗斯的反病毒公司工作的朋友谢尔盖.乌拉森(Sergey Ulasen),乌拉森和他的团队经过一整天排查后设法隔离了病毒,并意识到其利用的0-day漏洞之多前所未见,于是将他们的发现公之于众,在安全社区进行分享,震网病毒的存在最终被曝光。
荷兰情报机构招募的间谍工程师埃里克·范·萨本(Erik van Sabben)在计划成功实施后成功逃离了伊朗,并在两周后在迪拜的他家附近死于一场摩托车事故。
震网病毒在2010年被曝光时引起了媒体的广泛关注,时至今日,它仍然是历史上最先进的恶意软件之一。
这款病毒之所以广泛被关注且影响深远,原因包括:
-
它是世界上第一个数字武器,能够对计算机控制的设备造成物理破坏,开创了通过恶意软件攻击他国基础设施的先例。
-
它在当时被认为是最复杂的网络战攻击。
-
它毁掉了伊朗近五分之一的离心机,并导致1000台离心机受损,导致伊朗核计划至少推迟了2年。
-
它利用四个不同的0-day漏洞进行攻击,这在2010年是非常罕见的,至今仍不常见。
-
震网病毒的攻击证明物理隔离的网络也是可以通过U盘等人为操作无意识中被攻破。
作者:裴伟伟
2024年5月24日
洞源实验室
相关文章:
起底震网病毒的来龙去脉
2010年,震网病毒被发现,引起世界哗然,在后续的10年间,陆陆续续有更多关于该病毒的背景和细节曝光。今年,《以色列时报》和《荷兰日报》又披露了关于此事件的更多信息,基于这些信息,我们重新梳理…...
[杂项]优化AMD显卡对DX9游戏(天谕)的支持
目录 关键词平台说明背景RDNA 1、2、3 架构的显卡支持游戏一、 优化方法1.1 下载 二、 举个栗子(以《天谕》为例)2.1 下载微星 afterburner 软件 查看游戏内信息(可跳过)2.2 查看D3D9 帧数2.3 关闭游戏,替换 dll 文件2…...
服务器没有图形界面没有显示器怎么办
可以用vnc。 vnc是开元的。什么是vnc? 使用vnc 下载vnc和vncserver命令。 每生成一个图形界面就叫做开启session会话。 vnc相关命令: start a new session: vncserver。 如果没有会话,一般从:1开始 端口5901 vncserver :2 #指定会话为:2 端…...
标准化软件实施方案(直接套用即可)
软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取:(本文末个人名片也可直接获取)软件开发全套资料_数字中台建设指南-CSDN博客 软件产品&am…...
云和恩墨海外首秀在吉隆坡召开的2024中国智能科技与文化展览会
作为中马建交50周年官方重点推荐的活动之一,2024中国智能科技与文化展览会(第四届)于5月20至21日在毗邻吉隆坡双子塔的吉隆坡国际会展中心举办。本次展览会获得马来西亚科学技术创新部、马来西亚通讯部、中国驻马来西亚大使馆和马来西亚中华总…...
什么是react
React 是一个用于构建用户界面的 JavaScript 库,由 Facebook(现在的 Meta)开发和维护。它首次发布于2013年,并迅速成为最受欢迎的前端库之一。React 的主要目标是提供一种高效、灵活的方式来构建用户界面,特别是在大型…...
EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领
EPIC免费领取《骑士精神2》 IGN9分神作骑士精神2限时免费领 最近Epic一直为玩家们送出各种游戏,从《龙腾世纪审判》到《模拟农场22》,而就在今天,epic又为玩家们送出了IGN评分9分高分的骑士精神2.这款游戏,该游戏是一款由Tripwir…...
【Linux】icmp_seq=1 Destination Host Unreachable
执行ping 命令提示:From 192.168.XX.XX icmp_seq1 Destination Host Unreachable 这个错误消息通常表示以下几种情况之一: 网络连接问题:目标主机可能没有连接到网络,或者网络中的某个路由器无法将数据包转发到目标主机。 目标主…...
java性能优化
系列文章目录 文章目录 系列文章目录前言一、Java后端服务接口性能优化建议1.Java后端服务接口性能优化建议2.如何避免大量创建对象 二、使用步骤1.引入库2.读入数据 前言 提示:这里可以添加本文要记录的大概内容: 一、Java后端服务接口性能优化建议 …...
Apache JMeter操作
中文-新建组配置 测试计划界面介绍 异常信息 右上角那个小三角可以看到jemter的执行信息,如果你的压测执行不了可以去里面看看一般是报错了 用户自定义变量 可以在这里配置压测的全局变量,这样我们在使用的时候就不用传具体的值,传变量的…...
el-table 划入划出方法
<template><div><el-table :data"tableData" style"width: 100%" cell-mouse-enter"handleMouseEnter" cell-mouse-leave"handleMouseLeave"><el-table-column prop"ddd" label"日期2" widt…...
Todesk无法登录,提示服务器断开连接。(已解决)
坐标福建,近一两个月todesk手机端均无法登录,尝试卸载重装,更新等,均无效。也没搜索到有效的解决方案,今天去看了商店的低星评论,发现是针对福建地区的服务器“维护”,考虑到近期复杂的国际形势…...
NDIS小端口驱动(六)
消息信号中断 (MSI) 提供了网络设备及其微型端口驱动程序可以使用的传统基于线路的中断的替代方法。 从 Windows Vista 开始,操作系统支持两种类型的 MSI:PCI V2.2 MSI 和 PCI V3.0 MSI-X。 支持 MSI-X 的微型端口驱动程序可以指定 中断相关性ÿ…...
postgresql insert on conflict 不存在则插入,存在则更新
向一张表执行插入动作,如果插入的字段数据已存在,则执行更新操作,不存在则进行插入操作。 1、创建一张表 CREATE TABLE "user_info" ( "id" int2 NOT NULL, "name" varchar(20) COLLATE "pg_catalog&quo…...
kafka配置消费者重要参数
文章目录 fetch.min.bytesfetch.max.wait.msfetch.max.bytesmax.poll.recordsmax.partition.fetch.bytessession.timeout.ms和heartbeat.interval.msmax.poll.interval.msrequest.timeout.msauto.offset.resetenable.auto.commitpartition.assignment.strategy区间(range)轮询(…...
shell笔记脚本3
执行脚本文件demo2.sh, 观察打印VAR4效果 执行脚本文件后, 在交互式Shell环境打印VAR4, 观察打印VAR4效果 结论 全局变量在当前Shell环境与子Shell环境中可用, 父Shell环境中不可用 小结 自定义变量的分类 自定义局部变量: 就是在一个脚本文件内部使用 var_namevalue 自…...
Kafka消息丢失处理方式,消息丢失与消费失败区别和分别的处理
Kafka 消息丢失的处理方式可以从生产者、Broker 和消费者三个角度来考虑,以确保消息的可靠传递。以下是一些关键的处理措施: Kafka消息丢失处理方式 1. 生产者端的处理方式: 使用生产者确认(acks配置):通…...
AI爆文写作:标题需要什么?情绪炸裂,态度要激烈,行为要夸张!
现在这个传播环境下,在公域中,轻声细语,慢慢的说,无法吸引到注意,没有人搭理。 标题要需要情绪张扬,态度激烈,行为夸张,大声喧闹。 唐韧的用户群是互联网产品经理,阅读量…...
Flyway SpringBoot中使用
Flyway 一、 介绍 通过版本化数据库,提高数据库迁移的可靠性。即启动项目时就按版本执行sql脚本,实现数据库自动迁移。 Flyway是一款开源的数据库版本管理工具,它能够实现数据库迁移和版本控制。Flyway通过SQL脚本或Java代码进行数据库变更…...
全志A133 Android10 lcd配置显示硬件参数说明
一,概述 全志平台,通过board.dts来配置一些通用的 LCD 配置参数。 内核板级配置: longan/device/config/chips/a133/configs/b6/board.dts二,硬件参数说明 1. lcd接口参数说明 lcd_driver_name Lcd 屏驱动的名字(字…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
