目录
-
- 什么是OWASP?
- TOP 10
-
-
- 1.注入
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 2.失效身份验证和会话管理
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 3.敏感信息泄露
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 4.XML外部实体注入攻击(XXE)
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 5.存取控制中断
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 6.安全性错误配置
-
-
- 产生情况
- 危害
- 防范
-
- 7.跨站脚本攻击(XSS)
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 8.不安全的反序列化
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 9.使用具有已知漏洞的组件
-
-
- 说明
- 产生情况
- 危害
- 防范
-
- 10.日志记录和监控不足
-
-
- 说明
- 产生情况
- 危害
- 防范
-
-
什么是OWASP?
它的全称是 Open Web Application Security Project(开放式 Web 应用程序 安全 项目)
TOP 10
OWASP Top 10的意思就是10项最严重的Web 应用程序安全风险列表 ,它总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
具体的十大漏洞
1.注入
说明
注入,是sql注入,nosql注入,OS注入和LDAP注入(轻量目录访问协议) 等注入。攻击者可以构造恶意数据通过注入缺陷的解析器执行没有权限的非预期命令或访问数据。
产生情况
系统没有对用户输入的数据进行严格过滤,导致攻击者输入的恶意数据被当做系统命令执行
危害
数据丢失或被篡改;
服务器被远程控制,被安装后门;
破坏硬盘数据,瘫痪全系统;
……
防范
特定转义语法来转义特殊字符;
数据与Web应用程序逻辑分离;
……
2.失效身份验证和会话管理
说明
通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者暂时或永久的冒充其他用户的身份
产生情况
允许用户使用默认名或者弱密码;
使用弱哈希加密;
允许暴力破解;
用户会话或身份验证令牌在注销后未及时失效;
……
危害
该漏洞可能导致部分甚至全部账户遭受攻击,一旦攻击成功,攻击者就能执行合法的任何操作
……
防范
多因素身份验证;
弱密码检查,禁止用户使用弱密码;
限制失败的登录尝试次数,并在检测到暴力破解或其他攻击时提醒管理员;
会话或身份令牌应在注销,空闲后无效;
……
3.敏感信息泄露
说明
应该受到保护,不应该被公开的信息被公开了
产生情况
因为防范不严,导致攻击者进入数据库或者其它位置。查看了敏感的信息
危害
敏感信息泄露,导致个人隐私、公司机密外传,从而造成严重的后果
防范
系统防护的再严密,也会有被钻空子的一天。所以需要:
加密存储和传输所有的敏感数据;
确保使用合适强大的标准算法和密钥,并且密钥管理到位;
确保使用密码专用算法存储密码
及时清除没有必要存放的重要的/敏感数据
禁用自动收集敏感数据,禁用包含敏感数据的页面缓存
提高操作敏感信息所需要的权限
……
就算攻击者进入内部,也对敏感信息无从下手
4.XML外部实体注入攻击(XXE)
说明
XML外部实体注入攻击是针对解析XML输入的应用程序的一种攻击。
产生情况
当弱配置的XML解析器处理包含对外部实体的引用的XML输入时,就会发生此攻击。
默认情况下,大多数XML解析器容易受到XXE攻击。因此,确保应用程序不具有此漏洞的责任主要在于开发人员。
危害
攻击者可以利用这个漏洞窃取URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。
防范
尽可能使用简单的数据格式(例如JSON),并避免对敏感数据进行序列化;
应用程序或基础操作系统上修补或升级正在使用的所有XML处理器和库;
在应用程序的所有XML解析器中禁用XML外部实体和DTD处理。
在服务器端实施(“白名单”)输入验证,过滤或清理操作,以防止XML文档,标头或节点内的攻击数据;
……
5.存取控制中断
说明
在网站安全中,访问控制意味着根据访问者的需求限制访问者可以访问的部分或页面。
产生情况
通过身份验证的用户,可以访问其他用户的相关信息,没有实施恰当的访问权限。
例如,管理员的后台管理界面,是给管理操作的。但是一些网站,可能管理员的后台管理界面,普通用户也可以访问浏览,虽然普通用户不能操作,但是万一普通用户提权成功呢?而且管理员的后台管理界面上也有一些敏感信息,普通用户浏览的时候就看到不该看到的东西
危害
攻击者可以利用这个漏洞去查看未授权的功能和数据,例如:访问用户的账户、敏感文件、获取和正常用户相同的权限等.
防范
采用特权最低的概念–将角色应用于任务,并且仅在完成该任务所需的时间范围内应用,而不再需要更多时间;
记录服务器和网站上的操作:谁在做什么,什么时候做以及为什么做。如果可能,对所有访问点应用多因素身份验证。
禁用访问点,直到需要它们为止,以减少访问窗口。
从服务器上删除不必要的服务。
检查可从外部访问的应用程序以及与网络绑定的应用程序。
6.安全性错误配置
产生情况
安全配置错误是比较常见的漏洞,由于操作者的不当配置(默认配置,临时配置,开源云存储,http标头配置,以及包含敏感信息的详细错误),安全配置错误可以发生在各个层面,包含平台、web服务器、应用服务器、数据库、架构和代码。
危害
攻击者可以利用这些配置获取到更高的权限
防范
开发,质量保证和生产环境均应配置相同,并且在每个环境中使用不同的凭据;
使配置环境自动化,以最大程度地减少设置新的安全环境时的人工失误;
删除不需要使用的功能和框架;
将不必要的组件,文档和样本都删掉;
7.跨站脚本攻击(XSS)
说明
跨站点脚本(XSS)是一个广泛存在的漏洞,会影响许多Web应用程序。XSS攻击包括将恶意的客户端脚本注入网站,并将该网站用作传播方法。
XSS背后的风险在于,它允许攻击者将内容注入网站并修改其显示方式,从而迫使受害者的浏览器在加载页面时执行攻击者提供的代码。
通常,XSS漏洞要求用户通过社交工程或通过访问特定页面来触发某种类型的交互。如果未修补XSS漏洞,则对任何网站来说都是非常危险的。
产生情况
反射型XSS:应用程序或API包含未经验证和未转义的用户输入,作为HTML输出的一部分。成功的攻击可以使攻击者在受害者的浏览器中执行任意HTML和JavaScript。通常,用户将需要与指向攻击者控制的页面的某些恶意链接进行交互,例如恶意注水网站,广告或类似内容。
存储型XSS:应用程序或API存储未过滤的用户输入,稍后由其他用户或管理员查看。存储的XSS通常被认为是高风险或严重风险。
DOM型 XSS:动态地将攻击者可控制的数据包含到页面的JavaScript框架,单页应用程序和API容易受到DOM型 XSS
危害
获取cookie;
挂马挂黑链;
做傀儡机
防范
根据HTML输出中的上下文(正文,属性,JavaScript,CSS或URL)转义不受信任的HTTP请求数据将解决Reflected和Stored XSS漏洞。
8.不安全的反序列化
说明
序列化的过程是将对象转换为字节字符串。反序列化的过程是将字节字符串转换为对象。
产生情况
程序尝试在不进行任何验证的情况下对数据进行反序列化,这倾向于使攻击者可以模拟序列化的数据并发送给应用程序以采取任何暴力措施。
危害
导致远程代码执行、重放攻击、注入攻击或特权升级攻击
防范
在任何序列化对象上实施完整性检查(例如,数字签名),以防止恶意创建对象或篡改数据;
隔离并运行可能在低特权环境中反序列化的代码;
记录反序列化异常和失败,例如传入类型不是预期的类型,或者反序列化引发异常;
限制或监视反序列化的容器或服务器的传入和传出网络连接;
监视反序列化,并警告用户是否不断反序列化;
……
9.使用具有已知漏洞的组件
说明
组件有漏洞
产生情况
简单的网站(例如个人博客),因为是个人运营,因为技术有限,所以对组件有很大的依赖性。
毫无疑问,如果不及时更新网站后端和前端上的每个组件,就会给攻击者带来可乘之机
危害
组件(例如库、框架或其他软件模块)拥有应用程序相同的权限,如果应用程序中含有已知漏洞,攻击者可以利用漏洞获取数据或接管服务器。同时,使用这些组件会破坏应用程序防御,造成各种攻击产生严重的后果。
防范
删除所有不必要的依赖项;
监视诸如常见漏洞和披露(CVE)和国家漏洞数据库(NVD)之类的源,以查找组件中的漏洞;
仅从官方来源获取组件;
及时更新组件;
在网站应用程序防火墙的帮助下使用虚拟修补程序;
……
10.日志记录和监控不足
说明
对网站定期监控,以便在发生问题时立即采取行动。如果没有有效的日志记录和监视过程,则可能会增加网站危害的损害。
产生情况
对网站的监视不到位;
对日志的审核不全面细心;
……
危害
不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性的或攻击更多的系统,以及对数据的不当操作。
防范
审核日志;
加强监控;
……