什么是渗透测试?
-
渗透测试(Penetration Testing)是一种通过模拟攻击的技术与方法,挫败 目标系统的安全控制措施并获得控制访问权的安全测试方法。
-
网络渗透测试主要依据CVE(Common Vulnerabilities and Exposures)已 经发现的安全漏洞,模拟入侵者的攻击方法对网站应用、服务器系统和网络设 备进行非破坏性质的攻击性测试。
CVE:Common Vulnerabilities and Exposures,通用漏洞与披露
CWE:Common Weakness Enumeration,通用缺陷列表(网页如下)
必要性
为什么要进行渗透测试?
- 百密一疏,新系统可能存在未知的安全风险
- 未雨绸缪,而不是亡羊补牢
- 专业的渗透测试后,即使系统未被攻破,也可以以此证明先前实行的防御是有效的
- 专业的渗透测试可以有效评估系统的安全状况,并提出合理的改进方案
目的
侵入系统获取机密信息,并将入侵的过程和细节产生报告提供给用户,由此确定用户系统存在的安全威胁,并能提醒安全管理员完善安全策略,降低安全风险
实例
- 金库门是否容易被破坏
- 金库的报警系统是否在异常出现的时候及时报警
- 检查所有的门、窗、通道等重点易突破的部位是否牢不可破
- 金库的安全管理制度
- 视频安防监控系统
- 出入口控制
- 人员的污点调查
- 应急演练
渗透测试的原则
- 渗透测试过程的最大风险:测试过程中对业务产生影响
- 渗透测试是一个渐进的并且逐步深入的过程
- 渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试
- 合规性:符合规范和法律要求也是执行渗透测试业务的一个必要条件(渗透测试必须使用一些通过规范审核后的工具)
渗透测试 vs APT
目的
- 渗透测试的目的是评估计算机网络系统的安全性
- APT的目的是对高价值目标进行有组织、长期持续性的控制
手段方法
- 渗透测试通过被允许的行为模拟黑客攻击来对目标系统进行测试
- APT利用任何各种高技术手段(包括0day漏洞、“水坑”攻击、“鱼叉”攻击等)进行攻击
结果
- 渗透测试提高了目标系统的安全级别
- APT在达成目的的过程中一般会给目标系统带来严重损失
渗透测试分类
-
根据渗透测试方法分类
-
黑盒测试:将测试对象看作一个黑盒子,完全不考虑测试对象的内部结构和内部特性。
-
白盒测试:把测试对象看作一个打开的盒子,测试人员依据测试对象内部逻辑结构相关信息,设计或选择测试用例。
-
灰盒测试:介于白盒与黑盒之间,是基于对测试对象内部细节有限认知的软件测试方法。
-
-
根据渗透测试目标分类
主机操作系统渗透:对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
数据库系统渗透:对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。
应用系统渗透:对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
网络设备渗透:对各种防火墙、入侵检测系统、路由器、交换机等网络设备进行渗透测试。 -
根据渗透测试的位置分类
内网渗透:模拟客户内部违规操作者的行为,在内网中对目标进行渗透测试。
外网渗透:模拟对内部状态一无所知的外部攻击者的行为(包括对网络设备的远程攻击、口令管理安全性测试、防火墙规则试探与规避、Web及其他开放应用服务的安全性测试等),从外网对目标进行渗透测试。 -
针对Web服务体系架构的渗透测试
服务器渗透测试:对服务器自身的安全性(如操作系统、数据库是否存在弱口令等)进行检测。
中间件渗透测试:对Apache、IIS、Tomcat、Nginx等Web中间件的漏洞(如配置缺陷、文件解析、反序列化漏洞等)进行检测。
Web应用渗透测试:对CMS、Blog等Web应用程序的漏洞(如SQL注入、XSS、CSRF、文件上传与解析、文件包含、命令执行等)进行检测。
业务逻辑渗透测试:对业务逻辑安全性(如验证逻辑问题、会话管理问题、权限控制问题等)进行检测
渗透测试标准
- 安全测试方法学开源手册(OSSTMM)
- 网络安全测试指南(NIST SP 800-42)
- OWASP 十大Web应用安全威胁项目(OWASP TOP 10)
- Web应用安全威胁分类标准(WASC-TC)
渗透测试执行标准(PTES)
《渗透测试执行标准》(PTES:Penetration Testing Execution Standard)的核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程,并得到安全业界的广泛认同。
PTES将渗透测试过程分为七个阶段,并在每个阶段中定义不同的扩展级别,而选择哪种级别则由被测试的客户组织决定。