漏洞测试
漏洞测试又称漏洞评估,是对软件系统中的安全风险进行评估以降低威胁概率的过程。它依赖于漏洞评估和渗透 Testing(VAPT) 或VAPT测试机制。
漏洞是指系统的安全程序、设计、实现或任何内部控制中可能导致违反系统安全策略的任何错误或弱点。
在本教程中,将了解-
- 什么是漏洞评估
- 为什么要进行漏洞评估
- 漏洞评估和渗透测试(VAPT)流程
- 如何进行漏洞测试
- 漏洞扫描程序的类型
- 漏洞扫描工具
- 脆弱性评估的优势
- 脆弱性评估的缺点
- 易损性评估与渗透测试的比较
- 漏洞测试方法
为什么要进行漏洞评估
- 这对组织的安全非常重要。
- 定位和报告漏洞的过程,提供了一种检测和解决安全问题的方法,方法是在某人或某物可以利用漏洞之前对其进行排序。
- 在这个过程中,对操作系统、应用软件和网络进行扫描,以识别漏洞的发生,包括软件设计不当、身份验证不安全等。
漏洞评估流程
以下是识别系统漏洞的逐步漏洞评估流程。
步骤1) 目标和目标:-定义漏洞分析的目标和目的。
步骤2) 范围:-在执行评估和测试时,需要明确定义作业的范围。
以下是存在的三个可能的作用域:
- 黑盒测试:-在事先不了解内部网络和系统的情况下从外部网络进行测试。
- 灰盒测试:-在了解内部网络和系统的情况下,从外部或内部网络进行测试。它是黑盒测试和白盒测试的组合。
- 白盒测试:-在了解内部网络和系统的情况下在内部网络内进行测试。也称为内部测试。
步骤3) 信息收集:-获取尽可能多的IT环境信息,如网络、IP地址、操作系统版本等,适用于黑盒测试、灰盒测试、白盒测试三种类型的作用域。
步骤4) 漏洞检测:-在此过程中,漏洞扫描器用于扫描IT环境并识别漏洞。
步骤5) 信息分析和规划:-它将分析识别出的漏洞,以制定渗透到网络和系统的计划。
如何进行漏洞评估
以下是如何进行漏洞评估的分步过程:
步骤1) 设置:
- 开始文档
- 安全权限
- 更新工具
- 配置工具
步骤2) 测试执行:
- 运行工具
- 运行捕获的数据包(数据包是在源和目的地之间路由的数据单元。当所有数据包都到达时,接收端的TCP层会在运行评估工具的同时将它们重新组装成原始文件。
步骤3) 漏洞分析:
- 定义和分类网络或系统资源。
- 为资源( 例如: – High, Medium, Low) 分配优先级
- 识别每种资源的潜在威胁。
- 制定战略,优先处理最优先的问题。
- 定义和实现在发生攻击时将后果降至最低的方法。
步骤4) 报告
步骤5) 补救措施:
- 修复漏洞的过程。
- 针对每个漏洞执行
漏洞扫描程序的类型
- 基于主机的
- 确定主机或系统中的问题。
- 该过程通过使用基于主机的扫描仪并诊断漏洞来执行。
- 基于主机的工具将把中介软件加载到目标系统上;它将跟踪事件并将其报告给安全分析师。
- 基于网络的
- 它将检测打开的端口,并识别在这些端口上运行的未知服务。然后,它将披露与这些服务相关的可能漏洞。
- 此过程通过使用基于网络的扫描仪完成。
- 基于数据库
- 使用工具和技术来识别数据库系统中的安全风险,以防止SQL注入。(SQL注入:-恶意用户将SQL语句注入数据库,可以从数据库读取敏感数据,并可以更新数据库中的数据。)
漏洞扫描工具
1) Acunentix
Invicti的Acunentix直观且易于使用,可帮助中小型组织确保其Web应用程序安全,不受代价高昂的数据泄露的影响。它通过检测广泛的网络安全问题并帮助安全和开发专业人员快速采取行动解决这些问题来做到这一点。
功能:
- 高级扫描7,000多个Web漏洞,包括SQLI和XSS等OWASP前10名
- 用于识别被遗弃或遗忘的网站的自动Web资产发现
- 高级爬行器,适用于最复杂的Web应用程序,包括。多表单和密码保护区域
- 结合交互式和动态应用程序安全测试,以发现其他工具遗漏的漏洞
- 为多种类型的漏洞提供了利用漏洞的证据
- 通过与流行的问题跟踪和CI/CD工具集成实现DevOps自动化
- 法规标准(如PCI DSS、NIST、HIPAA、ISO 27001等)的合规性报告。
2) Intruder
入侵者是一个功能强大的在线漏洞扫描程序,可以发现整个IT环境中的安全漏洞。入侵者提供业界领先的安全检查、持续监控和易于使用的平台,可保护各种规模的企业免受黑客攻击。
功能:
- 一流的威胁覆盖范围,提供10,000多项安全检查
- 检查配置弱点、缺少补丁程序、应用程序弱点(例如SQL注入和跨站点脚本)等
- 扫描结果的自动分析和优先级排序
- 直观的界面,可快速设置和运行首次扫描
- 针对最新漏洞的主动安全监控
- AWS、Azure和Google Cloud连接器
- API与CI/CD管道集成
类别 | 工具 | 描述 |
---|---|---|
基于主机的 | STAT | 扫描网络中的多个系统。 |
TARA | Tiger Analytical Research助手。 | |
Cain & Abel | 通过嗅探网络,破解HTTP密码,恢复密码。 | |
Metasploit | 用于开发、测试和利用代码的开源平台。 | |
基于网络的 | Cisco Secure扫描仪 | 诊断和修复安全问题。 |
Wireshark | 用于Linux和Windows的开源网络协议分析器。 | |
Nmap | 用于安全审计的免费开源实用程序。 | |
Nessus | 无代理审核、报告和补丁程序管理集成。 | |
基于数据库 | SQL diet | SQL Server的字典攻击工具门。 |
Secure Auditor | 使用户能够在操作系统上执行枚举、扫描、审核、渗透测试和取证。 | |
DB-scan | 数据库木马检测,基线扫描检测隐藏木马。 |
漏洞评估的优势
- 开放源码工具是可用的。
- 确定几乎所有漏洞
- 自动扫描。
- 易于定期运行。
漏洞评估的缺点
- 高假阳性率
- 可以通过入侵检测系统防火墙轻松检测。
- 经常没有注意到最新的漏洞。
易损性评估与渗透测试的比较
名称 | 漏洞评估 | 渗透试验 |
---|---|---|
运行中 | 发现漏洞 | 识别和利用漏洞 |
机制 | 发现和扫描 | 模拟 |
焦点 | 广度大于深度 | 深度超广度 |
完整性覆盖范围 | 高 | 低 |
成本 | 低-中 | 高 |
执行者 | 内部员工 | 攻击者或测笔人员 |
测试员知识 | 高 | 低 |
多久跑一次 | 在每台设备加载后 | 一年一次 |
结果 | 提供有关漏洞的部分详细信息 | 提供漏洞的完整详细信息 |
漏洞测试方法
主动测试
-
非活动测试时,测试人员引入新的测试数据并分析结果。
- 在测试过程中,测试人员创建过程的心理模型,在与被测软件的交互过程中,它将进一步增长。
-
在进行测试时,测试人员将积极参与发现新测试用例和新想法的过程。这就是为什么它被称为主动测试。
被动测试
- 被动测试,在不引入新的测试用例或数据的情况下监控被测软件的运行结果
网络测试
- 网络测试是测量和记录一段时间内网络运行的当前状态的过程。
- 测试主要是为了预测网络在负载下的运行情况或找出新业务带来的问题。
-
需要测试以下网络特征:-
- 利用率级别
- 用户数
-
应用程序利用率
分布式测试
- 分布式测试用于测试分布式应用程序,即同时使用多个客户端的应用程序。基本上,测试分布式应用程序意味着分别测试其客户端和服务器部分,但是通过使用分布式测试方法,我们可以将它们全部测试在一起。
- 测试部件将在测试运行期间相互交互。同步是分布式测试中最关键的问题之一。
结论
在软件工程中,漏洞测试依赖于漏洞评估和渗透测试两种机制。但是,为了实现关于漏洞测试的全面报告,建议将这两个过程结合起来。