他用10年前的攻击手法感染了17000多名开发者的电脑

2024-03-19 17:20

本文主要是介绍他用10年前的攻击手法感染了17000多名开发者的电脑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大约10年前,有种名为Typosquatting的古老攻击手法——国内有将之翻译成“误植域名”的。这个词的前半部分“Typo”意思是排版错误,其实已经表达了这种攻击手法的内涵。举个例子:黑客可能会去注册像appple.com、taobaoo.com这样的域名,如果用户手误多输一个字幕,就会访问到这样的网站——这些网站还会模仿原网站,也就可以起到钓鱼的作用了。

所以Typosquatting如果要分类的话,大概是可以划归到钓鱼攻击中去的。不过这类攻击手法主要是寄希望于用户可能会输错某些域名。

最近来自德国汉堡大学的学生,利用Typosquatting攻击,将他自己的代码感染到了超过17000台开发者的计算机中。注意哦,是开发者的计算机!而且里面很多人还是为美国政府,甚至军方组织工作的。

究竟是怎么感染的?

这名汉堡大学的学生现年25岁,名叫Nikolai Philipp Tschacher。他在自己的学士论文里大致阐述了这种攻击手法,论文名为《Typosquatting in Programming Language Package Managers》,有兴趣的同学可以去搜一下。

整个过程其实很简单:他首先去浏览一些专门探讨编程语言的社区网站(如PyPI、RubyGems、NPM),记录了其中下载量较高的214个包。然后他自己伪造了这214个包,里面包含他自己的脚本代码(虽然并非恶意的),名字与这214个包非常相似。

虽然不是域名,不过他也将之称作Typosquatting攻击。实际上里面的确没有包含什么恶意代码,只是给那些下载的开发者以警示:您安错包啦!另外,这段代码还会向Tschacher的计算机发送一个Web请求,这样他就能够记录他的代码执行了多少次,是否获取到管理员权限。

攻击结果很“理想”

最终的结果是很“喜人”的,几个月时间内,他的代码就在超过17000个独立域名中执行了超过45000次,其中超过一半还获得了管理员权限。意外发现是,其中有两个域名后缀为.mil,表明这是美军有人也运行了这段脚本。Tschacher在论文中说:

“另外还有23个域名以.gov结尾,是美国政府机构的域名。这个数字是值得人们关注的,因为拿下美国研究工作室和政府机构的主机,会带来灾难性的后果。”

这件事比较有趣的地方在于,Tschacher攻击目标并非普通终端用户,而是开发者。如果Tschacher真的有意进行攻击,并植入了恶意代码,那么打击面和传播速度都并非一般的钓鱼网站可比。但凡从开发者入手的攻击,总是能够在短期内极速传播,因为如果开发过程都在神不知鬼不觉的情况下被植入恶意代码,那么终端用户遭遇攻击也就显得理所应当。

很多时候,将政府和企业作为目标的的攻击者,都很喜欢从开发者下手。因为开发者对敏感网络拥有很高的访问权限,能做的事自然就多多了。

  延伸阅读:有关Bitsquatting

是不是感觉这群被感染的开发者很弱智?然而实际上,Typosquatting也有比较高级的应用。最后这部分作为简单的延伸:早在2011年的时候,安全研究人员Artem Dinaburg曾经介绍过一种名为Bitsquatting的攻击,基本理念就是取自于Typosquatting,但它并不依赖于用户输错域名,而是利用计算机的随机单比特错误(详情点击这里)。

其实所谓的比特错误是发生在硬件产品上的,比如内存、CPU缓存因为环境或者灰尘、辐射之类的,会莫名产生比特错误(如著名的UltraSparc II CPU就存在这种问题)。比如我们要访问一家网站,域名是n.com。其二进制表达方式是这样的:

 

n.com
01101110 0101110011000110110111101101101

 

如果内存模块发生比特错误,某一位比特发生错误,就会变成下面这样。你在访问n.com这个域名的时候,二进制数据是需要过一次内存的,但最终我们访问到的实际上是o.com,这个过程真正实现了神不知鬼不觉。如果有人注册一个o.com域名,用于模仿n.com网站,则钓鱼成功率几乎可以达到100%。

 

o.com
01101111 0101110011000110110111101101101

 

这听起来似乎很悬,前两年国外有安全专家特别做了针对Bitsquatting的实验(首先选择一些可能产生一比特之差的域名注册,比如说micrgsoft.com,然后主要从DNS来入手这个实验),结果每天都存在Bitsquatting后的域名请求,的确非常神奇。


本文转自d1net(转载)

这篇关于他用10年前的攻击手法感染了17000多名开发者的电脑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826725

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程

《双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程》:本文主要介绍如何在Windows11系统中使用VMware17创建虚拟机,并在虚拟机中安装Ubuntu22.04桌面版或Ubunt... 目录一、首先win11中安装vmware17二、磁盘分区三、保存四、使用虚拟机进行系统安装五、遇见的错误和解决

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提