app安全策略
1.密码复杂度
漏洞说明:
测试移动客户端程序是否检查用户输入的密码,禁止用户设置弱口令。
危险等级:
低
漏洞危害:
攻击者可能通过弱口令爆破用户名的方式进行密码猜解。
安全建议:
建议在服务器编写检测密码复杂度的安全策略,并将其运用到账号注册,密码修改等需要进行密码变更的场景,以防止攻击者通过弱密钥遍历账户的方式进行暴力猜解。
测试步骤:
尝试将密码修改为弱口令,例如名字缩写+123456,从而检测app是否允许弱口令密码。
结果分析:
无法设置弱口令,不存在风险
2.帐户锁定策略
漏洞说明:
测试移动客户端是否限制登录尝试次数。防止木马使用穷举法暴力破解用户密码。
危险等级:
低
漏洞危害:
攻击者可通过爆破、撞库等方式对系统用户进行攻击。
安全建议:
建议在服务端编写账户锁定策略的逻辑,当一天内多次输入密码错误时根据IP进行账号锁定以防止攻击者通过暴力猜解密码。
测试步骤:
不断进行错误密码尝试 – 检测是否有验证码出现、是否有某种账户锁定策略。
结果分析:
启用账号锁定策略,安全
3.会话安全设置
漏洞说明:
测试移动客户端在一定时间内无操作后,是否会使会话超时并要求重新登录。超时时间设置是否合理。
危险等级:
低
漏洞危害:
会话超时设置不合理会增加用户帐户的安全风险。
安全建议:
建议在移动客户端编写会话安全设置的逻辑,当10分钟或20分钟无操作时自动退出登录状态或强制要求进行身份验证(如手势密码、验证码等)。
测试步骤:(该项不适合所有app)
1)一段时间无操作,检测应用是否要求用户重新登录
2)退出应用再打开,检测应用是否要求用户登录
安全分析:
一段时间后app并未要求用户重新登录,存在风险。
4.界面切换保护
漏洞说明:
检查移动客户端程序在切换到后台或其他应用时,是否能恰当响应(如清除表单或退出会话),防止用户敏感信息泄露。
危险等级:
低
漏洞危害:
可能造成用户敏感信息泄露。
安全建议:
建议移动客户端添加响应的逻辑,在进行进程切换操作时提示用户确认是否为本人操作。
测试步骤:
1)在登录界面(或者转账界面等涉及密码的功能)填写登录名和密码,然后切出,再进入客户端,看输入的登录名和密码是否清除
2)登录后,切换到其他应用,5分钟后再切回来,检测当前会话是否退出。
结果分析:
1)输入登录密码后,切换到其他应用,在且回来时密码依然存在
2)登录后切换到其他应用,一段时间在切换回来当前会话依然有效
5.登录界面设计
漏洞说明:
登录时返回“用户名不存在”或“密码错误”等详细的登录错误提示信息,有利于攻击者获取注册用户信息
危险等级:
低
漏洞危害:
攻击者可通过该漏洞使用用户名字典遍历APP用户。
安全建议:
建议用户名或密码输入错误均提示“用户名或密码错误”,若移动客户端同时还希望保证客户使用的友好性,可以在登陆界面通过温馨提示的方式提示输入错误次数,密码安全策略等信息,以防用户多次输入密码错误导致账号锁定。
测试步骤:
尝试使用不存在的用户名登陆以及尝试使用存在的用户名及错误密码登陆 ,检测是否可根据界面提示进行用户名枚举。
结果分析:
存在不安全的信息提示。
6.UI敏感信息泄漏
漏洞说明:
检查移动客户端的各种功能,看是否存在敏感信息泄露问题。
危险等级:
低
漏洞危害:
可能造成用户敏感信息泄露。
安全建议:
建议对用户的个人敏感信息,如手机号、身份证号等在服务端返回时进行遮掩处理。
测试步骤:
查看APP各个功能界面,检测是否对用户的真实姓名、身份证号、银行卡号、手机号等进行适当遮挡。
结果分析:
对敏感信息进行了适当遮挡,不存在ui信息泄露风险
7.帐号登录限制
漏洞说明:
测试能否在两个设备上同时登录同一个帐号。
危险等级:
中
漏洞危害:
该问题使得用户帐户被盗后不能及时发现,增加帐户的安全风险。
安全建议:
建议在服务器进行账号登陆限制相应逻辑代码的编写,通过Session或数据库标志位的方式控制同一时间只有一个设备可以登陆某一账号。
测试步骤:
尝试使用同一个账户同时登录多个设备
结果分析:
按照实际分析
8.安全退出
漏洞说明:
验证移动客户端在用户退出登录状态时是否会和服务器进行通信以保证退出的及时性。
危险等级:
低
漏洞危害:
如果会话被攻击者获取,可能对账号进行持久性控制。
安全建议:
建议在服务器编写响应移动客户端提出退出登录状态的逻辑代码,保证移动客户端在用户退出登录状态时同服务器完成数据交互,真正完成退出(而不是通过心跳包判定退出),以防止攻击者进行重放攻击。
测试步骤:
在客户端注销登录之后,继续使用之前的会话token进行操作,检测用户登录后token是否在服务端被正确销毁
注销登录
抓取登录时的数据包进行重放(随便找的图,领会精神)
结果分析:
注销登录后,重发请求包仍能收到正常的数据,存在风险
9.验证码安全性
漏洞说明:
验证移动客户端使用的验证码的安全性。
危险等级:
低
漏洞危害:
如图片验证码在客户端验证,或图片验证码强度弱可被程序识别,会造成验证方式失效。
安全建议:
建议移动客户端从移动客户端处获取图形验证码相关信息,并且图形验证码符合图形验证码安全策略。
测试步骤:
1)利用验证码识别工具对验证码进行识别,检测验证码是否可被程序轻易识别(登录验证码爆破那套东西)
2)验证码是否存在其他失效的方式
结果分析:
验证码可被识别,存在风险
10.密码修改验证
漏洞说明:
验证移动客户端进行密码修改时的安全性。
危险等级:
低
漏洞危害:
密码修改验证不合理可能导致用户密码被恶意修改。
安全建议:
用户修改密码时验证旧密码或进行二次认证。
测试步骤:
尝试在修改密码时使用错误的旧密码,检测服务端是否验证旧密码的正确性。
结果分析:
修改密码前,验证原来的密码,安全