大数跨境
0
0

【年度报告连载十四】物联网App 安全分析

【年度报告连载十四】物联网App 安全分析 奇安信技术研究院
2021-11-26
2
导读:在新基建背景下,5G、智慧城市、工业互联网加速落地,万物互联时代来临,物联网正在成为现代信息社会基础设施的重要组成。

编者按

《互联网基础设施与软件安全年度发展研究报告(2020)》第二章《物联网安全测量与分析报告》,共八个小节,分别为:物联网安全发展趋势、物联网安全威胁模型分析、固件安全、密码学安全、云安全、通信安全、App 安全、总结。我们已经发布了前六节内容,本文为第七小节《App 安全》和第八小节《总结》。


本文共2573字。文末有惊喜!

APP安全

本文分析的App主要是指物联网设备相对应的移动应用程序。由于主要分析目标是辅助发现物联网设备端和云端的安全问题,因此我们主要从以下4个方面进行自动化分析。


设备和云端的功能交互逻辑。


 是否暴露额外攻击面。


 是否暴露后门。


是否保存敏感信息。


01

App自动化分析

随着物联网设备越来越普及,与设备相关的App数量也在快速增长,仅靠人工分析已经无法满足相应的App安全分析需求了,所以就需要借助自动化分析来进行一些辅助性的分析工作。


1. App自动化脱壳


越来越多的移动应用开发者通过加壳来保护App不被破解,并且当前的App自动化分析工具无法直接分析加壳App,所以如何高效地进行App自动化脱壳是我们在自动化分析工作中的第一步。


实现方法:FRIDA-DEXDump+模拟器+Adb指令脚本。输入为加壳的APK文件,输出为可以直接反编译查看的Dex文件。自动化脱壳架构如图2-63所示。

图2-63 自动化脱壳系统架构


2.App静态分析


对于未加壳的App和脱壳后的Dex文件,我们通过静态分析框架提取出App中的硬编码字符串、所在函数名和类名、对应的Java源码文件。


实现方法:基于Androguard二次开发。输入为APK或Dex文件,输出为硬编码字符串相关信息和对应的Java源码文件。静态分析架构如图2-64所示。 

图2-64 App静态分析架构


分析结果示例如图2-65和图2-66所示。 

图2-65 App硬编码字符串相关信息展示 

图2-66  硬编码字符串所对应的Java源码


通过自动化分析可以快速定位到App中的硬编码信息,极大地节省了分析的成本,为人工分析提供了重要的参考依据。


02

安全风险

借助于自动化分析的结果,我们对App的安全性进一步做了人工分析,发现了一些暴露出来的安全风险。


1.功能交互逻辑暴露


在对物联网设备的传输数据进行分析时,我们首先会想要得到这些数据的格式。因为直接对固件中二进制程序进行反编译分析难度很大,考虑到App与设备之间存在大量的数据交互操作,我们会优先考虑从App入手来分析数据格式、梳理信息交互流程。


案例

以某款App为例,具体的分析工作不再赘述,通过分析发现MQTT部分消息格式如图2-67所示。

图2-67某 App中的buildBean方法代码


在图2-67代码中,可以得到消息Header的组成内容:Source、MsgId、PackId和Fin。最终我们得到的MQTT消息格式结构如图2-68所示。 

图2-68 某App中的MQTT消息格式


案例

通过分析代码逻辑,可以梳理出设备接收的控制码格式及具体内容。关键代码如图2-69所示,根据不同的工作模式及工作状态,可以获取不同的控制消息,以上分析可以为进一步进行消息伪造等操作提供极大帮助。

图2-69  某App中控制消息生成逻辑


2.硬编码信息暴露的攻击面


在自动化分析工作中,我们发现很多App中存在硬编码的字符串,其中的一些硬编码信息会暴露物联网设备和系统的攻击面,攻击者只需要简单的人工分析就可以利用。


案例

以某款App为例,如图2-70所示。

图2-70  某App中的硬编码字段


在该App中,MQTT连接需要的UserName、Password和URL都被硬编码在代码中,ClientID的部分信息也是硬编码,攻击者只需要经过简单的人工分析就可以获取足够的攻击面信息。


在某些App中也编码了设备固件升级的相关信息,如图2-71所示,通过这些URL可以轻易获取设备的升级固件,为进一步分析固件提供便利。

 图2-71  某App中的固件升级信息


3.隐藏的设备后门


考虑到物联网设备的特性,设备上的很多重要功能需要通过App来参与,这一方面给用户带来了操作上的便利,另一方面也埋下了一些安全隐患。经过分析发现,由于自身的安全性不足,有些App会暴露设备的后门。


案例

在某款App中,如图2-72所示,该App会获取access_token来进行认证校验。但在图2-73中可以看到,token是可以被计算出来的,方法中会将当前时间简单转换后和固定字符串进行md5哈希,然后再和当前时间进行拼接后返回token。所以,攻击者也可以根据相同的运算方法计算出token。

图2-72 某App中的baseOne2Orbweb方法代码 

图2-73   某App中的getOpenInfoToken方法代码


4.公私钥及证书泄露


公私钥及证书的泄露,不仅仅存在于固件中,App程序也同样大量内置公私钥及证书文件。这些密码学材料通常用于加密通信及校验身份,因此可被用于伪造身份直接与云或者设备通信。


案例

以某厂商的云服务为例,该云服务使用Retrofit框架抽象出API接口,用于App和设备的业务交互及管理。虽然开发者相对全面地考虑了API的认证和授权逻辑,比如使用token、设备ID、证书,并且证书再进行加密校验。但证书及相关密钥均打包在App内,可轻易提取(见图2-74),从而伪造身份、与云端进行通信、伪造业务请求数据、造成信息泄露,甚至控制任意设备。

图2-74 某App在HTTPS通信中使用的证书信息

03

小结

随着物联网功能的云化迁移应用越来越多,App作为应用侧程序必不可少。鉴于产品安全性的短板效应,开发人员在关注设备安全的同时,也需要投入足够的精力来保障App的安全性。针对当前已经发现的一些问题,IoT App的开发人员需要注意这些问题:App混淆和加壳;避免硬编码或本地存储敏感信息;使用安全标准的数据传输协议;屏蔽日志输出等。


总结

在新基建背景下,5G、智慧城市、工业互联网加速落地,万物互联时代来临,物联网正在成为现代信息社会基础设施的重要组成。《物联网安全测量与分析报告》从攻击者视角出发,梳理了当前物联网的安全态势与发展趋势,从固件安全、密码学安全、云安全、通信安全、App应用安全这5个方面剖析物联网“云、管、端、移”体系架构中面临的各类严重现实安全问题,并通过自研的“木啄”物联网安全分析平台展示详细的测量分析结果,提出相应的安全修补建议,以期推动物联网生态各方重视的相关问题,推动安全物联网模型与相关标准落地。


(未完待续……)


版权声明:本研究报告由清华大学(网络研究院)-奇安信集团网络安全联合研究中心撰写完成,版权属于双方共有,并受法律保护。转载、摘编或利用其它方式使用本研究报告文字或者观点的,应注明来源。


相关阅读

【年度报告连载八】物联网安全发展趋势

【年度报告连载九】物联网安全威胁模型分析

【年度报告连载十】固件安全分析

【年度报告连载十一】密码学安全分析

【年度报告连载十二】物联网云安全分析

【年度报告连载十三】物联网通信协议安全分析

本报告剩余最后100册,关注公众号七折优惠,欢迎订阅!


【声明】内容源于网络
0
0
奇安信技术研究院
网安技术研究国内外前沿动态,相关技术研究发展报告。
内容 99
粉丝 0
奇安信技术研究院 网安技术研究国内外前沿动态,相关技术研究发展报告。
总阅读47
粉丝0
内容99