Android是任何移动平台中最大的有组织的基础,并且每天都在快速发展。此外,由于各种原因,Android正在成为这一观点中最扩展的操作系统。
然而,就安全性而言,没有任何与可能促使这一阶段弱编程的新漏洞相关的数据被揭示出来,意识到这个阶段有一个突出的攻击面。
信息收集是应用程序安全性测试的最基本步骤。安全测试应该尝试尽可能合理地测试大部分代码库。
因此,通过代码映射每种可能的方式以鼓励进行详尽的测试是主要的。
-
一般应用信息的识别。
-
测试通用库和指纹识别。
-
应用程序组件和组件授权的简要说明。
-
逆向工程应用程序代码
应用程序本地存储缺陷
Android提供了一些替代方案来备份持久的应用程序信息。您选择的存储空间取决于您的特定需求。
例如,无论信息是应该对您的应用程序是私有的还是对不同的应用程序(和客户端)开放,以及您的数据需要多少空间。
-
在日志和缓存中找到明智的数据。
-
将敏感数据放在共享存储上(无限制地提供给所有应用程序)。
-
内容提供程序SQL注入和访问权限。
-
检查敏感数据是否在注销后仍保留在那里。
-
隐私和元数据泄漏。
传输层安全性
使用传输层安全加密会继续在远离您的消息的情况下窥探眼睛。TLS是一种安全地编码和传送数据的协议,对于入站和出站流量数据,它避免了间谍活动。
-
较旧的不安全传输层协议。
-
可以使用(sslscan,sslyze,osaft等)工具找到TLS弱加密(CRIME,BREACH,BEAST,Lucky13,RC4等)。
-
不安全的数据存储。
-
绕过TLS证书固定。
-
TLS真实性缺陷。
IPC安全(进程间通信)
Android IPC机制允许您验证连接到IPC的应用程序的身份,并为每个IPC机制设置安全策略。
-
设备拒绝服务攻击。
-
权限和数字签名数据共享问题。
-
非法应用程序可以访问敏感数据。
-
未发现的组件和跨应用程序授权。
不受信任的代码
-
应用程序错误消息中披露的敏感信息。
-
WebViews上的JavaScript执行风险。
-
应用程序通过AndroidManifest.xml文件设置的不安全权限。
-
整数,堆和基于堆栈的缓冲区溢出。
身份验证缺陷
身份验证是此过程的基本部分,但即使是强大的验证身份验证也可能因不完善的凭据管理功能(包括密码更改,忘记密码,记住密码,帐户更新和其他相关功能)而受到破坏。
-
身份验证不一致。
-
跨应用程序验证。
-
会话处理错误。
-
基于客户端的身份验证缺陷。
-
没有帐户锁定政策。
业务逻辑漏洞
包含更多以设计和编码为中心的组件的漏洞被纳入其中。这两种执行技巧和应用程序以一种影响其工作过程的惊人方式工作的能力都被纳入其中。
-
检查服务器端验证。
-
管理员/用户帐户妥协。
-
检查根检测方法/绕过它。
-
强力认证。
渗透测试Android服务器端检查
-
检查客户端注入(XSS)。
-
用户名枚举。
-
SQL注入
-
恶意文件上传。
-
检查所有HTTP方法(PUT,DELETE等。使用HTTP动词篡改使用burp intruder)。
-
检查会话管理(cookie缺陷,会话覆盖,会话固定等)。
-
CAPTCHA实施缺陷和绕过。
-
运行nikto,dirb websever扫描程序。
打开Android安全评估方法
Android安全控件的结构在以下部分中,用于Android应用程序漏洞评估的参考框架。
-
OASAM-INFO:信息收集:信息收集和攻击面定义。
-
OASAM-CONF:配置和部署管理:配置和部署评估。
-
OASAM-AUTH:身份验证:身份验证评估。
-
OASAM-CRYPT:密码学:密码学使用评估。
-
OASAM-LEAK:信息泄漏:机密信息泄漏评估。
-
OASAM-DV:数据验证:用户进入管理评估。
-
OASAM-IS:Intent Spoofing:意图接收管理评估。
-
OASAM-UIR:未经授权的意向收据:意图解析评估。
-
OASAM-BL业务逻辑:应用程序业务逻辑评估。
原文始发于微信公众号(红数位):最重要的Android应用程序渗透测试清单
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论