近日,开放式 Web 应用程序安全项目(OWASP)发布了最终版 2017 Top 10 榜单。Top 10 项目帮助企业组织找出所面临的最严重的风险,成为全球 Web 开发和运维人员的必读指南。
A1 注入攻击漏洞 A6 安全配置错误
A2 失效的身份认证 A7 跨站脚本 XSS
A3 敏感信息泄露 A8 不安全反序列化漏洞
A4 XXE 漏洞 A9 使用含有已知漏洞的组件
A5 失效的访问控制 A10 不足的记录和监控
在 2017 威胁榜单中,注入攻击漏洞仍然位居 Top 10 威胁之首,而 XSS 的威胁程度从 A3 降到了 A7。敏感信息泄露、安全配置错误、失效的访问控制等威胁均有提升,值得企业重视。
与此同时,榜单中还出现了一些新的安全威胁,包括 XXE 漏洞(A4:2017, XML External Entity attack)、针对 Java 平台的不安全反序列化漏洞(A8:2017, Insecure Deserialization)以及记录和监控不足风险(A10:2017, Insufficient Logging & Monitoring)等,这些新兴的安全威胁也值得企业重点关注。
随着网贷、购物和社交等一系列新型互联网产品的诞生,企业信息化的过程中越来越多的应用都架设在 Web 平台上,接踵而至的就是 Web 安全威胁的凸显。
大量黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到 Web 服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。
什么是 Web 应用安全风险?
如下图所示,攻击者可以通过应用程序中许多不同的路径和方法来危害您的业务或者企业组织。每种路径方法都代表了一种风险,有些路径方法很容易被发现并利用,有些则很难被发现。
为了确定您企业面临的风险,可以结合其产生的技术影响和对企业的业务影响,去评估威胁代理、攻击向量和安全漏洞的可能性。
接下来,重点分析排名前三的 Web 安全威胁以及应对方法:
注入攻击漏洞
注入攻击漏洞,例如 SQL、OS 以及 LDAP 注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候,攻击者发送的恶意数据可以欺骗编辑器,以执行计划外的命令或者在未被恰当授权时访问数据。
- 检查是否存在「注入漏洞」的方法
最好的办法就是确认所有解释器的使用都明确地将不可信数据从命令语句或查询语句中区分出来。对于 SQL 调用,在所有准备语句和存储过程中使用绑定变量,并避免使用动态查询语句。
检查应用程序是否安全使用解释器的最快最有效的办法是代码审查,代码分析工具能帮助安全分析者找到使用解释器的代码并追踪应用的数据流。
可以执行应用程序的动态扫描器能够提供信息,帮助确认一些可利用的注入漏洞是否存在。
- 典型案例
NextGEN Gallery 插件是众所周知的 WordPress 相册插件,这款插件功能强大,可以在博客中任意插入动态图片效果,提供了很完美的照片管理方法,在 WordPress 平台上拥有过百万的安装量。
今年 3 月 NextGEN Gallery 插件被曝存在严重的 SQL 注入漏洞,影响上百万用户,攻击者利用 SQL 注入漏洞获取了数据库中包括用户信息在内的敏感数据。
失效的身份认证
与身份认证和会话管理相关的应用程序功能常常被错误地实现,攻击者使用认证管理功能中的漏洞,采用破坏密码、密钥、会话令牌去冒充其他用户的身份。
- 检查是否存在「失效的身份认证」的方法
用户身份验证凭证是否使用哈希或加密保护;是否可以通过薄弱的账户管理功能(例如账户创建、密码修改、密码修复、弱会话 ID)重写。
会话 ID 暴露在 URL 里;会话 ID 没有超时限制,用户会话或身份验证令牌(特别是单点登录令牌)在用户注销时没有失效;密码、会话 ID 和其他认证凭据使用未加密链接传输等。
- 典型案例
机票预订应用程序支持 URL 重写,把当前用户的会话 ID 放在 URL 中:http://example.com/sale/salei...;jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV?dest=Hawaii
该网站一个经过认证的用户希望让他朋友知道这个机票打折信息。他将上面链接通过邮件发送给朋友们,并不知道已经泄露了自己会话 ID. 当他的朋友们使用上面的链接时,可以轻而易举地使用他的会话和信用卡。
敏感信息泄露
许多 Web 应用程序没有正确保护敏感数据,如信用卡、身份证 ID 和身份验证凭据等。攻击者可能会窃取或篡改这些弱保护的数据以进行信用卡诈骗、身份窃取或其他犯罪。
敏感数据需额外的保护,比如在存放或在传输过程中进行加密,以及在与浏览器交换时进行特殊的预防措施。
- 检查是否存在「敏感信息泄露」的方法
首选需要确认哪些数据时敏感数据而需要被加密。当这些数据被长期存储的时候,无论存储在哪里,是否被加密和备份?
无论内部数据还是外部数据,传输时是否是明文传输?是否还在使用旧的或者脆弱的加密算法?
加密密钥的生成是否缺少恰当的密钥管理或缺少密钥回转?当浏览器接收或发送敏感数据时,是否有浏览器安全指令?
- 典型案例
一个网站上所有需要身份验证的网页都没有使用 SSL 加密。攻击者只需要监控网络数据流(比如一个开放的无线网络或其社区的有限网络),并窃取一个已验证的受害者的会话 Cookie. 攻击者利用这个 Cookie 执行重放攻击并接管用户的会话,从而访问用户的隐私数据。
如何有效地防范 Web 应用安全风险?
- 安全防护要贯穿整个 Web 应用生命周期
在 Web 开发阶段需要对代码进行核查,在测试阶段需要对上线前的 Web 应用做完整的安全检查,在运营阶段,建议在事前、事中和事后进行分阶段、多层面的完整防护。
- 构建以漏洞、事件生命周期闭环管理体系
通过监测系统平台进行漏洞生命周期的管理,包含漏洞扫描、人工验证、漏洞状态的追踪工作以及漏洞修复后的复验工作等,使漏洞管理流程化。
- 提升安全管理人员工作能力
安全管理岗位人员需要建立起信息安全管理的概念,清楚 Web 威胁的危害,掌握识别安全漏洞及风险的专用技术,以及对安全问题进行加固处置的技能。
查看和下载完整版报告:
青云QingCloud 对于 Web 安全防护整体解决方案的建议
预防 Web 应用安全,应该在软件开发生命周期遵循安全编码原则,并在各阶段采取相应的安全措施。对于已经投入使用的 Web 应用系统,如何在运行阶段进行有效的安全防护成为重点。
QingCloud 建议对 Web 应用的安全威胁及业务运维路径采取以下安全措施进行防护:
DDoS 防御
DDoS 防御一般包含两个方面:
- 一是针对不断发展的攻击形式,尤其是采用多种欺骗技术的技术,能够有效地进行检测;
- 二是如何降低对业务系统的影响,从而保证业务系统的连续性和可用性。
访问控制
利用防火墙进行访问控制,防止不必要的服务请求进入网站系统,减少被攻击的可能性。利用 IP Sec/SSL VPN 实现对远程用户的安全加密接入功能。
应用层防护
通过 Web 应用防护系统可有效控制和缓解 HTTP 及 HTTPS 应用下各类安全威胁,如 SQL 注入、XSS、 跨站脚本(XSS)、Cookie 篡改以及应用层 DDoS 等,有效应对网页篡改、网页挂马、敏感信息泄露等安全问题,充分保障 Web 系统的高可用性和可靠性。
系统安全加固
通过安全评估系统找出主机系统、网络设备及其他设备系统中存在的补丁漏洞和配置漏洞,进行加固,以保障系统的安全性。
SSL 加密
SSL 加密是在浏览器和 Web 服务器之间为应用程序提供加密数据通道,SSL 数字证书是其代表应用,SSL 证书可实现网站 HTTPS 化,使网站可信,防劫持、防篡改、防监听。
数据库审计
通过数据库审计系统实现对所有访问 Web 应用系统引起的数据库操作进行精细化审计,涵盖可能访问数据的所有途径,无论是外部访问还是云端数据库管理员的访问。
运维安全审计
通过堡垒机实现对所有运维人员的操作进行集中管控,对重要主机的操作做到实时跟踪,形成可视化的操作日志,对于高风险的操作进行实时的预警,全程审计运维操作的每一个细节。
青云QingCloud Web 应用防火墙,通过云端大数据监测和学习引擎,完美防范 Web 应用拦截 SQL 注入、XSS 跨站脚本、网站挂马、OWASP Top 10 等各类 Web 安全威胁,过滤海量恶意访问,持续更新防护策略,从而降低网站资产和数据泄露的风险,保障 Web 应用的可用性。
福利时间
12 月 12 日,青云QingCloud 下一代企业级云架构 ——「全模云」线上发布会,活动门票限量赠送
报名:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。