据Security Affairs消息,Zecops公司的安全研究人员发明了一种名为NoReboot新型的恶意软件,它可以让iPhone假关机。
该技术直接模拟了用户iPhone设备关机时的情景,专家表示,一般用户不会很认真的区分是真关机还是“假关机”。
“NoReboot”的工作原理是将恶意代码注入 InCallService、SpringBoard 和 backboardd 这三个后台进程,它们负责 iPhone 的重新启动过程。一旦攻击者劫持了重启过程,iPhone 在用户看来就像关闭了一样,但却完全清醒并连接到互联网。
“假关机”后,攻击者可悄悄远程访问用户手机的麦克风和摄像头,并在iPhone恢复开机状态时一直进行。这意味着即便用户重启手机也不会影响该恶意软件的运行。
Zecops 公司发布了该技术的相关分析报告,并指出他们通过挂钩Objective-C的方法 [FBSSystemService shutdownWithOptions:]来劫持信号。这样它就不会向SpringBoard 发送关闭信号,而是会通知 SpringBoard 和 backboardd 触发注入的代码。
在backboardd中,研究人员会隐藏旋转动画,只要SpringBoard停止运行就会自动出现[BKSDefaults localDefaults]setHideAppleLogoOnLaunch:1]。然后,他们会让SpringBoard 退出并阻止它再次启动。由于SpringBoard负责响应用户的操作和行为,一旦它不再反应,iPhone手机就表现的跟关机了一样。
具体过程如下图所示。
当用户试图按音量键和关机键来关闭设备时,攻击者可以将其代码注入上述组件的进程中,并禁用任何物理反馈,以此模拟iPhone关机的情形。
禁用的物理反馈如下:
- 来电铃声和信息通知
- 触摸反馈(3D触摸)
- 震动
- 屏幕
- 相机指示灯
安全专家表示,此时所有的物理反馈都已经被禁用,看起来就像已经关机了,但是手机的绝大部分功能依旧完整,且可以连接到互联网,攻击者可借此监控用户。目前该技术已经进行了PoC测试,安全专家公布了PoC测试视频,详细展示了攻击者是如何通过摄像头和麦克风监视受害者。
参考来源:https://securityaffairs.co/wordpress/126358/hacking/noreboot-persistence-iphone.html