WASC和OWASP到底是干啥的?

文章介绍了WASC的Web安全威胁分类,详细列举了身份验证、授权、客户端攻击、命令执行等领域的攻击手段,并强调了OWASP在提升Web应用安全性中的作用,以及OWASPTop10关键风险点,包括失效的访问控制、加密机制失效等。
摘要由CSDN通过智能技术生成

WASC(Web Application Security Consortium)是一个由安全专家、行业顾问和多个组织的代表组成的国际团体。WASC的关键项目之一是“Web安全威胁分类”,该项目旨在将Web应用所受到的威胁和攻击进行详细说明,并归纳成具有共同特征的分类,以制定和推广行业标准术语。

WASC威胁分类:

Authentication (验证)

攻击手段

  1. 身份认证不足:攻击者利用不严格的认证机制,通过猜测或破解密码来获取访问权限。
  2. 会话劫持:攻击者通过窃取会话ID(如Cookie)来冒充已认证用户。
  3. 会话预测:攻击者预测会话令牌的生成算法,创建有效的会话令牌。
  4. 密码破解:使用自动化工具或彩虹表来破解密码。
  5. 中间人攻击(MITM):攻击者截取并修改认证过程中的通信,可能用于窃取凭证。

Authorization (授权)

攻击手段

  1. 权限绕过:攻击者通过修改请求参数或利用后端逻辑漏洞来访问未授权的功能。
  2. 不安全的直接对象引用(IDOR):攻击者通过修改URL中的ID参数来访问或操作其他用户的数据。
  3. 垂直权限绕过:攻击者尝试执行管理员或系统级别才允许的操作。
  4. 水平权限绕过:攻击者尝试访问同一权限级别但属于其他用户的资源。

Client-Side Attack (客户端攻击)

攻击手段

  1. 跨站脚本(XSS):攻击者注入恶意脚本,影响其他用户,可能用于会话劫持或数据泄露。
  2. 点击劫持:攻击者使用透明或不可见的iframe诱使用户点击恶意链接。
  3. 跨站请求伪造(CSRF):攻击者诱导用户在不知情的情况下执行非预期的操作。
  4. 本地资源泄露/泄露:攻击者利用客户端应用程序访问或操作用户的本地文件。

Command Execution (命令执行)

攻击手段

  1. 远程命令执行(RCE):攻击者在服务器上执行任意命令,可能用于获取控制权或数据泄露。
  2. 操作系统命令注入:攻击者在应用程序中注入系统命令,绕过安全机制。
  3. 缓冲区溢出:通过发送过量数据来破坏程序的正常执行,可能用于执行恶意代码。

Information Disclosure (信息泄露)

攻击手段

  1. 错误消息泄露:详细的错误消息可能泄露敏感的系统信息或数据库结构。
  2. 日志泄露:未经保护的日志文件可能包含敏感数据,如密码或个人信息。
  3. 配置泄露:不安全的配置可能导致敏感信息(如数据库连接字符串)泄露。

Logical Attack (逻辑性攻击)

攻击手段

  1. 业务逻辑漏洞:攻击者利用应用程序的逻辑缺陷来执行未授权的操作,如绕过支付流程。
  2. 功能滥用:攻击者利用应用功能进行非预期的使用,如短信轰炸或滥用API。
  3. 数据泄露:攻击者通过逻辑漏洞获取未经授权的数据访问,如访问其他用户的信息。
  4. 价格或数量操纵:攻击者修改应用程序逻辑,以获取更低的价格或更高的服务量。

这些分类和攻击手段的描述有助于安全专家和开发人员识别和防范Web应用中的安全威胁。通过实施相应的安全措施,如输入验证、输出编码、使用安全的编程实践和定期的安全审计,可以显著提高Web应用的安全性。

远程命令执行(Remote Code Execution,简称RCE)是一种严重的安全漏洞,它允许攻击者在远程服务器上执行任意命令或代码。以下是一些常见的RCE攻击手段:

  1. 系统命令注入:通过在应用程序的输入字段中注入操作系统命令,攻击者可以在服务器上执行这些命令。

  2. PHP代码执行函数:使用如eval()assert()preg_replace()等PHP函数,如果这些函数的参数可以被用户控制,就可能导致RCE漏洞。

  3. 不安全的反序列化:当应用程序使用不安全的反序列化机制来处理用户输入时,攻击者可以构造特殊的输入来执行任意代码。

  4. Web Shell:攻击者上传或注入Web Shell脚本,通过Web Shell接口执行系统命令。

  5. 缓冲区溢出:通过发送特制的、超出缓冲区大小的数据,攻击者可以覆盖内存中的指令,导致执行任意代码。

  6. 服务漏洞利用:利用已知服务(如Web服务器、数据库服务器)的漏洞,攻击者可以执行系统命令。

  7. 文件上传漏洞:如果应用程序允许上传文件而没有适当过滤,攻击者可以上传恶意脚本文件并执行它。

  8. XML注入:通过在XML处理的应用程序中注入恶意XML代码,攻击者可以执行任意命令。

  9. LDAP注入:类似于SQL注入,但针对使用LDAP协议的应用程序,攻击者可以执行命令。

  10. SSRF(服务器端请求伪造):通过服务器端的请求转发机制,攻击者可以访问或操作不允许的资源。

  11. NoSQL注入:在NoSQL数据库中注入恶意数据,攻击者可以执行任意命令。

  12. 模板注入:在支持模板引擎的应用程序中,通过注入恶意模板代码,攻击者可以执行系统命令

操作系统命令注入(OS Command Injection)是一种安全漏洞,它允许攻击者在服务器上执行任意操作系统命令。以下是一些常见的命令注入攻击手段:

  1. 命令拼接:攻击者在应用程序的输入字段中注入额外的命令,这些命令与原有命令拼接在一起执行。

  2. 管道符利用:在Unix系统中,使用管道符(|)可以连接多个命令,攻击者可以利用这一点来执行额外的命令。

  3. 逻辑运算符:使用逻辑运算符(如&&, ||)来控制命令的执行流程,例如,如果前一个命令成功或失败,则执行特定的后续命令。

  4. 无回显注入:在某些情况下,即使注入的命令被执行,应用程序也不会返回任何输出,这时攻击者可能使用时间延迟或其他方法来检测命令的执行。

  5. 编码绕过:通过URL编码或其他编码方式来绕过输入过滤,例如,将空格编码为%09或使用$IFS来代替空格。

  6. 特殊字符利用:使用特殊字符如;&$等来分隔或构造命令。

  7. 文件重定向:将命令的输出重定向到文件中,攻击者可以后续通过合法途径访问这些文件来获取信息。

  8. 无参数RCE:当PHP等语言环境中的函数有过滤条件时,攻击者可以利用无参数的函数来执行代码,例如phpinfo()var_dump()

  9. 时间延迟:通过执行一个需要一定时间来完成的命令(如ping),攻击者可以根据响应时间来判断命令是否被执行。

  10. 带外(OAST)技术:使用带外通道(如DNS解析)来接收命令执行的结果,这种方式可以在无回显的情况下获取信息

缓冲区溢出(Buffer Overflow)是一种常见的安全漏洞,它发生在当程序尝试向一个缓冲区内写入数据超过了缓冲区的实际容量时。这种溢出可以导致数据覆盖程序的其他部分,可能会导致程序崩溃、数据损坏或安全漏洞,比如远程代码执行。以下是一些与缓冲区溢出相关的攻击手段和概念:

  1. 堆栈溢出:最常见的缓冲区溢出类型,发生在程序的调用堆栈上。攻击者可以利用堆栈溢出来覆盖返回地址,将控制流转移到恶意代码上。

  2. 堆溢出:发生在程序的堆内存上,当动态分配的内存块被溢出时,可能导致指针被篡改,从而执行恶意代码。

  3. 格式化字符串漏洞:当使用用户输入作为格式化字符串函数(如printf)的参数时,如果没有正确地限制输入长度,就可能导致缓冲区溢出。

  4. 整数溢出:当整数变量的值超出其类型能表示的范围时,可能会发生溢出,这有时可以被利用来控制程序的行为。

  5. 基于时间的攻击:如果缓冲区溢出导致程序崩溃,攻击者可能通过观察程序崩溃的时间来尝试控制溢出的内容。

  6. 返回导向编程(ROP):这是一种高级的缓冲区溢出攻击技术,攻击者使用程序自身的代码片段(gadgets)来执行特定的操作,而不直接注入执行整个恶意程序。

  7. 跳转导向编程(JOP):与ROP类似,JOP使用短的代码跳转指令来执行攻击者的代码。

  8. 覆写函数指针:通过溢出覆盖函数指针,如systemprintf的指针,可以使得这些函数在下一次调用时执行攻击者的代码。

  9. SEH溢出(Structured Exception Handler):在Windows系统中,攻击者可以溢出程序的异常处理器链表,执行任意代码。

  10. NOOP Sled:在溢出攻击中,NOOP Sled是一系列无操作(NOP)指令,用于将执行流平滑地转移到攻击者的代码上。

防御缓冲区溢出的措施包括:

  • 代码审查:定期进行代码审查,以发现和修复潜在的缓冲区溢出漏洞。
  • 编译时防护:使用编译器提供的防护选项,如GCC的-fstack-protector-D_FORTIFY_SOURCE
  • 运行时保护:使用操作系统和硬件提供的安全特性,如地址空间布局随机化(ASLR)和非执行内存(NX bit)。
  • 输入验证:对所有用户输入进行严格的验证和限制。
  • 使用安全函数:避免使用不安全的函数,如strcpy,改用安全的替代品,如strncpy

OWASP(Open Web Application Security Project)是一个致力于提升Web应用程序安全性的非营利性国际组织。OWASP的核心原则之一是,所有资料免费提供,使得任何人都能够改善自己的Web应用程序的安全性。OWASP提供的材料包括文档、工具、视频和论坛。其中最著名的项目是OWASP Top 10,这是一份定期更新的报告,概述了Web应用程序安全性的安全问题,重点关注10个最关键的风险。

 

  1. 失效的访问控制(Broken Access Control):这指的是当应用程序未能正确实施访问控制时,可能允许攻击者访问未授权的功能或数据。

  2. 加密机制失效(Cryptographic Failures):涉及加密算法、密钥管理和密码学实践的不当使用,可能导致敏感数据泄露或系统被攻破。

  3. 注入(Injection):包括SQL注入、NoSQL注入、OS注入和LDAP注入等,当应用程序将不受信任的数据作为命令或查询的一部分传递给解析器时,可能会发生注入漏洞。

  4. 不安全设计(Insecure Design):这是一个新类别,强调与设计缺陷相关的风险,指出安全控制的缺失可能导致安全攻击。

  5. 安全配置错误(Security Misconfiguration):应用程序或基础架构的不安全配置可能导致安全漏洞。

  6. 自带缺陷和过时的组件(Vulnerable and Outdated Components):使用已知存在安全漏洞的组件或过时的库可能使应用程序容易受到攻击。

  7. 身份识别和身份验证错误(Identification and Authentication Failures):包括失效的身份认证,现在还包括与识别错误相关的更多问题。

  8. 软件和数据完整性故障(Software and Data Integrity Failures):攻击者可能会破坏应用程序的完整性,进行恶意活动。

  9. 安全日志记录和监控不足(Security Logging and Monitoring Failures):不足的日志记录和监控可能导致安全事件未被及时发现或响应。

  10. 服务端请求伪造(Server-Side Request Forgery, SSRF):这是一种新的类别,攻击者可以通过服务器端请求来访问或操作内部系统。

  • 24
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值