如何在物联网设备中寻找复杂的恶意软件(下)

如何在物联网设备中寻找复杂的恶意软件(上)

物联网固件分析

有各种各样的开放源代码和封闭源代码工具可以帮助进行固件分析,最好的方法是结合由经验丰富的固件分析师建议的工具和技术。

让我们从最全面的固件分析工具Binwalk开始,Binwalk扫描固件二进制文件并查找已知的模式和签名。

它为物联网设备中使用的各种启动程序和文件系统收集了大量签名,它还具有用于通用加密和压缩算法的签名,以及用于解压缩和解码的相应例程。

Binwalk还能够提取其在固件二进制文件中找到的组件。

以下屏幕截图显示了对示例固件二进制文件的Binwalk扫描的输出:

Binwalk扫描输出

在这个屏幕截图中,Binwalk已经找到并打印出了头文件、引导加载程序和Linux内核以及文件系统。还有从标头文件和组件本身提取的元数据细节,比如每个组件的类型和大小、CRC校验和、重要地址、CPU架构、图像名称等等。现在,你可以继续使用Binwalk本身来提取上述部件,或者根据Binwalk找到的开始偏移量手工计算大小并提取部件。

在解压缩固件组件之后,你可以继续对文件系统进行解压缩、解压甚至挂载,并开始研究文件系统内容。你还可以查看反汇编程序中的引导加载程序代码,或者通过调试器对其进行调试。

但是,进行固件分析并不总是那么简单。固件种类繁多,以至于了解其结构和提取组件通常非常复杂。

让我们仔细看看另一个示例固件,并尝试了解其结构。

1. Binwalk firmware.bin

Binwalk扫描未显示任何结果,这意味着Binwalk找不到任何已知的签名。

Binwalk扫描输出

在本文的示例中,我们可以看到简单的Binwalk扫描不是很有帮助。但是,请注意,还有其他工具和技术可以用来了解有关此固件结构的更多信息。

2. 文件firmware.bin

接下来让我们尝试固件二进制文件上的Linux文件实用程序。

文件实用程序输出

文件实用程序将文件类型显示为Targa图像数据,通过查看二进制文件的开头,并对Targa图像数据签名进行Google搜索,得到的结果显然是假的。

固件二进制文件的第一个字节

这是因为固件文件的第一个字节0x01010000与Targa图像数据签名匹配,参见上面的截图。

3. Binwalk:E firmware.bin

让我们使用Binwalk的另一项功能,并检查固件二进制文件的熵。

使用“ -E”命令选项运行Binwalk会给出固件文件的熵图以及一些其他详细信息,例如下降和上升熵的偏移量。

熵的详细信息

熵图

熵值接近1表示压缩,较低的熵值表示未压缩和未加密的区域。从上面的屏幕截图可以看出,偏移量55296 (0xD800)是高熵部分的开始。

还有另一个工具可以帮助可视化二进制文件,借助binvis.io,你可以在两个并排的窗格中查看固件文件的内容及其可视化,不同的部分根据它们的熵(binvis.io)用不同的颜色表示。

可视化binvis.io创建的固件

4. Binwalk:A firmware.bin

Binwalk还可以扫描二进制文件以查找常见的可执行操作码签名。

在文件中找到的第一个函数序言

在文件中找到的最后一个函数序言

正如我们从上面的截图中看到的,操作码签名检查的结果实际上非常有用!首先,我们可以看到固件属于ARM设备。

其次,如果我们考虑第一个和最后一个函数序言签名的偏移量,我们会得到一个指示,即这些是固件二进制文件中包含代码的部分。

从屏幕截图中,我们还可以看到在函数0xD600处找到了最后一个函数,该地址仅在熵上升部分之前的0x200字节处。由此,我们可以进行有根据的猜测,即该偏移量很可能是启动加载程序代码的结尾和压缩内核模块的开头。

5. Hexdump -C

  1. hexdump -C firmware.bin | grep -C 4 -e “^\*$” 

既然我们知道了固件文件中某些组件的大致边界,可以尝试通过查看这些区域周围固件文件的实际内容来确认这些边界偏移量。

如果我们通过十六进制转储运行固件文件,并查找仅包含星号“*”的行,我们可以找到编译器为每个固件组件添加的填充。

固件二进制文件的内容

固件二进制文件其他部分的内容

Hexdump实用程序的输出以及之前的发现,确认了包含ARM代码的固件二进制文件中的这一部分,我们先前怀疑此代码属于启动加载程序。

6. 字符串:radix = x firmware.bin

接下来,让我们从固件中提取ASCII字符串及其偏移量。

固件二进制文件中找到的最后一个ASCII字符串

查看上面的屏幕截图,有一些与模块入口点相关的字符串,这些字符串可以很好地表明所涉及代码的性质。

在下面的屏幕截图中,我们可以从固件二进制文件的开头看到一些其他有趣的字符串。例如,“MctlApplet.cpp”库名称可用于从同一开发人员中查找其他二进制文件或程序包,拥有来自同一供应商的其他固件映像有助于更好地了解二进制结构。

来自同一截屏的另一个有趣的字符串是“Not Booting from softloader”,它可以指示进程状态或者这个模块的性质。

包含“Assert()”的字符串可以建议有关代码的不同信息,在固件开发中,使用Asserts是一种常见的做法,因为它可以帮助开发人员在开发和生产阶段调试和故障调试代码。

在固件二进制文件中找到第一个ASCII字符串

7. IDA:parm firmware.bin

可以看到,我们已经从此固件二进制文件中收集了许多有价值的信息,这些信息在一开始看起来是相当难以理解的。

现在让我们使用IDA来检查代码,由于此二进制文件不是带有显示ISA的标准标头的ELF文件,因此我们需要明确告知IDA使用ARM指令集来反汇编代码。

IDA中部分函数的反汇编视图

上面来自IDA的屏幕截图显示了如何使用前面分析步骤中找到的字符串来帮助查找对内核模块入口点的调用。

8. dd

现在,可以继续提取固件二进制文件的一部分,我们的分析发现它是引导加载器模块。

9. Qemu

从固件二进制文件中提取了所有模块(文件系统内容,内核模块和其他组件)之后,我们可以使用Qemu运行二进制文件,甚至模拟与本机不同的体系结构的文件,并开始与他们互动。

总结

物联网设备的数量每天都在增加,从工业控制系统、智能城市、智能汽车到移动电话、网络设备、个人助理、智能手表和各种各样的智能家电。

物联网设备源自已经存在多年的嵌入式系统,由于嵌入式设备的软件性质不同,因此与通用计算机系统相比,嵌入式设备软件的制造和开发始终具有不同的优先级。这些优先次序是由设备本身有限和具体的功能、基础硬件有限的能力和能力以及开发的代码无法用于后来的修改和修改而形成的。然而,物联网设备与传统嵌入式系统有显著的区别。现在大多数物联网设备运行在硬件上,这些硬件具有与通用计算机系统类似的能力。

随着物联网设备的日益普及,它们现在正在访问和控制我们生活的许多方面以及日常交互。物联网设备现在可以潜在地为恶意攻击者提供前所未有的攻击机会。这凸显了物联网设备中安全性的重要性,也显示了围绕该主题进行研究的必要性。好消息是,目前已经有许多工具和技术可用于协助该主题的研究。

本文翻译自:

https://www.trendmicro.com/en_us/research/20/i/exploitable-flaws-found-in-facial-recognition-devices.html

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/131291.html<

(0)
管理的头像管理
上一篇2025-02-26 11:43
下一篇 2025-02-26 11:45

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注