问:安全测试如何做?
解题思路:
安全测试是一个很大的话题。要回答好这个问题,其实一点都不简单。如何在面试的过程中能言简意赅地回答出面试官想要的答案其实也很难。
如果对面试公司背景不了解的时候,怎么回答好这个问题呢?
参考答案:
概括性解答安全相关概念,测试流程,以及常见测试规范和测试工具。
1.安全三要素:
安全三要素CIA:Confidentiality (机密性), Integrity (完整性), 和 Availability (可用性)。
安全定义:
资产(Assets)、风险(Risk),威胁(Threats),脆弱性(Vulnerabilities),暴露(Exposure)。
要确定信息三要素面临哪些威胁,就需要先知道风险由什么构成。它们之间的关系,可以用下面的例子解释:公司的资产(Assets)会受到各种威胁(Threats)影响,这些威胁可能是黑客等人为因素,也可能是火灾地震等自然因素。威胁通过利用系统的脆弱性(Vulnerabilities)可导致暴露(Exposure),这就是风险(Risk)。对策是使用防护措施(Safeguards),缓解风险使资产得到安全保障。
2,威胁建模:
威胁建模是一种分析应用程序安全性的结构化方法,可以用来识别、量化和降低应用程序安全风险。威胁建模由微软2000年左右提出,作为SDL的核心模块且可实践的应用安全设计分析方法,主要管理流程包含如下:
3.Stride 结构化建模方法:
STRIDE威胁建模将威胁类型分为Spoofing(仿冒)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄漏)、Denial of Service(拒绝服务)和 Elevation of Privilege(权限提升),共6个维度,几乎可以涵盖目前绝大部分安全问题。
4. 通过STRIDE方法 先画出数据流图,识别威胁,缓解威胁,安全验证的流程去做安全测试。其中数据流图和业务场景的数据流图非常关键,是分析安全威胁的基础。
5.安全测试规范:OWASP。
6.常见安全测试工具:nmap,APPScan,AWVS,burpsuite,nessus,testssl,zap等。
面试时因为时间有限,只能概括性总结相关内容。
7,Top10安全问题最好也要非常熟悉。