图片转自直播吧
今天凌晨熬夜看球的你,想必经历了一场令人难忘的世界杯决赛。作为众多80后一路走来的青春陪伴,里昂内尔·梅西在最初经历了人生的诸多高光,又承受了无数质疑和挫折之后,终于在职业生涯的末期登上了足球的最高峰,正如贺炜在最后解说词中所说:“我们为什么深爱着足球这项运动,因为它不仅展现了球员们励志的奋斗故事,还寄托了我们普通人平凡生活中的英雄梦想。不论今晚你支持的球队是胜是负,都希望今天晚上的感悟能够帮助你勇敢面对明天早上推开门之后真实的生活, 这才是这项运动真正的魅力。” 我们也希望每位读者都能够热爱生活,热爱自己的事业,在研究之路上走得更远!
回到我们的论文阅读之旅,今天为大家推荐的是一篇被 USENIX Security 2023 录用的论文——Are You Spying on Me? Large-Scale Analysis on IoT Data Exposure through Companion Apps,论文由来自中山大学、中佛罗里达大学(UCF)、印第安纳大学(IUB)以及普渡大学的多位研究人员合作完成。在该论文中,研究人员提出了名为IoTProfiler的系统,用于通过静态分析大量IoT设备的配套移动应用程序,以推断和跟踪对应物联网设备收集的敏感数据。
研究动机
现有分析物联网设备敏感数据的方法中,研究者往往采用动态运行的方式,通过收集物联网设备的通信流量,进一步分析设备所涉及的敏感数据。这类方法存在以下几项问题:(1)物联网设备硬件获取成本高昂,难以进行大规模的分析;(2)设备中的数据交互行为依赖于特定场景触发,难以全面覆盖;(3)设备数据可能被加密,难以逆向解析并获得对应敏感数据。为了解决这些问题,作者提出了一种新思路,即通过分析物联网移动应用程序,来实现对设备本身涉及数据的大规模、细粒度分析。该方法对现有的动态分析方法进行了补充,有助于更全面地了解物联网设备数据暴露的潜在威胁。
核心思路
作者观察发现,在物联网配套的应用程序中,往往会包含特定的数据结构(文中命名为IoT Code Block)来对物联网设备所涉及的数据进行存储、处理。如图所示,作者发现很多物联网设备的语义信息往往会 “聚集”在一些具有特定结构特征的代码片段当中(如Json、HashMap等具有键值对关系的数据结构)。因此,尽管分析对象为应用程序,我们能够通过一些聚集出现的自然语义特征(如deviceId、batteryLevel、vibrationMode和temperature等)来判断数据是否与物联网设备相关,并结合传统APP程序分析技术来对这些数据实现分析追踪。
在此基础上,作者首先在应用程序中通过一个基于语义的分类器(FastText+SVM)来定位到物联网设备数据的代码片段(IoT Code Block),然后再从代码片段中进一步基于语义信息来确定有意义的物联网数据点(IoT Data Point)。定位到物联网以后,后续针对IoT数据的使用、传输分析便水到渠成。
主要贡献
作者开发了一套能够针对IoT数据进行大规模、细粒度离线分析的新技术。该技术能够绕过通常所必须的IoT设备本身及设备动态交互、测试,实现对IoT数据使用的分析。
作者对来自4493个IoT设备厂商的 6208个配套应用程序开展了自动化分析,并给出了这些设备对物联网敏感数据传输使用的实证研究。研究结果有助于大众了解敏感IoT数据的泄露风险,并强调了IoT行业数据监管的紧迫性。
为了实现针对IoT敏感数据的有效识别,研究人员构建了一个物联网设备敏感数据的语义知识库,对数据类型、数据项进行了一定程度的重新归类整理。该知识库有助于辅助后续相关研究拓展。
IoTProfiler设计及实现
如图所示, IoTProfiler将IoT设备配套应用程序作为输入,并最终报告应用程序是否会在未明显告知用户(基于隐私政策)的情况下将这些数据发送出去。
IoTProfiler系统主要由两大组件构成:第一个组件是IoT数据识别器 (IoT Data Identifier, IDI)。IDI首先使用Soot获得反编译后的应用程序代码,并从反编译的代码中提取IoT代码块(即包含文本标签的方法)。在这里,IDI通过使用FastText及SVM,训练构建了一个基于语义的文本分类模型,从而确定哪些代码块在语义上与IoT数据相关。之后,通过对比与IoT数据知识库 (上文已提到)中数据项的语义相似性,分析给定代码块中所包含的所有文本标签,并最终报告出潜在的IoT数据项。
第二个组件是泄漏跟踪器 (Leakage Tracker, LT)。通过识别的IoT数据点,LT通过标准的数据流分析检查相应的IoT数据点在应用中被发送出去。此处存在一个难点,即如何有效地找到所有与特定IoT数据点相关的程序变量。因为IoT代码块中的多个变量可能代表相同的IoT数据点,找到这些变量将提高数据流分析的覆盖率。为解决这一问题,LT利用语义驱动的方法将IoT数据点与代码中可能存在的多个程序变量相关联。然后,LT模块将信息流与应用本身隐私政策的描述进行比较,来判断数据的发送是否合规(即存在隐私泄露)。
系统效果评估
作者通过一系列的实验表明了IoTProfiler在定位IoT代码片段、IoT数据点的有效性。例如,作者随机选取了60个IoT应用作为基准数据集,通过人工验证得出IDI模块在识别IoT代码块的整体准确率、召回率均达到了94.5%。在识别IoT数据点中达到了93.8%的准确率及83.5%的召回率。
此外,为了进一步验证系统的真实效果,作者购买并测试了10项真实的IoT设备来确认IoTProfiler所汇报的IoT数据是否准确。作者对测试设备及对应的配套应用程序执行了尽可能多的设备操作以触发设备交互行为,并检查了这些应用程序的运行时流量。结果表明,在IoTProfiler报告的97个数据项中,有 77 个(72.2%)被实验证实确实发送到了网络当中。
针对IoT数据泄露的大规模研究
基于IoTProfiler,作者搜集了6208个不同的IoT应用,对其中的IoT数据使用情况进行了大规模的分析研究。如图所示,作者统计了不同类型IoT数据的泄露比例、泄露模式。经统计,IoTProfiler总共从5795个应用程序中识别出了50667个IoT代码块和174943个IoT数据点,占6208个应用程序的93.3%。在这些应用程序中,来自至少1559家设备供应商的1973个应用程序(31.8%)被发现在没有适当披露的情况下收集敏感的IoT数据,其中平均每个应用程序暴露5.6个数据项。这一结果表明,市场上很大一部分IoT设备因缺乏数据透明度而危及用户隐私。不仅如此,作者还观察到557 个(9.0%)应用程序与第三方共享IoT数据,425个 (6.8%) 应用程序使用明文传输。总而言之,作者认为IoT数据的不合规使用、传输情况相当普遍,需要引起大家的进一步重视。
总结
物联网设备的隐私及安全性已经多次出现在我们的研究视野当中。已有的研究一般会专注于特定场景下的安全问题。本文的作者借用了传统移动应用隐私泄露的检测分析思路,对物联网设备的敏感数据使用也实现了大规模自动化的探索。
论文的亮点应该在于提出了通用化的方法来实现物联网设备中敏感数据自动化识别。在目前数据使用合规、最小非必要等日益严苛的监管背景下,该方法算是对“规范要求”与“技术实现 ”之间的Gap提供了一定的填充。当然,论文还存在着一定不足,例如针对物联网设备知识库的构建较为ad-hoc,针对隐私泄露的检测分析仍受限于传统移动应用信息流分析有效性的限制。论文中还有更多的发现和细节,感兴趣的朋友可以去看看原文~
原文链接:https://www.usenix.org/conference/usenixsecurity23/presentation/nan
还没有评论,来说两句吧...