2009年12月27日
#
IISUTM文件防篡改工具
以计算机、信息技术与通讯技术为支撑的信息网络的高速发展,正在以前所未有的规模与速度改变着人类的生活。网络化不仅带来了社会发展的福音,也带来了"潘多拉盒子",它给我们送来巨大利益的同时,也搭配了形形色色的网络安全问题。
为了避免网络安全问题的侵扰,人们已经广泛地使用了杀毒软件、防垃圾邮件系统、防火墙、入侵检测系统等网络安全措施。这使病毒、垃圾邮件、主机入侵等网络安全事件发生数量大幅度下降。然而,在得意自己所取得的胜利的同时,我们却发现网页篡改事件的发生数量正在迅速增长。据CNCERT/CC2005年一月份统计报告显示,我国网页篡改事件达到1100件左右,其发生率之高将传统的网络安全事件远远地抛在了后面。
据有关统计资料,我国现有网站60多万个。网站已成为各级政府机关、企事业单位开展网上业务与网上服务的"门户",也成为各个单位的形象"窗口"。然而,网站因需要被公众访问而暴露于互联网上,容易成为黑客的攻击目标。其中,黑客和不法分子对网站的网页(主页)内容的篡改是时常发生的,而这类事件对公众产生的负面影响又是非常严重的。现有的各种安全防御机制都有自己的局限性。例如,防火墙虽然能够阻止对系统的非法访问,但是不能抵御某些入侵攻击,尤其是在防火墙系统存在配置上的错误、没有定义或没有明确定义系统安全策略时,整个系统的安全性都会受到威胁。因此,针对网络的安全不能只依靠单一的安全防御技术和防御机制。只有通过在对网络防御安全体系和各种网络安全技术和工具研究的基础上,制定具体的系统安全策略,通过设立多道的安全防线、集成各种可靠的安全机制、建立完善的多层安全防御体系,才能有效地抵御来自系统内、外的入侵攻击,达到维护网络安全的目的。网页篡改者利用操作系统的漏洞和管理的缺陷进行攻击,而目前大量的安全措施(如安装防火墙、入侵检测)集中在网络层上,它们无法有效阻止网页篡改事件发生。
为此,中智网安有限公司(www.iisutm.com)推出了完全免费网页防篡改产品iisutm。iisutm通过实时监控、和自动备份,自动扫描等功能为用户Web站点提供功能强大而操作简单的实时安全保护,并通过日志实现对网站文件更新过程的全程监控,防止黑客、恐怖分子及网络病毒等对网站的网页、电子文档、图片等所有类型的文件进行任何形式的破坏或非法修改,从而为网站提供可靠的安全保障。
随着电子商务和电子政务的发展,网页防篡改系统已成为保护网站安全必不可少的措施,越来越多的政府部门和企事业单位在网站建设中明确提出需要安装网页防篡改产品。
保护iis web服务器
微软的产品一向是众矢之的,因此IIS服务器特别容易成为攻击者的靶子。搞清楚了这一点后,网络管理员必须准备执行大量的安全措施。我将要为你们提供的是一个清单,服务器操作员也许会发现这是非常有用的。
1. 保持Windows升级
你必须在第一时间及时地更新所有的升级,并为系统打好一切补丁。考虑将所有的更新下载到你网络上的一个专用的服务器上,并在该机器上以Web的形式将文件发布出来。通过这些工作,你可以防止你的Web服务器接受直接的Internet访问。
2. 使用IIS防范工具
使用iis防范工具,能让服务器管理人员轻松管理好自己的服务器,目前有较多出色的产品如:中智网安的iisutm网站防火墙,这个工具有许多实用的优点,如:防SQL注入,防跨站式脚本攻击,效果明显,能有效的保护web防火墙。下载地址是:http://www.iisutm.com。然而,请慎重的使用这个工具。如果你的Web服务器和其他服务器相互作用,请首先测试一下防范工具,以确定它已经被正确的配置,保证其不会影响Web服务器与其他服务器之间的通讯。
3. 移除缺省的Web站点
很多攻击者瞄准inetpub这个文件夹,并在里面放置一些偷袭工具,从而造成服务器的瘫痪。防止这种攻击最简单的方法就是在IIS里将缺省的站点禁用。然后,因为网虫们都是通过IP地址访问你的网站的 (他们一天可能要访问成千上万个IP地址),他们的请求可能遇到麻烦。将你真实的Web站点指向一个背部分区的文件夹,且必须包含安全的NTFS权限 (将在后面NTFS的部分详细阐述)。
4. 如果你并不需要FTP和SMTP服务,请卸载它们
进入计算机的最简单途径就是通过FTP访问。FTP本身就是被设计满足简单读/写访问的,如果你执行身份认证,你会发现你的用户名和密码都是通过明文的形式在网络上传播的。SMTP是另一种允许到文件夹的写权限的服务。通过禁用这两项服务,你能避免更多的黑客攻击。
5. 有规则地检查你的管理员组和服务
有一天你发现在管理员组里多了一个用户。这意味着这时某个人已经成功地进入了你的系统,他或她可能冷不丁地将炸弹扔到你的系统里,这将会突然摧毁你的整个系统,或者占用大量的带宽以便黑客使用。黑客同样趋向于留下一个帮助服务,一旦这发生了,采取任何措施可能都太晚了,你只能重新格式化你的磁盘,从备份服务器恢复你每天备份的文件。因此,检查IIS服务器上的服务列表并保持尽量少的服务必须成为你每天的任务。
你应该记住哪个服务应该存在,哪个服务不应该存在。Windows 2000 Resource Kit带给我们一个有用的程序,叫作tlist.exe,它能列出每种情况运行在svchost 之下的服务。运行这个程序可以寻找到一些你想要知道的隐藏服务。给你一个提示:任何含有daemon几个字的服务可能不是Windows本身包含的服务,都不应该存在于IIS服务器上。
WEB安全---防范XSS跨站式脚本攻击
原文:www.iisutm.com
网站要怎么防范常见的XSS跨站式脚本攻击呢,我们先从XSS跨站式脚本攻击的原理来说起。
网站遭受XSS跨站式脚本攻击的基本原理
1.本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
其攻击过程如下所示:
A给B发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。
2反射式漏洞,这种漏洞和本地利用漏洞有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
其攻击过程如下:
A经常浏览某个网站,此网站为B所拥有。B的站点运行A使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。
C发现B的站点包含反射性的XSS漏洞。
C编写一个利用漏洞的URL,并将其冒充为来自B的邮件发送给A。
A在登录到B的站点后,浏览C提供的URL。
嵌入到URL中的恶意脚本在A的浏览器中执行,就像它直接来自B的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在A完全不知情的情况下将这些信息发送到C的Web站点。
3存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
其攻击过程如下:
B拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
C注意到B的站点具有存储式的XXS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人如A浏览该信息,其会话cookies或者其它信息将被C盗走。
类型A直接威胁用户个体,而类型B和存储式漏洞所威胁的对象都是企业级Web应用。
网站遭受XSS跨站式脚本攻击的基本方式
1. DOM-based cross-site scripting
页面本身包含一些DOM对象的操作,如果未对输入的参数进行处理,可能会导致执行恶意脚本。如下面一些DOM操作:
document.URL
document.URLUnencoded
document.location (and many of its properties)
document.referrer
window.location (and many of its properties)
举个例子,假如某个脆弱的页面的代码如下:
<HTML>
<TITLE>Welcome!</TITLE>
Hi
<SCRIPT>
var pos=document.URL.indexOf("name=")+5;
document.write(document.URL.substring(pos,document.URL.length));
</SCRIPT>
<BR>
Welcome to our system
…
</HTML>
攻击者使用如下的URL访问时,则非常危险:
http://www.vulnerable.site/welcome.html?name=<script>alert(document.cookie)</script>
试了一下,貌似IE、FireFox等浏览器默认 对<script>alert(document.cookie)</script>进行了编码,阻止了脚本的执行。但是对于 DOM操作还是要更加谨慎啊,比如把上面的页面修改一下,安全性就增强了不少:
<SCRIPT>
var pos=document.URL.indexOf("name=")+5;
var name=document.URL.substring(pos,document.URL.length);
if (name.match(/^[a-zA-Z0-9]$/))
{
document.write(name);
}
else
{
window.alert("Security error");
}
</SCRIPT>
2. Reflected cross-site scripting
也被称为None-Persistent cross-site scripting,即,非持久化的XSS攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL,当 URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常浏览网页时,站点从数据库中读取了非法用户存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方出现。
实施方式
我们来试一把Reflected cross-site scripting。当我们在某网站输入参数XXX,发现参数XXX原样的出现在了页面源码中:
<input type="text" class="Seach" name="w" value="XXX" />
OK,可以开始做文章了,我们将XXX替换为:abc"/><script>alert('haha')</script><a href=",返回的HTML代码如下:
<input type="text" class="Seach" name="w" value="abc"/>
<script>alert('haha')</script><!--" />
这样,<script>alert('haha')</script>被执行了。这里再举例一些XSS攻击行为:
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC="javascript:alert(String.fromCharCode(88,83,83))">
<IMG SRC="jav ascript:alert('XSS');">
<SCRIPT/XSS SRC="
http://example.com/xss.js"></SCRIPT>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<iframe src=http://example.com/scriptlet.html <
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert(document.cookie)>
<BODY onload!#$%&()*~+-_.,:;?@[/|"]^`=alert("XSS")>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG DYNSRC="javascript:alert('XSS')">
<BR SIZE="&{alert('XSS')}">
<IMG SRC='vbscript:msgbox("XSS")'>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="width: expression(alert('XSS'));">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<?='<SCRIPT>alert("XSS")</SCRIPT>'?>
<A HREF="javascript:document.location='http://www.example.com/'">XSS</A>
<IMG SRC=javascript:alert('XSS')>
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
a="get";
b="URL(""";
c="javascript:";
d="alert('XSS');"")";
eval(a+b+c+d);
总结一下,要防止XSS跨站式脚本攻击主要是要在查询字符串(QueryString),表单数据(PostData)以及Cookie甚至HTTP报头(Header)中防止掉一些javascript关键字和一些敏感的字符(单引号,分号)以及SQL语言的关键字,以及防止他们使用encode编码。
用ASP或者PHP脚本来实现上面的这些想起来就很麻烦。下面就来介绍下用一个第三方工具IISUTM来处理上面我们说到的问题。
准备工作:先去www.iisutm.com下载最新的IISUTM版本。
根据IISUTM网站防火墙安装及操作手册 中的说明把IISUTM部署到你的服务器上来,这里需要注意的是使用Windows 2003+iis6的服务器,需要开启iis中“以IIS5.0 隔离模式运行 www 服务”选项才能正常使用该软件。
安装完成,通过浏览器访问IISUTM的配置管理界面默认的是http://127.0.0.1:8362,这个是私有地址,只能在该服务器上访问,你需要任何地方都能访问的话,可以在安装的时候IP地址的选项那里填入你服务器的公网IP地址,和你所开放的端口。这样你就可以通过你配置的地址进行访问,或者你可以在iis中直接管理名为IISUTM的站点。
登陆管理界面后点击上面导航栏中的“基本设置”,然后点击左边菜单的“防XSS攻击”链接。
开启该链接里所有的选项,选中之后IISUTM会自动保存配置,下面的“使用不允许的发送序列”是该软件提供的XSS攻击关键字的特征库,你可以根据你网站的情况进行更改(最好不要修改)。
确认以上的配置以后,你可以返回到IISUTM管理界面的首页,这里会列出最近服务器遭受到的攻击以及详细,赶紧去看看你的网站是不是随时有人在进行SQL注入吧,以及哪些攻击被IISUTM处理掉了。
Web应用防火墙入门
作者:iisutm安全小组
原文:www.iisutm.com
转载请注明出处
Web应用防火墙正日趋流行,过去这些工具被很少数的大型项目垄断,但是,随着大量的低成本产品的面市以及可供选择的开源试用产品的出现,它们最终能被大多数人所使用。在这篇文章中,先向大家介绍Web应用防火墙能干什么,然后快速的概览一下Web应用防火墙最有用的一些特征。通过这篇文章的阅读,大家能清楚地了解web应用防火墙这个主题,掌握相关知识。
什么是web应用防火墙?
有趣的是,还没有人能真正知道web应用防火墙究竟是什么,或者确切的说,还没有一个大家认可的精确定义。从广义上来说,Web应用防火墙就是一些增强 Web应用安全性的工具。然而,如果我们要深究它精确的定义,就可能会得到更多的疑问。因为一些Web应用防火墙是硬件设备,一些则是应用软件;一些是基于网络的,另一些则是嵌入WEB服务器的。
国外市场上具有WEB应用防火墙功能的产品名称就有不同的几十种,更不用说是产品的形式和描述了。它难以界定的原因是这个名称包含的东西太多了。较低的网络层(Web应用防火墙被安置在第七层)被许多设备所覆盖,每一种设备都有它们独特的功能,比如路由器,交换机,防火墙,入侵检测系统,入侵防御系统等等。然而,在HTTP的世界里,所有这些功能都被融入在一个设备里:Web应用防火墙。
总体来说,Web应用防火墙的具有以下四个方面的功能:
1. 审计设备:用来截获所有HTTP数据或者仅仅满足某些规则的会话
2. 访问控制设备:用来控制对Web应用的访问,既包括主动安全模式也包括被动安全模式
3. 架构/网络设计工具:当运行在反向代理模式,他们被用来分配职能,集中控制,虚拟基础结构等。
4. WEB应用加固工具:这些功能增强被保护Web应用的安全性,它不仅能够屏蔽WEB应用固有弱点,而且能够保护WEB应用编程错误导致的安全隐患。
但是,需要指出的是,并非每种被称为Web应用防火墙的设备都同时具有以上四种功能。
由于WEB应用防火墙的多面性,拥有不同知识背景的人往往会关注它不同方面的特点。比如具有网络入侵检测背景的人更倾向于把它看作是运行在HTTP层上的 IDS设备;具有防火墙自身背景的人更趋向与把它看作一种防火墙的功能模块。还有一种理解来自于“深度检测防火墙”这个术语。他们认为深度检测防火墙是一种和Web应用防火墙功能相当的设备。然而,尽管两种设备有些相似之处,但是差异还是很大的。深度检测防火墙通常工作在的网络的第三层以及更高的层次,而 Web应用防火墙则在第七层处理HTTP服务并且很好地支持它。
直接更改WEB代码解决安全问题是否更好?这是毋庸置疑的,但也没那么容易(实现)。
因为,通过更改WEB应用代码是否一定就能增强系统安全性能,这本身就存在争论。而且现实也更加复杂:
* 不可能确保100%的安全。人的能力有限,会不可避免地犯错误。
* 绝大多数情况下,很少有人力求100%的安全。如今的现实生活中那些引领应用发展的人更多注重功能而不是安全。这种观念正在改变,只是有点缓慢。
* 一个复杂的系统通常包含第三方产品(组件,函数库),它们的安全性能是不为人知的。如果这个产品的源代码是保密的,那么你必须依赖商品的厂商提供补丁。即使有些情况下源代码是公开的,你也不可能有精力去修正它们。
* 我们不得不使用存在安全隐患的业务系统,尽管这些旧系统根本无法改进。
因此,为了获得最好的效果,我们需要双管齐下:一方面,必须提高管理者和开发者的安全意识;另一方面,尽可能提高应用系统的安全性。
Web应用防火墙的特点
Web应用防火墙的一些常见特点如下。
异常检测协议
如果阅读过各种RFC,就会发现一个被反复强调的主题。大多数RFC建议应用自己使用协议时要保守,而对于接受其他发送者的协议时可以自由些。Web服务器就是这样做的,但这样的行为也给所有的攻击者打开了大门。几乎所有的WAF对HTTP的请求执行某种异常检测,拒绝不符合Http标准的请求。并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。甚至,一些WAF还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项。
增强的输入验证
就频繁发生的Web安全问题而言,有些是源于对Web设计模型的误解,有些则来自于程序师认为浏览器是可信的。很多WEB程序员用JavaScript在浏览器上实现输入验证。而浏览器只是一个用户控制的简单工具,因此攻击者可以非常容易地绕过输入验证,直接将恶意代码输入到WEB应用服务器。
有一个解决上述问题的正确方法,就是在服务端进行输入验证。如果这个方法不能实现,还可以通过在客户和应用服务器之间增加代理,让代理去执行Web页面上嵌入的JavaScript,实现输入验证。
消极的安全模型VS积极的安全模型
曾经设置过防火墙规则的人,可能会碰到这样的建议:允许已知安全的流量,拒绝其他一切访问。这就是一种很好的积极安全模型。恰恰相反,消极安全模型则是默认允许一切访问,只拒绝一些已知危险的流量模式。
每种安全模型方式都存在各自的问题:
消极安全模型:什么是危险的?
积极安全模型:什么是安全的?
消极安全模式通常使用的更多。识别出一种危险的模式并且配置自己的系统禁止它。这个操作简单而有趣,却不十分安全。它依赖于人们对于危险的认识,如果问题存在,却没有被意识到(这种情况很常见),就会为攻击者留下可趁之机。
积极安全模式(又称为白名单模式)看上去是一种制定策略的更好方式,非常适于配置防火墙策略。在Web应用安全领域中,积极安全模式通常被概括成对应用中的每一个脚本的枚举。对枚举的每一个脚本,需要建立一个相应列表,表中内容如下所示:
* 允许的请求方式(比如,GET/POST或者只POST)
* 允许的Content-Type
* 允许的Content-Length
* 允许的参数
* 指定参数和可选参数
* 参数类型(比如,文本或整数)
* 附加参数限制
上述列表仅仅是个例子,实际的积极安全模式通常包括更多的要素。它试图从外部完成程序员本应从内部完成的工作:为提交到Web应用的信息验证每一个比特。如果肯花时间的话,使用积极安全模式就是一个比较好的选择。这个模式的难点之一,在于应用模式会随着应用的发展而改变。每当应用中添加新脚本或更改旧脚本,就需要更新模式。但是,它适用于保护那些稳定的、无人维护的旧应用。
自动开发策略可以解决以上问题:
* 一些WAF能够监视流量,并根据这些流量数据自动配置策略,有些产品可以实时进行这样的工作。
* 通过白名单,可以标识特定的IP地址是可信的,然后,依据观察的流量,配置WAF,更新安全策略。
* 如果通过一个全面的衰减测试,(仿真正确的行为,)来创建一个应用,并且在WAF处于监控状态时执行测试,那么WAF可以自动生成策略。
可见,没有哪个模式是完全令人满意的。消极安全模式适用于处理已知问题,而积极安全模式则适用于稳定的Web应用。理想的做法是,在现实生活中,将二者结合使用,取长补短。
及时补丁
积极安全模式理论上更好一些因为浏览器和WEB应用程序之间的通信协议通过HTML规范进行了很好的定义。现在的Web开发语言都可以处理带有多个参数的 HTTP请求。因为这些参数在Web应用防火墙中都是可见的,因此WEB应用防火墙可以分析这些参数判断是否存在允许该请求。,
当一个应用中的漏洞被发现时大多数情况下我们会尽可能在代码中修补它。受诸多因素的影响(如应用的规模,是否有开发人员,法律问题等等 ),开发补丁的过程可能需要几分钟,或者一直到无限长的是时间。这些时间正是攻击者发起攻击的好机会。
如果开发人员能够在非常短的时间内在代码中修补好漏洞,那你就不用担心了。但如果修补这个漏洞需要花费几天,甚至几周来修复呢?Web应用防火墙就是处理这个问题的理想工具:只要给一个安全专家不错的WAF和足够的漏洞信息,他就能在不到一个小时的时间内屏蔽掉这个漏洞。当然,这种屏蔽掉漏洞的方式不是非常完美的,并且没有安装对应的补丁就是一种安全威胁,但我们在没有选择的情况下,任何保护措施都比没有保护措施更好。
及时补丁的原理可以更好的适用于基于XML的应用中,因为这些应用的通信协议都具规范性。
基于规则的保护和基于异常的保护
现在市场上大多数的产品是基于规则的WAF。其原理是每一个会话都要经过一系列的测试,每一项测试都由一个过多个检测规则组成,如果测试没通过,请求就会被认为非法并拒绝。
基于规则的WAFs很容易构建并且能有效的防范已知安全问题。当我们要制定自定义防御策略时使用它会更加便捷。但是因为它们必须要首先确认每一个威胁的特点,所以要由一个强大的规则数据库支持。WAF生产商维护这个数据库,并且他们要提供自动更新的工具。
这个方法不能有效保护自己开发的WEB应用或者零日漏洞(攻击者使用的没有公开的漏洞),这些威胁使用基于异常的WAF更加有效。
异常保护的基本观念是建立一个保护层,这个保护层能够根据检测合法应用数据建立统计模型,以此模型为依据判别实际通信数据是否是攻击。理论上,一但构建成功,这个基于异常的系统应该能够探测出任何的异常情况。拥有了它,我们不再需要规则数据库而且零日攻击也不再成问题了。但基于异常保护的系统很难构建,所以并不常见。因为用户不了解它的工作原理也不相信它,所以它也就不如基于规则的WAF应用广范。
状态管理
HTTP的无状态性对Web应用安全有很多负面影响。会话只能够在应用层上实现,但对许多应用来说这个附加的功能只能满足业务的需要而考虑不到安全因素了。Web应用防火墙则将重点放在会话保护上,它的特征包括:
强制登录页面。在大多数站点, 你可以从任何你所知道的URL上访问站点,这通常方便了攻击者而给防御增加了困难。WAF能够判断用户是否是第一次访问并且将请求重定向到默认登录页面并且记录事件。
分别检测每一个用户会话。如果能够区分不同的会话,这就带来了无限的可能。比如,我们能够监视登陆请求的发送频率和用户的页面跳转。通过检测用户的整个操作行为我们可以更容易识别攻击。
对暴力攻击的识别和响应。通常的Web应用网络是没有检测暴力攻击的。有了状态管理模式,WAF能检测出异常事件(比如登陆失败),并且在达到极限值时进行处理。此时它可以增加更多的身份认证请求的时间,这个轻微的变化用户感觉不到,但对于足以对付自动攻击脚本了。如果一个认证脚本需要50毫秒完成,那它可以发出大约每秒20次的请求。如果你增加一点延时,比如说,一秒种的延迟,那会将请求降低至每秒不足一次。与此同时,发出进一步检测的警告,这将构成一个相当好的防御。
实现会话超时。超出默认时间会话将失效,并且用户将被要求重新认证。用户在长时间没有请求时将会自动退出登录。
会话劫持的检测和防御。许多情况下,会话劫持会改变IP地址和一些请求数据(HTTP请求的报头会不同)。状态监控工具能检测出这些异常并防止非法应用的发生。在这种情况下应该终止会话,要求用户重新认证,并且记录一个警告日志信息。
只允许包含在前一请求应答中的链接。一些WAF很严格,只允许用户访问前一次请求返回页面中的链接。这看上去是一个有趣的特点但很难得到实施。一个问题在于它不允许用户使用多个浏览器窗口,另一个问题是它令使用JavaScript自动建立连接的应用失效。
其他防护技术
WAF的另外一些安全增强的功能用来解决WEB程序员过分信任输入数据带来的问题。比如:
隐藏表单域保护。有时,内部应用数据通过隐藏表单变量实现,而它们并不是真的隐藏的。程序员通常用隐藏表单变量的方式来保存执行状态,给用户发送数据,以确保这些数据返回时未被修改。这是一个复杂繁琐的过程,WAF经常使用密码签名技术来处理。
Cookies保护。和隐藏表单相似的是,cookies经常用来传递用户个人的应用数据,而不一样的是,一些cookies可能含有敏感数据。WAFs 通常会将整个内容加密,或者是将整个cookies机制虚拟化。有了这种设置,终端用户只能够看到cookies令牌(如同会话令牌),从而保证 cookies在WAF中安全地存放
抗入侵规避技术。基于网络的IDS对付WEB攻击的问题就是攻击规避技术。改写HTTP输入请求数据(攻击数据)的方式太多,并且各种改写的请求能够逃避IDS探测。在这个方面如果能完全理解HTTP就是大幅度的改进。比如,WAF每次可以看到整个HTTP请求,就可以避免所有类型的HTTP请求分片的攻击。因为很好的了解HTTP协议,因此能够将动态请求和静态请求分别对待,就不用花大量时间保护不会被攻击的静态数据。这样WAF可以有足够的计算能力对付各种攻击规避技术, 而这些功能由NIDSs完成是很耗时的。
响应监视和信息泄露保护。信息泄露防护是我们给监视HTTP输出数据的一个名称。从原理上来说它和请求监视是一样的,目的是监视可疑的输出,并防止可疑的 http输出数据到达用户。最有可能的应用模式是监视信用卡号和社会保险号。另外,这个技术的另一项应用是发现成功入侵的迹象。因为有经验攻击者总会给信息编码来防止监测,所以防止这样有决心并技术熟练的攻击者获取信息是很困难的。但是,在攻击者没有完全掌控服务器而仅仅尝试WEB应用的安全漏洞的情况下,这项技术可以起到防护效果
iis安全 检查清单
原文:http://windows.stanford.edu/docs/IISsecchecklist.htm
译文:http://www.iisutm.com
下面是安全要点的简要清单,在检查这些安全要点之前需要确保IIS服务器在线。在违反下面安全要点的情况下,管理员可能需要了解安全文档中对已知的安全问题应该发生的安全危害的介绍。
一般性假设
1.域控制器上没有IIS。
2.仅安装需要的服务( FTP,WWW,SMTP,NNTP)发送邮件不需要SMTP服务;可以使用CDOSYS.DLL(一个Windows提供的COM组件)或者使用第三方的Web应用程序例如:blat.exe来发送邮件。
3.从不使用跨服务器的虚拟目录。
4.底层的Windows操作系统是可以靠的。
5.仅系统管理员是本地管理员。
设计指南
1.网站绝不应该在系统驱动器上。
2.如果传播的信息是敏感的需要安装SSL,如果SSL已经启用则请求SSL(通过访问端口 80 的删除能力)。
3.所有的FTP站点和需要的万维网站点需要启用对“stanford-only”的站点进行IP筛选。IPSec筛选器可用于实现这一目标。
4.虚拟目录应尽少使用, 除非您需要跨驱动器否则不需要使用虚拟目录。 如果需要跨驱动器,需要基于安全隐患重新考虑。
5.移除NTFS驱动器下所有可移除的写入权限。
6.不要让其他人很容易地找到脚本和代码。黑客通过这些代码寻找漏洞,他们可以使用这些漏洞来控制服务器.
下面是一些好的防范方法:
不要为您的Scripts目录使用明显的名称,考虑重命名您的脚本的扩展名为不寻常的字符。 例如,将 myscript.asp 重命名为 myscript.dum。 这将需要在ISAPI 扩展名映射(MIME)增加一个映射.dum到特定的代码处理器(在这种情况下是改变到“asp.dll”代码处理器)。 这样会使您的脚本难以找到。 顺便说一下一种特殊情况,重命名所有的.asp为.html 不需要修改 ISAPI 扩展名映射。
考虑编译所有的到DLL文件中。这不仅保护了源代码,也大大提高了性能。编译过的代码运行比原来的脚本将近快20倍。
Web 应用程序 (即脚本和可执行文件) 只需要有限的权限就能正常运行。 提供更多的权限将会被黑客利用来下载文件和分析您的代码的漏洞,以及允许黑客下载你的代码。 所需的最低权限是:NTFS: 读取,IIS:执行,IIS:不需要读取。
7.小心使用 IIS 服务器上的添加/删除控制面板。 如果您打开 Windows 组件,Windows 会无意中重置所有 ISAPI 筛选器和扩展为默认值并可以重置其它事情。这是Microsoft的其中一个你需要小心的有问题的设计。
安装和配置
1.删除所有默认虚拟目录 (带有世界顶部的文件夹的图标) 和应用程序根 (带有绿球在框中的图标)
删除iisadmin
删除iissamples
删除msadc
删除iishelp
删除scripts
删除printers
2.删除所有默认内容
删除%systemdirectory%\inetsrv\iisadmin
删除%systemdirectory%\inetsrv\iisadmpwd
删除inetpub\wwwroot (or \ftproot or \smtproot)
删除inetpub\scripts
删除inetpub\iissamples
删除inetpub\adminscripts
删除%systemroot%\help\iishelp\iis
删除%systemroot%\web\printers
删除%systemdrive%\program files\common files\system\msadc.只有使用Microsoft Access 数据库的网站需要 msadc。
3.配置默认网站为极为安全设置(例如,需要SSL,仅集成Windows验证,只可从一个IP访问,NTFS权限主目录不能为空等) ,然后停止该网站。这样的结果是破坏默认网站,80%黑客会盲目地攻击,而不是您的真实网站。
4.配置所有与主机头的DNS名称相匹配的网站。 打开ISM,网站选项卡,点击高级按钮,选择对话框 “ 全部未分配 ” (或特定的 IP) 然后点击编辑按钮,并指定了主机头在适当的栏位。对HTTP和HTTPS进行同样的操作。不配置默认网站的主机头。这将把90 %的自动化黑客工具的工作转到瘫痪掉的默认网站上。
5.主目录的IIS权限:启用“读取”和“记录访问”。禁用"写入","索引资源","目录浏览",“脚本资源访问”(仅WebDAV使用此权限)以及Frontpage Web权限。执行权限选择“无”。对目录包含脚本文件的目录启用执行权限。
6.禁用所有不必要的ISAPI筛选器,执行此操作打开ISM,ISAPI筛选器选项卡。
删除 Frontpage ISAPI 筛选器 (或较早的 IIS 服务器上的扩展)在不需要这些情况下。 如果需要 Frontpage ISAPI (扩展),设置它为只读。 较早的 IIS 服务器上禁用 Frontpage 扩展使用以下命令:“ c \common\microsoft shared\web server extensions\40\bin\fpsrvadm –o uninstall –p all”。
摘要式身份验证。 此身份验证方法需要支持可逆加密的密码,这是一个坏主意。 可逆加密的密码在斯坦福 Windows 结构中不被支持。 删除此筛选器。
HTTP 压缩。 此筛选器允许 HTTP 流的压缩。 这是一个很好的功能,但可能会导致安全性降低。
SSL。 不大可能您不需要 SSL 的支持,但如果你真不需要它请删除它。
7.删除与 ISAPI 筛选器禁用相关联的 DLL 文件。 Frontpage: fpexdll.dll,摘要: md5filt.dll,压缩: compfilt.dll,SSL: Sspifilt.dll。
8.(如果可能) 取消映射下列扩展名:.asa、.asp、.bat、.cdx、.cer、.htr、.htw、.ida、.idc、.idq、.printer、.shtm、.shtml、.stm 在 ISM,主目录选项卡,并选择配置按钮。
9.禁用“启用父路径”设置。 在 ISM,主目录选项卡,点击 配置按钮,打开应用程序选项选项卡,取消选中复选框。 这样可以防止不知道目录的基础结构情况下恶意的 Web目录遍历。 Web 开发人员不能使用像路径..\..\Default.htm,必须使用完全合格的路径。
补丁级别
1.应用 Service Pack 和修补程序。可以使用 UpdateExpert,Microsoft ’s HfCheck 工具。
2.安装高加密包 (附带 Windows 2000 SP 2) ,可以使用128 位加密。
身份验证模式
1.在网站层级、 虚拟目录层级、 目录层级 等所有地方禁用基本身份验证。
2.在任何地方禁用摘要式身份验证。
3.IUSR & IWAM 帐户不应是域用户,也不应是Guests用户。 如果不需要匿名访问则删除这些帐户。
4.如果web 数据是 ultra-sensitive(超灵敏)数据,考虑将服务器放置在域之外。
授权更改
1.启用 IIS 审计,变更为W3号扩展日志记录,并检查信息被正确记录。 (例如:需要用户名吗?) 考虑启用下列项目: 日期和时间,客户端的IP地址,服务器的IP地址,服务器端口,用户名, 用于访问网站的HTTP方法,URI 尾,URI 查询,请求的状态。
2.设置只允许系统和本地管理员能访问IIS日志。
3.删除"hklm\software"的非管理员帐户的写入权限 。 管理员和系统帐户:完全控制,所有人: 读取或执行。
4.限制 系统上所有可执行程序的NTFS权限。 NTFS 权限:管理员和系统帐户:完全控制、 用户: 读取或执行。 给 IUSR 帐户谨慎执行权限。
5.限制任何脚本编译器如Perl的权限 。 NTFS的 权限 :管理员及系统:完全控制,所有人:读/执行。给 IUSR 帐户谨慎执行权限。
6.确保所有人只有只读权限:
Web root
%systemroot%
%systemroot%\system32
%systemroot%\system32\inetsrv
%systemroot%\system32\inetsrv\asp
%systemroot%\program files\common files\
iisutm 产品介绍
原文:www.iisutm.com
计算机国际互联网发展到今天取得了巨大成功。电子商务和电子政务等网络技术的应用和普及不仅给人们的生活带来了极大方便,而且正在创造着巨大的财富。但与此同时,提供互联网WEB服务的WEB服务器也越来越多的遭受着黑客、病毒等许多危害,数据被篡改和窃取、文件被破坏,人们在享受互联网带来便利的同时也在遭受着各种各样的安全威胁,越来越多政府部门和企业单位开始采用各种网络安全工具来保护自己的WEB服务器。但是,网络安全问题不但依然存在,而且更加严重。全球每天有几十万台WEB服务器遭受攻击,上百万台计算机感染病毒,其中不乏采用了防火墙、入侵检测等网络安全产品的用户。
那么,有没有更高级别的安全解决方案,可以更有效的保护WEB服务器的安全?答案是肯定的。人们通过反复实践之后发现:ISAPI Filter技术是对付各种WEB服务器危害最为有用的办法。原理很简单,当WEB服务器接受请求的时候,对这些请求进行针对性的过滤,在IIS内核中实现真正意义上的全方位安全防护。
大量重要部门,如金融、电力、电信、医疗、交通等行业网络WEB服务器都对安全防护有越来越多的需求。各种采用IIS作为WEB服务器的门户网站,行业网站,企业网站以及个人的站点,由于IIS本身的安全隐患,以及程序员开发中所没有进行溢出等安全处理等等原因,需要采用专门针对IIS的第三方安全应用产品。
IISUTM可灵活部署在大中型网站及中小企业网站的WEB服务器里, 保护用户网站免受黑客攻击、 内容盗用、 恶意代码等混合威胁的侵害;同时还为用户提供简便统一地管理各种安全特性及相关日志、报告,大大降低了设备部署、管理和维护的运营成本。
IISUTM在技术上采用先进的全状态内核检测技术,可通过简单的配置和管理,以较低的维护成本为用户提供一个高级别保护的“安全隔离区”。它对经过IIS的数据流进行请求合法性、是否为黑客入侵等进行高效检测,所有的检测都是在实时状态下进行,具有很高的网络性能。
IISUTM不同于一般的小型Web应用防火墙产品,而是一款企业级的全方位应用安全防护产品,它是由一个多年从事安全产品的团队开发而成,功能上具备防黑客、防盗链、防机器人等多种安全防护和管理能力,效率上在IIS内核中采用ISAPI Filter技术使得其具有瞬间的即时处理能力,管理上采用B/S管理,在Web服务器部署IISUTM以后,不需要安装任何客户端软件,在能够访问网络的 地方通过浏览器可以轻松管理。
IISUTM网站防火墙 V1.1 免费试用活动
开始日期:2009-05-11
活动状态:进行中
参加活动要求:
拥有独立服务器的个人以及公司组织,要求windowsNT,2000,2003,使用IIS的WEB服务器。
免费活动内容 :
1.免费获得软件一个月注册码(软件注册才能正常使用),试用期内无任何限制的享受软件的所有功能。
2.享受我们提供的全方位的WEB安全服务,有专门的安全团队在使用IISUTM的基础上为您的服务器提供全方位的保护。
3.可以享受购买正式产品的折扣。
报名邮箱:license@iisutm.com
报名QQ群:12773662
详情请登录:http://www.iisutm.com/
iis安全---防范SQL注入式攻击
原文:htttp://www.iisutm.com
网站要怎么防范最最常见SQL注入式攻击呢,我们先从SQL注入式攻击的原理来说起。
网站遭受SQL注入式攻击的基本原理:
1.没有正确过滤特殊字符,例如单引号和分号
如果你的sql语句是这样,又没过滤“’”单引号:
"SELECT * FROM tables WHERE param = '" + RequestString+ "'; "
攻击者将用户名变量(即RequestString)设置为:
a' or 't'='t
此时原始语句发生了变化:
SELECT * FROM tables WHERE param = 'a' OR 't'='t';
如果这种代码被用于一个认证过程,那么这个例子就能够强迫选择一个合法的用户名,因为赋值't'='t永远是正确的。
这种方式是跳过身份认证的最简单手段
再配合“;”分号可以进行更多的sql注入攻击
";"分号用来执行多个语句。下面语句中的RequestString的值将会导致删除“tables”表,
又可以从“dataTables”表中选择所有的数据(实际上就是透露了每一个用户的信息)。
a'; DROP TABLE tables; SELECT * FROM dataTables WHERE param LIKE '%
这就将最终的SQL语句变成下面这个样子:
SELECT * FROM tables WHERE param = 'a'; DROP TABLE tables; SELECT * FROM dataTables WHERE param LIKE '%';
通过这种原理可以执行很多很多攻击了。
2.不正确处理变量类型
如果一个用户提供的字段并非一个强类型,或者没有实施类型强制,就会发生这种形式的攻击。当在一个SQL语句中使用一个数字字段时,如果程序员没有检查用户输入的合法性(是否为数字型)就会发生这种攻击。
例如:“SELECT * FROM tables WHERE id = " + RequestID + "; "
从这个语句可以看出,作者希望RequestID是一个数字。
不过,如果终端用户选择一个字符串,就绕过了对转义字符的需要。
例 如,将RequestID设置为
1; DROP TABLE tables
就不需要上面说的“‘”单引号了,照样可以进行攻击:会将“tables”表从数据库中删除,
SQL语句变成:SELECT * FROM DATA WHERE id = 1; DROP TABLE users;
网站遭受SQL注入式攻击的基本方式:
1.最常见的也就是在查询字符串中直接输入SQL攻击字符串。
例如:page.asp?id=Num and exists (select * from [admin])
2.其次就是在FORM表单中提交的SQL注入攻击字段。
3.通过COOKIE绕过一些放注入的脚本程序
例如:javascript:alert(document.cookie="id="+escape("这就是asp? id=xx后面xx代表的数值) and (这里是注入攻击代码)"));
4.还有就是上面几种的攻击通过16进制编码后,绕过SQL注入检测的脚本程序
page.asp?id=Num;DeCLaRE @S NvArCHaR(4000);SeT @S=CaSt(0x4400650063006C0061007200650020004000540020005600610072006300680061007200280032003500350029002C0040004300200056006100720063006800610072002800320035003500290020004400650063006C0061007200650020005400610062006C0065005F0043007500720073006F00720020004300750072007300'
这种可以跳过敏感字符的判断和SQL关键词的判断。
总结一下,要防止SQL注入主要是要在查询字符串(QueryString),表单数据(PostData)以及Cookie甚至HTTP报头(Header)中防止掉一些特殊字符(单引号,分号)以及SQL语言的关键字,以及防止他们使用16进制编码。
用ASP或者PHP脚本来实现上面的这些想起来就很麻烦。下面就来介绍下用一个第三方工具IISUTM来处理上面我们说到的问题。
准备工作:先去www.iisutm.com下载最新的IISUTM版本。
根据IISUTM网站防火墙安装及操作手册 中的说明把IISUTM部署到你的服务器上来,这里需要注意的是使用Windows 2003+iis6的服务器,需要开启iis中“以IIS5.0 隔离模式运行 www 服务”选项才能正常使用该软件。
安装完成,通过浏览器访问IISUTM的配置管理界面默认的是http://127.0.0.1:8362,这个是私有地址,只能在该服务器上访问,你需要任何地方都能访问的话,可以在安装的时候IP地址的选项那里填入你服务器的公网IP地址,和你所开放的端口。这样你就可以通过你配置的地址进行访问,或者你可以在iis中直接管理名为IISUTM的站点。
登陆管理界面后点击上面导航栏中的“基本设置”,然后点击左边菜单的“防SQL注入”链接。
开启该链接里所有的选项,选中之后IISUTM会自动保存配置,下面的SQL注入关键字是该软件提供的SQL注入关键字以及特殊符号的特征库,你可以根据你网站的情况进行更改(最好不要修改)。IISUTM会自动拒绝16进制的编码。
确认以上的配置以后,你可以返回到IISUTM管理界面的首页,这里会列出最近服务器遭受到的攻击以及详细,赶紧去看看你的网站是不是随时有人在进行SQL注入吧,以及哪些攻击被IISUTM处理掉了。
2009年12月23日
#
IISUTM文件防篡改工具
以计算机、信息技术与通讯技术为支撑的信息网络的高速发展,正在以前所未有的规模与速度改变着人类的生活。网络化不仅带来了社会发展的福音,也带来了"潘多拉盒子",它给我们送来巨大利益的同时,也搭配了形形色色的网络安全问题。
为了避免网络安全问题的侵扰,人们已经广泛地使用了杀毒软件、防垃圾邮件系统、防火墙、入侵检测系统等网络安全措施。这使病毒、垃圾邮件、主机入侵等网络安全事件发生数量大幅度下降。然而,在得意自己所取得的胜利的同时,我们却发现网页篡改事件的发生数量正在迅速增长。据CNCERT/CC2005年一月份统计报告显示,我国网页篡改事件达到1100件左右,其发生率之高将传统的网络安全事件远远地抛在了后面。
据有关统计资料,我国现有网站60多万个。网站已成为各级政府机关、企事业单位开展网上业务与网上服务的"门户",也成为各个单位的形象"窗口"。然而,网站因需要被公众访问而暴露于互联网上,容易成为黑客的攻击目标。其中,黑客和不法分子对网站的网页(主页)内容的篡改是时常发生的,而这类事件对公众产生的负面影响又是非常严重的。现有的各种安全防御机制都有自己的局限性。例如,防火墙虽然能够阻止对系统的非法访问,但是不能抵御某些入侵攻击,尤其是在防火墙系统存在配置上的错误、没有定义或没有明确定义系统安全策略时,整个系统的安全性都会受到威胁。因此,针对网络的安全不能只依靠单一的安全防御技术和防御机制。只有通过在对网络防御安全体系和各种网络安全技术和工具研究的基础上,制定具体的系统安全策略,通过设立多道的安全防线、集成各种可靠的安全机制、建立完善的多层安全防御体系,才能有效地抵御来自系统内、外的入侵攻击,达到维护网络安全的目的。网页篡改者利用操作系统的漏洞和管理的缺陷进行攻击,而目前大量的安全措施(如安装防火墙、入侵检测)集中在网络层上,它们无法有效阻止网页篡改事件发生。
为此,中智网安有限公司(www.iisutm.com)推出了完全免费网页防篡改产品iisutm。iisutm通过实时监控、和自动备份,自动扫描等功能为用户Web站点提供功能强大而操作简单的实时安全保护,并通过日志实现对网站文件更新过程的全程监控,防止黑客、恐怖分子及网络病毒等对网站的网页、电子文档、图片等所有类型的文件进行任何形式的破坏或非法修改,从而为网站提供可靠的安全保障。
随着电子商务和电子政务的发展,网页防篡改系统已成为保护网站安全必不可少的措施,越来越多的政府部门和企事业单位在网站建设中明确提出需要安装网页防篡改产品。
保护iis web服务器
微软的产品一向是众矢之的,因此IIS服务器特别容易成为攻击者的靶子。搞清楚了这一点后,网络管理员必须准备执行大量的安全措施。我将要为你们提供的是一个清单,服务器操作员也许会发现这是非常有用的。
1. 保持Windows升级
你必须在第一时间及时地更新所有的升级,并为系统打好一切补丁。考虑将所有的更新下载到你网络上的一个专用的服务器上,并在该机器上以Web的形式将文件发布出来。通过这些工作,你可以防止你的Web服务器接受直接的Internet访问。
2. 使用IIS防范工具
使用iis防范工具,能让服务器管理人员轻松管理好自己的服务器,目前有较多出色的产品如:中智网安的iisutm网站防火墙,这个工具有许多实用的优点,如:防SQL注入,防跨站式脚本攻击,效果明显,能有效的保护web防火墙。下载地址是:http://www.iisutm.com。然而,请慎重的使用这个工具。如果你的Web服务器和其他服务器相互作用,请首先测试一下防范工具,以确定它已经被正确的配置,保证其不会影响Web服务器与其他服务器之间的通讯。
3. 移除缺省的Web站点
很多攻击者瞄准inetpub这个文件夹,并在里面放置一些偷袭工具,从而造成服务器的瘫痪。防止这种攻击最简单的方法就是在IIS里将缺省的站点禁用。然后,因为网虫们都是通过IP地址访问你的网站的 (他们一天可能要访问成千上万个IP地址),他们的请求可能遇到麻烦。将你真实的Web站点指向一个背部分区的文件夹,且必须包含安全的NTFS权限 (将在后面NTFS的部分详细阐述)。
4. 如果你并不需要FTP和SMTP服务,请卸载它们
进入计算机的最简单途径就是通过FTP访问。FTP本身就是被设计满足简单读/写访问的,如果你执行身份认证,你会发现你的用户名和密码都是通过明文的形式在网络上传播的。SMTP是另一种允许到文件夹的写权限的服务。通过禁用这两项服务,你能避免更多的黑客攻击。
5. 有规则地检查你的管理员组和服务
有一天你发现在管理员组里多了一个用户。这意味着这时某个人已经成功地进入了你的系统,他或她可能冷不丁地将炸弹扔到你的系统里,这将会突然摧毁你的整个系统,或者占用大量的带宽以便黑客使用。黑客同样趋向于留下一个帮助服务,一旦这发生了,采取任何措施可能都太晚了,你只能重新格式化你的磁盘,从备份服务器恢复你每天备份的文件。因此,检查IIS服务器上的服务列表并保持尽量少的服务必须成为你每天的任务。
你应该记住哪个服务应该存在,哪个服务不应该存在。Windows 2000 Resource Kit带给我们一个有用的程序,叫作tlist.exe,它能列出每种情况运行在svchost 之下的服务。运行这个程序可以寻找到一些你想要知道的隐藏服务。给你一个提示:任何含有daemon几个字的服务可能不是Windows本身包含的服务,都不应该存在于IIS服务器上。