分享
 
 
 

mod_security保障Web Services的安全一(图)

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Web服务正在变为下一代web应用的一个完整部分。但是它也较轻易被攻击。这些攻击的种类与传统的web应用所受到的攻击是相同的,但是形式上发生了变化。这些攻击会导致信息泄漏;另外,这些攻击有助于执行远程命令。通过使用WSDL,一个攻击者能够确定web服务的入口和可用的接口。这些接口或方法使用SOAP协议通过HTTP/HTTPS方式得到输入。假如在源代码层没有好的保护,您的应用就会处于危险。mod_security作为一个Apache web服务器模块,是一种保护web服务免受恶意攻击(包括封装在SOAP封套内的恶意数据)的理想解决方案。

问题域

Web服务所遭到的四种主要攻击:

变量长度缓冲区(Variable-length buffer)注入

元字符注入

SQL注入

SOAP错误代码信息暴露(译者注:是指返回的Exception信息的暴露)

通常防火墙配置会答应HTTP/HTTPS传输无碍的进入。通常对web服务的攻击会伪装成合法的HTTP/HTTPS传输,从而蒙骗了防火墙。这篇文章将告诉您如何区分合法的HTTP/HTTPS传输和恶意的HTTP/HTTPS传输,并截获恶意传输。这样将能够在很大程度上减轻对80/443端口的攻击。

解决方案是什么?

有很多解决方案,从安全代码到输入验证。一个途径是通过对每一个请求的内容用事先定义好的规则进行验证。这种途径在源代码层上阻止了恶意SOAP请求渗透入web服务。如您为web服务正确部署并配置了mod_security,它将能够阻止所有上述的攻击。这篇文章将具体的讨论mod_security如何能成为web 服务有效的防范工具。

当部署完web服务后,提供一个防御手段来防范不同类型的攻击是很重要的。每一种攻击都需要不同的防范策略。假设有这么一个银行—这个银行仅仅是一个作为例子的假想银行。

Blue 银行(www.bluebank.example.com)最近刚刚部署了web服务,并使用mod_security对web服务进行保护。该银行通过internet向它的金融合作伙伴和客户提供银行服务。它的web服务提供在线的客户服务,比如帐目结算,资金周转和更改用户信息。图1解释了在Blue Bank部署的web服务的架构。

图 1. Blue银行的部署

有许多部署web服务的方法。在这个例子中,web服务运行在Tomcat/Axis上。banking web服务应用以java编码(以.jws作为扩展名)。

相关的Apache和Axis配置文件片断包含用来加载Tomcat的Apache httpd.conf:

LoadModule jk2_module modules/mod_jk2.soJkSet config.file /usr/local/apache2/conf/workers2.PRoperties

让web服务支持AxisServlet 的Axis web.xml文件:

<servlet-mapping

<servlet-nameAxisServlet</servlet-name

<url-pattern*.jws</url-pattern

</servlet-mapping

像如上配置之后,您将可以在该服务器上部署任何web服务。假如您注重到该服务器发回的如下的头信息,您能够识别如下这一行:

Server: Apache/2.0.50 (Unix) mod_ssl/2.0.50 OpenSSL/0.9.7d mod_jk2/2.0.4

以上的消息头说明服务器是运行于Tomcat模块mod_jk2/2.0.4之上的Apache/2.0.50 (Unix)。Axis作为Tomcat web应用的一部分并且已经可以部署web服务。为了给web服务层提供保护,Blue银行已经加载了有application级过滤能力的mod_security模块。下面一行在httpd.conf中的信息加载安全模块:

LoadModule security_module modules/mod_security.so

当部署好mod_security后,Blue银行可以在httpd.conf里添加过滤规则:

<IfModule mod_security.c

# Turn the filtering engine On or Off

SecFilterEngine On

SecFilterDefaultAction "deny,log,status:500"

SecFilterScanPOST On

. . .

# Other rules

. . .

</IfModule

通过上面的配置,Blue Bank已经为治理员和开发人员预备好创建web服务,并利用mod_security的有效的内容过滤能力来防范恶意HTTP/HTTPS请求。

考虑一个web服务例子

如:www.bluebank.example.com/axis/getBalance.jws.

这个web服务的WSDL请求来自:www.bluebank.example.com/axis/getBalance.jws?wsdl.

说明:www.bluebank.example.com是一个虚拟的域名,仅仅作为例子。

从WSDL得到 方法/接口 数据来显示帐目结算信息

仔细观察HTTP请求获得的WSDL应答结果。这里重点观察一个调用方法,该方法输入bank id 然后返回相关账目结算信息并通过Http传递给客户端。Operation标签指定web服务能够调用的方法。相关的wsdl代码片断如下:

<wsdl:operation name="getInput"

<wsdlsoap:operation soapAction=""/

<wsdl:input name="getInputRequest"

<wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/namespace="http://DefaultNamespace"use="encoded"/

</wsdl:input

<wsdl:output name="getInputResponse"

<wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/namespace="http://www.bluebank.example.com/axis/getBalance.jws"use="encoded"/

</wsdl:output

<wsdl:message name="getInputResponse"

<wsdl:part name="getInputReturn" type="xsd:string"/

</wsdl:message<wsdl:message name="getInputRequest"

<wsdl:part name="id" type="xsd:string"/</wsdl:message

如上面代码所示,当向该方法传入一个id将得到一个字符串类型的输出。当你向该方法传入一个account id,你将回得到该account id的账目结算。

通过HTTP方式调用web服务

Blue银行的客户或者合作伙伴可以通过向banking web服务发送正确格式的SOAP封套来得到要求的信息。图2展示了一个通过向服务发送account id 12123 来获取相应账目结算的HTTP请求。

图 2.通过HTTP方式调用web服务

有很多种方法来产生有正确格式的SOAP请求的SOAP客户。这里有一个用Perl SOAP::Lite实现的SOAP客户。下面的简单代码将生成一个SOAP请求。

#!perl -wuse SOAP::Lite;print SOAP::Lite- service('http://www.bluebank.example.com/axis/getBalance.jws?wsdl')- getInput('12123');

在网络上探测到HTTP请求和应答是可能的,比如用ethereal。一个发送到www.bluebank.example.com 的包含id 信息为12123的HTTP/SOAP请求将产生如下信息:

POST /axis/getBalance.jws HTTP/1.0Content-Type: text/xml; charset=utf-8SOAPAction: ""Content-Length: 576EXPect: 100-continueHost: www.bluebank.example.com<?xml version="1.0" encoding="utf-8"?

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"xmlns:tns="http://www.bluebank.example.com/axis/getBalance.jws" xmlns:types="http://www.bluebank.example.com/axis/getBalance.jws/encodedTypes"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"

<soap:Bodysoap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

<q1:getInput xmlns:q1="http://DefaultNamespace"

<id xsi:type="xsd:string"12123</id

</q1:getInput

</soap:Body

</soap:Envelope

...HTTP/1.1 200 OKDate: Mon, 03 Jan 2005 19:24:10 GMTServer: Apache/2.0.50 (Unix) mod_ssl/2.0.50 OpenSSL/0.9.7d mod_jk2/2.0.4Set-Cookie: JSESSIONID=69C6540CC427A8B064C0795ADDFC20EA; Path=/axisContent-Type: text/xml;charset=utf-8Connection: close<?xml version="1.0" encoding="UTF-8"?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

<soapenv:Body

<ns1:getInputResponsesoapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:ns1="http://DefaultNamespace"

<ns1:getInputReturnxsi:type="xsd:string"$2500</ns1:getInputReturn

</ns1:getInputResponse

</soapenv:Body</soapenv:Envelope

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有