G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

admin 2024年2月14日01:45:16评论9 views字数 1978阅读6分35秒阅读模式

针对IoT设备进行安全分析,如果不太好从其本身的系统代码(不管是固件还是开源代码)下手,就利用“伴侣APP”(companion app)——也就是在手机上控制IoT设备的APP来作为突破口,这种思路(可能)最早是从2018年的NDSS论文IoTFuzzer: Discovering Memory Corruptions in IoT Through App-based Fuzzing开始的。2023年的CCS会议上,我们又看到了一项类似的研究工作IoTFlow: Inferring IoT Device Behavior at Scale through Static Mobile Companion App Analysis,今天让我们走进这篇论文来了解一下细节。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

熟悉静态分析的读者都知道在Android app的分析工具中有一款大名鼎鼎的FlowDroid,而今天我们要介绍的这篇论文则是开发了一款IoTFlow工具。名字听起来挺熟悉,功能上也有类似之处——IoTFlow利用两项非常经典的静态分析方法——Value Set Analysis(VSA)和Data Flow Analysis(DFA)来实现对IoT companion app的大规模分析(下面这个非常复杂的图就是整个IoTFlow的工作流程)。简单地总结一下,IoTFlow会基于各种手工标记的sink(例如网络API、密码学API、组件间通信方法调用),开展反向分析(backward tracking),建立起一个所有可能会抵达sink的value set,再增加一次前向的模拟执行(forward simulation)来修正结果。这样,VSA能够帮助后续的DFA分析提前准备好一些在“断流”时候需要的关键信息(例如endpoint节点信息、ICC key信息这种,如果缺少此类信息,标准的DFA在遇到各种跨组件的通信时,就没法把数据流连接起来)。接下去就是用DFA去检查有哪些敏感数据被发送到了sink,这个也是基于FlowDroid做的,就不再赘述了。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

下表显示了VSA的重要性——在实际的分析中,有相当比例的app在执行时会根据endpoint节点信息和ICC key信息进行间接跳转,如果单纯去做DFA,对这些app的分析结果显然就不准确了。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

技术细节暂且不论,从论文的实验结果来看,这篇论文的数据是非常漂亮的。首先作者建立了一个这个数据集,分为两部分,第一部分包括9889款(回文数好评!)companion app,是从CCS 2022、USENIX Security 2023等三项此前的工作中收集而来的companion app合并形成的,叫做IoT-VER;第二部分是2022年1月从Google PlayStore下载的1000个热门app中去除companion app、剩下947个general purpose app形成的GP-2022

作者对整个数据集开展了分析,并对如下三个灵魂发问——HowWhoWhich——并进行了回答。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

让我们先看看结论:首先大家肯定关注的就是IoT设备和手机通信的情况,作者发现,蓝牙依然是其中最主流的通信方式,然后有一些companion app会自建一个本地Wi-Fi然后固定自己的IP,让IoT设备直接访问。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

在使用的通信协议中,最广泛使用的依然是HTTP(没有S);排在第二的是MQTT,而IoTFlow能够分析出MQTT使用的硬编码credential:作者在分析中发现了30个不同的用户名和34个不同的口令(password)!

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

在使用TLS保护通信的companion app中,有一些会对证书进行pinning,但是相当比例的app并没有做好这项防护,而且有些证书在下载时/被分析时(2023年5月)就已经过期了(然而并没有什么更新措施)。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

关于companion app向什么服务器发送数据,发送哪些类别的数据,我们就不再介绍了,这里只展开说一下作者对companion app的密码算法使用情况的分析。下表显示,还有一部分app在使用过时的(obsolete)密码算法(例如DES)。

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

当然,你会怀疑,作为一项静态分析工具,IoTFlow是不是有些“言过其实”,作者也对一些真实的设备(如下表所示)进行了动态测试和验证,其结果也在论文的GitHub repo里面记录了

https://github.com/SecPriv/iotflow/tree/main/dynamic_analysis

G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

论文:https://kevin.borgolte.me/files/pdf/ccs2023-iotflow.pdf
代码:https://github.com/SecPriv/iotflow

原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlow

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月14日01:45:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2023-11-13 IoTFlowhttps://cn-sec.com/archives/2206953.html

发表评论

匿名网友 填写信息