软件安全性测试包括哪些:分项实操方法
软件安全性测试包括哪些,整体分为八大测试类型,分别是身份认证测试、授权访问测试、数据安全测试、漏洞挖掘测试、代码安全审计、业务逻辑安全测试、安全配置核查、灾备与抗攻击测试,你可以按业务系统风险高低分配测试资源,面向互联网对外提供服务的Web、小程序、APP系统要覆盖全部项目,仅内网离线单机工具可删减渗透与灾备测试环节,测试结果参照GB/T20984-2022《信息安全技术信息安全风险评估规范》判定风险等级,低风险项仅记录,中高风险项必须给出修复方案并做回归复测。身份认证测试重点核验账号登录、多因素校验、会话管理,核心校验点包含密码复杂度、会话超时、Cookie属性、异地登录拦截;授权访问测试检查越权漏洞,分水平越权与垂直越权;数据安全测试关注传输、存储、销毁三个阶段的数据保护;漏洞挖掘依靠渗透测试,主动模拟黑客攻击;代码审计直接检查源码的安全缺陷;业务安全专门拦截业务层面的欺诈行为;配置核查检查服务器、中间件、数据库的安全参数;灾备测试验证系统遭遇攻击后的恢复能力。
软件安全性测试:身份认证与授权测试
身份认证测试验证系统确认使用者身份的机制,你需要尝试弱密码登录、暴力破解账号、绕过验证码、窃取会话Cookie复用登录状态,同时核验账号锁定策略,连续多次错误登录后账号是否临时锁定,锁定时长是否符合业务预期。多因素认证场景下,要验证验证码是否存在复用、一次性令牌是否可重复使用,测试会话失效场景,退出登录后旧会话标识是否立即失效,防止会话劫持。
授权测试区分水平越权和垂直越权,水平越权指同权限用户访问他人数据,例如A用户直接修改URL参数查看B用户订单;垂直越权指低权限账号访问管理员功能,普通用户尝试进入后台管理页面。你需要使用不同角色账号交叉访问接口与页面,验证权限控制逻辑是否在服务端生效,仅前端隐藏菜单不能算作有效权限防护。
软件安全性测试:数据安全与漏洞渗透测试
数据安全测试覆盖数据传输、持久化存储、数据销毁环节。传输环节检查接口是否使用HTTPS加密,有没有明文传输账号、手机号、银行卡信息;存储环节查看数据库敏感字段是否加密,禁止明文保存用户密码,密码应使用加盐哈希算法处理;数据销毁测试验证删除用户数据后,数据库备份、日志文件里是否残留敏感信息,防止数据泄露。
| 测试项目 | 核心操作 | 适用系统 | 风险等级参考 |
|---|---|---|---|
| SQL注入测试 | 输入特殊字符,探测数据库读取权限 | Web、后端接口系统 | 高 |
| XSS跨站脚本测试 | 输入脚本代码,验证页面是否执行恶意代码 | 带用户输入框的系统 | 中高 |
| 文件上传漏洞测试 | 上传伪装后缀的恶意脚本文件 | 支持文件上传功能系统 | 高 |
| SSRF服务端请求伪造测试 | 构造请求访问内网地址 | 包含外部地址解析功能系统 | 中 |
漏洞渗透测试模拟外部攻击者,主动探测系统已知安全漏洞,包含SQL注入、XSS跨站、文件上传、SSRF、命令注入等。你使用漏洞Payload提交至输入框、接口参数,观察系统是否执行非法指令或泄露内部数据,渗透测试必须提前获得系统所属方书面授权,无授权的测试行为存在法律风险。
软件安全性测试:代码审计、业务安全与配置核查
代码安全审计直接检查源代码或字节码,定位开发阶段引入的安全缺陷,比如硬编码密钥、未过滤用户输入、不安全API调用。可以借助SAST静态代码扫描工具批量扫描,人工复核工具报出的告警,减少误报,适合迭代开发中的项目,能够在上线前提前拦截大部分底层安全缺陷。
业务逻辑安全测试不依赖底层漏洞,专门检查业务流程本身存在的安全缺陷。你可以尝试重复提交订单、篡改价格参数、无限领取优惠券、绕过风控审核,这类缺陷很难被自动化漏洞扫描工具发现,需要测试人员完整走通业务链路,寻找逻辑漏洞。
安全配置核查检查支撑软件运行的环境参数,包括操作系统、中间件、数据库、防火墙。检查项包含默认账号是否删除、不必要端口是否关闭、错误页面是否泄露版本信息、日志是否开启并留存足够时长,错误配置是很多系统被入侵的常见入口,即使软件代码本身无漏洞,不当配置仍会引入安全隐患。
灾备与抗攻击测试验证系统遭受攻击后的恢复能力,包含DDoS压力模拟、恶意请求限流测试、数据备份恢复演练。测试确认攻击发生时系统能否限制异常请求,备份数据能否在规定时间恢复,恢复后业务数据保持完整。该测试不适用于生产环境直接执行,应部署在独立的测试环境开展,避免对线上业务造成中断。
该整套测试体系不适用于仅本地离线运行、无任何用户数据存储、无网络交互的微型单机工具,这类软件仅需要做基础代码审计,其余项目可省略。
