Web安全漏洞全面分析

ms-dos
Web安全漏洞全⾯分析
  1 当前 Web 安全现状
  互联⽹的发展历史也可以说是攻击与防护不断交织发展的过程。⽬前,全球因特⽹⽤户已达 13.5 亿,⽤户利⽤⽹络进⾏购物、银⾏转账⽀付和各种软件下载,企业⽤户更是依赖于互联⽹构建他们的核⼼业务,对此,Web 安全性已经提⾼⼀个空前的⾼度。
  然⽽,现实世界中,针对⽹站的攻击愈演愈烈,频频得⼿。CardSystems 是美国⼀家专门处理信⽤卡交易资料的⼚商。该公司为万事达 (Master)、维萨 (Visa) 和美国运通卡等主要信⽤卡组织提供数据外包服务,负责审核商家传来的消费者信⽤卡号码、有效期等信息,审核后再传送给银⾏完成付款⼿续。这家公司为超过 10 万家企业处理信⽤卡信息,每年业务⾦额超过 150 亿美元。这家已有 15 年历史的公司怎么也没想到,居然有⿊客恶意侵⼊了它的电脑系统,窃取了 4000 万张信⽤卡的资料。这些资料包括持卡⼈的姓名、账户号码等。这是美国有史以来最严重的信⽤卡资料泄密事件。此次攻击事件不仅仅对消费者,对公司造成了巨⼤的损失,甚⾄对美国的信⽤卡产业产⽣了严重的影响!
  1.1 Web 安全的认识误区
  然⽽什么才是 Web 安全呢,或者说什么样的⽹站才是安全的呢?⽤户往往有⼀些常见的误区。
  “Web ⽹站使⽤了防⽕墙,所以很安全”
  ⽆论是应⽤级还是端⼝级的防⽕墙针对的都是⽹络层⾯的攻击,通过设置可访问的端⼝或者应⽤,把恶意访问排除在外,然⽽如何鉴别善意访问和恶意访问是⼀个问题。访问⼀旦被允许,后续的安全问题就不是防⽕墙能应对了。
  “Web ⽹站使⽤了 IDS,所以很安全”
  通过模式识别对⽹络层⾯的攻击做出防护措施。然⽽类似于防⽕墙,通过利⽤程序漏洞,通过正常连接进⾏攻击的访问⽆法被识别和处理。
  “Web ⽹站使⽤了 SSL 加密,所以很安全”
  SSL 对⽹站发送和接收的信息都进⾏加密处理,然⽽ SSL ⽆法保障存储在⽹站⾥的信息的安全和⽹站访问者的隐私信息。采⽤ 64 位甚⾄ 128 位 SSL 加密的⽹站被⿊客攻陷的例⼦举不胜举。
  “漏洞扫描⼯具没发现任何问题,所以很安全”
  当前漏洞扫描⼯具已经被⼴泛使⽤去查⼀些明显的⽹络安全漏洞。同理,扫描⼯具⽆法对⽹站应⽤程序进⾏检测,⽆法查应⽤本⾝的漏洞。
  “我们每季度都会聘⽤安全⼈员(Pen Tester)进⾏审计,所以很安全”
  ⼈为的检测考察不仅仅效率低,不可控因素也较多,同时对于代码变更频繁的今天,Pen Tester 也⽆法满⾜全⾯的安全需求
  然⽽这些⽅法远远不能保障 Web 应⽤的安全,针对应⽤层⾯的攻击可以轻松的突破防⽕墙保护的⽹站。例如:最为常见的注⼊攻击表现层⾯完全是正常的数据交互查询。对于防⽕墙或者⼊侵检测系统⽽⾔,这是最为正常的访问连接,没有任何特征能够说明此种访问连接存在恶意攻击。所以,⼀些简单的 SQL 注⼊语句就可以使得装备昂贵⽹络安全设备的⽹站被轻松攻破。
  1.2 Web 安全现状
  令⼈惊诧的是,⼏乎所有关注 Web 安全领域的⼈都会存在着上⾯我们阐述的误区,⽽当前 Web 的安全现状也同时证明了这些误区的普遍性。“防⽕墙、IDS 是主要安全⼿段,SSL 保证了安全性,…”与之相对的是:互联⽹发展到今天,75%的安全问题竟然是出现在应⽤程序本⾝。正如上⾯介绍的 SQL 注⼊攻击⼀样,这是防⽕墙、SSL、⼊侵检测系统⽆法预防、解决、和应对的!
  如下图所⽰,⽬前安全投资中,只有 10%花在了如何防护应⽤安全漏洞,⽽这却是 75%的攻击来源――10% Vs 75%,这是多么⼤的差距!这也是造成当前 Web 站点频频被攻陷的⼀个重要因素。
溴化锂溶液  图 1. 当前安全现状统计分析图
  那么,什么样的防护才是⼀个完整的解决⽅案呢?通过附图 2 我们可以看到,⼀个完整的 Web 防护不仅仅包含了常见的 IDS、Firewall 等防护⼿段,更需要针对应⽤本⾝做好安全防护,这也是解决 75%安全漏洞的⼿段。那么什么样的攻击是防⽕墙、IDS、或者 SSL ⽆法应对的呢,他们⼜是如何利⽤应⽤本⾝的漏洞进⾏攻击的呢?下⾯我们将做详细的阐述。
  图 2. Web 应⽤的⽹络防护
  常见针对 Web 应⽤攻击的⼗⼤⼿段
⽬前常⽤的针对应⽤漏洞的攻击已经多达⼏百种,最为常见的攻击为下表列出的⼗种。
⼗⼤攻击⼿段
应⽤威胁负⾯影响后果
跨⽹站脚本攻击标识盗窃,敏感数据丢失…⿊客可以模拟合法⽤户,控制其帐户。
注⼊攻击通过构造查询对、LDAP 和系统进⾏⾮法查询。⿊客可以访问后端数据库信息,修改、盗窃。
恶意⽂件执⾏在服务器上执⾏ Shell 命令 Execute,获取控制权。被修改的站点将所有交易传送给⿊客
不安全对象引⽤⿊客访问敏感⽂件和资源Web 应⽤返回敏感⽂件内容
伪造跨站点请求⿊客调⽤ Blind 动作,模拟合法⽤户⿊客发起 Blind 请求,要求进⾏转帐
信息泻露和不正确的错误处理⿊客得到详细系统信息恶意的系统检测可能有助于更深⼊的攻击
被破坏的认证和 Session 管理Session token 没有被很好的保护在⽤户推出系统后,⿊客能够盗窃 session。
不安全的⽊马存储过于简单的加密技术导致⿊客破解编密码隐秘信息被⿊客解密盗窃
不安全的通讯敏感信息在不安全通道中以⾮加密⽅式传送⿊客可以通过嗅探器嗅探敏感信息,模拟合法⽤户。
URL 访问限制失效⿊客可以访问⾮授权的资源连接⿊客可以强⾏访问⼀些登陆⽹页、历史⽹页。
  我们通过注⼊缺陷(Injection Flaws,排名第⼆的攻击)对攻击原理进⾏⼀下说明。
机械工业第四设计研究院
  在⽹站的应⽤中需要应⽤到⼤量的数据库查询检索等功能,例如最简单的例⼦是⽹站登陆,⽤户需要输⼊登陆名称和密码进⾏登陆认证。在早期的开发中通常使⽤最为简单的 select 语句实现此功能,即 select * from users where username = “XXXX” and password = “XXXX”( 假设数据库 user 表名称为 users,⽤户名和密码字段名称为 username 和 password)。通过截取⽤户在⽂本框中录⼊的字符串,再进⾏拼接,形成 select 语句,最终如果表 users 中有符合此条件的记录(即该⽤户名和密码),系统将会返回有效记录,从⽽允许登陆系统中。
  然⽽,此开发⽅法隐藏了⼀个巨⼤的漏洞,⿊客可以通过 SQL 注⼊攻击攻⼊⽹站。如下图所⽰,⿊客在登陆界⾯录⼊的不是⽤户名,⽽是⼀串字符串 (’or 1=1 --)。⿊客的⽬的是在原本应该录⼊⽤户的地⽅录⼊了⼀串字符串,导致整个 select 语句发⽣了变化:select * from users where username=’’or 1=1。熟知 Select 语句的⼈知道,在条件语句中,⽆论⽤户名称是否正确,由于 1=1 永远是正确的,所以 select 将会将所有 users 表中的数据返回。最终的结果是,⿊客登陆到这个系统中。通过 SQL 注⼊攻击,⿊客可以轻松的敲⼊⼀些 sql 语句登陆进⽹站、对隐秘数据进⾏查询等等。
  图 3. 攻击举例
  通过上述原理描述我们可以看到,对于 SQL 注⼊攻击⽆论是防⽕墙还是⼊侵检测系统都⽆法预防和阻⽌,唯⼀的办法是将应⽤本⾝的漏洞关闭。例如通过参数的传递配合存贮过程来实现数据库查询,这⽐动态的构建 sql 语句安全很多。⽐如在 ASP 中通过下⾯的程序将会避免攻击:
李水明
  ' Visual Basic example
  Dim DS As DataSet
  Dim MyConnection As SqlConnection
  Dim MyCommand As SqlDataAdapter
国信证券鑫网  Dim SelectCommand As String = "select * from users where username = @username"
  ...
  MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@username",
  SqlDbType.NVarChar, 20))
  MyCommand.SelectCommand.Parameters("@username").Value = UserNameField.Value
  // C# example
  String selectCmd = "select * from Authors where state = @username";
  SqlConnection myConnection = new SqlConnection("server=...");
  SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
  myCommand.SelectCommand.Parameters.Add(new SqlParameter("@username",
  SqlDbType.NVarChar, 20));
  myCommand.SelectCommand.Parameters["@username"].Value = UserNameField.Value;
  除了注⼊缺陷攻击,常见的应⽤攻击还有跨⽹站脚本攻击、恶意⽂件执⾏攻击、不安全直接对象应⽤攻击、跨站点请求伪造攻击、信息泄漏以及利⽤错误处理机制展开攻击、等等。每种攻击都类似与 SQL 注⼊攻击,根据应⽤程序本⾝的漏洞,对系统进⾏破坏,例如:获取系统权限、获取机密信息、模拟合法⽤户等等。
  综上所述,这些利⽤ Web 应⽤漏洞的攻击是 Web 安全最主要的威胁来源,75%的攻击来源于此,只有对应⽤程序本⾝进⾏改造才能避免攻击。然⽽,如何发现这些应⽤漏洞是保证安全的第⼀前提,我们如何以最快最有效的⽅式发现 Web 应⽤本⾝的漏洞呢?没有⾼效检测⼿段,安全的 Web 应⽤将成为⽔中花镜中⽉。
  3 通过 Rational AppScan 如何应对⽹站攻击
  IBM Rational AppScan 正是应对这⼀挑战的利器。
  如下图所⽰,Rational AppScan ⼯作⽅式⽐较简单,就像⼀个⼯具⼀样,测试⼈员不需要了解 Web 应⽤本⾝的结构。AppScan 拥有庞⼤完整的攻击特征库,通过在 http request 中插⼊测试⽤例的⽅法实现⼏百中应⽤攻击,再通过分析 http response 判断该应⽤是否存在相应的漏洞。整个过程简单易懂⾼效,测试⼈员可以快速的定位漏洞所在的位置,同时AppScan 可以详细指出该漏洞的原理以及解决该漏洞的⽅法,帮助开发⼈员迅速修复程序安全隐患。对于攻击的特征以及测试⽤例⽤户不需要花费⼤量的精⼒,WatchFire 团队定期的对特征库进⾏更新,随着保证与业界的同步,最⼤化的提⾼⽤户的⼯作效率。
  图 4. Rational AppScan ⼯作⽰意图
  下⾯我们通过简单的实例介绍⼀下 Rational AppScan 的使⽤:
  定义扫描
  ⾸先确定扫描站点的 URL,根据默认的模板配置向导,确定扫描的整个站点模型以及你想扫描的漏洞种类。例如,我想扫描企业应⽤ ,想根据默认值扫描是否有安全隐患,启动 AppScan,创建⼀个扫描,敲⼊ ; 根据配置向导直⾄完成。
  图 5. 默认的模板配置向导
  图 6. 创建⼀个扫描
  扫描启动,进⾏测试
  只需要点击执⾏。
  扫描结果查看
  如图所⽰,AppScan 以各种维度展现了扫描后的结果,不仅仅定位了问题发⽣的位置,也提出了问题的解决⽅案。
  图 7. 扫描后的结果
  4 Rational AppScan 深⼊介绍
  Rational AppScan 同时提供了很多⾼级功能,帮助客户对复杂应⽤进⾏检测。⽀持的扫描配置有:
  Starting URL:起始 URL,制定被测应⽤的起始地址
  Custom Error Pages:制定错误⽹页提⾼测试效率
  Session IDs:管理测试过程中的 session
  Automatic Server Detection:⾃动检测应⽤所在的应⽤服务器、web server、
  Exclusion and Inclusion:制定哪些 Web 被扫描或者被排除,哪些⽂件类型不被扫描
  Scan Limits:其他⾼级扫描限制,例如扫描次数限制等
  Advanced:扫描的⽅式,是宽度扫描还是深度扫描
  Communication Settings:对扫描中的延时、线程数量进⾏配置
  Proxy Settings:代理设置vLogin/logout:对被测应⽤的登陆进⾏设置,可以采⽤录制回放的⽅式、也可以使⽤⾃动登陆的⽅式
  configure a Test Policy: 配置测试测量,即想测试哪些漏洞。
  ……
  如上所述,⽤户可以通过 AppScan 进⾏⼀系列⾼级配置,制定所要检测的 Web 模型,即哪些需要扫描、哪些不需要、扫描的⽅式等等;也可以定义需要扫描漏洞的列表,从⽽保证了⽤户关⼼的⽹站
模型有⽆⽤户所关⼼的安全漏洞。在检测出安全漏洞之后,AppScan ⼜提供了全⾯的解决⽅案帮助客户快速解决这些问题,最⼤化的保证 Web 应⽤的安全。另外,对于Web 服务 AppScan 同样可以⽀持。
  AppScan 提供了完善的报表功能,可以⽀持⽤户对扫描的结果进⾏各种分析,包括对⾏业或者法规的⽀持程度;同时,AppScan 也提供了⼀系列的⼩⼯具,例如:Authentication Tester 通过暴⼒检测⽅法扫描被测⽹站的⽤户名称和密码;HTTP Request Editor 提供了编辑 Http request 的功能,等等。
  5 Rational AppScan 的使⽤场景
  在整个软件开发⽣命周期中的各个阶段,Rational AppScan 都可以被使⽤,全⾯的保障了软件的安全性。如下图所⽰,软件开发过程中,软件开发⼈员、⼈员、QA、审核⼈员等诸多⾓⾊都可以通过 AppScan 检测应⽤,将漏洞尽早挖掘出来。下⾯我们通过⼀些使⽤场景介绍⼀下 AppScan 给软件开发带来的利益。
  图 8. AppScan 使⽤场景
  5.1 开发⼈员使⽤ AppScan
  开发⼈员在开发过程中可以使⽤ AppScan 或者专⽤插件,随时开发随时测试,最⼤化的保证个⼈开
青岛耀中发程序的安全性。越早发现问题,解决问题的成本就越低,这为 Web 应⽤的安全提供了最为坚实的基础保障。
  测试⼈员使⽤ AppScan
  ⼈员使⽤ AppScan 对应⽤做全⾯的测试,⼀旦发现问题,可以快速的⽣成 defect,通过与 ClearQuest 的集成可以实现 defect 电⼦化跟踪,再传递到开发⼈员⼿中,指导开发⼈员迅速解决问题。极⼤的提⾼了开发团队的开发效率,也提供了完整了沟通平台解决⽅案。
  5.3 审核⼈员上线前使⽤ AppScan
  这是系统上线前的安全质量关卡。任何系统上线都应该经过严格的上线测试,这也最⼤化的减少了上线后问题的出现,避免⽣产系统上线后给企业带来的巨额损失。
  5.4 上线后审计、监控⼈员使⽤ AppScan
  上线的系统应该定期检测,⼀旦出现问题更应该及时检测,越快速的定位发现问题,损失就会越⼩。
  上⾯我们介绍的是⽐较通⽤的使⽤场景。当然,不同的企业可能不同的特点,AppScan 使⽤场景的
原则是最⼤化的提⾼使⽤效率、尽早的把问题暴露出来,为应⽤安全打下坚实的基础。每个企业都可以根据⾃⾝的开发现状定义适合⾃⼰的使⽤模式。
  6. 为企业带来的收益
  通过上⾯的介绍,我们对 Web 安全现状、应⽤安全重要性、以及应⽤安全产品 Rational AppScan 的使⽤有了⼀定的认识。但是,⼯具带给客户的不仅仅是⼀些功能,更为重要的是给企业带来的深层次的收益,给企业在开发过程、安全策略等层⾯带来了深刻的变化 . 下⾯我们从⼏⽅⾯阐述 AppScan 给企业带来的价值:
  AppScan 是 Web 应⽤安全的坚实保障
  正如上⾯所论述的⼀样,当前 Web 安全 75%的漏洞出⾃于应⽤本⾝,快速全⾯的定位问题并提供完善的解决⽅案将会帮助开发团队构建⼀个健壮的应⽤。
  AppScan 使得开发成本降低、开发效率提⾼
  开发测试⼈员通过 Rational AppScan 可以迅速的定位安全隐患,早期发现问题不仅有助于解决问题,更降低了开发成本,避免问题过晚出现所造成的巨⼤损失。
  AppScan 给企业提供了统计分析能⼒
  Rational AppScan 提供了灵活报表功能,可以⽀持对扫描结果进⾏统计分析;⽀持对规范法规遵循的分析;更提供了 Delta  AppScan 帮助建⽴企业级的测试策略库n⽐较报告,可以⽐较两次检测的结果从⽽作为质量检验的基础数据
  Rational AppScan
  帮助企业根据不同的应⽤类型建⽴不同的测试策略,同时⽤户可以定义针对不同威胁的解决⽅法,持续的知识积累保证了企业拥有更完善的安全解决⽅案。
  总结
  综上所述,随着 Internet 的蓬勃发展,Web 的安全性已经被空前重视,薄弱的安全性也成为了很多企业发展的瓶颈。然⽽,即便安全性如此受重视的今天,很多⼈对如何保障 Web 的安去性都存在着巨⼤的误区。现实表明,只有加强 Web 应⽤的防护,才能有效的防范 75%的攻击,Web 应⽤的防护已经成为安全话题中最为不可获缺的部分。IBM Rational 提供了Rational AppScan 解决⽅案,在 Web 开发、测试、维护、运营的整个⽣命周期中,帮助企业⾼效的发现、解决安全漏洞,最⼤限度的保证了应⽤的安全性,为企业发展提供了坚实的技术保障。

本文发布于:2024-09-22 14:36:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/470869.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:攻击   扫描   企业   系统   漏洞
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议