移动app安全测试 – 网络传输安全

时间:2021-7-21 作者:qvyue

前言

APP在运行的时候,有海量的文字、图片、视频等内容传输,全部存在本地既不现实、也不灵活。因此会大量的使用网络连接来实现APP与云端服务器的数据通信,所以网络数据传输的安全性,往往成为移动app安全最关键的一个环节。

如果没有对这方面进行安全防护,黑灰产业就可以通过安全薄弱的环节,直接制作出协议工具,脱离app本身进行业务操作。

所以从整个过程来看,可以从通信安全和数据安全两个方面来进行安全性研究和测试。

移动app安全测试 - 网络传输安全

通信安全

目前市面上有一部分APP与服务器的交互采用的是HTTP协议,如果没有采取额外的措施,那么用户数据、交互数据就都是以明文的方式在网络中进行传输,这显然是极其“不安全”的。

一些有安全意识的APP虽然采用了HTTPS与服务器进行通讯,但是在实现过程中存在漏洞,导致通讯链路仍然存在较大的可能性被监听、解密。例如未做安全处理的HTTPS通讯连接会存在中间人攻击的安全性风险。

1、TLS

(TLS)安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。

具体的技术说明和细节在网上有很多介绍,这里就不复制、粘贴了。如果没有采用比较安全的协议进行app和服务器的通信,那么网络上传输的数据就会被其他拦截,进而泄漏用户的信息以及公司的数据信息。

采用安全传输协议后,虽然网络上传输的数据仍然可能被拦截下来,但拦截者此时是没有办法解密和还原经过协议加密处理过的数据。

2、证书校验

这里指HTTPS的单向或双向验证。

所谓单向验证,就是在HTTPS通信中,客户端验证服务端的证书;双向验证就是客户端和服务端的证书都需要对方验证。有了证书校验,可以在一定程度上预防中间人窃听。

数据安全

通讯安全的一些措施可以保证客户端到服务端传输过程中的链路安全,但是却不能保证传输中数据的安全。

以下图为例,虽然协议采取了TLS安全协议,但是攻击者可以通过中间人攻击的方式捕获通信数据,获取明文信息。

移动app安全测试 - 网络传输安全

因此,为了保护数据安全,有必要使用适当的加密方式。例如重要的注册登录接口,就应该使用RSA进行加密,攻击者即便拿到了客户端的密钥或公钥的一种,也无法进行数据解密。其他非核心的接口,可以用对成加密或其他算法组合而成的加密方式。

中间人攻击

在测试工作中的抓包这一项活动,其实就包含了中间人攻击。即便是HTTPS协议,如果缺少安全意识和防护措施,也能造成数据信息的泄漏。

1、HTTP会话劫持

HTTP会话劫持是对HTTP通信进行的一种跟踪行为。HTTP不会对客户端的请求或者服务的返回数据进行加密处理,最多只是对数据本身进行一定程度的加密,其中明文数据更容易遭到篡改和重放攻击。

2、HTTPS会话劫持

在客户端和服务端的通信中,如果客户端没有对服务端的证书进行校验,攻击者就能在“中间”分别和客户端、服务端建立两个独立的链接并交换数据。例如Charles这个专业的抓包软件,把证书从软件中导出并安装到设备上,就可抓去HTTPS协议的网络通信了。

安全测试

1、TLS

检查客户端网络连接是否使用了HTPPS协议

2、证书校验

检查客户端和服务端是否进行了证书校验。

2.1、SSL-pinning存在被绕过分风险

2.2、风险检查:客户端本地证书容易遭到窃取

3、数据加密

3.1、检查传输的数据本身是否被加密。

3.2、加密方式是否过于简单易破。

4、防抓包策略

客户端是否包含一定程度的防抓包策略,例如代理检测技术等等。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。