1 概述

本次研究主要面向某国外xx云平台及APP手机应用,通过骨干网流量监测、仿真环境模拟测试等无害化评估手段,从工业互联网传输安全、工业APP应用安全、工业数据采集组件安全、工业云平台安全等维度开展研究。发现安全漏洞共16处,其中传输安全漏洞5个,工业APP安全漏洞7个,工业数据采集器安全漏洞3个、云服务端安全漏洞1个。

2 数据采集器安全性评估

2.1 XX-BOX数据采集器介绍

XX数据采集器运行嵌入式系统,可以通过WLAN、3G 等网络实时传输从以太网、RS485采集得到的数据传给远程云平台服务器,同时接收指令来控制执行单元。

2.2 研究结果

XX数据采集器开启有http web服务,经分析存在web 服务配置错误等漏洞隐患,有可能导致黑客非法上传文件(如木马、后门、病毒程序等),归纳如下:

序号

漏洞名称

漏洞描述

严重级别

后果

1

Web服务端443端口/TCP配置错误

443端口/TCP允许客户端执行上传、删除文件等危险的http操作。

可以通过端口443向XX 数据采集器上传文件(比如木马、病毒等恶意程序执行文件),并能够对上传文件执行删除等操作。

2

Web服务端80端口/TCP配置错误

80端口/TCP允许客户端执行上传、删除文件等危险的http操作。

可以通过端口80向XX 数据采集器上传文件(比如木马、病毒等恶意程序执行文件),并能够对上传文件执行删除等操作。

3

TCP时间戳可查询

远程主机可以查询XX数据采集器的TCP时间戳,从而获取系统运行时间。

XX 数据采集器已运转时间被非法获取。

2.3 安全分析

2.3.1 漏洞1:Web服务端443端口/TCP配置错误

  • 详细信息: XX数据采集器443端口/TCP允许客户端执行上传、删除文件等危险的http操作。这样黑客可以通过端口443向XX 数据采集器上传木马、病毒等恶意程序执行文件,并能够对上传文件执行删除操作。

  • 解决方法:修改web服务配置,禁用http方式通过443端口上传或删除文件。

漏洞2:Web服务端80端口/TCP配置错误

  • 详细信息: XX-BOX数据采集器80端口/TCP允许客户端执行上传、删除文件等危险的http操作。这样黑客可以通过端口80向XX 数据采集器上传木马、病毒等恶意程序执行文件,并能够对上传文件执行删除操作。

  • 解决方法:修改web服务配置,禁用http方式通过80端口上传或删除文件。

漏洞3:TCP时间戳可查询

  • 详细信息:远程主机可以查询XX 数据采集器的TCP时间戳,从而获取系统已运转时间。

  • 解决方法:禁用TCP时间戳。

“xx”工业APP安全性评估

3.1 “xx”工业APP介绍

“xx”工业APP是用户管理、监控工控设备、与工业云平台交互的手机应用程序,有iOS版和Antroid两个版本。

3.2  研究结果

“xx”APP采用用户名/口令登录方式,缺乏用户登录次数限制等防护措施,黑客可实施暴力破解攻击,获取系统登录权限,安全问题严重。评估结果归纳如下:

序号

漏洞名称

漏洞描述

严重级别

后果

4

登录密码可暴力破解

APP未对登录密码的输入次数进行限制,也没有验证码等措施,攻击者可通过暴力破解方式,多次尝试输入猜测登录密码

暴力破解获取系统用户名/密码,非法登录系统获取使用权限。

5

截屏录屏风险

攻击者在用户登录时获取屏幕状态,捕获用户名和密码等

可导致用户名/密码等敏感信息泄露

6

使用弱Hash API

APP在开发过程中使用了iOS 系统的弱hash API

使用弱hash函数将导致hash碰撞,造成口令被猜测、撞库等后果。

7

使用伪随机数生成函数

APP在开发过程中使用了伪随机数生成函数rand

使用伪随机数发生器将导致敏感文件被暴力破解的风险。

8

不安全API调用

APP在开发过程中使用了不安全API

使用不安全API有可能导致系统缓存溢出。

9

缺少反调试机制

APP缺少反调试机制,则在Root环境下,攻击者可运行Cycript等调试工具寻找应用漏洞。

可在调试模式下发现系统安全漏洞。

10

未检查越狱环境风险

APP运行时没有检查手机操作系统是否是越狱版本

在越狱环境中容易被恶意应用乘虚而入,会对用户个人信息及财产造成重大损失。

3.3 安全分析

3.3.1 漏洞4:登录密码可暴力破解漏洞

  • 漏洞说明:应用未对登录密码的输错次数进行限制,或者客户端登录没有验证码等限制,攻击者可通过暴力破解方式,多次尝试输入猜测登录密码。

  • 解决方法:应用应对密码输错次数进行限制。

漏洞5:截屏录屏漏洞

  • 漏洞说明:录屏、截屏是攻击者窃取用户敏感输入信息的一种手段。攻击者在用户登录时获取屏幕状态,获取用户名和密码等,可导致用户敏感信息泄露。

  • 漏洞截图

  • 解决方法:在用户输入登录密码时使密码不回显

漏洞6:使用弱Hash API

  • 漏洞说明:使用反汇编工具对该APP的可执行文件进行分析,发现该APP在开发过程中使用了iOS 系统的MD5、SHA 1等弱hash API。

  • 漏洞截图

  • 解决方法:开发过程中请勿使用SHA 1等Hash API,否则有可能造成被保护数据泄露,建议使用SHA-224、SHA-256、SHA-384,和SHA-512等。

漏洞7:使用伪随机数生成函数

  • 漏洞说明:使用反汇编工具对该APP的可执行文件进行分析,发现该APP在开发过程中使用了伪随机数发生器rand,有可能导致敏感信息被暴力破解。

  • 漏洞截图

  • 解决方法:开发过程中建议使用arc4random等。

漏洞8:使用不安全API函数

  • 漏洞说明:使用反汇编工具对该APP的可执行文件进行分析,发现该APP在开发过程中使用了不安全的API函数imp_stubs_strlen、imp_stubs_strcmp,有可能导致缓存溢出。

  • 漏洞截图

  • 解决方法:开发过程中避免使用带有潜在隐患的系统API,如strlcat代替strcat,strlcpy代替strcpy,strlcat代替strncat,strlcpy代替strncpy,snprintf代替sprintf,vsnprintf代替vsprintf,fgets代替gets。

漏洞9:工业APP缺少反调试机制

  • 漏洞说明:APP缺少反调试机制,在Root环境下,攻击者可使用Cycript等调试工具在APP运行时寻找应用漏洞。

  • 运行Cycript时的漏洞截图

  • 解决方法:

1、对用户输入数据进行处理,避免显示任何敏感信息。

2、对客户端源码进行混淆,尽可能增加调试难度,最大限度隐藏自己的程序逻辑。

3.3.7 漏洞10:未检查是否为越狱环境

  • 漏洞说明:APP缺少反调试机制,在Root环境下,攻击者可使用Cycript等调试工具在APP运行时寻找应用漏洞。

  • 漏洞截图:APP在越狱iOS操作系统中运行截图

  • 解决方法:APP对运行环境是否为越狱进行检查。

4通讯安全性评估

4.1 通信特征

“xx”工业App在与云端服务器端交互时采用不安全的SSL/TLS通信,存在明文传输用户名和密码等安全漏洞。

4.2 研究结果

序号

漏洞名称

漏洞描述

严重

级别

11

用户名/密码明文传输

用户登录过程中,在与服务器端交互时明文传输用户名和密码等信息,可导致用户敏感信息泄露。

12

安全通信SSL/TLS中的Cookie 缺少Secure 属性

允许cookie 通过非安全的通道(http)进行传输,泄露Cookie信息,使黑客能够进行会话劫持攻击

13

安全通信SSL/TLS 加密套件(Cipher Suites)漏洞

采用该加密套件的加密内容可以被黑客破解,导致信息泄露。

14

工业云平台端远程通信接受弱加密SSL/TLS 加密套件

加密套件采用弱加密算法容易被攻击者暴力破解,导致传输数据被黑客监听。

15

安全通信Diffie-Hellman密钥交换DH group安全强度不足

密钥交换DH group安全强度不足,可以对加密信息进行暴力破解。

4.3 安全分析

4.3.1 漏洞11:用户名/密码明文传输

  • 详细信息: 用户登录过程中,在与服务器端交互时明文传输用户名和密码等,可导致用户敏感信息泄露。

  • 漏洞截图:采用Charles等抓包工具捕获的用户名/密码明文信息。

  • 解决方法:敏感信息传输采用加密通讯。

漏洞12:安全通信SSL/TLS中的Cookie缺少secure属性

  • 详细信息: 由于Cookie 未使用secure属性,这将允许cookie 通过http等非安全通道进行传输,使黑客能够进行会话劫持攻击。cookie 的唯一必需属性是“name”字段,常见的可选属性如:“comment”、“domain”、“path”等等。必须相应地设置“secure”属性,才能防止以未加密的方式发送cookie。RFC 2965 指出:“Secure 属性(不含值)会指导用户代理程序不管何时返回此cookie,都只用(未指定)安全方法来联络原始服务器,以保护cookie 中的信息的机密性和真实性。”。

  • 解决方法:云服务端开启Https传输时,为所有敏感cookie的添加Secure属性。

漏洞13:安全通信SSL/TLS 加密套件(Cipher Suites)漏洞

  • 详细信息:安全通信采用低版本SSL/TLS协议,接受存在安全问题的加密套件。由于使用低版本SSL/TLS协议,服务接受如下存在漏洞的加密套件:TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (SWEET32) (漏洞CVE-2016-2183);TLS_RSA_WITH_3DES_EDE_CBC_SHA (SWEET32) (漏洞CVE-2016-6329)。使得采用以上加密套件的加密内容可以被黑客破解,导致信息泄露。

  • 解决方法:使用TLSv1.2以上版本安全通信协议,或者更改远程服务安全通信配置,使其不再接受存在漏洞的加密套件。

漏洞14:工业云平台端远程通信接受弱加密SSL/TLS 加密套件

  • 详细信息:安全通信采用TLSv1.0协议,支持接受弱加密SSL/TLS加密套件,具体如下:

TLS_RSA_WITH_RC4_128_MD5(漏洞:CVE-2013-2566)

TLS_RSA_WITH_RC4_128_SHA(漏洞:CVE-2015-2808)

弱加密套件采用的加密算法容易被攻击者暴力破解,导致传输数据被黑客监听。

  • 解决方法:使用TLSv1.2以上版本安全通信协议,或者修改SSL/TLS配置,使其不再接受弱加密套件(Cipher Suites)

漏洞15:安全通信Diffie-Hellman密钥交换DH group安全强度不足

  • 详细信息:安全通信SSL/TLS服务使用DH groups密钥大小为1024位,安全强度不足,有可能被破解。

  • 解决方法:采用椭圆曲线Diffie-Hellman(ECDHE)或者使用2048位的DH groups。

“xx”工业云平台安全性评估

5.1 “xx”工业云平台介绍

“xx”工业云平台是面向企业产品的数字化信息追踪平台+设计、生产、运行和维护的全方位服务组合,目标是实现覆盖产品全生命周期的:数据可追溯、预防性维护、商业智能化、服务规模化,结合设备运行参数、能耗数据分析和专家服务能力,可帮助设备使用用户保证稳定运行、提升生产效率、降低能源成本。也是机器设备厂依据采集的数据实现商业智能,机器优化,业务创新等。

5.2 研究结果

序号

漏洞名称

漏洞描述

严重级别

后果

16

云服务端无法抵御重放攻击风险

把截获的用户APP登录报文、创建工单报文等直接发给云服务器,云服务端并没有对重放次数进行限制,攻击者可对服务器端发起dos攻击。

有可能导致系统服务异常。

5.3 安全分析

5.3.1 漏洞16:云服务端无法抵御重放攻击风险

  • 详细信息: 把截获的用户APP登录报文、创建工单报文等直接发给云服务器,云服务端并没有对重放次数进行限制,攻击者可对服务器端发起dos攻击。

  • 漏洞截图:

创建工单时使用POST请求,将日期、内容、用户id等信息通过POST请求https://mobile.mm.xxxxx.com/api/tickets/create?platform=android&version=1.5.14&username=cncert来创建工单。

报文重放后,返回数据与原请求返回数据一致,由上图可见,重放的报文在APP中创建了两个工单,攻击者可通过伪造报文在云服务端创建多个恶意工单。

声明:本文来自工业互联网安全应急响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。