OWASP十大攻击类型详解
随着WEB应用技术的不断进步与发展,WEB应用程序承载了越来越多的业务,而随之而来的也是WEB应用所面临的越来越复杂的安全问题。而WEB日志作为WEB安全中的一个重要组成部分,不但可在事后起到追踪和溯源的作用,更能在日常维护中作为安全运维工作的重要参考依据。
一、OWASP的安全威胁
OWASP(开放Web软体安全项目- Open Web Application Security Project) 是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。其使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。目前OWASP全球拥有130个分会近万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。
|
编号 |
来源 |
描述 |
是否产 生日志 |
备注 |
|
01 |
OWASP |
Injection |
是 |
已定义特征 |
|
02 |
OWASP |
Broken Authentication and session Management |
是 |
统计分析 |
|
03 |
OWASP |
Cross-Site Scripting (XSS) |
是 |
已定义特征 |
|
04 |
OWASP |
Insecure Direct Object References |
是 |
已定义部分攻击特征+正确配置 |
|
05 |
OWASP |
Security Misconfiguration |
否 |
日志中不记录具体请求的内容信息 |
|
06 |
OWASP |
Sensitive Data Exposure |
否 |
日志中不记录具体请求的内容信息 |
|
07 |
OWASP |
Missing Function Level Access Control |
是 |
已定义部分攻击特征+正确配置 |
|
08 |
OWASP |
Cross-Site Request Forgery (CSRF) |
否 |
日志中不记录具体请求的内容信息 |
|
09 |
OWASP |
Using Components with Known Vulnerabilities |
是 |
已定义特征 |
|
10 |
OWASP |
Unvalidated Redirects and Forwards |
否 |
日志中不记录具体请求的内容信息 |
二、分析规则
2.1 Injection 注入
|
来源 |
WASC |
ID |
40 |
检测方案 |
特征匹配 |
|
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
SQL注入、OS命令注入、XPATH注入、LDAP注入、JSON注入、URL注入 |
|||||
|
已定义匹配规则 |
||||||
2.2 失效的身份认证和会话管理
2.2.1 Credential/Session ID Prediction
|
来源 |
WASC |
ID |
检测方案 |
统计分析 |
||
|
涉及字段 |
IIS |
Client IP Address(c-ip)、需要cookie信息、URI |
||||
|
Apache |
host、需要cookie信息、request |
|||||
|
分析方法 |
统计同一源IP短时间内访问web的无效session(cookie)次数,如果超过一定的基线阈值则可以视为攻击。 如果同一session ID在一定时间内,由不同client IP address在重用,则可以视为攻击。 URI中如出现大量sessionID字串的顺序出现 |
|||||
2.2.2 会话超时设置不当
|
来源 |
WASC |
ID |
检测方案 |
|||
|
涉及字段 |
IIS |
Client IP Address(c-ip)、需要cookie信息、URI |
||||
|
Apache |
host、需要cookie信息、request |
|||||
|
分析方法 |
根据会话需要,设置会话的过期时间,并且提供logout功能。 |
|||||
2.3 Cross-Site Scripting (xss)跨站脚本
|
来源 |
WASC |
ID |
检测方案 |
特征匹配 |
||
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
已定义匹配规则 |
|||||
2.4 不安全的直接对象引用
2.4.1 Path Traversal(pt) 路径遍历
|
来源 |
其他 |
ID |
检测方案 |
特征匹配 |
||
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
Detects basic directory traversal 检测到路径遍历 |
|||||
|
已定义规则 |
||||||
2.4.2 水平越权
|
来源 |
其他 |
ID |
检测方案 |
|||
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
遍历用户id批量获取用户信息 |
|||||
|
正确配置:判断用户的session id,是否具有访问或操作权限; 将id进行加密。 |
||||||
2.5 安全配置错误
|
来源 |
WASC |
ID |
检测方案 |
|||
|
涉及字段 |
IIS |
Client IP Address(c-ip)、URI、HTTP Status(sc-status) |
||||
|
Apache |
host、request、statuscode |
|||||
|
分析方法 |
默认配置漏洞容易被利用 修改为安全的属性配置。最少使用模块配置,最少权限配置。 |
|||||
2.6 敏感数据泄漏
2.6.1 HTTPS传输
|
来源 |
其他 |
ID |
58 |
检测方案 |
||
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
页面传输使用https保护传输 |
|||||
2.6.2 信息未加密
|
来源 |
其他 |
ID |
59 |
检测方案 |
||
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
对敏感信息进行加密。 对用户来说,不用应用的密码设置为不同的,防止撞库。 |
|||||
2.7 缺失级功能访问控制
2.7.1 Sensitive Path Guess敏感路径猜测
|
来源 |
其他 |
ID |
检测方案 |
特征匹配 |
||
|
目标字段 |
IIS |
Ip referrer url status |
||||
|
Apache |
Ip referrer url status |
|||||
|
分析方法 |
是否访问了该服务器敏感目录如admin等管理后台. 已定义规则。 |
|||||
2.7.2 垂直权限缺失访问控制
|
来源 |
其他 |
ID |
59 |
检测方案 |
||
|
目标字段 |
IIS |
URI Query(cs-uri-query) |
||||
|
Apache |
request |
|||||
|
分析方法 |
属于业务设计缺陷的安全问题, 正确配置:应当对访问控制加权限。 |
|||||
2.9 The Third Party Components Access第三方组件访问
|
来源 |
其他 |
ID |
检测方案 |
特征匹配 |
||
|
目标字段 |
IIS |
URI status |
||||
|
Apache |
Request status |
|||||
|
分析方法 |
大多第三方组件曾出现过严重安全漏洞,且均存在缺失路径,如果对某组件出现过漏洞的路径进行访问,则有可能为攻击行为,包含的组件有在线编辑器ewebeditor和fckeditor,其特征分别为eWebEditor、eWebEditor.mdb、editor/admin_login.asp和filemanager、editor/filemanager/browser等 |
|||||
OWASP十大攻击类型详解的更多相关文章
- Java基础学习总结(33)——Java8 十大新特性详解
Java8 十大新特性详解 本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API ...
- js十大排序算法详解
十大经典算法导图 图片名词解释:n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外内存 1.冒泡排序 1.1 原始人冒泡排序 functi ...
- JAVA8 十大新特性详解
前言: Java8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章, 例如Playing with Java ...
- Java8 十大新特性详解(转)
本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口 ...
- java1.8十大新特性详解
"Java is still not dead-and people are starting to figure that out." 本教程将用带注释的简单代码来描述新特性,你 ...
- Java语言:JAVA8 十大新特性详解(zz)
关键词: Lambda表达式.函数式接口.方法与构造函数引用.接口的默认方法 原文地址: http://www.jb51.net/article/48304.htm 本教程将Java8的新特新逐一列出 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
前面三篇文章<C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)>.<C++11 并发指南六( <atomic> 类型详解二 std::at ...
- Java进阶(三十二) HttpClient使用详解
Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...
随机推荐
- python django -1
VT Django是一款python的web开发框架 与MVC有所不同,属于MVT框架 m表示model,负责与数据库交互 v表示view,是核心,负责接收请求.获取数据.返回结果 t表示templa ...
- iOS 实现从后台切换到前台-复制分享宝贝内容,打开淘宝APP,自动弹出宝贝提示信息
- (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"\n ===> 程序重新激活 !&q ...
- 更新mac系统和更新到Xcode7.3版本出现的: cannot create __weak reference in file using manual reference counting
之前的编程没有遇到过,应该是苹果官方那边又做了新规吧. 不过不要紧,只要根据这个就能解决报错问题. Set Build Settings -> Apple LLVM 7.1 - Languag ...
- day3笔记
一.内容回顾 1.break:停止当前循环,后面的程序不会运行,跳出循环. 跳出while循环:1,改变条件.2.break continue:结束本次循环,继续下一次循环. 2.格式化输出:%%可以 ...
- 转:: 刺鸟:用python来开发webgame服务端(3)
来源:http://ciniao.me/article.php?id=11 --------------- 刺鸟原创文章,转载请注明出处 在之前的准备工作中,我们已经建立了一个socket服务器 ...
- POJ1751 Highways
题目链接 http://poj.org/problem?id=1751 题目大意:输入n:然后给你n个点的坐标(任意两点之间皆可达):输入m:接下来m行每行输入两个整数x,y表示 点x与点y 已 ...
- 《从零开始学Swift》学习笔记(Day 47)——final关键字
原创文章,欢迎转载.转载请注明:关东升的博客 在类的定义中使用final关键字声明类.属性.方法和下标.final声明的类不能被继承,final声明的属性.方法和下标不能被重写. 下面看一个示例: f ...
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- Python菜鸟之路:DOM基础
前言 DOM 是 Document Object Model(文档对象模型)的缩写,定义了访问和操作 HTML 文档的标准方法.DOM把网页和脚本以及其他的编程语言联系了起来.DOM属于浏览器,而不是 ...
- Javascript-Switch
JavaScript Switch 语句 请使用 switch 语句来选择要执行的多个代码块之一. 语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码 ...