第一:这不是“我如何开始黑客攻击?”问题,但更多的是“我如何开始测试一个特定的设备?”
我的学士论文的一部分是对IoT设备进行漏洞分析/评估,该漏洞分析/评估是在另一篇BSc论文期间实现的,同时考虑到安全性问题,并提供可能的解决方案或改进。应用Kerckhoff原则,我可以完全访问文档、源代码,甚至还提供了一个测试客户端,让我根据文档设置set服务器。
我该怎么做?
根据这,我们有不同的步骤来进行全面的评估。
系统
已经确定了三个主要的专题组成部分:
提供更好图片的其他信息:
1)仅使用rfid标签的ID (授权无认证),标签克隆/欺骗可能。考虑到是否有可能将其与专有门锁系统集成,因为使用相同的rfid标签,因此系统具有用户身份验证。
2) Arduino Uno作为串口接口,读取rfid标签,利用加密库对ChaCha20-Poly1305加密/认证后端传输,预共享密钥,定期生成新的会话密钥,通过串口实现一个模拟通信的小程序。
3)后端以Webserver(Apache)、应用服务器(django)和数据库(sqlite )作为测试系统。提供Webinterface作为管理工具,使用最先进的TLS。
目前,我正纠结于如何以一种有条不紊和结构化的方式/过程来处理这一问题。
我对攻击(1)没有多大希望,因为除了克隆/欺骗之外,我看不出那么多攻击载体
在(2)中,由于它是一个Arduino,它将99%的容量用于其任务。我已经在源代码中使用了完美无瑕,但是它只显示了一些错误(如果复制的话检查数组大小等等),这些错误都是在代码中处理的。没有发生动态内存分配,从数组中读取数据是严格按照数组大小定义的。假设ChaCha20库(它提供了自己的安全RNG )得到了正确的实现,我在这里看不到任何东西。
最后(3)我看到了最有潜力的地方。运行在Debian 9上的Apache not服务器经常配置错误/不及时,这会打开攻击向量。应用服务器?对那件不确定。Webclient (取决于实现)使用Django构建,也可能是更易受攻击的组件之一。
TL;DR:我有一个IoT设备,由多个组件(微控制器、带有IoT接口的后端IoT服务器)组成,我一直在研究如何做一个系统地、正确的、彻底的漏洞评估。
我把背景资料保留下来。主要问题是:
发布于 2018-03-07 19:19:48
我会从射频识别部分开始(查看proxmark3)。arduino如何处理1KB的ID?应该会爆炸的。它甚至可能会在某个地方吐出一些记忆。
调试接口。怎么强调都不够。例如,查看单线调试协议和它使用的其他接口。试着找个内存转储。
启动电线鲨鱼或burpsuite,看看会发生什么。在定制web应用程序上,错误配置通常不是您最大的问题。
请记住,arduino是一种低功耗的设备,它的马力与用笔和纸进行计算几乎完全相同--这两个用密码学计算的装置玩得不好。尤其是RNG部分。如果不是硬件(比如带有反向偏置晶体管的白噪声发生器),它很可能是垃圾。看看每个密码是如何实现的,我相信你会发现一些东西的。
这一点不用说,您必须检查源代码。我把它放在那里,因为当你开始检查源代码的时候,你已经对发生了什么,什么时候,什么原因有了一个很好的了解。我认为您已经在前几个阶段检查了不同的位,但是在这个阶段尝试更彻底
最后但并非最不重要的是,我会尝试错误的注入&侧通道攻击。在这样简单的架构上出现电压和时钟故障,以及功率分析非常容易(例如,与ARM A系列处理器相比)。ChipWhisperer将非常有用!我认为你甚至有两步管道,这样你就可以跳过整个指令:P
注意:试着在评估过程中做很多笔记(你是怎么做的,或者系统是如何工作的),以及有趣/奇怪的东西的图片和屏幕截图。没有“太多音符”这样的东西!
发布于 2018-03-07 17:54:14
取决于设备的功能。它必须以某种方式进行交流。它有网络接口吗?试试端口扫描。
"IoT设备“就像一台迷你PC。你的攻击向量一定是一样的。它必须接受某种输入。操纵输入。
https://security.stackexchange.com/questions/175178
复制相似问题