渗透测试
软件测试与渗透测试
软件测试(功能、性能、安全)
- 安全三要素:保密性、完整性、可用性
渗透测试
- 指在目标系统授权的情况下,采取可控的入侵手法,模拟真实攻击者使用的各种方法和技术,绕过系统的保护措施(权限控制、加密、完整性、可靠性等),以检测系统在真实环境中的安全性,发现漏洞,达到保护重要资产的目的
- 通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法
- 目的:获得系统脆弱性,了解自身缺陷,进而采取有效防御手段
- 方式:白盒测试,黑盒测试
渗透测试的对象
- 网络硬件设备
- 主机操作系统
- 应用系统
- 数据库系统
渗透测试的意义
- 发现漏洞
- 了解安全状态
- 重视风险
- 提升保护水平
渗透测试的流程
前期交互阶段
在前期交互阶段,渗透测试团队与客户进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件及服务合同的细节。
该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。
情报收集阶段
渗透测试者使用的情报搜集方法包括公开来源信息查询、社会工程学、网络踩点、扫描探测、被动监听和服务查点等。
对目标系统的情报探查能力是渗透测试者的一项重要技能,情报搜集是否充分很大程度上决定了渗透测试的成败。
收集的信息
- 网络接入方式:拨号接入、无线局域网接入、以太网接入、VPN远程接入等
- 目标网络信息:域名范围、IP地址范围、具体地理位置等
- 网络拓扑结构:交换设备类型、设备生产厂家、传输网络类型等
- 网络用户信息:邮件地址范围、用户账号密码等
收集方式
- 使用常见的搜索引擎
- 使用工具通过whois服务器查询主机的具体域名和地理信息
- 使用netdiscover等工具查询主机的IP地址范围
- 使用dnsmap、dnswalk、dig等工具查询域名空间
- 使用社会工程学手段获得有关社会信息