我跟随一堆动物和自然出版物,最近“zombie ants”这个词一直出现在我的饲料中。我决定做一点挖掘,发现有一种真菌 - Ophiocordyceps--它的生命周期涉及感染蚂蚁,这些蚂蚁穿过孢子走过孢子,真菌细胞渗入蚂蚁的中枢神经系统并基本上接管蚂蚁。一旦他们控制了蚂蚁,他们就会让蚂蚁爬上植物茎,咬下一片叶子,然后从蚂蚁身上长出更多的真菌,然后扩散更多的孢子,溢出更多的潜在真菌。
这似乎很像黑客团体从大公司甚至政府那里窃取信息的方式。他们使用由数千种物联网设备组成的僵尸网络来攻击网站和服务。这些小工具已经变成了“僵尸”,它们通过恶意软件(恶意软件)进行主人的竞标。保护我们的网络和产品不会成为这些军队的一部分是一项艰巨的任务,因为软件漏洞可以有各种形状和大小。幸运的是,对我们来说,有一个常用的漏洞我们可以防范:缓冲区溢出漏洞。此错误允许黑客将其代码注入我们的PCB内存然后执行它。仔细编程可以降低缓冲区溢出带来的风险,并且遵循物联网安全最佳实践可以限制攻击者尝试缓冲区溢出的能力。
什么是缓冲区溢出
缓冲区溢出在2001年的“红色代码”攻击中首次得到广泛认可。这些攻击使用Windows中的缓冲区溢出漏洞来控制计算机,一个版本在几个小时内感染了数十万台计算机。一旦被感染,这些计算机就会被用来对白宫发起分布式拒绝服务(DDoS)攻击。从那时起,缓冲区溢出已成为寻求感染设备的黑客组织的首选方法之一。为了抵御这个漏洞,重要的是要了解它是如何工作的以及它对物联网构成特定威胁的原因。
当程序试图写一个太大的值时会发生这种错误进入缓冲区。缓冲区只是为某些值分配的一块内存。当程序试图用尽可能多的数据填充它时,缓冲区“溢出”到内存的其他部分。这通常会导致系统崩溃,但也可能为黑客打开通向系统的门。黑客可以使用缓冲区溢出漏洞来做两件事:将代码注入系统并运行注入的代码。第一个可能非常复杂并且取决于系统。然而,第二个很容易理解。如果恶意软件已被插入内存并且黑客知道它在哪里,它们可以简单地溢出它旁边的缓冲区以运行该程序。
目标的弱链接缓冲区溢出
缓冲区溢出会给物联网设备带来特别的风险,因为它们的内存有限,编程的语言和程序的通用性。
内存:物联网设备通常需要节省电量,从而导致少量节能内存。缓冲区越小,越容易溢出,这使得物联网成为这类攻击的完美舞台。
语言:物联网的大多数程序都是用C语言编写的或C ++。 C和C ++都没有“垃圾收集器”,这增加了缓冲区溢出漏洞的风险。此外,这些语言使用指针,黑客可以使用这些指针来确定关键代码在内存中的位置。
通用性:购买现成的,廉价的程序的便利性对于我们的物联网设备来说,它太诱人了。但是,当您使用与其他人相同的代码时,您可能会遇到常见漏洞。在数千个物联网设备使用的软件中发现了一种被称为Devil's Ivy的漏洞,最近才揭晓。许多机器通过默默无闻来逃避感染。如果您的产品因公共代码而与其他数千个产品一起被感染,则更有可能成为目标。
缓冲区溢出可用于访问或崩溃您的设备。
Bar Your Programming Windows,Patch your Security Gateway Walls
现在我们知道缓冲区溢出带来的危险,我们如何防御它?有几种方法可以缓解这种风险。如果您自己编写软件,仔细的内部编程可以确保您的设备安全:
检查输入大小 - 如果您知道输入的大小,请检查以确保它的大小。发生缓冲区溢出漏洞,因为将太大的值写入内存。如果在将其传递到内存之前可以检测大小,则可以拒绝过大的值并导致溢出。这可能不适用于所有系统,例如传入的传感器数据可能是未知大小。
使内存不可执行 - 如前所述,黑客通常会隐藏恶意软件内存然后使用缓冲区溢出来执行它。如果他们注入源代码的部分是不可执行的,那么它可以阻止他们激活他们的程序。由于缓冲区溢出攻击的多样性,这可以阻止一些入侵,但不是全部。
使用ASLR(地址空间布局随机化) - 作为G.I.乔斯总是说,知道是成功的一半。如果黑客知道存储关键代码的位置,他们可能会覆盖或删除它。 ASLR使记忆位置随机化,使攻击者更难找到他们的目标。
即使您使用其他人的程序,您也可以坚持一些最佳实践或启用它们你自己会捍卫你的系统。其中一些可能很快就会被美国政府强制要求:
启用补丁 - 如果您发现您的软件容易受到攻击,则需要能够对其进行修补。如果你无法将你的小发明变成僵尸网络中的“僵尸”,那么它将会存在。
网关 - 如果你正在设计一个外围设备或者传感器是为在大型网络中运行而设计的,考虑设计与物联网安全网关的互操作性。这些可以降低黑客直接攻击您设备的可能性,而是必须处理专为安全而设计的门户。
身份验证 - 许多缓冲流攻击都是尝试使用“中间人”(MITM)计划。身份验证将确保您的系统仅接收来自可信设备的输入,而不是恶意代码或伪装者。
您可以通过谨慎的代码和最佳实践来保护您的系统。
物联网可以使人类受益匪浅,但也为黑客提供了一个巨大的新攻击面。缓冲区溢出攻击在过去已被广泛使用,并且完全可以影响物联网。幸运的是,我们可以编写可以防范此漏洞的源代码,也可以在我们的设计中加入一些最佳实践来降低这种风险。
网络安全是一个令人生畏的问题,可能会占用更多我们的时间比我们未来的时间要好。随着这个问题迫在眉睫,没有时间浪费在效率低下的设计上。这就是为什么你应该使用最好的PCB软件。 AltiumDesigner®附带了一系列工具,甚至是可选附件,可以加快您的设计过程。
全部0条评论
快来发表一下你的评论吧 !