时间:2023-03-06 16:05:27
序论:在您撰写网站设计安全性时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
关键词:安全;网站;数据库加密
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)32-1099-04
Research and Realization of the Safety in Website Design
HU Gang1, XIA Rong2
(1.Sichuan Information Technology College,Guangyuan 628017,China; 2.Science and Technology College of NCHU,Nanchang 330034,China)
Abstract: In the computer system, the information is to point the procedure on the equipments with data saving in calculator and its exterior. Because the computer information in the system involves secret problems, it is easily attached by ulterior motives by hostile influence and some illegal customers. Additionally almost all of the calculator systems contain latent crisis of the different degree, extending the safety of the personal information, the problem of keeping secret is more and more valued by people. This paper discusses the safety problems existing in website design from the system and applied program design.The safety of the net can be improved by loading the newest pitch program and adopting NTES format on the system layers.And the safety problems can be resolved by identifying the ID and by encrypting in applied program design. This paper introduces how to improve safety in the development of website, and points out how to encrypt and decrypt the database,and at the same time gives some examples.
Key words: Safety; Website; Database Encryption
1 引言
信息与通信技术迅速在多个领域取得了突破性进展,如实现了光纤密集波分复用的超大容量光通信系统,还有即将投入使用的具有多种业务、多种功能的第三代移动通信系统,再就是牵动全世界的、即将使100多年来的电话网发生变革的、在一个网上实现话音、数据和广播电视三网融合的新一代互联网。信息与通信如此神奇的发展,使当今社会生产力从工业化社会大大向信息化社会推进了一步,知识(科技、网络)经济已不可逆转地出现于市场商品经济的大潮中。可是,信息化社会赖以建立的物质基础――信息与通信网,却在万千世界中处于新生的、比较脆弱的位次,它的成长、它的安全性与可靠性,承受着来自两大方面的损害、攻击与破坏。一是来自信息与通信网设备系统本身的软件与硬件。由于当前工艺(技术)水平所限,它们不可避免地会存在弱点、缺陷、变质、老化、过期以及互串、互拆、过压、过流、击穿和烧毁等现象。为了设备系统的可靠性,为此建有庞大的支撑系统和完善的监视、监测、转换等功能的维护管理系统,还有冷、热备用以及替代体制等,以实现对信息与通信网自动或人为地更换、更新元部件和线缆;更换、更新软件版本;补充和扩展网络。其目的是使信息与通信网设备系统有满意的可靠性。
在网站设计中,网站自身的安全性非常重要,对个人信息的真实性和机密性的研究,具体的研究内容包含了以下的几个方面:
1) 软件安全
软件安全主要是指保证所有计算机程序和文件资料免遭破坏、非法拷贝、非法使用而采用的技术和方法。它的主要内容有:
① 软件的自身安全:防止软件丢失、被破坏、被篡改、被伪造,核心是保护软件自身的安全;
② 软件的存储安全:可靠存储(保密/压缩/备份);
③ 软件的通信安全:系统拥有的和产生的数据信息完整、有效,不被破坏或泄露;
④ 软件的使用安全:合法使用,防窃取和非法复制;
⑤ 软件的运行安全:确保软件的正常运行,功能正常。
2) 数据安全
个人信息的数据安全是指通过对数据采集、录入、存储、加工、揭穿地等数据流动的各个环节进行精心的组织和严格控制,防止数据被故意的或偶然的非法授权泄露、更改、破坏或使数据被非法系统辩识、控制。它包括以下内容:
① 数据库的安全;
② 数据加密技术;
③ 压缩技术;
④ 备份技术。
3) 网络安全
随着信息高速公路的建设和国际互联网的形成,个人信息通过网络传播也是很频繁的途径,网络安全是指为了保证网络及其安全而采用的技术和方法。主要包括:
① 网络安全策略和安全机制;
② 网络数据加密技术;
③ 密钥管理技术;
④ 防火墙技术。
2 操作页面控制算法的实现
某些非法用户跳过登录页面直接进入管理页面继而对信息进行非法操作。而使用的自定义的“cookies.asp”来阻止非法用户直接跳过而必须经过登录页面登录正确以后才能进行下一步的操作。其代码如下:
<%
if request.cookies("ershou")("administrator")="" or request.cookies("ershou")("ijob")<>"1" or session("admin_ijob")="" or request.cookies("ershou")("domain")="" then
response.redirect "login.asp"
end if
if Request.ServerVariables("SERVER_NAME")request.cookies("ershou")("domain") then
response.redirect "login.asp"
end if
%>
当用户未通过登录而直接进入其他的页面时,系统将自动还原到登录界面login.asp。
3 网站防注入及IP检测算法的实现
许多网站在程序编写时,没有对输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果进行分析,从而获取自己想要知道的信息,这就是所谓的SQL Injection。非法攻击者使用SQL注入的思路一般是:
1) SQL注入漏洞的判断,即寻找注入点;
2) 判定后台数据库类型;
3) 确定XP_CMDSHELL的可执行情况。如当前的用户具有数据库设置的SA权限且master.dbo.xp_shell扩展存储过程能够正确执行,则计算机就可以被完全控制也就完成了整个注入过程。
SQL防注入系统利用注入漏洞定义一个新的函数如下:
Function SafeRequest(ParaName,ParaType)
'--- 传入参数 ---
'ParaName:参数名称-字符型
'ParaType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If ParaValue="" or not isNumeric(ParaValue) then
Response.write "参数" & ParaName & "必须为数字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
End if
SafeRequest=ParaValue
End function
所以SQL防注入系统在目前很多系统中都有被使用。在IP检测的同时系统会自动产生数据库记录操作IP的详细情况,并加入了封锁/解封控制。录入数据库如表1所示。
4 网站数据库加密
一个网站数据库的保密性是很值得考虑的问题,在这里提供三种数据库保密方法:
1) 修改数据库的后缀名
修改数据库的后缀名为.asp放在网站的根目录下,当然cnn.asp中的数据库连接代码也得相应的修改:
<%
set rs=server.createobject("adodb.recordset")
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("news.asp")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
%>
这样别人很难找到你的数据库文件,即便找到了除非他知道改后缀名,否则打开也是一堆asp代码,而不是数据库信息。
2) 利用Access自带的掩码来保密,不过这种方法的保密性较差,稍微懂些Access的人便能破解。
3) 利用加密函数,这种方法的保密性最强,它是利用一段asp代码建立一个加密函数,将需要加密的地方加密后再传给数据库,下面以具体实例来介绍:
利用MD5来实现对数据加密。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
例如,当用户登录的时候,系统把用户输入的密码计算成md5值,然后再去和保存在文件系统中的md5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。
MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。
当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。
主循环有四轮,每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。
以一下是每次操作中用到的四个非线性函数(每轮一个)。
F(X,Y,Z) =(X&Y)|((~X)&Z)
G(X,Y,Z) =(X&Z)|(Y&(~Z))
H(X,Y,Z) =X^Y^Z
I(X,Y,Z)=Y^(X|(~Z)) (&是与,|是或,~是非,^是异或)这四个函数的说明:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。
5 数据备份与恢复技术
任何一个安全系统都应该包括数据库的备份及恢复。
5.1 数据备份
用代码来实现数据库的备份,操作界面如图1所示。
数据库备份具体也由代码来实现:
Sub backupdata()
Dbpath=request.form("Dbpath")
Dbpath=server.mappath("Dbpath")
bkfolder=request.form("bkfolder")
bkdbname=request.form("bkdbname")
Set Fso=server.createobject("scripting.filesystemobject")
论文摘要:网络上的动态网站以ASP为多数,我们学校的网站也是ASP的。笔者作为学校网站的制作和维护人员,与ASP攻击的各种现象斗争了多次,也对网站进行了一次次的修补,根据工作经验,就ASP网站设计常见安全漏洞及其防范进行一些探讨。本文结合ASP动态网站开发经验,对ASP程序设计存在的信息安全隐患进行分析,讨论了ASP程序常见的安全漏洞,从程序设计角度对WEB信息安全及防范提供了参考。
1网络安全总体状况分析
2007年1月至6月期间,半年时间内,CNCERT/CC接收的网络仿冒事件和网页恶意代码事件,已分别超出去年全年总数的14.6%和12.5%。
从CNCERT/CC掌握的半年情况来看,攻击者的攻击目标明确,针对不同网站和用户采用不同的攻击手段,且攻击行为趋利化特点表现明显。对政府类和安全管理相关类网站主要采用篡改网页的攻击形式,也不排除放置恶意代码的可能。对中小企业,尤其是以网络为核心业务的企业,采用有组织的分布式拒绝服务攻击(DDoS)等手段进行勒索,影响企业正常业务的开展。对于个人用户,攻击者更多的是通过用户身份窃取等手段,偷取该用户游戏账号、银行账号、密码等,窃取用户的私有财产。
2用IIS+ASP建网站的安全性分析
微软推出的IIS+ASP的解决方案作为一种典型的服务器端网页设计技术,被广泛应用在网上银行、电子商务、网上调查、网上查询、BBS、搜索引擎等各种互联网应用中。但是,该解决方案在为我们带来便捷的同时,也带来了严峻的安全问题。本文从ASP程序设计角度对WEB信息安全及防范进行分析讨论。
3SP安全漏洞和防范
3.1程序设计与脚本信息泄漏隐患
bak文件。攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,如果你没有删除这个bak文件,攻击者可以直接下载,这样源程序就会被下载。
防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。
inc文件泄露问题。攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。
防范技巧:程序员应该在网页前对它进行彻底的调试。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件,使用户无法从浏览器直接观看文件的源代码。
3.2对ASP页面进行加密。为有效地防止ASP源代码泄露,可以对ASP页面进行加密。我们曾采用两种方法对ASP页面进行加密。一是使用组件技术将编程逻辑封装入DLL之中;二是使用微软的ScriptEncoder对ASP页面进行加密。3.3程序设计与验证不全漏洞
验证码。普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有很多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密码。而我们使用通过使用验证码技术,使客户端输入的信息都必须经过验证,从而可以解决这个问题。
登陆验证。对于很多网页,特别是网站后台管理部分,是要求有相应权限的用户才能进入操作的。但是,如果这些页面没有对用户身份进行验证,黑客就可以直接在地址栏输入收集到的相应的URL路径,避开用户登录验证页面,从而获得合法用户的权限。所以,登陆验证是非常必要的。
SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL注入攻击是最为常见的程序漏洞攻击方式,引起攻击的根本原因就是盲目信任用户,将用户输入用来直接构造SQL语句或存储过程的参数。以下列出三种攻击的形式:
A.用户登录:假设登录页面有两个文本框,分别用来供用户输入帐号和密码,利用执行SQL语句来判断用户是否为合法用户。试想,如果黑客在密码文本框中输入''''OR0=0,即不管前面输入的用户帐号和密码是什么,OR后面的0=0总是成立的,最后结果就是该黑客成为了合法的用户。
B.用户输入:假设网页中有个搜索功能,只要用户输入搜索关键字,系统就列出符合条件的所有记录,可是,如果黑客在关键字文本框中输入''''GODROPTABLE用户表,后果是用户表被彻底删除。
C.参数传递:假设我们有个网页链接地址是HTTP://……asp?id=22,然后ASP在页面中利用Request.QueryString[''''id'''']取得该id值,构成某SQL语句,这种情况很常见。可是,如果黑客将地址变为HTTP://……asp?id=22anduser=0,结果会怎样?如果程序员有没有对系统的出错提示进行屏蔽处理的话,黑客就获得了数据库的用户名,这为他们的进一步攻击提供了很好的条件。
解决方法:以上几个例子只是为了起到抛砖引玉的作用,其实,黑客利用“猜测+精通的sql语言+反复尝试”的方式,可以构造出各种各样的sql入侵。作为程序员,如何来防御或者降低受攻击的几率呢?作者在实际中是按以下方法做的:
第一:在用户输入页面加以友好备注,告知用户只能输入哪些字符;
第二:在客户端利用ASP自带的校验控件和正则表达式对用户输入进行校验,发现非法字符,提示用户且终止程序进行;
第三:为了防止黑客避开客户端校验直接进入后台,在后台程序中利用一个公用函数再次对用户输入进行检查,一旦发现可疑输入,立即终止程序,但不进行提示,同时,将黑客IP、动作、日期等信息保存到日志数据表中以备核查。
第四:对于参数的情况,页面利用QueryString或者Quest取得参数后,要对每个参数进行判断处理,发现异常字符,要利用replace函数将异常字符过滤掉,然后再做下一步操作。
第五:只给出一种错误提示信息,服务器都只提示HTTP500错误。
第六:在IIS中为每个网站设置好执行权限。千万别给静态网站以“脚本和可执行”权限。一般情况下给个“纯脚本”权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为“无”好了。
第七:数据库用户的权限配置。对于MS_SQL,如果PUBLIC权限足够使用的绝不给再高的权限,千万不要SA级别的权限随随便便地给。
3.4传漏洞
诸如论坛,同学录等网站系统都提供了文件上传功能,但在网页设计时如果缺少对用户提交参数的过滤,将使得攻击者可以上传网页木马等恶意文件,导致攻击事件的发生。
防文件上传漏洞
在文件上传之前,加入文件类型判断模块,进行过滤,防止ASP、ASA、CER等类型的文件上传。
暴库。暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
数据库可能被下载。在IIS+ASP网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。
数据库可能被解密
由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。因此,只要数据库被下载,其信息就没有任何安全性可言了。
防止数据库被下载。由于Access数据库加密机制过于简单,有效地防止数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。以下两种方法简单、有效。
非常规命名法。为Access数据库文件起一个复杂的非常规名字,并把它放在几个目录下。
使用ODBC数据源。在ASP程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。
使用密码加密。经过MD5加密,再结合生成图片验证码技术,暴力破解的难度会大大增强。
使用数据备份。当网站被黑客攻击或者其它原因丢失了数据,可以将备份的数据恢复到原始的数据,保证了网站在一些人为的、自然的不可避免的条件下的相对安全性。
3.5SP木马
由于ASP它本身是服务器提供的一项服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。我在这里讲讲如何有效的发现web空间中的asp木马并清除。
技巧1:杀毒软件查杀
一些非常有名的asp木马已经被杀毒软件列入了黑名单,所以利用杀毒软件对web空间中的文件进行扫描,可以有效的发现并清除这些有名的asp木马。
技巧2:FTP客户端对比
asp木马若进行伪装,加密,躲藏杀毒软件,怎么办?
我们可以利用一些FTP客户端软件(例如cuteftp,FlashFXP)提供的文件对比功能,通过对比FTP的中的web文件和本地的备份文件,发现是否多出可疑文件。
技巧3:用BeyondCompare2进行对比
渗透性asp木马,可以将代码插入到指定web文件中,平常情况下不会显示,只有使用触发语句才能打开asp木马,其隐蔽性非常高。BeyondCompare2这时候就会作用比较明显了。
技巧4:利用组件性能找asp木马
如:思易asp木马追捕。
大家在查找web空间的asp木马时,最好几种方法结合起来,这样就能有效的查杀被隐藏起来的asp木马。
结束语
总结了ASP木马防范的十大原则供大家参考:
建议用户通过FTP来上传、维护网页,尽量不安装asp的上传程序。
对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
要尽量保持程序是最新版本。
不要在网页上加注后台管理程序登陆页面的链接。
为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
要时常备份数据库等重要文件。
日常要多维护,并注意空间中是否有来历不明的asp文件。
一旦发现被人侵,除非自己能识别出所有木马文件,否则要删除所有文件。重新上传文件前,所有asp程序用户名和密码都要重置,并要重新修改程序数据库名称和存放路径以及后台管理程序的路径。
做好以上防范措施,您的网站只能说是相对安全了,决不能因此疏忽大意,因为入侵与反入侵是一场永恒的战争!网站安全是一个较为复杂的问题,严格的说,没有绝对安全的网络系统,我们只有通过不断的改进程序,将各种可能出现的问题考虑周全,对潜在的异常情况进行处理,才能减少被黑客入侵的机会。
参考文献
[1]袁志芳田晓芳李桂宝《ASP程序设计与WEB信息安全》中国教育信息化2007年21期.
2007年1月至6月期间,半年时间内,CNCERT/CC接收的网络仿冒事件和网页恶意代码事件,已分别超出去年全年总数的14.6%和12.5%。
从CNCERT/CC掌握的半年情况来看,攻击者的攻击目标明确,针对不同网站和用户采用不同的攻击手段,且攻击行为趋利化特点表现明显。对政府类和安全管理相关类网站主要采用篡改网页的攻击形式,也不排除放置恶意代码的可能。对中小企业,尤其是以网络为核心业务的企业,采用有组织的分布式拒绝服务攻击(DDoS)等手段进行勒索,影响企业正常业务的开展。对于个人用户,攻击者更多的是通过用户身份窃取等手段,偷取该用户游戏账号、银行账号、密码等,窃取用户的私有财产。
2用IIS+ASP建网站的安全性分析
微软推出的IIS+ASP的解决方案作为一种典型的服务器端网页设计技术,被广泛应用在网上银行、电子商务、网上调查、网上查询、BBS、搜索引擎等各种互联网应用中。但是,该解决方案在为我们带来便捷的同时,也带来了严峻的安全问题。本文从ASP程序设计角度对WEB信息安全及防范进行分析讨论。
3SP安全漏洞和防范
3.1程序设计与脚本信息泄漏隐患
bak文件。攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,如果你没有删除这个bak文件,攻击者可以直接下载,这样源程序就会被下载。
防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。
inc文件泄露问题。攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。
防范技巧:程序员应该在网页前对它进行彻底的调试。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件,使用户无法从浏览器直接观看文件的源代码。
3.2对ASP页面进行加密。为有效地防止ASP源代码泄露,可以对ASP页面进行加密。我们曾采用两种方法对ASP页面进行加密。一是使用组件技术将编程逻辑封装入DLL之中;二是使用微软的ScriptEncoder对ASP页面进行加密。3.3程序设计与验证不全漏洞
验证码。普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有很多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密码。而我们使用通过使用验证码技术,使客户端输入的信息都必须经过验证,从而可以解决这个问题。
登陆验证。对于很多网页,特别是网站后台管理部分,是要求有相应权限的用户才能进入操作的。但是,如果这些页面没有对用户身份进行验证,黑客就可以直接在地址栏输入收集到的相应的URL路径,避开用户登录验证页面,从而获得合法用户的权限。所以,登陆验证是非常必要的。
SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL注入攻击是最为常见的程序漏洞攻击方式,引起攻击的根本原因就是盲目信任用户,将用户输入用来直接构造SQL语句或存储过程的参数。以下列出三种攻击的形式:
A.用户登录:假设登录页面有两个文本框,分别用来供用户输入帐号和密码,利用执行SQL语句来判断用户是否为合法用户。试想,如果黑客在密码文本框中输入''''OR0=0,即不管前面输入的用户帐号和密码是什么,OR后面的0=0总是成立的,最后结果就是该黑客成为了合法的用户。
B.用户输入:假设网页中有个搜索功能,只要用户输入搜索关键字,系统就列出符合条件的所有记录,可是,如果黑客在关键字文本框中输入''''GODROPTABLE用户表,后果是用户表被彻底删除。
C.参数传递:假设我们有个网页链接地址是HTTP://……asp?id=22,然后ASP在页面中利用Request.QueryString[''''id'''']取得该id值,构成某SQL语句,这种情况很常见。可是,如果黑客将地址变为HTTP://……asp?id=22anduser=0,结果会怎样?如果程序员有没有对系统的出错提示进行屏蔽处理的话,黑客就获得了数据库的用户名,这为他们的进一步攻击提供了很好的条件。
解决方法:以上几个例子只是为了起到抛砖引玉的作用,其实,黑客利用“猜测+精通的sql语言+反复尝试”的方式,可以构造出各种各样的sql入侵。作为程序员,如何来防御或者降低受攻击的几率呢?作者在实际中是按以下方法做的:
第一:在用户输入页面加以友好备注,告知用户只能输入哪些字符;
第二:在客户端利用ASP自带的校验控件和正则表达式对用户输入进行校验,发现非法字符,提示用户且终止程序进行;
第三:为了防止黑客避开客户端校验直接进入后台,在后台程序中利用一个公用函数再次对用户输入进行检查,一旦发现可疑输入,立即终止程序,但不进行提示,同时,将黑客IP、动作、日期等信息保存到日志数据表中以备核查。
第四:对于参数的情况,页面利用QueryString或者Quest取得参数后,要对每个参数进行判断处理,发现异常字符,要利用replace函数将异常字符过滤掉,然后再做下一步操作。
第五:只给出一种错误提示信息,服务器都只提示HTTP500错误。
第六:在IIS中为每个网站设置好执行权限。千万别给静态网站以“脚本和可执行”权限。一般情况下给个“纯脚本”权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为“无”好了。
第七:数据库用户的权限配置。对于MS_SQL,如果PUBLIC权限足够使用的绝不给再高的权限,千万不要SA级别的权限随随便便地给。
3.4传漏洞
诸如论坛,同学录等网站系统都提供了文件上传功能,但在网页设计时如果缺少对用户提交参数的过滤,将使得攻击者可以上传网页木马等恶意文件,导致攻击事件的发生。
防文件上传漏洞
在文件上传之前,加入文件类型判断模块,进行过滤,防止ASP、ASA、CER等类型的文件上传。
暴库。暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
数据库可能被下载。在IIS+ASP网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。
数据库可能被解密
由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。因此,只要数据库被下载,其信息就没有任何安全性可言了。
防止数据库被下载。由于Access数据库加密机制过于简单,有效地防止数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。以下两种方法简单、有效。
非常规命名法。为Access数据库文件起一个复杂的非常规名字,并把它放在几个目录下。
使用ODBC数据源。在ASP程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。
使用密码加密。经过MD5加密,再结合生成图片验证码技术,暴力破解的难度会大大增强。
使用数据备份。当网站被黑客攻击或者其它原因丢失了数据,可以将备份的数据恢复到原始的数据,保证了网站在一些人为的、自然的不可避免的条件下的相对安全性。
3.5SP木马
由于ASP它本身是服务器提供的一项服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。我在这里讲讲如何有效的发现web空间中的asp木马并清除。
技巧1:杀毒软件查杀
一些非常有名的asp木马已经被杀毒软件列入了黑名单,所以利用杀毒软件对web空间中的文件进行扫描,可以有效的发现并清除这些有名的asp木马。
技巧2:FTP客户端对比
asp木马若进行伪装,加密,躲藏杀毒软件,怎么办?
我们可以利用一些FTP客户端软件(例如cuteftp,FlashFXP)提供的文件对比功能,通过对比FTP的中的web文件和本地的备份文件,发现是否多出可疑文件。
技巧3:用BeyondCompare2进行对比
渗透性asp木马,可以将代码插入到指定web文件中,平常情况下不会显示,只有使用触发语句才能打开asp木马,其隐蔽性非常高。BeyondCompare2这时候就会作用比较明显了。
技巧4:利用组件性能找asp木马
如:思易asp木马追捕。
大家在查找web空间的asp木马时,最好几种方法结合起来,这样就能有效的查杀被隐藏起来的asp木马。
结束语
总结了ASP木马防范的十大原则供大家参考:
建议用户通过FTP来上传、维护网页,尽量不安装asp的上传程序。
对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
要尽量保持程序是最新版本。
不要在网页上加注后台管理程序登陆页面的链接。
为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
要时常备份数据库等重要文件。
日常要多维护,并注意空间中是否有来历不明的asp文件。
一旦发现被人侵,除非自己能识别出所有木马文件,否则要删除所有文件。重新上传文件前,所有asp程序用户名和密码都要重置,并要重新修改程序数据库名称和存放路径以及后台管理程序的路径。
做好以上防范措施,您的网站只能说是相对安全了,决不能因此疏忽大意,因为入侵与反入侵是一场永恒的战争!网站安全是一个较为复杂的问题,严格的说,没有绝对安全的网络系统,我们只有通过不断的改进程序,将各种可能出现的问题考虑周全,对潜在的异常情况进行处理,才能减少被黑客入侵的机会。
参考文献
[1]袁志芳田晓芳李桂宝《ASP程序设计与WEB信息安全》中国教育信息化2007年21期.
[2]陈明奇《2007年上半年网络安全状况分析》信息网络安全2007年第10期
论文摘要:网络上的动态网站以ASP为多数,我们学校的网站也是ASP的。笔者作为学校网站的制作和维护人员,与ASP攻击的各种现象斗争了多次,也对网站进行了一次次的修补,根据工作经验,就ASP网站设计常见安全漏洞及其防范进行一些探讨。本文结合 ASP 动态网站开发经验,对ASP 程序设计存在的信息安全隐患进行分析,讨论了ASP 程序常见的安全漏洞,从程序设计角度对 WEB信息安全及防范提供了参考。
1网络安全总体状况分析
2007年1月至6月期间,半年时间内,CNCERT/CC接收的网络仿冒事件和网页恶意代码事件,已分别超出去年全年总数的14.6%和12.5%。
从CNCERT/CC掌握的半年情况来看,攻击者的攻击目标明确,针对不同网站和用户采用不同的攻击手段,且攻击行为趋利化特点表现明显。对政府类和安全管理相关类网站主要采用篡改网页的攻击形式,也不排除放置恶意代码的可能。对中小企业,尤其是以网络为核心业务的企业,采用有组织的分布式拒绝服务攻击(DDoS)等手段进行勒索,影响企业正常业务的开展。对于个人用户,攻击者更多的是通过用户身份窃取等手段,偷取该用户游戏账号、银行账号、密码等,窃取用户的私有财产。
2 用IIS+ASP建网站的安全性分析
微软推出的IIS+ASP的解决方案作为一种典型的服务器端网页设计技术,被广泛应用在网上银行、电子商务、网上调查、网上查询、BBS、搜索引擎等各种互联网应用中。但是,该解决方案在为我们带来便捷的同时,也带来了严峻的安全问题。本文从 ASP 程序设计角度对 WEB 信息安全及防范进行分析讨论。
3 SP安全漏洞和防范
3.1 程序设计与脚本信息泄漏隐患
bak 文件。攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,如果你没有删除这个bak文件,攻击者可以直接下载,这样源程序就会被下载。
防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。
inc文件泄露问题。攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。
防范技巧:程序员应该在网页前对它进行彻底的调试。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件,使用户无法从浏览器直接观看文件的源代码。
3.2 对ASP页面进行加密。为有效地防止ASP源代码泄露,可以对ASP页面进行加密。我们曾采用两种方法对ASP页面进行加密。一是使用组件技术将编程逻辑封装入 DLL之中;二是使用微软的Script Encoder对ASP页面进行加密。
3.3 程序设计与验证不全漏洞
验证码。普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有很多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密码。而我们使用通过使用验证码技术,使客户端输入的信息都必须经过验证,从而可以解决这个问题。
登陆验证。对于很多网页,特别是网站后台管理部分,是要求有相应权限的用户才能进入操作的。但是,如果这些页面没有对用户身份进行验证,黑客就可以直接在地址栏输入收集到的相应的 URL 路径,避开用户登录验证页面,从而获得合法用户的权限。所以,登陆验证是非常必要的。
SQL 注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL 注入攻击是最为常见的程序漏洞攻击方式,引起攻击的根本原因就是盲目信任用户,将用户输入用来直接构造 SQL 语句或存储过程的参数。以下列出三种攻击的形式:
A.用户登录: 假设登录页面有两个文本框,分别用来供用户输入帐号和 密码,利用执行SQL 语句来判断用户是否为合法用户。试想,如果黑客在密码文本框中输入 'OR 0=0,即不管前面输入的用户帐号和密码是什么,OR后面的 0=0 总是成立的,最后结果就是该黑客成为了合法的用户。
B.用户输入:假设网页中有个搜索功能,只要用户输入搜索关键字,系统就列出符合条件的所有记录,可是,如果黑客在关键字文本框中输入' GO DROP TABLE 用户表,后果是用户表被彻底删除。
C.参数传递: 假设我们有个网页链接地址是 HTTP://……asp?id=22, 然后 ASP在页面中利用 Request.QueryString['id']取得该 id值,构成某 SQL 语句, 这种情况很常见。可是,如果黑客将地址变为HTTP://……asp?id=22 and user=0 ,结果会怎样?如果程序员有没有对系统的出错提示进行屏蔽处理的话,黑客就获得了数据库的用户名,这为他们的进一步攻击提供了很好的条件。
解决方法:以上几个例子只是为了起到抛砖引玉的作用,其实,黑客利用“猜测+精通的sql 语言+反复尝试”的方式,可以构造出各种各样的sql入侵。作为程序员,如何来防御或者降低受攻击的几率呢?作者在实际中是按以下方法做的:
第一: 在用户输入页面加以友好备注,告知用户只能输入哪些字符;
第二: 在客户端利用 ASP 自带的校验控件和正则表达式对用户输入进行校验,发现非法字符,提示用户且终止程序进行;
第三: 为了防止黑客避开客户端校验直接进入后台,在后台程序中利用一个公用函数再次对用户输入进行检查,一旦发现可疑输入,立即终止程序,但不进行提示,同时,将黑客IP、动作、日期等信息保存到日志数据表中以备核查。
第四: 对于参数的情况,页面利用 QueryString 或者 Quest 取得参数后, 要对每个参数进行判断处理,发现异常字符, 要利用 replace 函数将异常字符过滤掉,然后再做下一步操作。
转贴于
第五:只给出一种错误提示信息,服务器都只提示HTTP 500错误。
第六:在IIS中为每个网站设置好执行权限。千万别给静态网站以“脚本和可执行”权限。一般情况下给个“纯脚本”权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为“无”好了。
第七:数据库用户的权限配置。对于MS_SQL,如果PUBLIC权限足够使用的绝不给再高的权限,千万不要SA级别的权限随随便便地给。
3.4 传漏洞
诸如论坛,同学录等网站系统都提供了文件上传功能,但在网页设计时如果缺少对用户提交参数的过滤,将使得攻击者可以上传网页木马等恶意文件,导致攻击事件的发生。
防文件上传漏洞
在文件上传之前,加入文件类型判断模块,进行过滤,防止ASP、ASA、CER等类型的文件上传。
暴库。暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
数据库可能被下载。在IIS+ASP网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。
数据库可能被解密
由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。因此,只要数据库被下载,其信息就没有任何安全性可言了。
防止数据库被下载 。由于Access数据库加密机制过于简单,有效地防止数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。以下两种方法简单、有效。
非常规命名法。为Access数据库文件起一个复杂的非常规名字,并把它放在几个目录下。
使用ODBC数据源。在ASP程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。
使用密码加密。经过MD5加密,再结合生成图片验证码技术,暴力破解的难度会大大增强。
使用数据备份。当网站被黑客攻击或者其它原因丢失了数据,可以将备份的数据恢复到原始的数据,保证了网站在一些人为的、自然的不可避免的条件下的相对安全性。
3.5 SP木马
由于ASP它本身是服务器提供的一项服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。我在这里讲讲如何有效的发现web空间中的asp木马并清除。
技巧1:杀毒软件查杀
一些非常有名的asp木马已经被杀毒软件列入了黑名单,所以利用杀毒软件对web空间中的文件进行扫描,可以有效的发现并清除这些有名的asp木马。
技巧2:FTP客户端对比
asp木马若进行伪装,加密,躲藏杀毒软件,怎么办?
我们可以利用一些FTP客户端软件(例如cuteftp,FlashFXP)提供的文件对比功能,通过对比FTP的中的web文件和本地的备份文件,发现是否多出可疑文件。
技巧3:用Beyond Compare 2进行对比
渗透性asp木马,可以将代码插入到指定web文件中,平常情况下不会显示,只有使用触发语句才能打开asp木马,其隐蔽性非常高。 Beyond Compare 2这时候就会作用比较明显了。
技巧4:利用组件性能找asp木马
如:思易asp木马追捕。
大家在查找web空间的asp木马时,最好几种方法结合起来,这样就能有效的查杀被隐藏起来的asp木马。
结束语
总结了ASP木马防范的十大原则供大家参考:
建议用户通过FTP来上传、维护网页,尽量不安装asp的上传程序。
对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
要尽量保持程序是最新版本。
不要在网页上加注后台管理程序登陆页面的链接。
为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
要时常备份数据库等重要文件。
日常要多维护,并注意空间中是否有来历不明的asp文件。
一旦发现被人侵,除非自己能识别出所有木马文件,否则要删除所有文件。重新上传文件前,所有asp程序用户名和密码都要重置,并要重新修改程序数据库名称和存放路径以及后台管理程序的路径。
做好以上防范措施,您的网站只能说是相对安全了,决不能因此疏忽大意,因为入侵与反入侵是一场永恒的战争!网站安全是一个较为复杂的问题,严格的说,没有绝对安全的网络系统,我们只有通过不断的改进程序,将各种可能出现的问题考虑周全,对潜在的异常情况进行处理,才能减少被黑客入侵的机会。
参考文献
[1]袁志芳 田晓芳 李桂宝《ASP程序设计与 WEB信息安全》 中国教育信息化2007年21期.
论文摘要:网络上的动态网站以ASP为多数,我们学校的网站也是ASP的。笔者作为学校网站的制作和维护人员,与ASP攻击的各种现象斗争了多次,也对网站进行了一次次的修补,根据工作经验,就ASP网站设计常见安全漏洞及其防范进行一些探讨。本文结合ASP动态网站开发经验,对ASP程序设计存在的信息安全隐患进行分析,讨论了ASP程序常见的安全漏洞,从程序设计角度对WEB信息安全及防范提供了参考。
1网络安全总体状况分析
2007年1月至6月期间,半年时间内,CNCERT/CC接收的网络仿冒事件和网页恶意代码事件,已分别超出去年全年总数的14.6%和12.5%。
从CNCERT/CC掌握的半年情况来看,攻击者的攻击目标明确,针对不同网站和用户采用不同的攻击手段,且攻击行为趋利化特点表现明显。对政府类和安全管理相关类网站主要采用篡改网页的攻击形式,也不排除放置恶意代码的可能。对中小企业,尤其是以网络为核心业务的企业,采用有组织的分布式拒绝服务攻击(DDoS)等手段进行勒索,影响企业正常业务的开展。对于个人用户,攻击者更多的是通过用户身份窃取等手段,偷取该用户游戏账号、银行账号、密码等,窃取用户的私有财产。
2用IIS+ASP建网站的安全性分析
微软推出的IIS+ASP的解决方案作为一种典型的服务器端网页设计技术,被广泛应用在网上银行、电子商务、网上调查、网上查询、BBS、搜索引擎等各种互联网应用中。但是,该解决方案在为我们带来便捷的同时,也带来了严峻的安全问题。本文从ASP程序设计角度对WEB信息安全及防范进行分析讨论。
3SP安全漏洞和防范
3.1程序设计与脚本信息泄漏隐患
bak文件。攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,如果你没有删除这个bak文件,攻击者可以直接下载,这样源程序就会被下载。
防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。
inc文件泄露问题。攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。
防范技巧:程序员应该在网页前对它进行彻底的调试。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件,使用户无法从浏览器直接观看文件的源代码。
3.2对ASP页面进行加密。为有效地防止ASP源代码泄露,可以对ASP页面进行加密。我们曾采用两种方法对ASP页面进行加密。一是使用组件技术将编程逻辑封装入DLL之中;二是使用微软的ScriptEncoder对ASP页面进行加密。3.3程序设计与验证不全漏洞
验证码。普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有很多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密码。而我们使用通过使用验证码技术,使客户端输入的信息都必须经过验证,从而可以解决这个问题。
登陆验证。对于很多网页,特别是网站后台管理部分,是要求有相应权限的用户才能进入操作的。但是,如果这些页面没有对用户身份进行验证,黑客就可以直接在地址栏输入收集到的相应的URL路径,避开用户登录验证页面,从而获得合法用户的权限。所以,登陆验证是非常必要的。
SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL注入攻击是最为常见的程序漏洞攻击方式,引起攻击的根本原因就是盲目信任用户,将用户输入用来直接构造SQL语句或存储过程的参数。以下列出三种攻击的形式:
A.用户登录:假设登录页面有两个文本框,分别用来供用户输入帐号和密码,利用执行SQL语句来判断用户是否为合法用户。试想,如果黑客在密码文本框中输入''''OR0=0,即不管前面输入的用户帐号和密码是什么,OR后面的0=0总是成立的,最后结果就是该黑客成为了合法的用户。
B.用户输入:假设网页中有个搜索功能,只要用户输入搜索关键字,系统就列出符合条件的所有记录,可是,如果黑客在关键字文本框中输入''''GODROPTABLE用户表,后果是用户表被彻底删除。
C.参数传递:假设我们有个网页链接地址是HTTP://……asp?id=22,然后ASP在页面中利用Request.QueryString[''''id'''']取得该id值,构成某SQL语句,这种情况很常见。可是,如果黑客将地址变为HTTP://……asp?id=22anduser=0,结果会怎样?如果程序员有没有对系统的出错提示进行屏蔽处理的话,黑客就获得了数据库的用户名,这为他们的进一步攻击提供了很好的条件。
解决方法:以上几个例子只是为了起到抛砖引玉的作用,其实,黑客利用“猜测+精通的sql语言+反复尝试”的方式,可以构造出各种各样的sql入侵。作为程序员,如何来防御或者降低受攻击的几率呢?作者在实际中是按以下方法做的:
第一:在用户输入页面加以友好备注,告知用户只能输入哪些字符;
第二:在客户端利用ASP自带的校验控件和正则表达式对用户输入进行校验,发现非法字符,提示用户且终止程序进行;
第三:为了防止黑客避开客户端校验直接进入后台,在后台程序中利用一个公用函数再次对用户输入进行检查,一旦发现可疑输入,立即终止程序,但不进行提示,同时,将黑客IP、动作、日期等信息保存到日志数据表中以备核查。
第四:对于参数的情况,页面利用QueryString或者Quest取得参数后,要对每个参数进行判断处理,发现异常字符,要利用replace函数将异常字符过滤掉,然后再做下一步操作。
第五:只给出一种错误提示信息,服务器都只提示HTTP500错误。
第六:在IIS中为每个网站设置好执行权限。千万别给静态网站以“脚本和可执行”权限。一般情况下给个“纯脚本”权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为“无”好了。
第七:数据库用户的权限配置。对于MS_SQL,如果PUBLIC权限足够使用的绝不给再高的权限,千万不要SA级别的权限随随便便地给。
3.4传漏洞
诸如论坛,同学录等网站系统都提供了文件上传功能,但在网页设计时如果缺少对用户提交参数的过滤,将使得攻击者可以上传网页木马等恶意文件,导致攻击事件的发生。
防文件上传漏洞
在文件上传之前,加入文件类型判断模块,进行过滤,防止ASP、ASA、CER等类型的文件上传。
暴库。暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
数据库可能被下载。在IIS+ASP网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。
数据库可能被解密
由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。因此,只要数据库被下载,其信息就没有任何安全性可言了。
防止数据库被下载。由于Access数据库加密机制过于简单,有效地防止数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。以下两种方法简单、有效。
非常规命名法。为Access数据库文件起一个复杂的非常规名字,并把它放在几个目录下。
使用ODBC数据源。在ASP程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。
使用密码加密。经过MD5加密,再结合生成图片验证码技术,暴力破解的难度会大大增强。
使用数据备份。当网站被黑客攻击或者其它原因丢失了数据,可以将备份的数据恢复到原始的数据,保证了网站在一些人为的、自然的不可避免的条件下的相对安全性。
3.5SP木马
由于ASP它本身是服务器提供的一项服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。我在这里讲讲如何有效的发现web空间中的asp木马并清除。
技巧1:杀毒软件查杀
一些非常有名的asp木马已经被杀毒软件列入了黑名单,所以利用杀毒软件对web空间中的文件进行扫描,可以有效的发现并清除这些有名的asp木马。
技巧2:FTP客户端对比
asp木马若进行伪装,加密,躲藏杀毒软件,怎么办?
我们可以利用一些FTP客户端软件(例如cuteftp,FlashFXP)提供的文件对比功能,通过对比FTP的中的web文件和本地的备份文件,发现是否多出可疑文件。
技巧3:用BeyondCompare2进行对比
渗透性asp木马,可以将代码插入到指定web文件中,平常情况下不会显示,只有使用触发语句才能打开asp木马,其隐蔽性非常高。BeyondCompare2这时候就会作用比较明显了。
技巧4:利用组件性能找asp木马
如:思易asp木马追捕。
大家在查找web空间的asp木马时,最好几种方法结合起来,这样就能有效的查杀被隐藏起来的asp木马。
结束语
总结了ASP木马防范的十大原则供大家参考:
建议用户通过FTP来上传、维护网页,尽量不安装asp的上传程序。
对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
要尽量保持程序是最新版本。
不要在网页上加注后台管理程序登陆页面的链接。
为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
要时常备份数据库等重要文件。
日常要多维护,并注意空间中是否有来历不明的asp文件。
一旦发现被人侵,除非自己能识别出所有木马文件,否则要删除所有文件。重新上传文件前,所有asp程序用户名和密码都要重置,并要重新修改程序数据库名称和存放路径以及后台管理程序的路径。
做好以上防范措施,您的网站只能说是相对安全了,决不能因此疏忽大意,因为入侵与反入侵是一场永恒的战争!网站安全是一个较为复杂的问题,严格的说,没有绝对安全的网络系统,我们只有通过不断的改进程序,将各种可能出现的问题考虑周全,对潜在的异常情况进行处理,才能减少被黑客入侵的机会。
参考文献
[1]袁志芳田晓芳李桂宝《ASP程序设计与WEB信息安全》中国教育信息化2007年21期.
2007年1月至6月期间,半年时间内,CNCERT/CC接收的网络仿冒事件和网页恶意代码事件,已分别超出去年全年总数的14.6%和12.5%。
从CNCERT/CC掌握的半年情况来看,攻击者的攻击目标明确,针对不同网站和用户采用不同的攻击手段,且攻击行为趋利化特点表现明显。对政府类和安全管理相关类网站主要采用篡改网页的攻击形式,也不排除放置恶意代码的可能。对中小企业,尤其是以网络为核心业务的企业,采用有组织的分布式拒绝服务攻击(DDoS)等手段进行勒索,影响企业正常业务的开展。对于个人用户,攻击者更多的是通过用户身份窃取等手段,偷取该用户游戏账号、银行账号、密码等,窃取用户的私有财产。
2用IIS+ASP建网站的安全性分析
微软推出的IIS+ASP的解决方案作为一种典型的服务器端网页设计技术,被广泛应用在网上银行、电子商务、网上调查、网上查询、BBS、搜索引擎等各种互联网应用中。但是,该解决方案在为我们带来便捷的同时,也带来了严峻的安全问题。本文从ASP程序设计角度对WEB信息安全及防范进行分析讨论。
3SP安全漏洞和防范
3.1程序设计与脚本信息泄漏隐患
bak文件。攻击原理:在有些编辑ASP程序的工具中,当创建或者修改一个ASP文件时,编辑器自动创建一个备份文件,如果你没有删除这个bak文件,攻击者可以直接下载,这样源程序就会被下载。
防范技巧:上传程序之前要仔细检查,删除不必要的文档。对以BAK为后缀的文件要特别小心。
inc文件泄露问题。攻击原理:当存在ASP的主页正在制作且没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象。如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中查看到数据库地点和结构的细节,并以此揭示完整的源代码。
防范技巧:程序员应该在网页前对它进行彻底的调试。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件,使用户无法从浏览器直接观看文件的源代码。
3.2对ASP页面进行加密。为有效地防止ASP源代码泄露,可以对ASP页面进行加密。我们曾采用两种方法对ASP页面进行加密。一是使用组件技术将编程逻辑封装入DLL之中;二是使用微软的ScriptEncoder对ASP页面进行加密。3.3程序设计与验证不全漏洞
验证码。普遍的客户端交互如留言本、会员注册等仅是按照要求输入内容,但网上有很多攻击软件,如注册机,可以通过浏览WEB,扫描表单,然后在系统上频繁注册,频繁发送不良信息,造成不良的影响,或者通过软件不断的尝试,盗取你的密码。而我们使用通过使用验证码技术,使客户端输入的信息都必须经过验证,从而可以解决这个问题。
登陆验证。对于很多网页,特别是网站后台管理部分,是要求有相应权限的用户才能进入操作的。但是,如果这些页面没有对用户身份进行验证,黑客就可以直接在地址栏输入收集到的相应的URL路径,避开用户登录验证页面,从而获得合法用户的权限。所以,登陆验证是非常必要的。
SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
SQL注入攻击是最为常见的程序漏洞攻击方式,引起攻击的根本原因就是盲目信任用户,将用户输入用来直接构造SQL语句或存储过程的参数。以下列出三种攻击的形式:
A.用户登录:假设登录页面有两个文本框,分别用来供用户输入帐号和密码,利用执行SQL语句来判断用户是否为合法用户。试想,如果黑客在密码文本框中输入''''OR0=0,即不管前面输入的用户帐号和密码是什么,OR后面的0=0总是成立的,最后结果就是该黑客成为了合法的用户。
B.用户输入:假设网页中有个搜索功能,只要用户输入搜索关键字,系统就列出符合条件的所有记录,可是,如果黑客在关键字文本框中输入''''GODROPbr用户表,后果是用户表被彻底删除。
C.参数传递:假设我们有个网页链接地址是HTTP://……asp?id=22,然后ASP在页面中利用Request.QueryString[''''id'''']取得该id值,构成某SQL语句,这种情况很常见。可是,如果黑客将地址变为HTTP://……asp?id=22anduser=0,结果会怎样?如果程序员有没有对系统的出错提示进行屏蔽处理的话,黑客就获得了数据库的用户名,这为他们的进一步攻击提供了很好的条件。
解决方法:以上几个例子只是为了起到抛砖引玉的作用,其实,黑客利用“猜测+精通的sql语言+反复尝试”的方式,可以构造出各种各样的sql入侵。作为程序员,如何来防御或者降低受攻击的几率呢?作者在实际中是按以下方法做的:
第一:在用户输入页面加以友好备注,告知用户只能输入哪些字符;
第二:在客户端利用ASP自带的校验控件和正则表达式对用户输入进行校验,发现非法字符,提示用户且终止程序进行;
第三:为了防止黑客避开客户端校验直接进入后台,在后台程序中利用一个公用函数再次对用户输入进行检查,一旦发现可疑输入,立即终止程序,但不进行提示,同时,将黑客IP、动作、日期等信息保存到日志数据表中以备核查。
第四:对于参数的情况,页面利用QueryString或者Quest取得参数后,要对每个参数进行判断处理,发现异常字符,要利用replace函数将异常字符过滤掉,然后再做下一步操作。
第五:只给出一种错误提示信息,服务器都只提示HTTP500错误。
第六:在IIS中为每个网站设置好执行权限。千万别给静态网站以“脚本和可执行”权限。一般情况下给个“纯脚本”权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为“无”好了。
第七:数据库用户的权限配置。对于MS_SQL,如果PUBLIC权限足够使用的绝不给再高的权限,千万不要SA级别的权限随随便便地给。
3.4传漏洞
诸如论坛,同学录等网站系统都提供了文件上传功能,但在网页设计时如果缺少对用户提交参数的过滤,将使得攻击者可以上传网页木马等恶意文件,导致攻击事件的发生。
防文件上传漏洞
在文件上传之前,加入文件类型判断模块,进行过滤,防止ASP、ASA、CER等类型的文件上传。
暴库。暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
数据库可能被下载。在IIS+ASP网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。
数据库可能被解密
由于Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。因此,只要数据库被下载,其信息就没有任何安全性可言了。
防止数据库被下载。由于Access数据库加密机制过于简单,有效地防止数据库被下载,就成了提高ASP+Access解决方案安全性的重中之重。以下两种方法简单、有效。
非常规命名法。为Access数据库文件起一个复杂的非常规名字,并把它放在几个目录下。
使用ODBC数据源。在ASP程序设计中,如果有条件,应尽量使用ODBC数据源,不要把数据库名写在程序中,否则,数据库名将随ASP源代码的失密而一同失密。
使用密码加密。经过MD5加密,再结合生成图片验证码技术,暴力破解的难度会大大增强。
使用数据备份。当网站被黑客攻击或者其它原因丢失了数据,可以将备份的数据恢复到原始的数据,保证了网站在一些人为的、自然的不可避免的条件下的相对安全性。
3.5SP木马
由于ASP它本身是服务器提供的一项服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。我在这里讲讲如何有效的发现web空间中的asp木马并清除。
技巧1:杀毒软件查杀
一些非常有名的asp木马已经被杀毒软件列入了黑名单,所以利用杀毒软件对web空间中的文件进行扫描,可以有效的发现并清除这些有名的asp木马。
技巧2:FTP客户端对比
asp木马若进行伪装,加密,躲藏杀毒软件,怎么办?
我们可以利用一些FTP客户端软件(例如cuteftp,FlashFXP)提供的文件对比功能,通过对比FTP的中的web文件和本地的备份文件,发现是否多出可疑文件。
技巧3:用BeyondCompare2进行对比
渗透性asp木马,可以将代码插入到指定web文件中,平常情况下不会显示,只有使用触发语句才能打开asp木马,其隐蔽性非常高。BeyondCompare2这时候就会作用比较明显了。
技巧4:利用组件性能找asp木马
如:思易asp木马追捕。
大家在查找web空间的asp木马时,最好几种方法结合起来,这样就能有效的查杀被隐藏起来的asp木马。
结束语
总结了ASP木马防范的十大原则供大家参考:
建议用户通过FTP来上传、维护网页,尽量不安装asp的上传程序。
对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
到正规网站下载asp程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
要尽量保持程序是最新版本。
不要在网页上加注后台管理程序登陆页面的链接。
为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
要时常备份数据库等重要文件。
日常要多维护,并注意空间中是否有来历不明的asp文件。
【关键词】网站群;信息安全;云计算;设计
2011年底,中国互联网信息中心数据,我国网民数量首次突破5亿人,网站数量达到了230万个,而在2012年上半年,来自中国互联网信息中心的数据显示,我国移动互联网的网民数量首次超过基于PC互联网人数,这说明移动互联网已成为未来互联网发展的趋势,而移动互联网和云计算的亲和性更加完美,在此背景下,云计算能够给政府网站群在管理和运营方面提供了一个新的技术平台,本文通过某政府单位典型的网站群建设案例来进行具体的分析,来探索云计算在网站群架构和安全性方面的设计。
1.云计算技术在网站群架构设计和安全性方面的实现
1.1 针对云计算在网站群架构设计方面的可行性研究
云计算技术在商业网站以及企业网站群的建设上已经得到了普遍的应用,这说明政府机构网站群的云计算架构也是可以实现的,但是在云计算架构下的应用安全性问题,云计算的表现如何,因此对这一点的探讨还需要通过后续的实施进行研究,当然目前的私有云和公有云的不同属性也有助于解决云计算的应用安全隐患。
1.2 设立云计算的网站群架构的实验平台
1.2.1 实现云计算架构的软硬件资源
本实验的平台采用了8台刀片服务器以及基于raid6.0磁盘阵列。系统软件采用了LINUX以及中间组件和DBMS面向对象数据库。应用软件模块则使用了专业的网站群管理和应用软件。
1.2.2 实验平台的体系架构
在本课题研究的体系架构中,首先要集成研究的基本资源,然后在8台刀片机服务器上安装相应的系统软件和磁盘阵列,安装虚拟服务器操作系统,以及云计算资源管理系统等,从而形成IaaS云计算环境。这是就建立了基本的云计算服务平台。接着就需要在IaaS环境下进一步布置PaaS环境,也就是说要在IaaS上布置支持网站群的基础软件。在完成PaaS环境的部署之后,在安装网站群管理和建设的应用软件,进而形成SaaS环境,此时就完成了本课题研究的体系架构建设,具体如图1所示。
1.2.3 易扩展性设计
在网站群设计阶段就需要充分的考虑今后的易扩展性,在本课题的实验平添环境中需要布置几套能够支持网站群管理的应用软件,在每套系统中有助于建设自由子站群,并通过一个主管理软件统一管理不同子站群,实现子站群的独立性和共享性,同时还能够根据应用的需求随时可以扩大站群。具体如图2所示。
1.3 安全性设计分析
根据图3所示,在这个云计算平台上划分出了2个独立的安全域,这是云计算解决网站群的核心。这两个安全域一个放在互联网中,也就是所谓的公有云。这部分是为了实现站群子站的所有浏览服务。另一个安全域就是在管理服务器的局域网中,因此又叫做私有云。主要的作用就是给网站群的内容作管理。在资源管理和服务平台中,跨域管理的核心就是通过IP地址映射。
图3中的云计算资源管理平台一共有4个子域,虚拟机组成的子域是专门网站群的信息,其作用是面向互联网提供内容浏览服务,这就是为什么这个域被称为公有云的原因。而其他3个子域则分别对信息以及数据库尽心管理,形成私有云,而公有云和私有云之间并没有被截断,而是通过VPN虚拟局域网通道实现数据共享,这种方式能够更好的确保信息的安全传递。
1.4 云计算在网站群架构设计和安全性设计的实验分析
1.4.1 能够提升站群的易扩展性
在站群建设上是一个动态的过程,相对于传统的站群建设中,都是需要经过独立的服务器和独立的空间,需要独立的服务器进行管理,所以一旦增加新的网站进入站群,那么需要做的工作就很多,而且非常繁琐,这不利于网站集群的扩展。但是在云计算技术下,因为采用了网站群应用软件进行集中管理,网站内容都是集中在数据库中,新建的网站内容只需要在数据库中调去,就能够产生一个功能非常丰富的网站,而且还提供了网站外挂功能模块的接口,有助于系统的增强。
1.4.2 网站群的子群和网站安全性更高
在云计算中采用了公有云和私有云结合的方式来实现对网站群的管理,与此同时还在服务器上安装了监控软件,能够对网站站群的属性进行即时监控,比如网站的访问量和访问者等参数的监控,并且这些参数还能够通过前台功能的设置,帮助管理者来监控和管理站群,防范非法入侵,提升网站的安全性。
1.4.3 实验平台资源分析
该站群服务器总共有30台4核服务器,类型分别是22台机架式服务器和8台刀片式服务器。在本实验研究中采用的服务器是8台刀片式服务器。按照非云计算技术组件站群服务,那么这8台刀片式服务器就仅仅能够完成8中虚拟服务,但是在云计算环境下,就能够分配48个虚拟服务,在实验研究中,实际上分配的虚拟机是30台,分别布置在公有云和私有云的云计算管理平台中。在实验研究中,有3个子域采用了私有云的安全设置,并支持3个子站群的网站建设,通过将云计算下的服务器使用数量和非云计算服务器使用数量进行对比分析,能够降低达到一半的水平,而且在站群的安全性方面,云计算的私有云和公有云的共同作用要比非云计算环境下安全要高得多。在能耗上,云计算的能耗要比非云计算的能耗同样也要低一半。
1.5 云计算实验平台设计和实践的关键
1.5.1 对私有云和公有云的应用范围要严格区分
在云计算平台架构中主要有两个层次,一个是信息处理层,另一个是信息展示层。一般而言,云计算体系架构中,信息展示层需要布置在公有云中,而信息处理层则需要布置在私有云中,这两者之间需要通过VPN建立虚拟通道,这样有助于提升网站群的安全。
1.5.2 注重熟能生巧
目前云计算的应用还处于方兴未艾阶段,有很多的应用还存在摸索和研究阶段,因此作为新兴的应用应该将云计算技术的应用放在容易突破的地方,其中从容易了解和熟知的领域进行创新,就能够很好的实现对技术的创新,云计算在存贮和网站管理方面的应用相对已经成熟,本研究课题的实验实际上也就是在这种熟悉的基础上实现的创新。
2.云计算在玩站群架构和安全性设计实验带来的意义
通过对实验平台的研究,云计算技术的核心就在于虚拟化,通过将4个服务模块的虚拟化,分别布置成私有云和公有云,同时在数据存贮方面,同样也使用到了虚拟化的技术,这些对数据存贮安全性和易管理性都具有十分重要的作用。在这里特别要提到的就是云计算技术有效的解决了无边界的安全防护问题,因为在云计算环境下,一切都是虚拟的,这对于安全防护来说,就出现了没有边界的尴尬,无法实现逻辑上的划分隔离。如果仿照物理服务器进行安全防护,那显然有悖于虚拟化的应用。不过随着私有云和公有云的出现则很好的解决了这个瓶颈,将每个子站群布置在一个私有云中,而这个私有云实际上就是一个逻辑边界,因此在私有云中可以实现安全防护。同理公有云同样也是一种逻辑安全边界,可以提升安全防护,而且私有云和公有云之间还可以通过VPN实现信息共享,从而既保证了数据的安全有保证了数据的沟通。
3.总结
云计算的应用非常广泛,虽然在云存贮的应用上以及云系统的使用上都已经相当成熟,但是在站群架构上的使用还处于实验阶段,因为站群的应用需要满足易扩展、安全性、稳定性、易管理性等诸多要求,对于云计算这个新技术能否胜任还存在着一定的疑问,但是随着云计算的进一步成熟,有关云计算的管理软件的丰富,基于云计算的网站群架构和安全性都是完全有保障的!
参考文献