Web应用漏洞扫描产品原理与应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-30 19:56:56

点击下载

作者:俞优 等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Web应用漏洞扫描产品原理与应用

Web应用漏洞扫描产品原理与应用试读:

前言

PREFACE

随着大数据时代的来临,海量数据在互联网中传播,其中不乏来自用户的大量敏感信息,而在Web交互性增强的同时,也引入了更多的网络安全威胁,Web应用的安全性值得广泛关注。同时,随着网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐步转移到了对Web应用的攻击上。利用Web应用潜在的隐患与风险,攻击者不但可以劫持用户会话,甚至可以盗取用户账户信息、窃取财产、破坏服务数据或散布恶意信息等。这些都会阻碍整个互联网的健康发展。

然而种种证据表明,Web应用安全漏洞广泛存在,而且潜在的影响十分恶劣,无论是对因特网业务收入日益增长的企业,还是向Web应用托付敏感信息的用户,Web应用的安全性都是值得关注的话题。为了减少Web应用安全漏洞,提高Web系统的安全性,最有效的途径是提高Web应用开发、维护等从业人员的素质,并在安全管控方面有针对性地对其进行培训和提升,增强其安全意识。尽管如此,即使再优秀的设计与实现都难免会存在一些安全风险,无论是设计缺陷、编码不严谨,还是管理不严格,都可能给攻击者留下可乘之机。早期由于技术不成熟,Web应用的规模较小,应用也不够广泛,传统的人工安全漏洞检测还可以处理相对简单的情况,而其检测质量仍然受到检测人员的素质、水平与经验的约束。但是,随着Web应用系统规模变大,软件开发周期变短,人工检测的工作量越来越大,而且存在许多重复性的工作,这使得人工检测变得不仅费时费力、效率不高,而且效果也很差。因此,必须借助自动化技术进行漏洞扫描。Web应用漏洞扫描产品就是来解决这些问题的,它可以自动发现Web应用漏洞,并且指导开发人员对漏洞进行修复,从而可以在很大程度上提升Web应用的安全性,保障Web应用的质量。同时,也降低了人工成本,使得测试人员可以把更多的精力放在对业务逻辑的确认上,从而提高测试效率。

Web应用漏洞扫描的各项技术是如何实现的?带着这些问题,本书从Web系统及安全扫描技术、产品标准、典型应用等方面进行介绍和分析,期望能够带给读者一定的借鉴。

本书的编写人员均来自公安部计算机信息系统安全产品质量监督检验中心,同时,本书编写人员也参与了国家标准《信息安全技术Web应用安全检测系统安全技术要求和测试评价方法》(GB/T 37931—2019)、公共安全行业标准《信息安全技术Web应用安全扫描产品安全技术要求》(GA/T 1107—2013)的编制工作,因此,本书在标准介绍和描述方面具有一定的权威性。

本书第1章由俞优撰写,第2章由俞优、杨元原撰写,第3~5章由沈亮、邹春明撰写。顾健作为丛书主编,负责把握全书技术方面,并对各章节的具体编写提供了指导性意见。全书由俞优统稿。此外,王志佳、张笑笑等同志也参与了本书资料的收集和部分编写工作。由于编写人员水平有限且时间紧迫,本书不足之处在所难免,恳请各位专家和读者不吝批评指正。

本书的编写得到了北京天融信网络安全技术有限公司、网神信息技术(北京)股份有限公司、杭州安恒信息技术有限公司和北京神州绿盟科技有限公司的大力协助,在此表示衷心的感谢!编者第1章 综述

Internet发展到今天,基于Web和数据库架构的应用系统已经逐渐成为主流,广泛应用于企业内部和外部的业务系统中。在网络高速公路不断拓展,电子政务、电子商务和各种基于Web应用的业务模式不断成熟的今天,由网络钓鱼、SQL注入、网页木马和跨站脚本等攻击事件带来的严重后果,将影响人们对Web应用的信心。1.1 为什么需要进行Web应用漏洞扫描1.1.1 Web应用安全现状

根据中国互联网络信息中心(CNNIC)统计报告,截至2017年12月,中国网站数量为533万个,年增长率为10.6%。中国网页数量为2604亿个,年增长10.3%。其中,静态网页数量为1969亿个,约占网页总数的75.6%,动态网页数量为635亿个,约占网页总数的24.4%。相比2008年的181亿个,增长近15倍。

随着计算机技术和信息技术的发展,Web应用系统在各个领域都得到了广泛的应用,伴随而来的针对Web应用的攻击也大幅度上升。国际著名调研机构Gartner曾统计,信息安全攻击有75%都是发生在Web应用而非网络层面上,其中最常见的攻击技术就是针对Web应用的SQL注入和钓鱼攻击。然而目前,绝大多数企业将大量的投资花费在网络安全和主机安全上,应用安全却往往是薄弱环节,没有从根本上保障应用自身的安全,缺乏有效的安全保障措施,没有真正意义上保证Web应用本身的安全,容易给黑客以可乘之机。

据国家计算机网络应急技术处理协调中心(CN/CERT)2017年统计报告,2017年发现约4.9万个针对我国境内网站的仿冒页面,其中实名认证和积分兑换仿冒页面比较多。2017年境内外约2.4万个IP地址对我国境内2.9万余个网站植入后门。2017年我国境内约2万个网站被篡改,被植入暗链的网站占全部被篡改网站的68.0%。网站用户信息成为黑客窃取的重点,直接影响网民和企业权益,阻碍行业健康发展。另外,针对特定目标的有组织高级可持续攻击日渐增多,国家、企业的网络信息系统安全面临严峻挑战。攻击者主要采用篡改网页、上传恶意代码等攻击形式,干扰正常业务的开展、蓄意破坏政府或企业形象,严重的还导致网站被迫停止服务。对个人用户而言,攻击者更多的是通过非法获取用户游戏账号、银行账号、密码等手段,进而窃取用户财产。如上所述,整体安全形势不容乐观,给Web应用系统的稳定运行带来了前所未有的压力,Web应用系统的安全已经成为目前迫切需要解决的问题。

Web安全从后端延伸到前端,安全问题日益突出。软件安全开发是Web应用安全中的关键环节,当前Web应用设计及开发人员对于软件安全问题仍然缺乏正确、足够的认识,存在“重业务、轻安全”的现象,开发过程不规范,忽视安全编码规范,安全测试不到位,导致Web应用本身存在很多潜在的缺陷,同时也暴露给外界大量的安全漏洞,一旦攻击者入侵可能会导致重大经济损失。1.1.2 Web应用攻击形式

如今Web应用程序的攻击行为一般步骤为:确定该Web应用程序潜在的漏洞,然后采取有针对性的攻击手段,最后获取资源或权限。目前常见的攻击手段主要有以下几种。

1)口令入侵

一般会通过网络监听或者暴力破解法获取用户口令。

2)Sniff监听

通过监听器截获网络上传输的信息,如口令及敏感信息等。

3)恶意电子邮件攻击

利用应用程序中的拒绝服务的漏洞把其中服务器的资源耗尽,也可以发送含有木马链接的邮件,诱导用户点击,从而可以使其机器感染木马程序。

4)诱导法

恶意攻击者会将一些看起来比较正常的程序上传到供用户下载的站点,然后诱导下载,将恶意代码植入用户的机器,从而可以监控用户的机器。

5)利用系统的漏洞

操作系统或者应用程序本身在程序开发过程中存在人为的漏洞,这成了恶意攻击者攻击的“入口”。

6)木马攻击

在受害者系统中植入一个隐藏程序,它会在用户不知不觉的情形下运行,从而在系统联网时对其进行监控。1.1.3 采用Web应用漏洞扫描技术的必要性

近几年来,Web技术和安全产品已经有了长足的进步,部分技术与产品已日趋成熟。但是,单个安全技术或者安全产品的功能和性能都有其局限性,只能满足系统与网络特定的安全需求。因此,如何有效利用现有的安全技术和安全产品来保障Web应用系统的安全已成为当前信息安全领域的研究热点之一。

信息共享与保证安全往往是一对矛盾,在一个自由的网络环境中,大量的流动信息为一些不法之徒提供了攻击目标。而且由于形式多样、终端分布广、互联开放的计算机网络为攻击者提供了便利,其中大量攻击者利用Web应用程序的漏洞发起攻击,给运营商和用户带来很大的损失。因此,为保障Web应用程序安全,及时发现并修补漏洞成为一项很重要的工作。Web应用漏洞扫描技术是模仿攻击者的行为去检测Web应用程序是否安全。它可以准确地发现Web应用程序中潜在的漏洞,这对于保障网络安全也越来越重要。因此,对Web应用漏洞扫描技术应用具有重要的意义。

漏洞扫描技术是站在恶意攻击者的角度去审视系统的安全性,能将其中潜在的风险扼杀在摇篮中,因此是一种比较有效的主动防御技术。通过对漏洞的形成和攻击原理的研究,可以提前定位应用程序中存在的各种漏洞。在对目标站点进行扫描前需要先设置目标站点及各种运行参数,然后启动扫描器,一旦发现某些页面包含特定的漏洞,扫描器会将该漏洞的详细信息保存下来并呈现在报表中,最后自动形成对目标站点的检测报告。这样可以让网站管理员和网站开发人员通过扫描特定的站点和相关网页后知晓自己页面的潜在威胁。Web应用漏洞扫描产品非常有价值,能够尽早帮助开发者发现问题,在网站发布前,就将所扫描到的漏洞全部修复,这样可以大大减小由于应用程序漏洞而造成的损失和破坏。

目前主要是通过网络防火墙、Web应用防火墙等安全产品来解决Web应用所带来的安全问题,但是它们都存在局限性。(1)网络防火墙主要用于防外。(2)网络防火墙无法阻止对服务器合法开放的端口的攻击(如80、443端口)。(3)应用防火墙的部署方式大多为代理和端口镜像模式,HTTP流量都需经过应用防火墙,本身对Web应用可用性造成一定影响。(4)应用防火墙只能防护已知漏洞,对于0day漏洞几乎无法防护。(5)防火墙抵御攻击的能力存在局限性,实际漏洞仍然存在,不能彻底杜绝。

对付破坏应用系统企图的理想方法当然是建立一个完全安全的没有漏洞的Web应用系统,但从实际而言,这根本不可能。美国威斯康星大学的Miller给出一份有关现今流行操作系统和应用程序的研究报告,指出软件中不可能没有漏洞和缺陷。

因此,一个实用的方法是,建立比较容易实现的安全应用系统,同时按照一定的安全策略建立相应的安全辅助系统,漏洞扫描器就是这样一类系统。就目前系统的安全状况而言,系统中存在着一定的漏洞,因此也就存在着潜在的安全威胁,但是,如果我们能够根据具体的应用环境,尽可能早地通过Web应用漏洞扫描来发现这些漏洞,并及时采取适当的处理措施进行修补,就可以有效地阻止入侵事件的发生。虽然亡羊补牢十分可贵,但是对于“不怕一万,就怕万一”的关键业务来说,未雨绸缪才是理想境界。1.2 Web应用漏洞扫描技术发展历程1.2.1 漏洞检测技术

漏洞检测技术分为很多种,只有将几种检测技术结合起来,才可以在效率和质量中得到平衡。

1)人工分析技术

人工分析技术是针对被分析的目标,手工构造特殊的输入变量,查看输出结果从而获得漏洞的分析技术。它多适用于程序中含有人机交互界面,其中Web应用漏洞检测多使用这种方法。

2)Fuzzing技术

Fuzzing技术是自动注入缺陷的测试技术,它利用黑盒测试的思想,使用大量半有效的数据作为应用程序的输入,以程序是否出现异常为标志,来发现应用程序中可能存在的安全漏洞。一般以边界值、文件头尾构造基本的输入条件。

3)静态分析技术

这主要是对系统的源代码进行分析,属于白盒测试技术。它包括上下文搜索、静态字符串搜索等。在理论上可以探测出系统的漏洞,但是随着不断扩大的词典将造成误报率高,检测的结果具有较大的局限性。

4)动态分析技术

动态分析技术通过使用调试器工具来进行动态分析,需要在调试器中运行程序,查看程序的运行状态并通过构造特殊数据分析数据流发现漏洞。1.2.2 Web应用漏洞检测技术

传统的Web安全概念已经不能够应付今天Web安全的严峻形势,防火墙、IDS并不能防护针对Web应用程序的攻击,并且大部分关注Web安全的人员都存在一个误区,即认为Web安全主要是网络服务器的安全。投入了90%的安全防护资源到只有25%攻击率的网络服务器上,仅仅投入了10%的资源到具有75%攻击率的Web应用程序上。针对Web安全的严峻形势,首先必须加强Web安全知识的培训,提高开发人员和安全人员的Web安全意识,以及加大对Web应用安全漏洞检测技术的研究。

安全漏洞检测技术是网络安全防护技术的重要组成部分,不同于防火墙技术对攻击进行被动的防护,安全漏洞检测技术是模拟黑客攻击的方式去测试系统是否存在安全漏洞,对系统可能出现的漏洞进行逐项检测。安全漏洞检测技术最开始应用于网络服务器或网络设备的漏洞测试,主要对服务器操作系统、服务器软件、硬件平台、网络协议的漏洞进行检测。目前市场上存在的基于安全漏洞检测技术的自动化检测工具比较多,但绝大多数都是针对主机漏洞和网络漏洞进行检测,很少致力于Web应用程序漏洞的检测。根据前文的分析,我们了解到随着网络技术的发展,黑客们已经把攻击的重心转到了针对Web应用的攻击上。然而,随着Web安全事件的攀升,越来越多的研究机构和安全组织开始研究Web应用安全漏洞检测技术。

Web应用安全漏洞检测技术是安全检测技术在Web应用程序漏洞检测上的运用,首先它在对Web应用程序漏洞进行大量研究的基础上,对Web应用程序漏洞进行分类,并分析每种类型漏洞的特征码,形成Web应用程序安全漏洞库;然后借鉴安全漏洞检测技术的自动化检测原理,研发出Web应用漏洞检测工具。目前,基于Web应用安全检测技术研发的Web应用漏洞扫描产品,最有名的如IBM的APPSCAN,但是它的价格特别昂贵,一般的中小型企业负担不起,而且操作也非常复杂。其他的产品像SQL Inject Me只能检测Web应用程序中是否存在SQL注入漏洞,只能针对表单进行分析,而我们知道动态网页带参数的URL同样会存在SQL注入漏洞,而且该工具一次只能检测一个页面,无法对整个网站进行自动化测试。XSS Me是专门检测Web应用程序中是否存在XSS漏洞的工具,也存在跟SQL Inject Me同样的缺点。目前,国内相关厂商如绿盟科技、安恒信息、360等都有相关商用类Web应用安全扫描系统。Web应用安全漏洞检测技术的优点在于可以在Web应用受攻击前对Web应用进行健康检查,可以提早了解到Web应用存在的安全漏洞,并进行修补,降低系统受攻击的风险,是成本最低并且效果最好的Web安全防护手段。

Web应用漏洞扫描技术经历了单独的SQL注入验证、网站整站漏洞扫描、网站安全监测这几个重要阶段,下面简要介绍一下其技术特点。

1.单独的SQL注入验证

SQL注入验证主要针对发现的SQL注入漏洞的链接进行漏洞验证和渗透。主要代表作有NBSI、啊D注入工具、明小子SQL注入工具、Pangolin、URLScan等。

单独的SQL注入验证具有如下缺陷。(1)检测类型少。正如工具名称所述,单独的SQL注入验证工具只能针对SQL注入这一类型漏洞进行检测,并且大多只能做到GET、POST两个请求类型的SQL注入。(2)对人依赖性高。这类工具不能主动发现Web应用所存在的安全漏洞,只能依靠人手动发现漏洞后对其进行进一步的验证渗透,或者说发现能力偏弱,只能针对GET请求方式的参数进行漏洞检测。

2.网站整站漏洞扫描

随着Web应用技术的发展,涌现出一些新的安全漏洞,而单独的漏洞验证工具发现漏洞的能力较弱,因此,对于整站漏洞扫描的需求应运而生。该技术主要针对爬虫能力、漏洞检测策略提出了新的挑战。

网站整站漏洞扫描的优点是检测的网站类型全面、扫描的链接全面和检测的漏洞全面,对Web应用漏洞的检测能力比较强。

当然它也存在一些缺点,主要有:(1)存在漏洞误报率。由于Web应用技术比较复杂,程序员代码风格不尽相同,爬虫解析可能存在误报、解析出错的情况。(2)扫描速度慢。爬虫需要深度遍历整个网站链接,虽然通过配置可以过滤大部分可能重复的链接与参数,但是大多数网站过滤后都有成百上千的有效链接,同时部分链接存在多个参数,检测能力强的Web应用漏洞扫描产品针对一个漏洞可能需要构造几百个数据包来进行测试,以全面检测出网站链接是否真实存在安全漏洞。

3.网站安全监测

国家计算机网络应急技术处理协调中心的统计调查显示,网络安全事件表现出了新的特点,经由网页篡改获得经济利益现象普遍,被植入暗链的网站占全部被篡改网站的比例高达83%,实际情况中,大多黑色产业链人员为了防止被黑网站再次被攻克,往往会修复已知漏洞,但植入的暗链、违法广告仍然存在。基于此,引出了网站安全监测技术。网站安全监测技术在包含安全漏洞扫描的同时,增加了网站可用性、暗链、篡改、网页木马等安全时间的监测,可以全方位地了解Web应用当前的安全状态。第2章 Web系统及安全扫描技术2.1 Web系统2.1.1 Web的发展

Web全称为World Wide Web,即全球广域网,也称万维网,是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统,提供建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

1989年,CERN(European Organization for Particle Physics)的Tim Bemers-Lee提交了一个针对Internet的新协议和一个使用该协议的文档系统。该小组将这个新系统命名为World Wide Web,目的在于使全球的科学家能够利用Internet交换自己的工作文档。新系统允许Internet上任意一个用户都可以从许多文档服务计算机的数据库中搜索和获取文档。到1990年年末,新系统的基本框架已经在CERN中的一台NeXT计算机中开发并实现。1991年,该系统移植到了其他计算机平台并正式发布。

1994年,欧洲粒子物理研究所和美国麻省理工学院签订协议成立World Wide Web Consortium(即W3C,网址是www.w3.org),负责Web相关标准的制定。Web推动了互联网的普及,加快了世界信息化的进程。Web经历了从Web 1.0到Web 2.0的发展时代,未来甚至要发展到Web 3.0的时代。

Web 1.0是传统的主要为单向用户传递信息的Web应用。优点是能满足网民的新闻阅读、资料下载等需求,缺点是仅能阅读,不能参与。Web 1.0时代的代表站点有早期的新浪、搜狐、网易等门户网站。Web 2.0更注重用户的交互作用,使用者既是网络内容的获取者,也是网络内容的制造者。Web 2.0典型应用有论坛、博客、百科、微博等。Web 3.0目前还是抽象的概念,将以移动化、个性化为特点。2.1.2 Web系统构成

当两台计算机经由网络进行通信时,很多情况下是一台计算机作为客户机,另一台计算机作为服务器。客户机启动通信,请求服务器中存储的信息,然后服务器将该信息发送给客户机。与其他系统一样,Web也是基于客户机/服务器的配置运行的。

Web服务器中的文档是由浏览器进行请求的,浏览器是运行在客户机上的程序。由于用户可以利用它来浏览服务器中的可用资源,因此称为浏览器。最初的浏览器是基于文本的,不能显示任何类别的图形信息,也没有图形用户界面。这在很大程度上限制了Web应用的增长。1993年,随着Mosaic的出现,这一情况发生了变化。Mosaic是第一款具有图形界面的浏览器。它由美国伊利诺伊大学的超级计算机应用程序国家中心开发。Mosaic发布的第一个版本利用X Window系统运行在UNIX系统上。到1993年年末,又发布了可以运行在Apple Macintosh和Microsoft Windows系统上的版本。

图2.1所示为Web系统的构成图,描述了Web客户机(Web客户端)与Web服务器(Web服务器端)之间的交互过程。Web服务器监听客户端请求,返回相应的HTML内容。Web客户端一般指浏览器,浏览器利用HTTP协议同Web服务器进行交互,并通过URL定位Web服务器资源位置。图2.1 Web系统的构成图

当Web服务器开始运行时,会通知所处的操作系统已做好了准备,可以接受通过主机中某个端口接入的网络连接。当处于这种运行状态时,Web服务器将作为操作系统环境中的后台进程运行。Web客户机或者浏览器打开一个与Web服务器的网络连接,向服务器发送请求信息或者某些可能的数据,并接收服务器返回的信息,最后关闭连接。当然,网络连接中浏览器和服务器之间还存在其他机器,特别是网络路由器和域名服务器。但本节只关心Web通信中的一个部分:服务器。

简单地讲,Web服务器的主要任务就是监控主机的通信端口,通过该端口接收HTTP命令,并运行该命令指定的操作。所有HTTP命令都包含一个URL,其中包含主机名称。当接收到这个URL之后,Web服务器就将其转换为一个文件名称(向客户机返回一个文件)或者程序名称(执行该程序,并将运行结果返回给客户机)。

Web客户端、服务器端进行交互时要利用超文本传输协议(HyperText Transfer Protocol,HTTP),HTTP协议规定了Web服务器端和Web客户端进行请求和响应的细节。Web的信息资源通过超文本标记语言(HyperText Markup Language,HTML)来描述,可以很方便地使用一个超链接从本地页面的某处链接到因特网上的任何一个页面,并且能够在计算机屏幕上将这些页面显示出来。使用统一资源定位符URL(Uniform Resource Locator)来定位Web服务器上的文档资源,每个文档在因特网中具有唯一的标识符。使用HTTP的URL格式一般如下。

因此HTML、URL和HTTP三个规范构成了Web的核心体系结构,这是支撑Web运行的基石。通俗来说,浏览器通过URL找到网站,发出HTTP请求,服务器收到请求后返回HTML页面。

图2.2显示了Web的请求与响应过程,步骤如下。图2.2 Web的请求与响应过程(1)Web客户机或浏览器分析超链接指向页面的URL;(2)Web客户机或浏览器向域名系统DNS请求解析目标Web服务器的IP地址;(3)DNS解析目标Web服务器的IP地址;(4)Web客户机或浏览器连接到Web服务器,建立TCP连接;(5)Web客户机或浏览器发送请求,获取文件命令GET index.html;(6)服务器发送响应,把文件index.html发送给Web客户机或浏览器;(7)访问结束后,关闭连接,TCP连接释放;(8)Web客户机或浏览器显示目标Web服务器的主页文件index.html中的所有文本。

常见的Web浏览器产品有Mozilla Firefox、Internet Explorer、Microsoft Edge、Google Chrome、Opera、Safari、360和UC等。

浏览器最重要的部分是“Rendering Engine”,可译为“渲染引擎”,不过我们一般习惯将其称为“浏览器内核”,负责对网页语法进行解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有所不同,因此同一网页在不同内核的浏览器中的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

Web浏览器内核分为以下几种。(1)Trident:也叫IE内核,该内核在1997年的IE4中首次被采用,是微软在Mosaic代码的基础上修改而来的,使用该内核的浏览器为包括IE在内的众多国产浏览器。(2)Gecko:也叫Firefox内核,由Netscape 6最先采用,后来的Mozilla FireFox(火狐浏览器)也采用了该内核。Gecko的特点是代码完全公开,因此,其可开放程度很高,全世界的程序员都可以为其

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载