安全测试教程
执行安全测试是为了揭示系统中的安全漏洞,以保护数据和维护功能。本教程通过简单实用的示例解释了安全测试的核心概念和相关主题。
面向读者
本教程是为安全测试初学者准备的,旨在帮助他们理解安全测试的基础知识。
前提条件
在继续本教程之前,您应该对软件测试及其相关概念有基本的了解。
教程目录
1.安全测试简介 - 安全测试是一种测试技术,用于确定信息系统是否保护数据并按预期维护功能。安全测试不保证系统的完全安全性,但重要的是将安全测试作为测试过程的一部分。
2.安全测试流程 - 安全测试可视为对系统的受控攻击,以实际的攻击方式揭示安全漏洞或问题。安全测试的目标是评估IT系统的当前状态。它也被称为渗透测试或道德黑客攻击。
3.安全测试恶意软件 - 恶意软件(恶意软件)是指向攻击者/恶意软件创建者部分完全控制系统的任何软件。
4.HTTP协议基础 - 理解协议对于掌握安全测试非常重要。当我们拦截网络服务器和客户端之间的数据包数据时,您将能够理解协议的重要性。
5.HTTPS协议基础 - HTTPS(基于安全套接字层的超文本传输协议)或HTTP over SSL是由Netscape开发的Web协议。它不是协议,但它只是在SSL/TLS(安全套接字层/传输层安全性)之上分层HTTP的结果。
6.HTTP编码和解码 - 编码是将字符,数字和其他特殊字符等字符序列放入专用格式以进行有效传输的过程。解码是将编码格式转换回原始字符序列的过程。编码和解码用于数据通信和存储。编码不应用于传输敏感信息。
7.安全测试加密 - 密码学是加密和解密数据的科学,它使用户能够存储敏感信息或在不安全的网络上传输敏感信息,以便只能由预期的接收者读取。
8.同源策略安全 - 根据此策略,它允许在源自同一站点的页面上运行脚本,该站点可以是以下组合 - 域(域名),协议和端口。
9.安全测试Cookies - Cookie是Web服务器发送的一小段信息,用于存储在Web浏览器上,以便以后可以被浏览器读取。
10.入侵Web应用程序 - OWASP是最活跃的,并且有许多贡献者。我们将重点关注OWASP技术,每个开发团队在设计Web应用程序之前都会考虑这些技术。
11.安全测试SQL注入 - 成功的SQL注入可以读取,修改数据库中的敏感数据,还可以从数据库中删除数据。它还使黑客能够对数据库执行管理操作,例如:关闭DBMS/删除数据库。
12.测试失效的验证 - 当与应用程序相关的身份验证功能未正确实现时,它允许黑客利用其他用户凭据破坏密码或会话ID或利用其他实施缺陷。
13.测试跨站点脚本(XSS)- 只要应用程序获取不受信任的数据并将其发送到客户端(浏览器)而未经验证,就会发生跨站点脚本(XSS)。这允许攻击者在受害者的浏览器中执行恶意脚本,这可能导致用户会话劫持,破坏网站或将用户重定向到恶意站点。
14.不安全的直接对象引用 - 当开发人员公开对内部实现对象(例如:文件,目录或数据库密钥)的引用而没有任何允许攻击者操纵这些引用来访问未授权数据的验证机制时,可能会发生直接对象引用。
15.安全配置错误 - 安全性错误配置在安全性设置被定义,实现和维护为默认设置时出现。良好的安全性要求为应用程序,Web服务器,数据库服务器和平台定义和部署安全配置。
16.敏感数据暴露 - 随着在线应用程序日复一日地涌入互联网,并非所有应用程序都受到保护。许多Web应用程序无法正确保护敏感用户数据,如信用卡信息/银行帐户信息/身份验证凭据。黑客可能最终窃取这些受到弱保护的数据,以进行信用卡欺诈,身份盗窃或其他犯罪。
17.缺少功能级访问控制 - 大多数Web应用程序在使用户可以访问该功能之前验证功能级别访问权限。但是,如果未在服务器上执行相同的访问控制检查,则黑客无法在未经适当授权的情况下进入应用程序。
18.跨站请求伪造(CSRF) - CSRF攻击迫使经过身份验证的用户(受害者)发送伪造的HTTP请求,包括受害者的会话cookie到易受攻击的Web应用程序,这允许攻击者强制受害者的浏览器生成请求,以便易受攻击的应用程序感知来自受害者。
19.使用具有漏洞的组件 - 当应用程序中使用的库和框架等组件几乎总是以完全权限执行时,就会发生这种威胁。如果利用易受攻击的组件,则会使黑客的工作更容易导致严重的数据丢失或服务器接管。
20.未经验证的重定向和转发 - 互联网上的大多数Web应用程序经常将用户重定向并转发到其他页面或其他外部网站。但是,如果不验证这些页面的可信度,黑客可以将受害者重定向到网络钓鱼或恶意软件站点,或者使用转发来访问未经授权的页面。
21.AJAX安全问题 - 异步Javascript和XML(AJAX)是用于开发Web应用程序以提供丰富用户体验的最新技术之一。
22.Web Service安全 - 在现代的基于Web的应用程序中,Web服务的使用是不可避免的,并且它们也容易受到攻击。由于Web服务请求从多个网站获取,开发人员必须采取一些额外的措施,以避免黑客的任何类型的渗透。
23.缓冲区溢出攻击 - 当程序试图在临时数据存储区域(缓冲区)中存储比预期要容纳的更多数据时,会出现缓冲区溢出。由于创建缓冲区以包含有限数量的数据,因此额外信息可能溢出到相邻缓冲区中,从而破坏其中保存的有效数据。
24.拒绝服务(DoS)攻击 - 拒绝服务(DoS)攻击是黑客企图使网络资源不可用的一种攻击。它通常会临时或无限地中断主机,让正常使用的用户无法访问目标服务。这些攻击通常针对托管在关键任务Web服务器(如银行,信用卡支付网关)上的服务。
25.恶意文件执行攻击 - 开发人员通常直接使用或连接潜在的易受攻击的输入与文件,或假设输入文件是有效的。如果未正确检查数据,则可能导致Web服务器处理或调用易受攻击的内容。
26.安全测试自动化工具 - 有多种工具可用于执行应用程序的安全性测试。很少有工具可以执行端到端安全测试,而有些工具专门用于发现系统中的特定类型的缺陷。