《OWASP TOP10》的首要目的就是要指导开发人员、设计人员、架构师、管理人员和企业组织,让他们认识到最严重的WEB应用程序安全弱点所产生的后果,并且提供了防止这些高风险的基本方法。
A1注入
将不受信任的数据作为命令或者查询的一部分发送到解析器,产生注入SQL注入、OS注入和LDAP注入的缺陷。当用户提供的数据没有经过应用程序的验证过滤或是净化、动态查询语句的调用或是恶意数据的直接使用都会导致程序脆弱。
防止:将数据与命令语句、查询语句分开来。最佳选择是直接选用安全的API。
A2失效的身份认证
攻击者获取数百万的有效用户名和密码的组合或者攻击没有过期的会话密钥。当程序出现允许填充凭证、允许暴力破解、出现总所周知的密码、暴露URL的ID、会话ID没有正确的注销。
防止:使用多因素身份验证、执行密码强度检测、限制登陆次数、使用服务器安全的内置会话管理器
A3敏感数据泄露
攻击这不直接攻击密码而是由于数据加密过程的密钥生成过弱、使用弱协议、弱密码导致应该被加密的敏感信息被窃取。
防止:对系统处理、存储或传输的数据进行分类;确保所有敏感数据被加密且使用了最新的标准算法密钥管理到位;传输过程的数据被加密;禁止缓存对包含敏感数据的响应。
A4XML外部实体
攻击者在XML文档中添加恶意内容,就能够攻击含有缺陷的XML处理器。
防止:尽可能使用简化数据;及时修复所有的底层XML处理器和库;在服务器端使用白名单或者使用API安全网关或是监控、防止XXE攻击。
A5失效的访问控制
攻击者通过手动检测找到访问控制的缺失并且验证其功能是否正常或者是某些特定的框架下通过自动检测访问控制的缺失实现漏洞攻击。例如权限提升、元数据操作、修改用户记录、以未经通过验证的身份访问限制页面、内容。
防止:除公有资源外,默认拒绝访问;使用一次性的访问控制机制;建立访问控制模型强制执行所有权记录,不允许用户创建更改记录;对API的控制器的访问进行速率限制降低自动化攻击攻击的危害。
A6安全配置错误
攻击者通过未修复的漏洞、访问默认账号、不再使用的页面、未受保护的文件和目录来取得对系统的未授权的访问或是了解。比如堆栈缺失安全加固、云服务权限配置错误、默认账户仍然可用且没有更改、没有应用程序的系统进行安全配置。
防止:向客户端发送安全指令、检查和修复安全配置项、搭建最小化平台。
A7跨站脚本
存在三种XSS通常针对用户的浏览器,反射式XSS应用程序、API没有经过验证或者是用户的输入没有经过转义就直接作为了HTML的输出的一部分导致执行了浏览器执行了HTML和javascipt。存储式XSSAPI或是用户输入被存储下来了并在后期其他用户或是管理员的界面展示。基于DOM的XSS会动态的将攻击者可控的内容加入到JS框架中。
防止:将不可信数据与动态的浏览器内容分开。
A8不安全的反序列化
攻击者提供恶意或是篡改过的对象使用应用API变得脆弱。包括对对象和数据结构的攻击和数据篡改攻击。
防止:不接受不受信源的序列化对象
A9使用含有已知漏洞的组件
当使用了不知道组件版本的软件或是过时的没有进行安全配置的时候容易受到此类攻击。
防止:移除不使用的、不需要的功能;使用一些软件来记录客户端服务器的依赖库的版本信息;仅从官方获取组件并且可以使用签名机制。
A10不足的日志记录和监控
攻击者依靠监控的不足和响应的不足实现攻击目的。比如:未记录可审计的事件、没有利用系统API来监控可以活动、日志仅在本地存储、没有定义合理的告警阈值、渗透测试或是扫描工具没有触发告警等等。
防止:确保日志的集中管理;确保重要事件能够被记录到日志当中;建立有效的监控和告警机制;建立应急响应机制和恢复计划。
转自:橘猫学安全