
安全功能测试
说白了,第三方安全功能测试就是甲方自己搞不定、或者不想搞,花钱请外部团队来验一遍:"你这系统到底安不安全"。听着简单,但很多人不知道该测啥,结果花了钱测了一堆边边角角,核心的反而漏了。今天把必须测的核心项全捋一遍,尤其是身份认证和权限控制这两块,展开讲透。
身份认证测的是"你是不是你说的那个人"。这块必须测的东西其实挺多的:
1.密码策略。密码能不能设成"123456"?能不能少于6位?有没有强制要求大小写加数字加特殊字符?密码存数据库里是不是哈希加盐的?如果是明文或者 MD5,那基本等于没锁门。
2.登录机制。连续输错5次密码,账号锁不锁?有没有图形验证码防止暴力破解?有没有防重放攻击?这些看着基础,但真出过事的系统不在少数。
3.多因素认证(MFA)。如果系统声称支持双因素,那必须验证它是不是真的在用——短信验证码、TOTP、硬件令牌,到底哪个在起作用?有没有可能绕过第二因素直接登录?
4.账号生命周期。注册的时候邮箱能不能随便填?密码找回流程安不安全?注销账号之后数据真的删了吗?这些都得测。
身份认证解决的是"你是谁",权限控制解决的是"你能干啥"。这块是重灾区,必须测的点包括:
1.水平越权。你是普通用户A,能不能通过改个ID就看到用户B的订单?这种漏洞在各种系统里太常见了,换个参数就能看别人数据,不测根本发现不了。
2.垂直越权。你是普通用户,能不能访问管理员页面?能不能调 API 拿到管理员权限?很多系统前端做了隐藏,但后端接口根本没校验,这种属于"掩耳盗铃"式的安全。
3.功能级权限。不是所有管理员权限都一样,有的能看数据不能改,有的能改不能删。这些细粒度的权限有没有正确配置?一个角色能不能执行它不该执行的操作?
4.API 权限。现在大部分系统前后端分离,API 是重点。有没有越权调用?有没有缺少鉴权?Postman 一调就能拿到不该拿的数据,这种问题太多了。
1.会话管理。登录之后的 session 或者 token 有效期多长?退出登录之后 token 失效了没?能不能被劫持?会话固定攻击防没防?
2.输入验证。SQL 注入、XSS、命令注入这些老问题,必须测。别觉得现在还有人犯这种错,真的有,而且不少。
3.审计日志。关键操作有没有记录?谁在什么时间做了什么?日志能不能被篡改?出了事能不能追溯?很多系统压根没日志,或者日志形同虚设。
4.错误处理。系统报错的时候会不会把堆栈信息、数据库结构、路径全部暴露给用户?这种信息泄露在渗透测试里是送分题。
5.数据保护。敏感数据传输有没有加密?存储有没有脱敏?接口返回的数据有没有过度暴露?比如一个用户查询接口,返回了身份证号、手机号、家庭住址全套,这就是典型的过度暴露。
第三方安全测试不是走个过场,必须测的东西就上面这些。其中身份认证和权限控制是重中之重,这两块出问题,后面所有安全措施都是白搭,因为门都没锁好,你装再多摄像头有啥用。如果你是甲方,验收报告的时候重点看这两块的测试用例和结果;如果你是乙方,这两块测不透,报告写得再漂亮也经不起推敲。
标签:安全测试、功能测试