软件安全测试并非单纯地查找缺陷, 而是要于开发的整个流程里主动察觉并修补安全漏洞。好多人觉得只要在上线之前进行一下测试就没问题了, 事实上黑客攻击的方式不断变化, 静态扫描、动态测试、渗透测试这些方法必须结合起来运用, 方可切实堵住风险之处。
安全测试到底要测什么
其核心是针对数据流以及权限控制来进行展开, 比如要说用户输入框究竟存在了做过度的滤, 要是并没有进行做过滤之时, 那么攻击者便极有可能直接致使能够注入进SQL语句当中从而把整个具有的数据库来径直拖往带走, 再比如说身份进行认证所存在的环节, 是不是仅仅依靠唯一密码即能够完成了事项目, 到底有没有具备防止呈现暴力破解此类机制, 就像是限制登录次数、添加验证码诸如此类, 这些基础防护全部都必须要进行测试到位。
容易被人忽视的另外一点是接口安全, 如今前后端分离开发极为普遍, API接口直接暴露于外网, 倘若未进行鉴权校验, 攻击者能够绕过前端, 直接调用接口, 获取敏感数据并且施行操作。在实际测试期间, 我目睹众多项目将用户ID直接置于URL之中, 甚至连加密都未实施, 更改数字便能够查看他人的订单信息。
测试工具那么多怎么选
不是存在最好的工具, 而是存在最合适的工具。Fortify、Checkmarx这类静态代码扫描工具, 适用于在编码阶段迅速发觉注入、XSS这种常见漏洞之处然而误报率并不低, 这便需要人工进行二次确认。Burp Suite、AppScan这些动态测试工具, 可以模拟真实存在的攻击流量, 适用于在测试环境运行一圈, 然而覆盖不了业务逻辑方面的漏洞。
往往真正要命的是业务逻辑方面的漏洞, 工具没办法扫描出来, 得依靠人脑才行。就像优惠券系统, 正常的逻辑是每个用户仅仅能够领取一张, 然而攻击者有可能借助并发请求来绕过限制, 一次领取几十张。在这种场景之下, 测试人员需要手动构建异常流程, 像是同时递交多个请求、修改请求参数、绕过前端校验进而直接发送后端请求。
另外, 渗透测试并非仅能开展一回。每一次版本进行迭代时, 每一次功能予以上线后, 均存在引入崭新漏洞的可能性。提倡将安全测试嵌入至CI/CD流水线当中, 每一回构建时自动运行一轮静态扫描, 每周实施一次动态扫描, 每季度邀请外部团队开展一次深度渗透测试, 如此这般层层设置防范举措方可降低风险。
安全测试的实质为成本博弈, 对黑客来讲一个系统被攻破只需一个漏洞, 然而你却得堵住全部可能出现的路径, 因此别抱有一次性就将其完成的期望, 唯有持续投入、持续优化才是正确的道路, 这一点务必牢记。
艾策信息科技是具备正规软件测评资质的第三方软件检测机构,专业高效出具第三方软件测试报告。
热门跟贴