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

起底震网病毒的来龙去脉

图片

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无法登录,提示服务器断开连接。(已解决)

坐标福建&#xff0c;近一两个月todesk手机端均无法登录&#xff0c;尝试卸载重装&#xff0c;更新等&#xff0c;均无效。也没搜索到有效的解决方案&#xff0c;今天去看了商店的低星评论&#xff0c;发现是针对福建地区的服务器“维护”&#xff0c;考虑到近期复杂的国际形势…...

NDIS小端口驱动(六)

消息信号中断 (MSI) 提供了网络设备及其微型端口驱动程序可以使用的传统基于线路的中断的替代方法。 从 Windows Vista 开始&#xff0c;操作系统支持两种类型的 MSI&#xff1a;PCI V2.2 MSI 和 PCI V3.0 MSI-X。 支持 MSI-X 的微型端口驱动程序可以指定 中断相关性&#xff…...

postgresql insert on conflict 不存在则插入,存在则更新

向一张表执行插入动作&#xff0c;如果插入的字段数据已存在&#xff0c;则执行更新操作&#xff0c;不存在则进行插入操作。 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 和消费者三个角度来考虑&#xff0c;以确保消息的可靠传递。以下是一些关键的处理措施&#xff1a; Kafka消息丢失处理方式 1. 生产者端的处理方式&#xff1a; 使用生产者确认&#xff08;acks配置&#xff09;&#xff1a;通…...

AI爆文写作:标题需要什么?情绪炸裂,态度要激烈,行为要夸张!

现在这个传播环境下&#xff0c;在公域中&#xff0c;轻声细语&#xff0c;慢慢的说&#xff0c;无法吸引到注意&#xff0c;没有人搭理。 标题要需要情绪张扬&#xff0c;态度激烈&#xff0c;行为夸张&#xff0c;大声喧闹。 唐韧的用户群是互联网产品经理&#xff0c;阅读量…...

Flyway SpringBoot中使用

Flyway 一、 介绍 通过版本化数据库&#xff0c;提高数据库迁移的可靠性。即启动项目时就按版本执行sql脚本&#xff0c;实现数据库自动迁移。 Flyway是一款开源的数据库版本管理工具&#xff0c;它能够实现数据库迁移和版本控制。Flyway通过SQL脚本或Java代码进行数据库变更…...

全志A133 Android10 lcd配置显示硬件参数说明

一&#xff0c;概述 全志平台&#xff0c;通过board.dts来配置一些通用的 LCD 配置参数。 内核板级配置&#xff1a; longan/device/config/chips/a133/configs/b6/board.dts二&#xff0c;硬件参数说明 1. lcd接口参数说明 lcd_driver_name Lcd 屏驱动的名字&#xff08;字…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...