本次研究主要面向某国外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时间戳。
3“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
用户名/密码明文传输
用户登录过程中,在与服务器端交互时明文传输用户名和密码等信息,可导致用户敏感信息泄露。