您是否是 OEM 和系统集成商中的一员,将互联网连接和服务添加到最初不打算这样做的设备中?如果你是,那么你知道,通过将这些产品连接到互联网,客户正在发现新的收入形式,在某些情况下,是全新的商业模式。更重要的是,他们能够使当前的产品更有价值和更具成本效益。
随着我们继续看到越来越多的互联网连接设备,我们必须承认它们将容易受到攻击,远程禁用或以其他不良方式受到损害 - 每种情况都严重威胁到这些新商业模式的整个基础。
请考虑以下家庭自动化领域中的示例。它是物联网(IoT)最大的消费者应用程序之一,也可能是攻击者最有利可图的应用程序之一。犯罪分子如何处理存储在可能被认为是相当无害的家庭自动化设备(如IP连接的智能恒温器)中的信息?好吧,这些设备是为了学习你的习惯而构建的。它们旨在识别或“学习”您何时在家和何时离开,以便它们可以优化用于加热和冷却房屋的能量。你可以猜到我要去哪里。他们会知道你的习惯并跟踪你的日常工作 - 对于那些想不请自来的人来说,这是耸人听闻的素材。
还记得三星智能电视的案例吗?为了能够响应语音命令,它不断“听”您的聊天,解释它,然后甚至可能将其发送给“授权”的第三方。是的,我是认真的。早在2013年,智能电视就被证明是可破解的(没有锁定安全性的不是)。这是一个完美的例子,证明了对多个可访问性级别的需求。在Smart TV的情况下,只有一个可能的用户帐户,该用户(即攻击者)可以访问设备上的任何内容。
通过隐蔽实现安全
在过去许多情况下,产品开发人员会依赖这样一个事实,即他们的设备太少,对黑客来说太无趣,无法试图利用它们。换句话说,这些设备是晦涩难懂的 - 表面上是网络上未知的节点。不幸的是,这种策略将不再有效。预计在未来五年内将有数十亿台设备连接到互联网(具有各种各样的功能),这些曾经“不感兴趣”的设备将成为非常诱人的利用目标。
这个特定的网站致力于揭示存在,如果可能的话,连接到互联网的设备类型。此类设备可能是网络摄像头,恒温器或任何其他连接到Internet的家庭自动化设备。通过此网站,订阅者可以扫描和搜索一系列连接的设备。
现在,如果您在这种情况下依靠晦涩难懂来保护您,则可能不必担心更改默认的root密码。此密码由供应商设置为始终相同的名称,因为如果默认密码始终相同,则编写文档非常简单。对消费者来说,这是个坏主意。..
未更改的默认根密码是黑客登录并命令相机的公开邀请。他们有效地通过远程控制获得查看和录制视频的完全控制,而所有者完全不知道。
您可能已经读过一个关于婴儿和父母用作婴儿监视器的网络摄像头的故事。父亲走进孩子的房间,听到一个男人通过摄像机的音频扬声器说话,敦促孩子“醒来”。当父亲走进房间时,摄像机平移,另一端的人开始对他粗俗地大喊大叫,直到他拔掉摄像机的插头。
这只是为什么互联网安全在未来几年将非常重要的众多例子之一。它需要成为互联设备制造商的头等大事。
这些设备中的大多数都运行Linux,这是世界上最受欢迎的运行嵌入式设备的操作系统。在本文中,我们将探讨在保护 Linux 连接设备时需要考虑的几种技术。
在我们进入具体细节之前,重要的是要深入了解安全风险,确定与此类业务攻击相关的潜在成本,并最终学习如何设计软件并适当地建立智能安全策略。应该说,额外的安全性确实是有代价的,通常是在性能损失,功能受限和额外开发成本方面。
为了说明这些注意事项,我希望您考虑在笔记本电脑或工作站上运行增强的安全软件的体验。我说的是防病毒软件,驱动器或文件系统加密以及访问控制软件。我们大多数人都欣赏这些程序提供的额外安全性。但是,我可能偏离了基础,我猜大多数读者有时会禁用部分或全部这些功能,特别是如果您是开发人员并且正在尝试运行一些CPU密集型任务,安装可能未被IT“批准”的软件工具或实用程序,甚至运行执行大量文件系统访问的程序,例如从源代码构建Linux发行版。
保护连接的 Linux 设备
在这里,我将分享一些简单的方法,您可以使您的嵌入式Linux产品更安全地抵御某些类型的威胁,而无需安装太多额外的软件或专有(商业)软件。
禁用并删除(或不安装)不必要的服务
Linux的一个很好的方面是,在开发过程中利用网络服务来调试和部署应用程序是多么容易。这些服务(TFTP、SFTP、SSH、NTP、gdb 服务器等)也是攻击者目标最丰富的一些入口点。在生产期间,您应该只在 Linux 平台中实现特定所需的服务,并使用端口扫描程序(如 nmap)来检查打开的端口(例如,侦听服务)。
使用防火墙
防火墙的基本原因是在内部和外部网络之间提供屏障。这是网关或路由器的关键功能,因为内部网络被认为是开放和受信任的。有许多适用于 Linux 的可用防火墙解决方案。其中包括 iptables/网络过滤器、肖尔沃尔和 UFW(简单的防火墙)。有不同级别的功能、易用性和可配置性[5][6][7]。
格拉森
Grsecurity 是 Linux 内核源代码的一组补丁,可提供增强的安全性。它为内核提供了基于角色的访问控制 (RBAC) 系统,以便进程(和用户)只能访问最少数量的文件,仅此而已。此外,它还提供了一个捆绑的补丁,其中包含一个名为PaX的不同名称。PaX提供其他安全功能,可以通过创建执行空间保护来消除某些其他类型的攻击,例如缓冲区溢出。它还可以解决进程的空间布局随机化问题,以击败依赖于了解任务的默认虚拟内存组织(缓冲区溢出和其他攻击)的攻击[8]。
断续器
RBAC 的目标是最大程度地减少用户或进程对系统其余部分的特权。例如,许多基于Linux的互联网连接系统可以实现许多因特网服务,包括Web服务器,以及安全外壳(SSH)服务器。这些提供了对设备的不同级别的访问,允许用户使用漂亮的用户界面(通过Web服务器)进行简单的配置更改或使用SSH进行更精细的更改。RBAC 可以根据用户的特定角色限制用户访问的沙盒,以读取、写入和执行。这类似于基于 Linux/Unix 组限制对文件的访问,其中 RBAC 中的角色类似于组。
RBAC 实际上如何帮助保护你的设备?对于初学者,您可以设置一个策略来限制所有用户(甚至包括 root 用户)对特定文件和系统服务的访问。如果使用不同的漏洞来获取 root 用户,则攻击者可能无法获得成为 root 用户时通常期望的对系统的完全访问权限。
乘客功能
PaX(安全性的一部分)有助于抵御缓冲区溢出攻击。缓冲区溢出是指攻击者将数据注入进程的堆栈,允许他们更改程序流并执行恶意代码。
许多现代处理器架构实现了一个位 (NX),它将内存部分标记为可执行文件。PaX 用于关闭对所有数据部分的执行权限,并可以禁用对内存中所有可执行部分的写入权限。这样,即使攻击者能够实现缓冲区溢出,也可以阻止他们将代码加载到指定的可执行内存中。
此外,PaX 还会在加载进程时随机化它们的地址空间。大多数进程将加载到虚拟内存的特定区域,加载库,并将堆栈放置在已知的内存位置(映射)中。这使得攻击者很容易运行缓冲区溢出,因为堆栈位于同一位置。通过随机化堆栈位置,除了内存的其他部分之外,它确实使运行缓冲区溢出变得困难,因为(A)攻击者必须猜测堆栈的位置,或者(B)攻击者可能会覆盖一段可执行代码并使进程本身崩溃。
实施和配置
grsecurity的大多数功能不需要额外的配置,这对于其他Linux安全增强功能(例如SELinux)来说是不能说的。
通过下载内核版本的修补程序,然后使用修补程序实用程序将修补程序更改应用于内核源代码树,可以实现 grsecurity。在编译内核之前,您需要配置构建选项以实现 gr 安全性。有很多选项,但您可能希望首先将GRKERNSEC_CONFIG_AUTO设置为 Y。这将提供为内核配置 grsecurity 的最简单方法,并且可能是开发的良好基准。
将其包起来(安全,连接时)
对于物联网产品,在设计之初就将安全性构建到产品中是绝对必要的。如果您不这样做,您将使业务的关键部分受到攻击。就是这么简单。您构建的安全级别需要与给定受感染设备相关的风险相匹配。但是,请记住,您可以做一些相当简单的事情来大大提高保护级别。
审核编辑:郭婷
-
互联网
+关注
关注
54文章
11128浏览量
103157 -
物联网
+关注
关注
2909文章
44441浏览量
372367 -
Linux
+关注
关注
87文章
11258浏览量
209145
发布评论请先 登录
相关推荐
评论