ContexIoT: Towards Providing Contextual Integrity to Appified IoT Platforms

摘要

  • 提出一个基于情景(Context)的应用权限系统。ContexIoT 为应用化 IoT 平台的访问控制提供一种叫做 Contextual integrity的特性,意即:当用户允许一种应用的行为时,它实际上允许的是 这个应用在当时的Context下进行这种行为,而不是在任何时候。
  • 构建了一个物联网攻击应用程序数据集(设备、协议、平台)(针对恶意逻辑的攻击,不考虑拒绝服务攻击)。在这个数据集上对ContexIoT进行评估,我们发现25种不同的攻击执行路径都被成功地区分出来,显示了正确的context信息
  • 对contextIOT进行了性能评估,延迟低,权限请求频率远低于用户习惯化或烦扰风险的阈值

问题

  • 允许不被信任的第三方代码来控制用户的设备,例如比如用三星生产的运动传感器数据去控制飞利浦生产的灯泡,都可以在三星 SmartThings 平 台上实现,导致访问控制缺陷
  • 物联网应用的目标是在尽量少的用户交互下实现自动化设备控制。除了发送通知,通常在应用程序安装过后不需要用户交互,这使得在运行时让用户参与context变得更加困难
  • 在智能手机平台上,由于某些权限的请求频率太高,无法在每次请求发生时提示用户,为了不造成用户习惯化或厌烦,因此当前的设计转向只在第一次请求发生时提示用户以提高可用性。但是,这会损害context完整性,因为后续的敏感操作可能在与初始请求完全不同的context中执行

攻击分类

已曝出的物联网攻击

  1. 脆弱认证
  2. 恶意app/固件
  3. 问题使用场景:物联网特定使用场景中的技术滥用

来自平台的漏洞

app漏洞

云平台漏洞

方法

ContexIoT的目标是在运行时触发敏感操作时,可以让用户验证两个重要属性:

  1. when:是否在用户所需的条件下触发敏感操作
  2. what:敏感操作是否与用户预期一致

ContexIoT 会基于对应用程序静态分析(static analysis) 的结果进行安全补丁的方式来为程序加入安全执行的逻辑。敏感action发生时会向负责进行访问 控制的远程服务请求,该服务会根据不同的context 来做出访问控制的决定:当该敏感action发生的 context和用户之前允许过的一种 Context 相符时,该行为被允许; 当某种 Context 第一次 出现时,将它显示给用于,让用户做出决定

  • context信息收集

ContexIoT采用了一种混合的方法,将静态分析和运行时日志记录结合起来,使用静态分析结果来减少运行时日志记录的开销。

context信息:UID/GID、UI Activity、Control flow、Runtime value、Data flow

  • 信息用法

描述敏感action触发动作的Control flow信息,以及运行时的数据应该能够区分攻击执行路径和正常执行路径的context。Data flow信息用于将context信息传递给用户,以便更好地通知用户安全含义。

为每个用户维护一个权限映射

与其他基于context的方法对比

本方法可以检测出以下其他方法可逃避的:

  • Asynchronous leakage:对于远程控制攻击,当恶意负载被执行时,ContexIoT向用户提供敏感操作的数据依赖信息,明确告诉用户即将执行的方法来自于在单独的过程中接收到的响应。
  • Control flow abuse:例如,当一个恶意的锁管理器应用程序检测到房主回来时,它第一次试图打开房门,它就会被这种基于接收器的访问控制系统授予unlock()功能。ContexIoT检测出这两种场景中控制流的不一致性,并分别要求用户的权限。
  • Dynamic code loading:ContexIoT静态地检测动态代码加载的潜在接收器,从而防止恶意逻辑逃避访问控制。
  • Policy abuse:基于MAC和DAC的方法根据用户或系统定义的策略在应用程序级别授予访问权限。它们本质上容易受到恶意应用程序逻辑的攻击,这种逻辑滥用了对应用程序本身的信任,这种信任通常出现在重新打包的应用程序中。本方法执行访问控制在程序路径级且可以细粒度的策略控制和良性访问控制。

实现

静态分析:control flow
运行时日志:Method invocation trace、Dynamic method invocation(device&method name)、Runtime data、Data dependency(动态污点分析)

实验

  • smartthings simulator
  • 使用模糊测试方法以不同的触发顺序随机生成所有类型的外部事件,以确保良好的代码覆盖率。

虚拟设备平均增加26.7%延迟,个别真实设备增加延迟基本不到10%可以忽略。

ContexIoT: Towards Providing Contextual Integrity to Appified IoT Platforms相关推荐

  1. mongoose-iot_如何使用带有ESP32和Mongoose OS的GCP-Cloud IoT核心版查看天气

    mongoose-iot This post on freecodecamp.org is not maintained. The most up to date version is on Medi ...

  2. IoT reigns supreme at upcoming Embedded Linux Conference

    本文转载至:http://linuxgizmos.com/linux-foundation-details-embedded-linux-conference-agenda/ 转载说明:今年的嵌入式 ...

  3. Android平台安全模型(The Android Platform Security Model)

    版权声明:本文为CSDN博主「ashimida@」翻译的文章,转载请附上出处链接和本声明. 本文链接:https://blog.csdn.net/lidan113lidan/article/detai ...

  4. The right to contest automated decisions under the General Data Protection Regulation: Beyond the so

    Regulation & Governa nee Regulation & Governance (2021) doi:10.1111/rego.12391 The right to ...

  5. Paper:人工智能可解释性的背景/方法/伦理/教育/可解释性的基本原理/Interpretability和Explainability区别之《可解释人工智能的教育视角:基于伦理和素养的思考》解读笔记

    Paper:人工智能可解释性的背景/方法/伦理/教育/可解释性的基本原理/Interpretability和Explainability区别之<可解释人工智能的教育视角:基于伦理和素养的思考&g ...

  6. mac安全性与隐私 不允许_隐私不仅仅是安全

    mac安全性与隐私 不允许 Information security began as more of a concern for businesses and governments. These ...

  7. keycloak 认证服务

    文章目录 1. 概述 1.1 架构 1.1.1 认证流程 1.1.2 认证服务 1.2 术语 1.2.1 资源服务器(Resource Server) 1.2.2 资源(Resource) 1.2.3 ...

  8. 原创 | 破解个人数据“不可能三角”初探

    作者:张家林本文约5300字,建议阅读10分钟个人数据开发利用新范式的主要问题是要解决好开放.隐私和安全. 个人数据开发利用的"不可能三角"是指在个人数据开发利用中,不可能同时满足 ...

  9. 论文翻译及笔记 --Visual Place Recognition: A Survey

    论文笔记--"Visual Place Recognition: A Survey" Abstract I. INTRODUCTION II. CONCEPT OF PLACE I ...

最新文章

  1. app.vue 跳转页面_独立站如何提高产品页面转化呢?
  2. NHibernate之Could not initialize proxy - no Session Bug
  3. 爬虫学习--豆瓣top250
  4. [JTA] Java事务api
  5. B2C和B2B之间有多大差距
  6. slice_Spring Boot Web Slice测试–示例
  7. PHP JSON数组与对象的理解
  8. MacOs中Docker与宿主机网络互通问题解决
  9. Togu Audio Line推出最新版本的TAL-BassLine-101插件 支持M1芯片
  10. EMI测试——CE(传导干扰)测试
  11. 程序员的自我修养-读后感
  12. WEB2.0商业模式才刚开始
  13. CVPR 2020 | 京东AI研究院对视觉与语言的思考:从自洽、交互到共生
  14. 为什么C++可以重载函数
  15. mac 终端上运行NPM INSTALL时出现问题:npm error!cb() 从未调用过!解决了
  16. ThinkPad R400系列恢复光盘
  17. 一位新网络工程师的告白
  18. 索尼服务器在哪个文件夹,索尼有没有云服务器
  19. uniapp 调用手机相机拍照实现图片上传
  20. Linux Centos7 远程登录及相关工具介绍并 实现远程登陆

热门文章

  1. 信息系统项目管理师考试是自学好还是找培训好?
  2. pycocotools and mmpycocotools 循环报错
  3. 老毛子(华硕)固件ipv6及dmz主机设置
  4. POJ 3009 Curling 2.0-DFS
  5. 由点及面,一叶知秋------集合大家庭
  6. part1-CST建模
  7. echarts堆叠图显示总数 tooltips处理
  8. 小学生python编程教程-小学生python编程在线教育-小码精灵编程线上教育机构
  9. 递归:昆虫繁殖C++实现
  10. hosts文件恢复如初方法