当前位置: 首页 > news >正文

触屏交互设备的安全风险

图片

现实中的绝大多数电子设备都具有交互性,而现在越来越多的公共场合有布置越来越多的带触屏的交互设备,功能有简单的,有复杂的,布置的场所和应用的场合也各有不同,几乎在任何一个大型公共场合都可以看到这样的设备,甚至在餐厅、售卖店、售票点都可以看到触屏的交互设备,这些设备能够让消费者自行操作,极大便利了日常操作,其中的一些设备出于集中管理的需要,会在后台连接到互联网。

作为一名好奇心强烈的人,在使用这些设备的时候,总会不自觉的尝试最大化探索这些设备的可能性,尝试发现设备更多的隐藏功能或者系统背后的构建原理,因此本文的标题是关于触屏交互设备的安全风险,特指通过需要通过手指触摸或点击操作的设备或系统。

因为在公共场合的关系,许多时候这种尝试和探索不能过于明目张胆或停留太长时间,下文介绍的内容仅限于这些安全风险的归类、描述和笔者对于该类型风险来源的推测和理解,实际没有执行任何危害公共安全的动作。

现今的交互设备的应用类型大概可以分为三类:Flash(是的,有少数设备还在用这个古老技术)、网页(数量不少的交互设备均是如此)、App(绝大多数基于Android的设备都采用该方式),操作系统对应的也分为三类:Windows、Android、Ubuntu。触摸交互设备在物理可以接触的情况下,其安全风险主要来自于对于设备展示应用的逃逸或绕过,攻击者逃逸应用之后可以进入原生系统的操作或配置界面,从而可以执行更多操作,根据设备应用场合和联网情况,可能产生的安全危害包括但不限于:

1、篡改交互设备展示的内容,包括文字、图片、链接;

2、阻止交互设备的联网更新;

3、远程下载和植入后门或木马程序;

4、通过交互设备的联网功能进一步攻击其他交互设备;

5、通过交互设备的集中管理功能获得管控平台的信息;

6、通过交互设备作为跳板攻击集中管控平台;

7、窃取交互设备自有的数据,包括文件、图片、文字等。

第一类风险。隐藏的软键盘

Windows系统的交互屏幕上往往隐藏有软键盘,位置也往往在屏幕左上角的位置,仔细观察可以看到一条凸出来的键盘边框,只要向右划拉一下便可以拖出完整软键盘。在没有鼠标的情况下,键盘操作可以完成Windows系统的所有操作,因此能够操作系统软键盘便可以执行系统命令(根据设备系统当前的用户权限),或者查看系统文件。

该功能可能是出于设备开发方对于软键盘功能的正常使用需求,比如在系统维护或调试时候调用软键盘进行操作,省去了设备自身外接设备的麻烦以及设备自带外接设备接口的麻烦,也可能是忽视了触屏Windows设备的软键盘功能。

图片

第二类风险  调皮的右键盘

对于Flash或者网页的应用形式,在屏幕上可以看到触摸的光标,不过是个圆形的点罢了,而在功能实现上,单点屏幕(相当于左键单击)足够了,却忽略了长按可以弹出的菜单,而菜单项中的一些功能,足够用来逃逸应用,比如帮助、打印等等功能。只要可以逃逸应用操作的限制,比如资源浏览器,就可以结束或关掉应用进入系统界面了。

开发厂商在开发过程中通常只会考虑正向功能的开发,对于系统自带的(如上一类风险)和应用自带的功能没有做必要的删减、屏蔽处理,毕竟正常的开发人员不会有想到“什么样的人”会用奇奇怪怪的方法使用产品。因此,在产品设计中,产品经理们除了要考虑正常使用的use case(用例),还需要考虑abuse case(用例滥用),并非每个人都会按照产品设计预期操作产品。

图片

第三类风险  遗漏的系统菜单

在Windows应用开发中,默认在标题栏有系统菜单,右键方可查看,而系统菜单的完整菜单项中有“关闭”选项。这类风险类似上一类风险,属于是在Windows应用开发中忽略了对于自带菜单功能的处理,比如可以选择关闭或删除相关菜单代码。

第四类风险  大意的输入框(法)

在有输入交互的设计中,一些应用是自定义了九宫格或其他输入方式,而一些则是直接套用了系统原生的软键盘或者第三方输入法。而对于第三方输入法,丰富的功能也提供了丰富的逃逸方式,这种用法在拥有系统所有权的个人终端是没有问题的,但在单一应用的交互中就会有问题。

这说明,在设备厂商或系统厂商在引入第三方功能组件时候,需要谨慎评估这些功能组件的所有特性和安全能力,对于用户而言,产品问题会直觉地与产品厂商建立关联,比如不久前CrowdStrike更新造成的蓝屏故障,用户会直觉地认为是Windows系统地问题,于是不少人谴责微软,谴责比尔盖茨(挑最熟的骂)。

比如笔者早年发现的某厂商的身份识别设备漏洞,应用本身的管理密码也成为了摆设,如此只要可接触,就可以拿到所有通过这台设备认证的人脸、身份证照片等等(如图,实现逃逸之后打开了设备自带的浏览器访问了某个美女图片),该漏洞第一时间也反馈给了相关厂商做修复。

图片

最近爆出的通过搜狗输入法绕过Windows系统的锁屏界面便是属于这种,两个软件单独拿出都是正常的功能,并不产生安全风险,但功能叠加反而产生了漏洞,就像洁厕灵和84消毒液不能混合使用(会产生有毒的氯气)。

另外,在判断一个现象是否是漏洞时候,基于CIA(保密性、完整性和可用性)三要素分析即可,利用搜狗输入法的自有功能绕过Windows系统锁屏界面,进入Windows资源管理器,显然是破坏了Windows系统锁屏功能的保密性(不允许在用户未登录情况下访问系统资源),因此这个现象是漏洞无疑。

第五类风险  来不及的应用响应

这种情况少之又少,在一些性能较差的老旧设备上可以遇到,在触摸屏操作时候,由于系统性能不足,设备应用无法响应用户快速的操作或者并发操作,在快速的触摸操作之下会导致相关进程的故障,并由此弹出故障报告框,之后就容易逃逸到操作系统界面了。

这个问题其实相当容易解决,只需要及时更新设备即可,但也并非每个地方的设备都能够及时更新,比如2013年以前的ATM机按键会留下指纹,之后出现了不锈钢金属拉丝键盘,可以解决该问题,但也并非每个地方的ATM机可以及时更新(取决于当地财力、意愿、影响)。

图片

第六类风险  其他特定的交互

有些是多点触摸,有些是反复的揉搓,总之都是通过交互点和交互方式发现可疑的情况,比如笔者早年有一次在使用一家大型商场的一台玩具售卖机时,用三根手指在顶部向下拖拉,就可以看到转瞬即逝的“退出全屏”按钮,如此需要足够的耐心。

根据系统的类型不同,可以选择不同的操作尝试探索设备的隐藏功能或者所在场合下不安全的功能。

需要额外说明的是,上文中第五类安全风险也可以称为Bug,而此次Windows锁屏绕过则是功能叠加导致,在大多数情况下,为了区分BUG和漏洞,笔者会用这样的对比:

本该发生却没发生的事情叫Bug,比如小李和老婆结婚多年没有孩子,这时该去协和医院进行检查;

不该发生却发生的事情叫漏洞,比如老王和老婆一年没见老婆却怀了孩子,这时该去民政局办理离婚。

 

作者:裴伟伟

2024年8月2日

洞源实验室 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Windows系统设置网络IPv4和IPv6优先访问级
  • Ps:通过 RGB 值计算 HSB 值
  • Sass/Scss基础
  • Windows安装Swoft框架
  • Linux -- 进度条小程序
  • 3Done学习笔记
  • 全网最适合入门的面向对象编程教程:33 Python 的内置数据类型-对象 Object 和类型 Type 的关系
  • DSP如何进行竞价
  • vue3--实现vue2插件JSONPathPicker的路径获取功能
  • 用koa2 和 html javascript做了一个视频列表功能
  • Java设计模式(适配器模式)
  • WPF学习(7)- Control基类+ContentControl类(内容控件)+ButtonBase基类
  • docker搭建frp内网穿透
  • 微信小程序--详情实现日期选择期(年月日)
  • Go 语言中创建方法
  • Effective Java 笔记(一)
  • ERLANG 网工修炼笔记 ---- UDP
  • iOS编译提示和导航提示
  • JavaScript创建对象的四种方式
  • PHP变量
  • Quartz初级教程
  • Service Worker
  • Solarized Scheme
  • 阿里云Kubernetes容器服务上体验Knative
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 利用DataURL技术在网页上显示图片
  •  一套莫尔斯电报听写、翻译系统
  • - 转 Ext2.0 form使用实例
  • 2017年360最后一道编程题
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 从如何停掉 Promise 链说起
  • 我们雇佣了一只大猴子...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #图像处理
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (阿里云万网)-域名注册购买实名流程
  • (十三)Flink SQL
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)软件性能测试
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转) ns2/nam与nam实现相关的文件
  • ***通过什么方式***网吧
  • .NET 发展历程
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .NET中分布式服务
  • @angular/cli项目构建--Dynamic.Form
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @ModelAttribute 注解