安全测试----OWASP top 10 简介

本文涉及的产品
访问控制,不限时长
简介: 安全测试----OWASP top 10 简介

一、OWASP Top 10 简介

1.1 OWASP简介

OWASP,开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个非营利组织,不附属于任何企业或财团,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。

1.2 OWASP Top 10简介

OWASP Top 10就是“十大安全漏洞列表”,目前被许多漏洞奖励平台和企业安全团队评估错误报告。这个列表总结了Web应用程序最可能、最常见、最危险的十大漏洞,可以帮助IT公司和开发团队规范应用程序开发流程和测试流程,提高Web产品的安全性。

1.3 十大漏洞列表

版本 OWASP Top 10
A1 Injection 注入攻击
A2 Broken Authentication 失效的身份验证
A3 Sensitive Data Exposure 敏感数据泄漏
A4 XML External Entity(XEE) XML外部实体漏洞
A5 Broken Access Control 无效的访问控制
A6 Security Misconfiguration 安全配置错误
A7 Cros-Site Scripting(XSS)跨站脚本攻击
A8 Insecure Deserialization 不安全的反序列化漏洞
A9 Using Known Vulnerable Components 使用含有已知漏洞的组件
A10 Insuficient Logging & Monitoring 日志与监控不足

二、十大漏洞简介

2.1 A1 注入

  • 注入漏洞的含义

将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。

  • 注入漏洞的危害

注入可以导致数据丢失或被破坏,缺乏可审计性或拒绝服务。注入漏洞有时甚至可导致完全接管主机

  • 注入漏洞的常见类型

    • sql注入
    • –os-shell
    • LDAP(轻量目录访问协议)
    • xpath(XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言)
    • HQL注入
  • 注入漏洞的防范措施

    • 使用安全的API,避免使用解释器
    • 对输入的特殊的字符进行ESCAPE转义处理
    • 使用白名单来规范化的输入验证方法

2.2 失效的身份认证

  • 失效的身份认证漏洞的含义

通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份

  • 失效的身份认证漏洞的危害

这些漏洞可能导致部分甚至全部账户遭受攻击,一旦攻击成功,攻击者就能执行合法的任何操作

  • 失效的身份认证漏洞的防范措施

    • 使用内置的会话管理功能
    • 通过认证的问候
    • 使用单一的入口点
    • 确保在一开始登录SSL保护的网页

2.3 敏感数据泄漏

许多Web应用程序和API都无法正确保护敏感数据,例如:财务数据、医疗数据和PII数据。攻击者可以通过窃取或修改未加密的数据来实施信用卡诈骗、身份盗窃或其他犯罪行为。未加密的敏感数据容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:传输过程中的数据、存储的数据以及浏览器的交互数据

2.4 XML外部实体(XEE)

XXE 全称为XML External Entity attack 即XML(可扩展标记语言) 外部实体注入攻击,
许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。

2.5 失效的访问控制

  • 失效的访问控制漏洞含义

未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

  • 失效的访问控制漏洞危害

这种漏洞可以损坏参数所引用的所有数据

  • 失效的访问控制漏洞的防范措施

    • 使用基于用户或会话的间接对象访问,这样可防止攻击者直接攻击为授权资源
    • 访问检查:对任何来自不受信源所使用的所有对象进行访问控制检查
    • 避免在url或网页中直接引用内部文件名或数据库关键字
    • 验证用户输入和url请求,拒绝包含./ …/的请求

2.6 安全配置错误

  • 安全配置错误漏洞含义

安全配置错误是最常见的安全问题,这通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP 标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。

  • 安全配置错误漏洞的危害

系统可能在未知的情况下被完全攻破,用户数据可能随着时间被全部盗走或篡改。甚至导致整个系统被完全破坏

  • 安全配置错误漏洞的防范措施

    • 自动化安装部署
    • 及时了解并部署每个环节的软件更新和补丁信息
    • 实施漏洞扫描和安全审计

2.7 跨站脚本攻击(XSS)

  • 跨站脚本攻击(XSS)漏洞含义:

当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建HTML或JavaScript 的浏览器API 更新现有的网页时,就会出现XSS 缺陷。XSS 让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点

  • 跨站脚本攻击(XSS)漏洞危害

攻击者在受害者浏览器中执行脚本以劫持用户会话,插入恶意内容,重定向用户,使用恶意软件劫持用户浏览器等

  • 跨站脚本攻击(XSS)漏洞类型

    • 存储型
    • 反射型
    • DOM型
  • 跨站脚本攻击(XSS)漏洞防范措施

    • 验证输入
    • 编码输出(用来确保输入的字符被视为数据,而不是作为html被浏览器所解析)

2.8 不安全的反序列化

不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。

2.9 使用含有已知漏洞的组件

组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。

  • 防范措施

    • 识别正在使用的组件和版本,包括所有的依赖
    • 更新组件或引用的库文件到最新
    • 建立安全策略来管理组件的使用

2.10 不足的日志记录和监控

不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。

目录
相关文章
|
10月前
|
监控 Java 测试技术
精准化测试原理简介
该文探讨了软件测试中的精准化测试问题,通过找不同游戏引出测试覆盖的挑战。文章指出,全面的测试覆盖并不现实,自动化测试虽有帮助但并非银弹,且面临成本和覆盖率局限。接着,文章提出需要“最强大脑”来快速识别代码差异、影响范围及测试覆盖率。为此,它介绍了通过语法分析器和字节码来定位代码差异,利用ASM进行调用链分析,并借助Jacoco进行覆盖率统计。此外,文章强调了增量覆盖率统计和调用链在接口测试中的重要性,同时提醒高覆盖率不代表高质量,测试策略应结合业务逻辑和代码审查。
|
10月前
|
XML 测试技术 数据格式
Python性能测试Locust简介
Python性能测试Locust简介
Python性能测试Locust简介
|
JSON 测试技术 API
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
217 3
|
10月前
|
XML Java 测试技术
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略
944 3
|
10月前
|
XML 测试技术 开发工具
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
『App自动化测试之Appium应用篇』| 元素定位工具uiautomatorviewer从简介、特点、启动到使用的完整过程
280 4
|
10月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
338 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
5月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
85 1
|
8月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
106 6
|
10月前
|
安全 测试技术 数据库
简介性能测试
简介性能测试
简介性能测试
|
10月前
|
测试技术
HTTP性能测试工具Siege 简介
HTTP性能测试工具Siege 简介
151 0

热门文章

最新文章