A. Web安全问题解答
很多新手都觉得自己的电脑web经常被木马侵袭,所以下面我为大家带来电脑基础知识学习之Web安全问题,让你了解下如何安全的保护好自己的电脑。
1、什么叫Web应用系统?
答:Web应用系统就是利用各种动态Web技术开发的,基于B/S(浏览器/服务器)模式的事务处理系统。用户直接面对的是客户端浏览器,使用Web应用系统时,用户通过浏览器发出的请求,其之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的。运算后得到的结果再通过网络传输给浏览器,返回给用户。比如:ERP系统、CRM系统以及常见的网站系统(如电子政务网站、企业网站等)都是Web应用系统。
2、为什么Google把我的网站列为恶意网站
答:Google在对网站内容进行搜索时,同时也会检查是否含有恶意软件或代码(这些恶意软件或代码可能威胁该网站的访问者)。如果该网站存在这样的恶意软件或代码,就会在用户搜索到该网站时,加上一个标记:“该网站可能含有恶意软件,有可能会危害您的电脑”。这将会使网站信誉受损,并导致潜在的用户流失。
3、Web威胁为什么难以防范
答:针对Web的攻击已经成为全球安全领域最大的挑战,主要原因有如下两点:
1. 企业业务迅速更新,需要大量的Web应用快速上线。而由于资金、进度、意识等方面的影响,这些应用没有进行充分安全评估。
2. 针对Web的攻击会隐藏在大量正常的业务行为中,而且使用各种变形伪装手段,会导致传统的防火墙和基于特征的入侵防御系统无法发现和阻止这种攻击。
4、黑客为什么要篡改网站页面
答:当黑客获取网站的控制权限后,往往会更改网站页面,可能的动机有:
1. 宣称政治主张;
2. 炫耀技术,建立“声望”;
3. 宣泄情绪;
4. 经济利益,通过网站释放木马,从而获取经济利益。
5、黑客实施网站挂马的目的是什么
答:网站挂马的主要目的是控制访问该网站的用户的计算机,从而可以进一步获取用户的计算机隐私信息而获利,或者将这些用户的计算机作为“肉鸡”,对 其它 服务器或网络进行DDos攻击。
6、为什么我网站的数据库表内容被大量替换?
答:如果排除了管理员误操作的可能性,则可能是网站服务器被自动化攻击工具(如sql注入工具等)攻击的结果。目前已经有自动化的工具对网站进行攻击,如果网站存在漏洞的话,攻击工具能够获得对网站数据库访问的权限。如果发现这种情况,应该仔细核查网站服务器和数据库服务器日志,找出更改记录。
7、在Web威胁防御中防火墙的优点和不足
答:防火墙可以过滤掉非业务端口的数据,防止非Web服务出现的漏洞,目前市场上可选择的防火墙品牌也较多。但对于目前大量出现在应用层面上的SQL注入和XSS漏洞,防火墙无法过滤,因而无法保护Web服务器所面临的应用层威胁。
8、常见发布系统之IIS
答:IIS 是Internet Information Server的缩写,是由微软开发的一种Web服务器(Web server)产品,用以支持HTTP、FTP和SMTP服务发布。 它主要运行在微软的 操作系统 之上,是最流行的Web服务器软件之一。
9、常见Web服务器之Apache
答:Apache是Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAhttpd服务器,经过多次修改,已成为世界上最流行的Web服务器软件之一。
10、Apache是不是比IIS要安全
答:早期的IIS在安全性方面存在着很大的问题,如果使用默认设置,黑客可以轻松趁虚而入。不过在IIS6中,微软公司对其安全方面进行了大幅改进。只要保证操作系统补丁更新及时,就可以将网站安全系数尽可能地提高。
Apache在安全方面一直做得比较好,更主要的原因是很多用户都是在linux系统下使用Apache。相对于微软的操作系统,Linux系统被发布的安全按漏洞更少一些。
从技术角度讲,两个Web服务器的安全性没有本质区别,一个完整的Web系统的安全性更取决于Web程序的安全性以及Web服务器配置的正确性。
11、什么叫应用防火墙
答:应用防火墙的概念在上个世纪九十年代就已经被提出,但在最近几年才真正走向成熟和应用。应用防火墙的概念与网络防火墙相对,网络防火墙关注网络层的访问控制,应用防火墙则关注应用层数据的过滤与控制。
12、什么叫网站防篡改系统
答:网站防篡改系统通过实时监控来保证Web系统的完整性,当监控到Web页面被异常修改后能够自动恢复页面。网站放篡改系统由于其设计理念的限制,对静态页面的防护能力比较好,对动态页面的防护则先天不足。
13、我的Web服务器被访问速度变慢,经常出现连接失败的现象,可能是什么原因造成的呢?
答:这可能有两个方面的情况,一种是网络方面的原因,如运营商的线路故障,或带宽消耗型的DDOS攻击;另外一种情况是服务器方面的原因,如感染病毒,或资源消耗型的拒绝服务攻击。
14、我的Web服务器部署了木马查杀软件,为什么还被挂了木马?
答:所谓的网页被挂马,很多情况下并不是有木马程序或代码被放到了Web服务器上,而是有一段跳转代码(本身不包含攻击信息)被放在了Web服务器上网页中。当远程用户访问带有跳转代码的页面时,将会执行这段代码,从另外一个地址下载并执行木马。所以,即使在Web服务器上部署了木马查杀软件,也会由于木马本身并不存在于服务器上,而无法避免网站被挂马。
15、我的Web服务器前端部署了入侵防御产品设备,入侵防御产品设备中包含了几百条的SQL注入攻击防御特征库,为什么我的Web系统还是被SQL注入攻击成功了呢?
答:SQL注入是一种没有固定特征的攻击行为,对安全设备来说,就是属于变种极多的攻击行为。所以,基于数据特征的SQL注入检测 方法 是没有办法穷尽所有组合的,会存在大量的误报、漏报可能。如果采用的入侵防御产品设备采用的是基于数据特征的检测方法,即使包含了数百条SQL注入特征库,也会有漏报出现。
16、黑客为什么喜欢攻击网站?
答:Web业务已经成为当前互联网最为流行的业务,大量的在线应用业务都依托于Web服务进行。并且一些大型网站的日访问量可达百万之巨,不论是直接攻击网站(如网络银行,在线游戏服务器)还是通过网站挂马窃取访问者信息,都可以使黑客获得直接的经济利益。另外一方面,网站是机构的网络形象,通过攻击篡改网站页面,也可以得到最大范围的名声传播。对于那些企图出名的黑客,攻击网站是一项不错的选择。
17、如何判断自己的Web服务器是否已经成为肉鸡?
答:如果发现自己的Web服务器上开启了一些奇怪的进程,发现Web服务器总是有大量从内往外的连接,发现Web服务器不定时系统缓慢,诸如此类的现象,可使用木马清除软件进行检查和查杀。
细分攻击形式:
18、目前国内Web应用系统存在哪些最突出的安全问题?
答:Web应用程序的漏洞是很难避免的,系统的安全隐患主要在三方面:
首先是网络运维人员或安全管理人员对Web系统的安全状况不清楚。哪些页面存在漏洞,哪些页面已经被挂马,他们不能够清晰的掌握,从而及时采取改正 措施 ;
其次,在安全设备的部署方面,没有选用专业的、针对Web业务攻击的防御产品对网站进行保护,而是寄托于防火墙这种访问控制类的网关安全设备;
另外,从安全响应来看,Web安全事件发生后的应急与处理也存在欠缺。没有相应的页面恢复系统,也没有处理Web安全事件的专业安全服务团队。很多单位没有制定实时监控的网站安全管理制度。
19、什么叫SQL注入
答:SQL注入就是利用现有应用程序,将恶意的SQL命令注入到网站后台数据库引擎执行的能力。SQL注入利用的是正常的HTTP服务端口,表面上看来和正常的Web访问没有区别,隐蔽性极强,不易被发现。
20、SQL注入有哪些危害
答:SQL注入的主要危害包括:
未经授权状况下操作数据库中的数据;
恶意篡改网页内容;
私自添加系统帐号或者是数据库使用者帐号;
网页挂木马;
21、什么叫XSS
答:跨站脚本攻击(XSS)是攻击者将恶意脚本提交到网站的网页中,使得原本安全的网页存在恶意脚本;或者是直接添加有恶意脚本的网页并诱使用户打开,用户访问网页后,恶意脚本就会将用户与网站的会话COOKIE及其它会话信息全部截留发送给攻击者,攻击者就可以利用用户的COOKIE正常访问网站。攻击者有时还会将这些恶意脚本以话题的方式提交到论坛中,诱使网站管理员打开这个话题,从而获得管理员权限,控制整个网站。跨站脚本漏洞主要是由于没有对所有用户的输入进行有效的验证所造成的,它影响所有的Web应用程序框架。
22、XSS有哪些危害
答:XSS攻击的危害包括:
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号;
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力;
盗窃企业重要的具有商业价值的资料;
非法转账;
强制发送电子邮件;
网站挂马;
控制受害者机器向其它网站发起攻击。
23、什么叫Shellcode
答:Shellcode实际是一段代码(也可以是填充数据),可以用来发送到服务器,利用已存在的特定漏洞造成溢出,通称“缓冲区溢出攻击”中植入进程的代码。这段代码可以是导致常见的恶作剧目的的弹出一个消息框弹出,也可以用来删改重要文件、窃取数据、上传木马病毒并运行,甚至是出于破坏目的的格式化硬盘等等。
24、什么叫网站漏洞
答:随着B/S模式被广泛的应用,用这种模式编写Web应用程序的程序员也越来越多。但由于开发人员的水平和 经验 参差不齐,相当一部分的开发人员在编写代码的时候,没有对用户的输入数据或者是页面中所携带的信息(如Cookie)进行必要的合法性判断,导致了攻击者可以利用这个编程漏洞来入侵数据库或者攻击Web应用程序的使用者,由此获得一些重要的数据和利益。
25、什么叫木马
答:木马(Trojan)这个名字来源于古希腊 传说 ,在互联网时代它通常是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。
26、什么叫网站挂马
答:“挂马” 就是黑客入侵了一些网站后,将自己编写的网页木马嵌入被黑网站的主页中。当访问者浏览被挂马页面时,自己的计算机将会被植入木马,黑客便可通过远程控制他们的计算机来实现不可告人的目的。网页木马就是将木马和网页结合在一起,打开网页的同时也会运行木马。最初的网页木马原理是利用IE浏览器的ActiveX控件,运行网页木马后会弹出一个控件下载提示,只有点击确认后才会运行其中的木马。这种网页木马在当时网络安全意识普遍不高的情况下还是有一点威胁的,但是其缺点显而易见,就是会出现ActiveX控件下载提示。现在很少会有人去点击那莫名其妙的ActiveX控件下载确认窗口了。在这种情况下,新的网页木马诞生了。这类网页木马通常利用IE浏览器的漏洞,在运行的时候没有丝毫提示,因此隐蔽性极高。
27、什么叫DOS./DDOS攻击?
答:DoS即Denial Of Service,拒绝服务的缩写。DoS是指利用网络协议实现的缺陷来耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃。在此攻击中并不包括侵入目标服务器或目标网络设备。这些被大量消耗的服务资源包括网络带宽、文件系统空间容量、开放的进程或者允许的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽有多高,都无法避免这种攻击带来的后果。
DDoS(Distributed Denial Of Service)又把DoS又向前发展了一大步,这种分布式拒绝服务攻击是黑客利用在已经被侵入并已被控制的、不同的高带宽主机(可能是数百,甚至成千上万台)上安装大量的DoS服务程序,它们等待来自中央攻击控制中心的命令。中央攻击控制中心再适时启动全体受控主机的DoS服务进程,让它们对一个特定目标发送尽可能多的网络访问请求,形成一股DoS洪流冲击目标系统,猛烈地DoS攻击同一个网站。被攻击的目标网站会很快失去反应而不能及时处理正常的访问甚至系统瘫痪崩溃。
28、什么叫网络钓鱼
答:网络钓鱼(Phishing,又名钓鱼法或钓鱼式攻击)是通过传播“声称来自于银行或其他知名机构”的欺骗信息,意图引诱受害者泄漏出敏感信息(如用户名、口令、帐号 ID 、 ATM PIN 码或信用卡详细信息)的一种攻击方式。最典型的网络钓鱼攻击将受害者引诱到一个与其目标网站非常相似的钓鱼网站上,并获取受害者在此网站上输入的个人敏感信息。通常这个攻击过程不会让受害者警觉。它是“社会工程攻击”的一种形式。
29、什么叫网络蠕虫
答:一般认为:蠕虫病毒是一种通过网络传播的恶性病毒,它除具有病毒的一些共性外,同时具有自己的一些特征。如:不利用文件寄生(有的只存在于内存中)、对网络造成拒绝服务,以及与黑客技术相结合,等等。蠕虫病毒主要的破坏方式是大量的复制自身,然后在网络中传播,严重占用有限的网络资源,最终引起整个网络的瘫痪,使用户不能通过网络进行正常的工作。每一次蠕虫病毒的爆发都会给全球经济造成巨大损失,因此它的危害性是十分巨大的。有一些蠕虫病毒还具有更改用户文件、将用户文件自动当附件转发的功能,更是严重的地危害到用户的 系统安全 。
30、什么叫僵尸网络
答:僵尸网络(英文名称叫BotNet),是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击。如:分布式拒绝服务攻击(DDoS)、海量垃圾邮件等。同时,黑客控制的这些计算机所保存的信息也都可以被黑客随意“取用”。因此,不论是对网络安全运行还是用户数据安全的保护,僵尸网络都是极具威胁的隐患。然而,发现一个僵尸网络是非常困难的,因为黑客通常远程、隐蔽地控制分散在网络上的“僵尸主机”,这些主机的用户往往并不知情。因此,僵尸网络是目前互联网上最受黑客青睐的作案工具。
31、什么是ARP攻击
答:ARP是地址解析协议,是一种将IP地址转化为MAC地址的协议。在网络中,当A主机需要向B主机发送报文时,会先查询本地的ARP缓存表,找到与B主机IP地址对应的MAC地址后,进行数据传输。如果未找到,则会发送一个广播ARP请求报文,请求对应B主机IP的B回应MAC地址。这个广播包会被整个广播域中所有主机收到,但只有B主机会发现IP地址对应自己,才会将MAC地址回应给A。此时A收到这个回应并更新自己的ARP缓存,进行下一步的数据传输。ARP攻击应当叫做ARP欺骗,就是冒充网关地址对网络中主机给出ARP查询回应,使得本来是A->网关的数据走向,变成A->攻击者->网关。
32、ARP攻击的危害有哪些?
答:ARP攻击的危害主要有两个方面。从ARP攻击的原理来看,这种攻击使得受害主机的所有网络数据都将通过攻击者进行转发。这样一来,要窃取信息或控制流量就变得轻而易举。另一方面,由于ARP缓存会不断刷新,有的时候,真正的网关会偶尔“清醒”。当真正的网关参与到数据包转发中来时,由于做了一个切换动作,可能会有频繁的短暂掉线现象。所以,如果Web服务器所在网络中发生了ARP攻击,将导致Web服务器不可访问。
细分攻击介质:
33、WEB应用系统(网站)会面临来自哪些方面的安全问题
答:网站面临的安全问题是方方面面的,主要可概括为以下四个方面:
1)操作系统、后台数据库的安全问题
这里指操作系统和后台数据库的漏洞,配置不当,如弱口令等等,导致黑客、病毒可以利用这些缺陷对网站进行攻击。
2)Web发布系统的漏洞
Web业务常用的发布系统(即Web服务器),如IIS、Apache等,这些系统存在的安全漏洞,会给入侵者可乘之机。
3)Web应用程序的漏洞
主要指Web应用程序的编写人员,在编程的过程中没有考虑到安全的因素,使得黑客能够利用这些漏洞发起对网站的攻击,比如SQL注入、跨站脚本攻击等等。
4)自身网络的安全状况
网站服务器所处的网络安全状况也影响着网站的安全,比如网络中存在的DoS攻击等,也会影响到网站的正常运营。
34、Web程序漏洞是怎么形成的
答:Web站点之所以存在如此众多的安全漏洞,是由下列所示的这些原因造成的:
1、 大部分的中小型网站都是使用某个建站模块建设的,而这些通用的建站模块不仅本身存在各种安全漏洞,同时一些使用它们的建站人员根本没有在建站完成后对站点进行安全加固。
2、 Web站点开发人员对安全不够重视,在编写网页时,没有对用户的输入进行验证,没有对数据的大小、类型和字符串进行规范,没有限制API函数对系统资源的使用,以及对Web服务器没有进行相应的资源限制,引起拒绝服务攻击。
3、 管理员对Web服务器主机系统及Web应用程序本身配置不当,一些中小企业自己管理的Web站点根本没有足够的技术人员来管理它们的安全。
4、 当Web站点是托管在某个电信机房时,对它们进行的远程管理存在安全风险。
5、 Web站点管理员本身技术水平的限制,对各种针对Web站点的安全攻击不了解,也没有端正工作态度,没能对站点进行认真的安全加固,以及进行日常的安全检查。
6、 Web站点所处网络大环境的安全设计不合理,以及没有将安全防范工作融入到站点整个生命周期的各个阶段。
7、 企业领导不够重视,在Web站点的安全防范方面投入的资金太少或不合理,没有制定一个有效的Web站点安全防范策略,明确Web站点日常管理流程,也没有对Web站点的管理人员和工作人员进行不断的安全培训。
35、黑客主要利用哪些方法对网站进行数据窃取和修改
答:黑客需要使用拥有一定权限的用户帐户才能对网站进行数据窃取和修改,所以可能造成用户权限泄漏或提升的漏洞,都可以被黑客利用来进行攻击,如SQL注入,溢出漏洞、暴力猜解等。
36、目前对Web服务器威胁较大的SQL注入工具有哪些?
答:网上常见的SQL注入工具有“啊D SQL注入工具”、pangolin、NBSI、HDSI、“管中窥豹注入工具”等。
37、目前对Web服务器威胁较大的XSS攻击工具有哪些?
答:网上常见的XSS攻击工具有sessionIE、Webscan、XSS Inject Scanner 等。
38、怎样应对Web业务安全事件
答:应对Web业务安全事件,从根本上的解决办法就是对Web应用程序源代码进行代码检查和漏洞修复,但是这会影响正常Web业务运行,而且费用较高。比较有效的解决方案是通过专业的Web业务安全检查工具或服务来检查网站安全状况,部署专业的Web安全产品。比如基于行为检测的入侵防御产品。同时在管理上,要求网管人员实时对网站进行监测,一旦发现网页被篡改等问题立刻进行页面恢复、删除恶意脚本等工作。
39、如何防御SQL注入
答:要想从根本上解决XSS攻击,就要对Web应用程序源代码进行检查,发现安全漏洞进行修改。但是这种方法在实际中给用户带来了不便,如:需要花费大量的人力财力、可能无法找到当时的网站开发人员、需要网站下线等。对代码进行修改后,由于增加了过滤条件和功能,同时也给服务器带来了计算压力。通常的解决方法是在数据库服务器前端部署入侵防御产品。SQL注入攻击具有变种多、隐蔽性强等特点,传统的特征匹配检测方式不能有效地进行防御,需要采用“基于攻击手法的行为监测”的入侵防御产品才能够精确地检测到SQL注入攻击。
40、如何防御XSS
答:要想从根本上解决XSS攻击,就要对Web应用程序源代码进行检查,发现安全漏洞进行修改。但是这种方法在实际中给用户带来了不便,如:需要花费大量的人力财力;可能无法找到当时的网站开发人员、需要网站下线等。对代码进行修改后,由于增加了过滤条件和功能,同时也给服务器带来了计算压力。通常的解决方法是在数据库服务器前端部署入侵防御产品。XSS攻击具有变种多、隐蔽性强等特点,传统的特征匹配检测方式不能有效地进行防御,需要采用基于攻击手法的行为监测的入侵防御产品产品才能够精确地检测到XSS攻击。
41、如何发现网站挂马
答:服务器被挂马,通常情况下,若出现诸如“弹出页面”,则可以比较容易发现,发现防病毒软件告警之类,则可以发现服务器被挂马;由于漏洞不断更新,挂马种类时刻都在变换,通过客户端的反映来发现服务器是否被挂马往往疏漏较大;正确的做法是经常性的检查服务器日志,发现异常信息;经常检查网站代码,借助于专业的检测工具来发现网页木马会大大提高工作效率和准确度。
B. 如何防御网站cc攻击
CC攻击的防御手段
1.提高服务器性能
CC攻击是以消耗服务器资源为主,那么高性能服务器硬件能力和充足的网络带宽资源可以提升系统对CC攻击的承载能力,不过提升服务器性能的成本要远比CC攻击成本高,所以谨慎使用。
2.网页静态化
纯静态的网页请求可以减少对服务器资源的消耗,提高服务器并发能力,从而让网站具有一定的抗CC能力。
3.使用负载均衡
现在很多云服务器商都提供负载均衡器,负载均衡器通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,消除单点故障并提升应用系统的可用性,可以解决一些中小型CC攻击,但其实这跟提高服务器性能一样,成本相当高,跟CC攻击比起来,差太远。
4.限制非法请求IP
一些简单的CC攻击其IP是非常少的,可以通过防火墙对CC攻击的IP进行屏蔽访问。这方法只适用于攻击方代理IP少的情况下有效。
5.限制浏览器UA
UA是识别浏览器的重要证明,一些CC工具的访问UA都是一样的,我们只要利用防火墙把对方的UA禁止访问,就可以达到防御作用。
6.限制IP请求频率
CC攻击为了达到消耗服务器的作用,每个IP都会对服务器进行频繁的访问,通过防火墙限制每个IP 10秒钟内可以访问多少次,超过会被暂时拦截,可有效防御CC攻击。
7.JS挑战
这是一种安全防御商常用的防御CC攻击的手段,通过对每个访问网站的访客进行JS质询,合法用户正常跳转,非法用户进行拦截。
8.CDN内容分发
CDN类似于负载均衡器, 不同的是CDN对源服务器配置要求高,普通CDN想要防御CC攻击,需要把网站内容全部缓存至CDN节点,让CC攻击尽可能少的请求进服务器,从而达到防御CC攻击的作用,不过CC攻击会产生大量的流量,如果你的CDN是按量计费的,那么请谨慎使用,一不小心就会产生大量的费用,造成严重经济损失。
9.推荐防御产品
目前市面上很多防御CC攻击的产品,不过很多效果并不理想,而且误杀几率很高,主机吧这里推荐网络云加速和京东云星盾,这两个都是高防CDN,而且都是大厂产品,主机吧代理网络云加速超过5年,网络云加速防御效果杠杠的,市面上几乎99.9%的CC攻击都是可以防御,而且误杀极低,推荐大家使用。相关链接
C. web安全攻击方式都有些什么
非法输入 Unvalidated Input
在数据被输入程序前忽略对数据合法性的检验是一个常见的编程漏洞。随着OWASP对Web应用程序脆弱性的调查,非法输入的问题已成为大多数Web应用程序安全漏洞方面的一个普遍现象。
失效的访问控制Broken Access Control
大部分企业都非常关注对已经建立的连接进行控制,但是,允许一个特定的字符串输入可以让攻击行为绕过企业的控制。
失效的账户和线程管理Broken Authentication and Session Management
有良好的访问控制并不意味着万事大吉,企业还应该保护用户的密码、会话令牌、账户列表及其它任何可为攻击者提供有利信息、能帮助他们攻击企业网络的内容。
跨站点脚本攻击Cross Site Scripting Flaws
这是一种常见的攻击,当攻击脚本被嵌入企业的Web页面或其它可以访问的Web资源中,没有保护能力的台式机访问这个页面或资源时,脚本就会被启动,这种攻击可以影响企业内成百上千员工的终端电脑。
缓存溢出问题Buffer Overflows
这个问题一般出现在用较早的编程语言、如C语言编写的程序中,这种编程错误其实也是由于没有很好地确定输入内容在内存中的位置所致。
注入式攻击Injection Flaws
如果没有成功地阻止带有语法含义的输入内容,有可能导致对数据库信息的非法访问,在Web表单中输入的内容应该保持简单,并且不应包含可被执行的代码。
异常错误处理Improper Error Handling
当错误发生时,向用户提交错误提示是很正常的事情,但是如果提交的错误提示中包含了太多的内容,就有可能会被攻击者分析出网络环境的结构或配置。
不安全的存储Insecure Storage
对于Web应用程序来说,妥善保存密码、用户名及其他与身份验证有关的信息是非常重要的工作,对这些信息进行加密则是非常有效的方式,但是一些企业会采用那些未经实践验证的加密解决方案,其中就可能存在安全漏洞。
程序拒绝服务攻击Application Denial of Service
与拒绝服务攻击 (DoS)类似,应用程序的DoS攻击会利用大量非法用户抢占应用程序资源,导致合法用户无法使用该Web应用程序。
不安全的配置管理Insecure Configuration Management
有效的配置管理过程可以为Web应用程序和企业的网络架构提供良好的保护
D. 常见的几种web攻击方式及原理
一、Dos攻击(Denial of Service attack)
是一种针对服务器的能够让服务器呈现静止状态的攻击方式。有时候也加服务停止攻击或拒绝服务攻击。其原理就是发送大量的合法请求到服务器,服务器无法分辨这些请求是正常请求还是攻击请求,所以都会照单全收。海量的请求会造成服务器停止工作或拒绝服务的状态。这就是Dos攻击。
二、跨站点请求伪造(CSRF,Cross-Site Request Forgeries)
是指攻击者通过已经设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态的更新。属于被动攻击。更简单的理解就是攻击者盗用了你的名义,以你的名义发送了请求。
一个CSRF最简单的例子就是用户A登录了网站A在虚拟账户里转账了1000块钱,用户A在本地生成了网站A的cookie,用户A在没有关闭网站A的情况下有访问了恶意网站B,恶意网站B包含请求A网站的代码,利用了本地的cookie经过身份验证的身份又向网站A发送了一次请求,这时你就会发现你在网站A的账户又少了1000块。这就是基本的CSRF攻击方式。
三、SOL注入攻击
是指通过对web连接的数据库发送恶意的SQL语句而产生的攻击,从而产生安全隐患和对网站的威胁,可以造成逃过验证或者私密信息泄露等危害。
SQL注入的原理是通过在对SQL语句调用方式上的疏漏,恶意注入SQL语句。
E. web漏洞攻击有哪些
一、SQL注入漏洞
SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。
通常情况下,SQL注入的位置包括:
(1)表单提交,主要是POST请求,也包括GET请求;
(2)URL参数提交,主要为GET请求参数;
(3)Cookie参数提交;
(4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;
(5)一些边缘的输入点,比如.mp3文件的一些文件信息等。
常见的防范方法
(1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。
(2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。
(3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
(4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
(5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
(7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
(8)在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
二、跨站脚本漏洞
跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。
XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。
XSS类型包括:
(1)非持久型跨站:即反射型跨站脚本漏洞,是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务端(比如数据库中)。上面章节所举的例子就是这类情况。
(2)持久型跨站:这是危害最直接的跨站类型,跨站代码存储于服务端(比如数据库中)。常见情况是某用户在论坛发贴,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript代码。
(3)DOM跨站(DOM XSS):是一种发生在客户端DOM(Document Object Model文档对象模型)中的跨站漏洞,很大原因是因为客户端脚本处理逻辑导致的安全问题。
常用的防止XSS技术包括:
(1)与SQL注入防护的建议一样,假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
(2)不仅要验证数据的类型,还要验证其格式、长度、范围和内容。
(3)不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
(4)对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。
(5)在发布应用程序之前测试所有已知的威胁。
三、弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:
(1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
(2)口令长度不小于8个字符。
(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
四、HTTP报头追踪漏洞
HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用。
防御HTTP报头追踪漏洞的方法通常禁用HTTP TRACE方法。
五、Struts2远程命令执行漏洞
ApacheStruts是一款建立Java web应用程序的开放源代码架构。Apache Struts存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java代码。
网站存在远程代码执行漏洞的大部分原因是由于网站采用了Apache Struts Xwork作为网站应用框架,由于该软件存在远程代码执高危漏洞,导致网站面临安全风险。CNVD处置过诸多此类漏洞,例如:“GPS车载卫星定位系统”网站存在远程命令执行漏洞(CNVD-2012-13934);Aspcms留言本远程代码执行漏洞(CNVD-2012-11590)等。
修复此类漏洞,只需到Apache官网升级Apache Struts到最新版本:http://struts.apache.org
六、文件上传漏洞
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。
因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。
七、私有IP地址泄露漏洞
IP地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping指令,Ping对方在网络中的名称而获得IP;在Internet上使用IP版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP。
针对最有效的“数据包分析方法”而言,就可以安装能够自动去掉发送数据包包头IP信息的一些软件。不过使用这些软件有些缺点,譬如:耗费资源严重,降低计算机性能;访问一些论坛或者网站时会受影响;不适合网吧用户使用等等。现在的个人用户采用最普及隐藏IP的方法应该是使用代理,由于使用代理服务器后,“转址服务”会对发送出去的数据包有所修改,致使“数据包分析”的方法失效。一些容易泄漏用户IP的网络软件(QQ、MSN、IE等)都支持使用代理方式连接Internet,特别是QQ使用“ezProxy”等代理软件连接后,IP版的QQ都无法显示该IP地址。虽然代理可以有效地隐藏用户IP,但攻击者亦可以绕过代理,查找到对方的真实IP地址,用户在何种情况下使用何种方法隐藏IP,也要因情况而论。
八、未加密登录请求
由于Web配置不安全,登陆请求把诸如用户名和密码等敏感字段未加密进行传输,攻击者可以窃听网络以劫获这些敏感信息。建议进行例如SSH等的加密后再传输。
九、敏感信息泄露漏洞
SQL注入、XSS、目录遍历、弱口令等均可导致敏感信息泄露,攻击者可以通过漏洞获得敏感信息。针对不同成因,防御方式不同
十、CSRF
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用,Web应用已经融入到日常生活中的各个方面:网上购物、网络银行应用、证券股票交易、政府行政审批等等。在这些Web访问中,大多数应用不是静态的网页浏览,而是涉及到服务器侧的动态处理。此时,如果Java、PHP、ASP等程序语言的编程人员的安全意识不足,对程序参数输入等检查不严格等,会导致Web应用安全问题层出不穷。
本文根据当前Web应用的安全情况,列举了Web应用程序常见的攻击原理及危害,并给出如何避免遭受Web攻击的建议。
Web应用漏洞原理
Web应用攻击是攻击者通过浏览器或攻击工具,在URL或者其它输入区域(如表单等),向Web服务器发送特殊请求,从中发现Web应用程序存在的漏洞,从而进一步操纵和控制网站,查看、修改未授权的信息。
1.1 Web应用的漏洞分类
1、信息泄露漏洞
信息泄露漏洞是由于Web服务器或应用程序没有正确处理一些特殊请求,泄露Web服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。
造成信息泄露主要有以下三种原因:
–Web服务器配置存在问题,导致一些系统文件或者配置文件暴露在互联网中;
–Web服务器本身存在漏洞,在浏览器中输入一些特殊的字符,可以访问未授权的文件或者动态脚本文件源码;
–Web网站的程序编写存在问题,对用户提交请求没有进行适当的过滤,直接使用用户提交上来的数据。
2、目录遍历漏洞
目录遍历漏洞是攻击者向Web服务器发送请求,通过在URL中或在有特殊意义的目录中附加“../”、或者附加“../”的一些变形(如“..\”或“..//”甚至其编码),导致攻击者能够访问未授权的目录,以及在Web服务器的根目录以外执行命令。
3、命令执行漏洞
命令执行漏洞是通过URL发起请求,在Web服务器端执行未授权的命令,获取系统信息,篡改系统配置,控制整个系统,使系统瘫痪等。
命令执行漏洞主要有两种情况:
–通过目录遍历漏洞,访问系统文件夹,执行指定的系统命令;
–攻击者提交特殊的字符或者命令,Web程序没有进行检测或者绕过Web应用程序过滤,把用户提交的请求作为指令进行解析,导致执行任意命令。
4、文件包含漏洞
文件包含漏洞是由攻击者向Web服务器发送请求时,在URL添加非法参数,Web服务器端程序变量过滤不严,把非法的文件名作为参数处理。这些非法的文件名可以是服务器本地的某个文件,也可以是远端的某个恶意文件。由于这种漏洞是由PHP变量过滤不严导致的,所以只有基于PHP开发的Web应用程序才有可能存在文件包含漏洞。
5、SQL注入漏洞
SQL注入漏洞是由于Web应用程序没有对用户输入数据的合法性进行判断,攻击者通过Web页面的输入区域(如URL、表单等) ,用精心构造的SQL语句插入特殊字符和指令,通过和数据库交互获得私密信息或者篡改数据库信息。SQL注入攻击在Web攻击中非常流行,攻击者可以利用SQL注入漏洞获得管理员权限,在网页上加挂木马和各种恶意程序,盗取企业和用户敏感信息。
6、跨站脚本漏洞
跨站脚本漏洞是因为Web应用程序时没有对用户提交的语句和变量进行过滤或限制,攻击者通过Web页面的输入区域向数据库或HTML页面中提交恶意代码,当用户打开有恶意代码的链接或页面时,恶意代码通过浏览器自动执行,从而达到攻击的目的。跨站脚本漏洞危害很大,尤其是目前被广泛使用的网络银行,通过跨站脚本漏洞攻击者可以冒充受害者访问用户重要账户,盗窃企业重要信息。
根据前期各个漏洞研究机构的调查显示,SQL注入漏洞和跨站脚本漏洞的普遍程度排名前两位,造成的危害也更加巨大。
1.2 SQL注入攻击原理
SQL注入攻击是通过构造巧妙的SQL语句,同网页提交的内容结合起来进行注入攻击。比较常用的手段有使用注释符号、恒等式(如1=1)、使用union语句进行联合查询、使用insert或update语句插入或修改数据等,此外还可以利用一些内置函数辅助攻击。
通过SQL注入漏洞攻击网站的步骤一般如下:
第一步:探测网站是否存在SQL注入漏洞。
第二步:探测后台数据库的类型。
第三步:根据后台数据库的类型,探测系统表的信息。
第四步:探测存在的表信息。
第五步:探测表中存在的列信息。
第六步:探测表中的数据信息。
1.3 跨站脚本攻击原理
跨站脚本攻击的目的是盗走客户端敏感信息,冒充受害者访问用户的重要账户。跨站脚本攻击主要有以下三种形式:
1、本地跨站脚本攻击
B给A发送一个恶意构造的Web URL,A点击查看了这个URL,并将该页面保存到本地硬盘(或B构造的网页中存在这样的功能)。A在本地运行该网页,网页中嵌入的恶意脚本可以A电脑上执行A持有的权限下的所有命令。
2、反射跨站脚本攻击
A经常浏览某个网站,此网站为B所拥有。A使用用户名/密码登录B网站,B网站存储下A的敏感信息(如银行帐户信息等)。C发现B的站点包含反射跨站脚本漏洞,编写一个利用漏洞的URL,域名为B网站,在URL后面嵌入了恶意脚本(如获取A的cookie文件),并通过邮件或社会工程学等方式欺骗A访问存在恶意的URL。当A使用C提供的URL访问B网站时,由于B网站存在反射跨站脚本漏洞,嵌入到URL中的恶意脚本通过Web服务器返回给A,并在A浏览器中执行,A的敏感信息在完全不知情的情况下将发送给了C。
3、持久跨站脚本攻击
B拥有一个Web站点,该站点允许用户发布和浏览已发布的信息。C注意到B的站点具有持久跨站脚本漏洞,C发布一个热点信息,吸引用户阅读。A一旦浏览该信息,其会话cookies或者其它信息将被C盗走。持久性跨站脚本攻击一般出现在论坛、留言簿等网页,攻击者通过留言,将攻击数据写入服务器数据库中,浏览该留言的用户的信息都会被泄漏。
Web应用漏洞的防御实现
对于以上常见的Web应用漏洞漏洞,可以从如下几个方面入手进行防御:
1)对 Web应用开发者而言
大部分Web应用常见漏洞,都是在Web应用开发中,开发者没有对用户输入的参数进行检测或者检测不严格造成的。所以,Web应用开发者应该树立很强的安全意识,开发中编写安全代码;对用户提交的URL、查询关键字、HTTP头、POST数据等进行严格的检测和限制,只接受一定长度范围内、采用适当格式及编码的字符,阻塞、过滤或者忽略其它的任何字符。通过编写安全的Web应用代码,可以消除绝大部分的Web应用安全问题。
2) 对Web网站管理员而言
作为负责网站日常维护管理工作Web管理员,应该及时跟踪并安装最新的、支撑Web网站运行的各种软件的安全补丁,确保攻击者无法通过软件漏洞对网站进行攻击。
除了软件本身的漏洞外,Web服务器、数据库等不正确的配置也可能导致Web应用安全问题。Web网站管理员应该对网站各种软件配置进行仔细检测,降低安全问题的出现可能。
此外,Web管理员还应该定期审计Web服务器日志,检测是否存在异常访问,及早发现潜在的安全问题。
3)使用网络防攻击设备
前两种为事前预防方式,是比较理想化的情况。然而在现实中,Web应用系统的漏洞还是不可避免的存在:部分Web网站已经存在大量的安全漏洞,而Web开发者和网站管理员并没有意识到或发现这些安全漏洞。由于Web应用是采用HTTP协议,普通的防火墙设备无法对Web类攻击进行防御,因此可以使用IPS入侵防御设备来实现安全防护。
H3C IPS Web攻击防御
H3C IPS入侵防御设备有一套完整的Web攻击防御框架,能够及时发现各种已经暴露的和潜在的Web攻击。下图为对于Web攻击的总体防御框架。
图1:Web攻击防御框架,参见:http://blog.csdn.net/moshenglv/article/details/53439579
H3C IPS采用基于特征识别的方式识别并阻断各种攻击。IPS设备有一个完整的特征库,并可定期以手工与自动的方式对特征库进行升级。当网络流量进入IPS后,IPS首先对报文进行预处理,检测报文是否正确,即满足协议定义要求,没有错误字段;如果报文正确,则进入深度检测引擎。该引擎是IPS检测的核心模块,对通过IPS设备的Web流量进行深层次的分析,并与IPS攻击库中的特征进行匹配,检测Web流量是否存在异常;如果发现流量匹配了攻击特征,IPS则阻断网络流量并上报日志;否则,网络流量顺利通过。
此Web攻击防御框架有如下几个特点:
1) 构造完整的Web攻击检测模型,准确识别各种Web攻击
针对Web攻击的特点,考虑到各种Web攻击的原理和形态,在不同漏洞模型之上开发出通用的、层次化的Web攻击检测模型,并融合到特征库中。这些模型抽象出Web攻击的一般形态,对主流的攻击能够准确识别,使得模型通用化。
2) 检测方式灵活,可以准确识别变形的Web攻击
在实际攻击中,攻击者为了逃避防攻击设备的检测,经常对Web攻击进行变形,如采用URL编码技术、修改参数等。H3C根据Web应用漏洞发生的原理、攻击方式和攻击目标,对攻击特征进行了扩展。即使攻击者修改攻击参数、格式、语句等内容,相同漏洞原理下各种变形的攻击同样能够被有效阻断。这使得IPS的防御范围扩大,防御的灵活性也显着增强,极大的减少了漏报情况的出现。
3) 确保对最新漏洞及技术的跟踪,有效阻止最新的攻击
随着Web攻击出现的频率日益增高,其危害有逐步扩展的趋势。这对IPS设备在防御的深度和广度上提出了更高的要求,不仅要能够防御已有的Web攻击,更要有效的阻止最新出现的、未公布的攻击。目前,H3C已经建立起一套完整的攻防试验环境,可以及时发现潜在Web安全漏洞。同时还在继续跟踪最新的Web攻击技术和工具,及时更新Web攻击的特征库,第一时间发布最新的Web漏洞应对措施,确保用户的网络不受到攻击。
4) 保证正常业务的高效运行
检测引擎是IPS整个设备运行的关键,该引擎使用了高效、准确的检测算法,对通过设备的流量进行深层次的分析,并通过和攻击特征进行匹配,检测流量是否存在异常。如果流量没有匹配到攻击特征,则允许流量通过,不会妨碍正常的网络业务,在准确防御的同时保证了正常业务的高效运行。
结束语
互联网和Web技术广泛使用,使Web应用安全所面临的挑战日益严峻,Web系统时时刻刻都在遭受各种攻击的威胁,在这种情况下,需要制定一个完整的Web攻击防御解决方案,通过安全的Web应用程序、Web服务器软件、Web防攻击设备共同配合,确保整个网站的安全。任何一个简单的漏洞、疏忽都会造成整个网站受到攻击,造成巨大损失。此外 ,Web攻击防御是一个长期持续的工作,随着Web技术的发展和更新,Web攻击手段也不断发展,针对这些最新的安全威胁,需要及时调整Web安全防护策略,确保Web攻击防御的主动性,使Web网站在一个安全的环境中为企业和客户服务。
原文链接:
F. 什么是 Web安全Web应用漏洞的防御实现
什么是 Web安全?
Web安全是计算机术语。随着Web2.0、社交网络等一系列新型的互联网产品诞生问世,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的窥探,接踵而至的就是Web安全威胁的凸显。
黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。
Web安全的现状及原因
目前,很多业务都依赖于互联网,无论是网上银行、网上购物、还是网络 游戏 等,恶意攻击者们出于各种不良目的,对Web 服务器进行攻击,想方设法通过各种手段获取他人的个人账户信息谋取利益。正是如此,Web业务平台最容易遭受攻击。
而针对Web服务器的攻击也是五花八门,常见的有挂马、SQL注入、缓冲区溢出、嗅探、利用IIS等针对Webserver漏洞进行攻击。
一方面,由于TCP/IP的设计是没有考虑安全问题的,网络上传输的数据是没有任何安全防护。攻击者们可利用系统漏洞造成系统进程缓冲区溢出,攻击者可能获得或者提升自己在有漏洞的系统上的用户权限来运行任意程序,甚至安装和运行恶意代码,窃取机密数据。
而应用层面的软件在开发过程中也没有过多考虑到安全的问题,这使得程序本身存在很多漏洞,诸如缓冲区溢出、SQL注入等等流行的应用层攻击,这些都属于在软件研发过程中疏忽了对安全的考虑所致。
另一方面,个人用户由于好奇心,被攻击者利用木马或病毒程序进行攻击,攻击者将木马或病毒程序捆绑在一些诱人的图片、音视频或免费软件等文件中,然后将这些文件置于某些网站当中,再引诱用户去单击或下载运行,或通过电子邮件附件和QQ、MSN等即时聊天软件,将这些捆绑了木马或病毒的文件发送给用户,让用户打开或运行这些文件。
Web安全的三个细分
Web安全主要分为:1、保护服务器及其数据的安全。2、保护服务器和用户之间传递的信息的安全。3、保护Web应用客户端及其环境安全这三个方面。
Web应用防火墙
Web应用安全问题本质上源于软件质量问题。但Web应用相较传统的软件,具有其独特性。Web应用往往是某个机构所独有的应用,对其存在的漏洞,已知的通用漏洞签名缺乏有效性;
需要频繁地变更以满足业务目标,从而使得很难维持有序的开发周期;需要全面考虑客户端与服务端的复杂交互场景,而往往很多开发者没有很好地理解业务流程;人们通常认为Web开发比较简单,缺乏经验的开发者也可以胜任。
Web应用安全,理想情况下应该在软件开发生命周期遵循安全编码原则,并在各阶段采取相应的安全措施。
然而,多数网站的实际情况是:大量早期开发的Web应用,由于 历史 原因,都存在不同程度的安全问题。对于这些已上线、正提供生产的Web应用,由于其定制化特点决定了没有通用补丁可用,而整改代码因代价过大变得较难施行或者需要较长的整改周期。
这种现状,专业的Web安全防护工具是一种合理的选择。WEB应用防火墙(以下简称WAF)正是这类专业工具,提供了一种安全运维控制手段:基于对HTTP/HTTPS流量的双向分析,为Web应用提供实时的防护。
Web应用漏洞的防御实现
对于常见的Web应用漏洞,应该从3个方面入手进行防御:
1、对 Web应用开发者而言
大部分Web应用常见漏洞都是在Web应用开发中,由于开发者没有对用户输入的参数进行检测或者检测不严格造成的。所以,Web应用开发者应该树立很强的安全意识,开发中编写安全代码;
对用户提交的URL、查询关键字、HTTP头、POST数据等进行严格的检测和限制,只接受一定长度范围内、采用适当格式及编码的字符,阻塞、过滤或者忽略其它的任何字符。通过编写安全的Web应用代码,可以消除绝大部分的Web应用安全问题。
2、对Web网站管理员而言
作为负责网站日常维护管理工作Web管理员,应该及时跟踪并安装最新的、支撑Web网站运行的各种软件的安全补丁,确保攻击者无法通过软件漏洞对网站进行攻击。
除了软件本身的漏洞外,Web服务器、数据库等不正确的配置也可能导致Web应用安全问题。Web网站管理员应该对网站各种软件配置进行仔细检测,降低安全问题的出现可能。
此外,Web管理员还应该定期审计Web服务器日志,检测是否存在异常访问,及早发现潜在的安全问题。
3、使用网络防攻击设备
前两种都是预防方式,相对来说很理想化。在现实中,Web应用系统的漏洞仍旧不可避免:部分Web网站已经存在大量的安全漏洞,而Web开发者和网站管理员并没有意识到或发现这些安全漏洞。
由于Web应用是采用HTTP协议,普通的防火墙设备无法对Web类攻击进行防御,因此需要使用入侵防御设备来实现安全防护。
G. web日志分析工具 怎么确认被攻击
Apache 服务器
预安装在Kali Linux
可以用以下命令开启:
service apache2 start
MySQL
预安装在Kali Linux
可以用以下命令开启:
service mysql start
使用PHP-MySQL创建一个有漏洞的web应用
我使用PHP开发了一个有漏洞的web应用并且把它放在上面提到的 Apache-MySQL里面。
上述设置完成后,我用了一些Kali Linux中的自动工具(ZAP、w3af)扫描这个有漏洞的应用的URL。
现在让我们来看看分析日志中的不同情况。
0x02 Apache服务中的日志记录
Debian系统上Apache服务器日志的默认位置为:/var/log/apache2/access.log
日志记录只是在服务器上存储日志。我还需要分析日志以得出正确结果。在接下来的一节里,我们将看到我们如何分析Apache服务器的访问日志以找出web站点上是否有攻击尝试。
分析日志
手动检查
在日志量较小的情况下,或者如果我们查找一个指定关键词,可以使用像grep表达式这样的工具观察日志。
在下图中,我们在URL中试图搜寻所有关键词为“union”的请求。
从上图中,我们可以看到URL中的“union select 1,2,3,4,5”请求。很明显,ip地址为 192.168.56.105的某人尝试了SQL注入。 类似地,当我们有自己的关键词时可以搜索特殊的关键词。
在下图中,我们正在搜索试图读取“/etc/passwd”的请求,很明显是本地文件包含尝试。
如上面的截图所示,我们有许多本地文件包含的尝试,且这些请求发送自ip地址 127.0.0.1。
很多时候,能轻易通过日志看出是否是自动化扫描器产生的。
举例来说, IBM appscan在许多攻击payload中使用“appscan”这个词。所以,在日志中查看这样的请求,我们基本就可以判断有人在使用appscan扫描网站。
Microsoft Excel也是一个打开日志文件和分析日志的不错的工具。我们可以通过指定“空格”为分隔符以用excel打开日志文件。
当我们手头没有日志分析工具时,这个也挺好用的。
除了这些关键词,在分析期间要了解HTTP状态代码的基础知识。以下是关于HTTP状态代码的高级信息的表格。
0x03 Web shells
webshell是网站/服务器的另一个问题。webshell可以已web server权限控制服务器。
在一些情况下,我们可以使用webshell来访问所有放在相同服务器上的其他站点。
以下截图显示了Microsoft Excel 中开启相同的access.log文件。
我们清楚地看到有一个叫“b374k.php”的文件被访问了。“b374k”是一个流行的webshell,因此这个文件是很可疑的。
查看相应代码“200”,本行表明有人上传了一个webshell并访问了它。
在许多情况下,攻击者重命名webshell的名字以避免怀疑。我们必须变得聪明点,看看被访问的文件是否是常规文件或者是否他们看起来不太一样。我们可以更进一步,如果任何文件看起来可疑的话,还可以查看文件类型和时间戳。
One single quote for the win
SQL注入是web应用中最常见的漏洞之一。大多数学习web应用安全的人是从学习SQL注入开始的。
识别一个传统的SQL注入很容易,给URL参数添加一个单引号看看是否报错。
任何我们传递给服务器的东西都会被记录,并且可以朔源。
以下截图显示了日志当中记录了有对参数user传入单引号测试是否有SQL注入的行为。
%27是单引号的URL编码。
出于管理目的,我们还可以运行查询监视来查看数据库中的哪个请求被执行了。
如果我们观察以上图片,传递一个单引号给参数“user”的SQL语句被执行了。
0x04 使用自动化工具分析
当存在大量日志时。手动检查就会变得困难。在这种情景下,除了一些手动检查之外我们可以使用自动化工具。
虽然有许多高效的商业工具,但是我要向你们介绍一款被称为“Scalp”的免费工具。
据他们的官方链接所说,Scalp是用于Apache服务器,旨在查找安全问题的日志分析器。主要理念是浏览大量日志文件并通过从HTTP/GET中提取可能的攻击。
Scalp可以从以下链接下载:
https://code.google.com/p/apache-scalp/
Scalp是python脚本,所以要求我们的机器中安装python。
以下图片显示该工具的帮助。
如我们在上图所见,我们需要使用标志-l来提供要分析的日志文件。
同时,我们需要提供使用标志-f提供一个过滤文件让Scalp在access.log文件中识别可能的攻击。
我们可以使用PHPIDS项目中的过滤器来检测任何恶意的尝试。
该文件名为“default_filter.xml ”,可以从以下链接中下载:
https://github.com/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filter.xml
以下代码块是取自上面链接的一部分。
1
2
3
4
5
6
7
8
9
10
11
<filter>
<id>12</id>
<rule><![CDATA[(?:etc\/\W*passwd)]]></rule>
<description>Detects etc/passwd inclusion attempts</description>
<tags>
<tag>dt</tag>
<tag>id</tag>
<tag>lfi</tag>
</tags>
<impact>5</impact>
</filter>
它是使用XML标签定义的规则集来检测不同的攻击测试。以上代码片段是检测文件包含攻击尝试的一个示例。
下载此文件之后,把它放入Scalp的同一文件夹下。
运行以下命令来使用Scalp分析日志。
1
python scalp-0.4.py –l /var/log/apache2/access.log –f filter.xml –o output –html
“output”是报告保存的目录。如果不存在的话,由Scalp自动创建。-html是用来生成HTML格式的报告。 如我们在上图看到的那样,Scalp结果表明它分析了4001行,超过4024并发现了296个攻击模式。
运行上述命令后在输出目录内生成报告。我们可以在浏览器内打开它并查看结果。 下面截图显示的输出显示了目录遍历攻击尝试的一小部分。
MySQL中的日志记录
本节论述了数据库中的攻击分析和监视它们的方法。
第一步是查看设置了什么变量。我们可以使用“show variables;”完成,如下所示。
接下来显示了上述命令的输出。
如我们在上图中看到的,日志记录已开启。该值默认为OFF。
这里另一个重要的记录是 “log_output”,这是说我们正在把结果写入到文件中。另外,我们也可以用表。
我们可以看见“log_slow_queries”为ON。默认值为OFF。
所有这些选项都有详细解释且可以在下面提供的MySQL文档链接里直接阅读:
MySQL的查询监控
请求日志记录从客户端处收到并执行的语句。默认记录是不开启的,因为比较损耗性能。
我们可以从MySQL终端中开启它们或者可以编辑MySQL配置文件,如下图所示。
我正在使用VIM编辑器打开位于/etc/mysql目录内的“my.cnf”文件。
如果我们向下滚动,可以看见日志正被写入一个称为“mysql.log”的文件内。
我们还能看到记录“log_slow_queries” ,是记录SQL语句执行花了很长时间的日志。
现在一切就绪。如果有人用恶意查询数据库,我们可以在这些日志中观察到。如下所示:
上图显示了查询命中了名为“webservice”的数据库并试图使用SQL注入绕过认证。
H. 关于WebGL的基本现状
WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。
显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等。
WebGL 的最大优势就是能通过网页做到快速传播,用酷炫的图形体验达到营销宣传等目的。
WebGL基本现状
WebGL 1.0 基本有98%的设备支持率,而 WebGL 2.0 有大概49%的设备支持率,并逐步在上升。
其中 WebGL 2.0 的重要特性有
WebAssembly方面:许多 C3D 引擎都开始涉及这块领域。比如 oryol,一个轻量级的 C 框架。其中物理模拟的部分通过 Webassembly 的方式去做,在 web 上做了个布料模拟的 demo。当然 Unity 和 Unreal 也都推出了自己基于 Webassembly 的 demo:
Unity:两个 demo,分别为:tank,webgl_linear。
Unreal:EpicZenGarden。
研发描述:在 WebGL 实现 OpenGL ES 3.1 的功能,主要是 Compute Shader!
研发状态:
对于 OpenGL 和 D3D 后端 Compute Shader 都基本完成,通过在 Chrome 中设置 flag enable-webgl2-compute-context 可以使用。
基于 Compute Shader 的 Tensorflow.js 基本可以运行。
研发计划:
在今年末实现所有 Compute Shader 的特性。
在 Emscripten 中支持 WebGL 2.0。
将 Native dEQP ES 3.1 的样例移植到Web端。
根据需求实现 OpenGL ES 3.1的其他特性
WebGL 研发中的新特性
英特尔的先进网络科技团队对 WebGL 的生态系统做出了许多贡献,因此新特性部分主要由他们来展示。
WebGL 2.0 Compute
常见的Web开发软件
基于 WEBGL 的 3D:three.js , osgjs
其中 three.js 最火爆,是纯JS包osg 还有对应的 C++ 跟 .NET 包, OSGJS 并不是 OSG 的重点;
专注于 WEB 3D GIS 的 WEBGL:osmstreet、openwebglobe、readymap这个是做 3D 城市规划的;
基于 IE ACTIVEX OCX 的 3D:unity3D , 很火, 做WEB游戏,做 anroid 游戏, IE CHORME 都可以google earth 学习成本低;
基于 AS3 的 3D:Away3d、FLASH 正在走下坡;
下方
运营:weikashouji
I. web服务器可能会存在那些问题应如何防范
(1)服务器向公众提供了不应该提供的服务。
(2)服务器把本应私有的数据放到了可公开访问的区域。用户Web应用需要保存一些私有的、不能从Web访问的数据,则根本无法找到满足要求的位置。
(3)服务器信赖了来自不可信赖数据源的数据。常见的安全问题是CGI程序或PHP脚本的质量低下,它们信任了来源不可靠的参数,未经严格的检查就立即使用CGI参数。
防范措施:
(1)提供不应该提供的服务的防范措施:只开放必需的端口,关闭其余的端口,关闭在自己的系统上运行那么多的服务,而这些服务原本无需在正式提供Web服务的机器上运行,或者这些服务原本无需面向公众开放。对于所有向公众开放的服务,应该密切关注其程序的最新版本和安全信息,应该做好一旦发现与这些程序有关的安全问题就立即升级软件的准备。
(2)服务器公用目录下的私有数据安全性的防范措施:设置Web服务器,使它既提供私有数据存储又提供公用页面目录。
(3)数据源的可靠性防范措施:通常,来自外面的数据(比如表单变量的数据)应该先传入检验其合法性的函数。只有当检验函数表示表单提供的数据是安全的,才可以把表单数据复制到会话变量。Web应用应该把这种检查集中到一起进行,应用的所有其余部分永远不应该直接接触表单变量,而是应该使用经过检查且确认安全的会话数据。
J. 基于web的安全防范措施的研究与应用
一、计算机网络攻击的常见手法
互联网发展至今,除了它表面的繁荣外,也出现了一些不良现象,其中黑客攻击是最令广大网民头痛的事情,它是计算机网络安全的主要威胁。下面着重分析黑客进行网络攻击的几种常见手法及其防范措施。
(一)利用网络系统漏洞进行攻击
许多网络系统都存在着这样那样的漏洞,这些漏洞有可能是系统本身所有的,如WindowsNT、UNIX等都有数量不等的漏洞,也有可能是由于网管的疏忽而造成的。黑客利用这些漏洞就能完成密码探测、系统入侵等攻击。
对于系统本身的漏洞,可以安装软件补丁;另外网管也需要仔细工作,尽量避免因疏忽而使他人有机可乘。
(二)通过电子邮件进行攻击
电子邮件是互联网上运用得十分广泛的一种通讯方式。黑客可以使用一些邮件炸弹软件或CGI程序向目的邮箱发送大量内容重复、无用的垃圾邮件,从而使目的邮箱被撑爆而无法使用。当垃圾邮件的发送流量特别大时,还有可能造成邮件系统对于正常的工作反映缓慢,甚至瘫痪,这一点和后面要讲到的“拒绝服务攻击(DDoS)比较相似。
对于遭受此类攻击的邮箱,可以使用一些垃圾邮件清除软件来解决,其中常见的有SpamEater、Spamkiller等,Outlook等收信软件同样也能达到此目的。
(三)解密攻击
在互联网上,使用密码是最常见并且最重要的安全保护方法,用户时时刻刻都需要输入密码进行身份校验。而现在的密码保护手段大都认密码不认人,只要有密码,系统就会认为你是经过授权的正常用户,因此,取得密码也是黑客进行攻击的一重要手法。取得密码也还有好几种方法,一种是对网络上的数据进行监听。因为系统在进行密码校验时,用户输入的密码需要从用户端传送到服务器端,而黑客就能在两端之间进行数据监听。但一般系统在传送密码时都进行了加密处理,即黑客所得到的数据中不会存在明文的密码,这给黑客进行破解又提了一道难题。这种手法一般运用于局域网,一旦成功攻击者将会得到很大的操作权益。另一种解密方法就是使用穷举法对已知用户名的密码进行暴力解密。这种解密软件对尝试所有可能字符所组成的密码,但这项工作十分地费时,不过如果用户的密码设置得比较简单,如“12345”、“ABC”等那有可能只需一眨眼的功夫就可搞定。
为了防止受到这种攻击的危害,用户在进行密码设置时一定要将其设置得复杂,也可使用多层密码,或者变换思路使用中文密码,并且不要以自己的生日和电话甚至用户名作为密码,因为一些密码破解软件可以让破解者输入与被破解用户相关的信息,如生日等,然后对这些数据构成的密码进行优先尝试。另外应该经常更换密码,这样使其被破解的可能性又下降了不少。
(四)后门软件攻击
后门软件攻击是互联网上比较多的一种攻击手法。Back Orifice2000、冰河等都是比较着名的特洛伊木马,它们可以非法地取得用户电脑的超级用户级权利,可以对其进行完全的控制,除了可以进行文件操作外,同时也可以进行对方桌面抓图、取得密码等操作。这些后门软件分为服务器端和用户端,当黑客进行攻击时,会使用用户端程序登陆上已安装好服务器端程序的电脑,这些服务器端程序都比较小,一般会随附带于某些软件上。有可能当用户下载了一个小游戏并运行时,后门软件的服务器端就安装完成了,而且大部分后门软件的重生能力比较强,给用户进行清除造成一定的麻烦。
当在网上下载数据时,一定要在其运行之前进行病毒扫描,并使用一定的反编译软件,查看来源数据是否有其他可疑的应用程序,从而杜绝这些后门软件。
(五)拒绝服务攻击
互联网上许多大网站都遭受过此类攻击。实施拒绝服务攻击(DDoS)的难度比较小,但它的破坏性却很大。它的具体手法就是向目的服务器发送大量的数据包,几乎占取该服务器所有的网络宽带,从而使其无法对正常的服务请求进行处理,而导致网站无法进入、网站响应速度大大降低或服务器瘫痪。现在常见的蠕虫病毒或与其同类的病毒都可以对服务器进行拒绝服务攻击的进攻。它们的繁殖能力极强,一般通过Microsoft的Outlook软件向众多邮箱发出带有病毒的邮件,而使邮件服务器无法承担如此庞大的数据处理量而瘫痪。
对于个人上网用户而言,也有可能遭到大量数据包的攻击使其无法进行正常的网络操作,所以大家在上网时一定要安装好防火墙软件,同时也可以安装一些可以隐藏IP地址的程序,怎样能大大降低受到攻击的可能性。
二、计算机网络安全的防火墙技术
计算机网络安全是指利用网络管理控制和技术措施,保证在一个网络环境里,信息数据的保密性、完整性和可使用性受到保护。网络安全防护的根本目的,就是防止计算机网络存储、传输的信息被非法使用、破坏和篡改。防火墙技术正是实现上述目的一种常用的计算机网络安全技术。
(一)防火墙的含义
所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络,防止他们更改、拷贝、毁坏你的重要信息。
(二)防火墙的安全性分析
防火墙对网络的安全起到了一定的保护作用,但并非万无一失。通过对防火墙的基本原理和实现方式进行分析和研究,作者对防火墙的安全性有如下几点认识:
1.只有正确选用、合理配置防火墙,才能有效发挥其安全防护作用
防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系统,配置有效的防火墙应遵循这样四个基本步骤:
a.风险分析;
b.需求分析;
c.确立安全政策;
d.选择准确的防护手段,并使之与安全政策保持一致。
然而,多数防火墙的设立没有或很少进行充分的风险分析和需求分析,而只是根据不很完备的安全政策选择了一种似乎能“满足”需要的防火墙,这样的防火墙能否“防火”还是个问题。
2.应正确评估防火墙的失效状态
评价防火墙性能如何,及能否起到安全防护作用,不仅要看它工作是否正常,能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马迹,而且要看到一旦防火墙被攻破,它的状态如何? 按级别来分,它应有这样四种状态:
a.未受伤害能够继续正常工作;
b.关闭并重新启动,同时恢复到正常工作状态;
c.关闭并禁止所有的数据通行;
d. 关闭并允许所有的数据通行。
前两种状态比较理想,而第四种最不安全。但是许多防火墙由于没有条件进行失效状态测试和验证,无法确定其失效状态等级,因此网络必然存在安全隐患。
3.防火墙必须进行动态维护
防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻注视商家的动态。因为商家一旦发现其产品存在安全漏洞,就会尽快发布补救(Patch) 产品,此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。
4.目前很难对防火墙进行测试验证
防火墙能否起到防护作用,最根本、最有效的证明方法是对其进行测试,甚至站在“黑客”的角度采用各种手段对防火墙进行攻击。然而具体执行时难度较大,主要原因是:
a.防火墙性能测试目前还是一种很新的技术,尚无正式出版刊物,可用的工具和软件更是寥寥无几。据了解目前只有美国ISS公司提供有防火墙性能测试的工具软件。
b.防火墙测试技术尚不先进,与防火墙设计并非完全吻合,使得测试工作难以达到既定的效果。
c.选择“谁”进行公正的测试也是一个问题。
可见,防火墙的性能测试决不是一件简单的事情,但这种测试又相当必要,进而提出这样一个问题:不进行测试,何以证明防火墙安全?
5.非法攻击防火墙的基本“招数”
a. IP地址欺骗攻击。许多防火墙软件无法识别数据包到底来自哪个网络接口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地址缺乏识别和验证的机制而得成的。
b.破坏防火墙的另一种方式是攻击与干扰相结合。也就是在攻击期间使防火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的职能,处于失效状态。
c.防火墙也可能被内部攻击。因为安装了防火墙后,随意访问被严格禁止了, 这样内部人员无法在闲暇的时间通过Telnet浏览邮件或使用FTP向外发送信息,个别人会对防火墙不满进而可能攻击它、破坏它,期望回到从前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,因此不仅涉及网络安全,还涉及主机安全问题。
(三)防火墙的基本类型
实现防火墙的技术包括四大类:网络级防火墙(也叫包过滤型防火墙)、应用级网关、电路级网关和规则检查防火墙。
1.网络级防火墙
一般是基于源地址和目的地址、应用或协议以及每个IP包的端口来作出通过与否的判断。一个路由器便是一个“传统”的网络级防火墙,大多数的路由器都能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来自何方,去向何处。
先进的网络级防火墙可以判断这一点,它可以提供内部信息以说明所通过的连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如Telnet、FTP连接。
下面是某一网络级防火墙的访问控制规则:
(1)允许网络123.1.0使用FTP(21口)访问主机150.0.0.1;
(2)允许IP地址为202.103.1.18和202.103.1.14的用户Telnet (23口)到主机150.0.0.2上;
(3)允许任何地址的E-mail(25口)进入主机150.0.0.3;
(4)允许任何WWW数据(80口)通过;
(5)不允许其他数据包进入。
网络级防火墙简洁、速度快、费用低,并且对用户透明,但是对网络的保护很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
2.规则检查防火墙
该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它同包过滤防火墙一样, 规则检查防火墙能够在OSI网络层上通过IP地址和端口号,过滤进出的数据包。它也象电路级网关一样,能够检查SYN和ACK标记和序列数字是否逻辑有序。当然它也象应用级网关一样, 可以在OSI应用层上检查数据包的内容,查看这些内容是否能符合公司网络的安全规则。规则检查防火墙虽然集成前三者的特点,但是不同于一个应用级网关的是,它并不打破客户机/服务机模式来分析应用层的数据, 它允许受信任的客户机和不受信任的主机建立直接连接。规则检查防火墙不依靠与应用层有关的代理,而是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式来比较进出数据包,这样从理论上就能比应用级代理在过滤数据包上更有效。
目前在市场上流行的防火墙大多属于规则检查防火墙,因为该防火墙对于用户透明,在OSI最高层上加密数据,不需要你去修改客户端的程序,也不需对每个需要在防火墙上运行的服务额外增加一个代理。如现在最流行的防火墙之一OnTechnology软件公司生产的OnGuard和CheckPoint软件公司生产的FireWall-1防火墙都是一种规则检查防火墙。
从趋势上看,未来的防火墙将位于网络级防火墙和应用级防火墙之间,也就是说,网络级防火墙将变得更加能够识别通过的信息,而应用级防火墙在目前的功能上则向“透明”、“低级”方面发展。最终防火墙将成为一个快速注册稽查系统,可保护数据以加密方式通过,使所有组织可以放心地在节点间传送数据。
(四)防火墙的配置
防火墙配置有三种:Dual-homed方式、Screened-host方式和Screened-subnet方式。Dual-homed方式最简单。 Dual-homedGateway放置在两个网络之间,这个Dual-omedGateway又称为bastionhost。 这种结构成本低,但是它有单点失败的问题。这种结构没有增加网络安全的自我防卫能力,而它往往是受“黑客”攻击的首选目标,它自己一旦被攻破,整个网络也就暴露了。Screened-host方式中的Screeningrouter为保护Bastionhost的安全建立了一道屏障。它将所有进入的信息先送往Bastionhost,并且只接受来自Bastionhost的数据作为出去的数据。这种结构依赖Screeningrouter和Bastionhost,只要有一个失败,整个网络就暴露了。Screened-subnet包含两个Screeningrouter和两个Bastionhost。 在公共网络和私有网络之间构成了一个隔离网,称之为"停火区"(DMZ,即DemilitarizedZone),Bastionhost放置在"停火区"内。这种结构安全性好,只有当两个安全单元被破坏后,网络才被暴露,但是成本也很昂贵。
(五)防火墙的安全措施
各种防火墙的安全性能不尽相同。这里仅介绍一些一般防火墙的常用安全措施:
1.防电子欺骗术
防电子欺骗术功能是保证数据包的IP地址与网关接口相符,防止通过修改IP地址的方法进行非授权访问。还应对可疑信息进行鉴别,并向网络管理员报警。
2.网络地址转移
地址转移是对Internet隐藏内部地址,防止内部地址公开。这一功能可以克服IP寻址方式的诸多限制,完善内部寻址模式。把未注册IP地址映射成合法地址,就可以对Internet进行访问。
3.开放式结构设计
开放式结构设计使得防火墙与相关应用程序和外部用户数据库的连接相当容易,典型的应用程序连接如财务软件包、病毒扫描、登录分析等。
4.路由器安全管理程序
它为Bay和Cisco的路由器提供集中管理和访问列表控制。
(六)传统防火墙的五大不足
1.无法检测加密的Web流量
如果你正在部署一个光键的门户网站,希望所有的网络层和应用层的漏洞都被屏蔽在应用程序之外。这个需求,对于传统的网络防火墙而言,是个大问题。
由于网络防火墙对于加密的SSL流中的数据是不可见的,防火墙无法迅速截获SSL数据流并对其解密,因此无法阻止应用程序的攻击,甚至有些网络防火墙,根本就不提供数据解密的功能。
2、普通应用程序加密后,也能轻易躲过防火墙的检测
网络防火墙无法看到的,不仅仅是SSL加密的数据。对于应用程序加密的数据,同样也不可见。在如今大多数网络防火墙中,依赖的是静态的特征库,与入侵监测系统(IDS,Intrusion Detect System)的原理类似。只有当应用层攻击行为的特征与防火墙中的数据库中已有的特征完全匹配时,防火墙才能识别和截获攻击数据。
但如今,采用常见的编码技术,就能够地将恶意代码和其他攻击命令隐藏起来,转换成某种形式,既能欺骗前端的网络安全系统,又能够在后台服务器中执行。这种加密后的攻击代码,只要与防火墙规则库中的规则不一样,就能够躲过网络防火墙,成功避开特征匹配。
3、对于Web应用程序,防范能力不足
网络防火墙于1990年发明,而商用的Web服务器,则在一年以后才面世。基于状态检测的防火墙,其设计原理,是基于网络层TCP和IP地址,来设置与加强状态访问控制列表(ACLs,Access Control Lists)。在这一方面,网络防火墙表现确实十分出色。
近年来,实际应用过程中,HTTP是主要的传输协议。主流的平台供应商和大的应用程序供应商,均已转移到基于Web的体系结构,安全防护的目标,不再只是重要的业务数据。网络防火墙的防护范围,发生了变化。
对于常规的企业局域网的防范,通用的网络防火墙仍占有很高的市场份额,继续发挥重要作用,但对于新近出现的上层协议,如XML和SOAP等应用的防范,网络防火墙就显得有些力不从心。
由于体系结构的原因,即使是最先进的网络防火墙,在防范Web应用程序时,由于无法全面控制网络、应用程序和数据流,也无法截获应用层的攻击。由于对于整体的应用数据流,缺乏完整的、基于会话(Session)级别的监控能力,因此很难预防新的未知的攻击。
4、应用防护特性,只适用于简单情况
目前的数据中心服务器,时常会发生变动,比如:
★ 定期需要部署新的应用程序;
★ 经常需要增加或更新软件模块;
★ QA们经常会发现代码中的bug,已部署的系统需要定期打补丁。
在这样动态复杂的环境中,安全专家们需要采用灵活的、粗粒度的方法,实施有效的防护策略。
虽然一些先进的网络防火墙供应商,提出了应用防护的特性,但只适用于简单的环境中。细看就会发现,对于实际的企业应用来说,这些特征存在着局限性。在多数情况下,弹性概念(proof-of-concept)的特征无法应用于现实生活中的数据中心上。
比如,有些防火墙供应商,曾经声称能够阻止缓存溢出:当黑客在浏览器的URL中输入太长数据,试图使后台服务崩溃或使试图非法访问的时候,网络防火墙能够检测并制止这种情况。
细看就会发现,这些供应商采用对80端口数据流中,针对URL长度进行控制的方法,来实现这个功能的。
如果使用这个规则,将对所有的应用程序生效。如果一个程序或者是一个简单的Web网页,确实需要涉及到很长的URL时,就要屏蔽该规则。
网络防火墙的体系结构,决定了网络防火墙是针对网络端口和网络层进行操作的,因此很难对应用层进行防护,除非是一些很简单的应用程序。
5、无法扩展带深度检测功能
基于状态检测的网络防火墙,如果希望只扩展深度检测(deep inspection)功能,而没有相应增加网络性能,这是不行的。
真正的针对所有网络和应用程序流量的深度检测功能,需要空前的处理能力,来完成大量的计算任务,包括以下几个方面:
★ SSL加密/解密功能;
★ 完全的双向有效负载检测;
★ 确保所有合法流量的正常化;
★ 广泛的协议性能;
这些任务,在基于标准PC硬件上,是无法高效运行的,虽然一些网络防火墙供应商采用的是基于ASIC的平台,但进一步研究,就能发现:旧的基于网络的ASIC平台对于新的深度检测功能是无法支持的。
三、结束语
由于互联网络的开放性和通信协议的安全缺陷,以及在网络环境中数据信息存储和对其访问与处理的分布性特点,网上传输的数据信息很容易泄露和被破坏,网络受到的安全攻击非常严重,因此建立有效的网络安全防范体系就更为迫切。实际上,保障网络安全不但需要参考网络安全的各项标准以形成合理的评估准则,更重要的是必须明确网络安全的框架体系、安全防范的层次结构和系统设计的基本原则,分析网络系统的各个不安全环节,找到安全漏洞,做到有的放矢。