时间:2023-03-20 16:22:20
序论:在您撰写网站安全论文时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
1网站技术简介安全威胁的来源
1.1WWW技术简介
WorldWideWeb称为万维网,简称Web。分成服务器端、客户接收机及通讯协议三个部分。
1.1.1服务器(Web服务器)
服务器结构中规定了服务器的传输设定、信息传输格式及服务器本身的基本开放结构。Web服务器的作用就是管理这些文档,按用户的要求返回信息。
1.1.2客户接收机(Web浏览器)
客户机系统称为Web浏览器,用于向服务器发送资源索取请求,并将接收到的信息进行解码和显示。Web浏览器是客户端软件,它从Web服务器上下载和获取文件,翻译下载文件中的HTML代码,进行格式化,根据HTML中的内容在屏幕上显示信息。
1.1.3通讯协议(HTTP协议)
Web浏览器与服务器之间遵循HTTP协议进行通讯传输。HTTP(HyperTextTransferProtocol,超文本传输协议)是分布式的Web应用的核心技术协议,在TCP/IP协议栈中属于应用层。它定义了Web浏览器向Web服务器发送索取Web页面请求的格式,以及Web页面在Internet上的传输方式。
1.2服务器安全威胁
对于Web服务器、服务器的操作系统、数据库服务器都有可能存在漏洞,恶意用户都有可能利用这些漏洞去获得重要信息。Web服务器上的漏洞可以从以下几方面考虑:
Web服务器操作系统本身存在一些漏洞,能被黑客利用侵入到系统,破坏一些重要文件,甚至造成系统瘫痪。
Web数据库中安全配置不完整,存在弱口令或被数据库注入等安全漏洞,导致数据丢失或服务中断。
Web服务器上的数据存储结构不合理,没有划分安全区域或重要数据没有存放在安全区域,导致被侵入。
Web服务器上运行的程序存在安全漏洞,或应用程序所需要的权限过高没有优化,容易被黑客侵入。
1.3客户端安全威胁
现在网页中的活动内容已被广泛应用,活动内容的不安全性是造成客户端的主要威胁。主要用到JavaApplet、ActiveX、Cookie等技术都存在不同的安全隐患。
1.4数据传输中的安全威胁
Internet是连接Web客户机和服务器通信的信道,是不安全的。未经授权的用户可以改变信道中的信息流传输内容,造成对信息完整性的安全威胁。此外,还有像利用拒绝服务攻击,向网站服务器发送大量请求造成主机无法及时响应而瘫痪,或者发送大量的IP数据包来阻塞通信信道,使网络的速度便缓慢。
2WEB安全保护的原则
2.1实用的原则
针对网站架构,网站安全问题主要分为以下四个方面:服务器安全、边界安全、Internet和Extranet上的安全,在攻击行为发生前,做到防患于未然是预防措施的关键。
2.2积极预防的原则
对WEB系统进行安全评估,权衡考虑各类安全资源的价值和对它们实施保护所需要的费用,通过评估,确定不安全情况发生的几率,采用必要的软硬件产品,加强网站日常安全监控。
2.3及时补救的原则
在攻击事件发生后尽快恢复系统的正常运行,并找出发生攻击事件问题的原因,将损失降至最低,并研究攻击发生后应对措施。3建立安全的Web网站
3.1合理配置主机系统
3.1.1仅提供必要的服务
默认安装的操作系统都有一系列常用的服务。例如UNIX系统将提供Finger、Sendmail、FTP、NFS、IP转发等,WindowsNT系统将提供RPC、IP)转发、FTP、SMTP等。而且,系统在缺省的情况下自动启用这些服务,或提供简单易用的配置向导。为此,在安装操作系统时,应该只选择安装必要的协议和服务;对于UNIX系统,应检查/etc/rc.d/目录下的各个目录中的文件,删除不必要的文件;对于Windows系统,应删除没有用到的网络协议,不要安装不必要的应用软件。一般情况下,应关闭Web服务器的IP转发功能。
对于专门提供Web信息服务(含提供虚拟服务器)的网站,最好由专门的主机(或主机群)作Web服务器系统,对外只提供Web服务,没有其他任务。这样,可以保证(1)使系统最好地为Web服务提供支持;(2)管理人员单一,避免发生管理员之间的合作不调而出现安全漏洞的现象;(3)用户访问单一,便于控制;(4)日志文件较少,减轻系统负担。
对于必须提供其他服务,则必须仔细设置目录、文件的访问权限,确保远程用户无法通过Web服务获得操作权限。
3.1.2使用必要的辅助工具,简化安全管理
启用系统的日志(系统帐户日志和Web服务器日志)记录功能。监视并记录访问企图是主机安全的一个重要机制,以利于提高主机的一致性以及其数据保密性。
3.2合理配置Web服务器
在UnixOS中,以非特权用户而不是Root身份运行Web服务器。
(1)设置Web服务器访问控制。通过IP地址控制、子网域名来控制,未被允许的IP地址、IP子网域发来的请求将被拒绝;
(2)通过用户名和口令限制。只有当远程用户输入正确的用户名和口令的时候,访问才能被正确响应。
(3)用公用密钥加密方法。对文件的访问请求和文件本身都将加密,以便只有预计的用户才能读取文件内容。
3.3设置Web服务器有关目录的权限
为了安全起见,管理员应对”文档根目录“和“服务器根目录”做严格的访问权限控制。
服务器根目录下存放日志文件、配置文件等敏感信息,它们对系统的安全至关重要,不能让用户随意读取或删改。
服务器根目录下存放CGI脚本程序,用户对这些程序有执行权限,恶意用户有可能利用其中的漏洞进行越权操作。
服务器根目录下的某些文件需要由Root来写或者执行,如Web服务器需要Root来启动,如果其他用户对Web服务器的执行程序有写权限,则该用户可以用其他代码替换掉Web服务器的执行程序,当Root再次执行这个程序时,用户设定的代码将以Root身份运行。
3.4安全管理Web服务器
Web服务器的日常管理、维护工作包括Web服务器的内容更新,日志文件的审计,安装一些新的工具、软件,更改服务器配置,对Web进行安全检查等。
论文摘要:网络上的动态网站以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信息安全及防范进行分析讨论。
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期.
本文首先介绍了网络与网站安全的隐患,其中包括常见的网络安全隐患和网站自身经常出现的安全隐患,之后作者从简要介绍了网络安全的防御问题,并详细介绍了网站自身的安全防御。
关键字:网站安全性管理
Abstract
Thisarticlefirstintroducedthenetworkandthewebsitesecurityhiddendanger,thesecurityhiddendangerwhichappearsfrequentlyincludingthecommonnetworksecurityhiddendangerandwebsiteitself,afterwardstheauthorbrieflyintroducedthenetworksecuritydefense,andintroducedwebsiteownsafedefenseindetail.
一、前言
随着计算机信息技术的高速发展,人们的生活、工作越来越依赖互联网上的信息和信息获取,但是人们却时刻被信息网络的安全隐患所困扰,越来越多的人也开始了关于网络、网站的安全性管理研究。
网站安全是指对网站进行管理和控制,并采取一定的技术措施,从而确保在一个网站环境里信息数据的机密化、完整性及可使用性受到有效的保护。网站安全的主要目标就是要稳妥地确保经由网站传达的信息总能够在到达目的地时没有任何增加、改变、丢失或被他人非法读取。要做到这一点,必须保证网站系统软件、数据库系统其有一定的安全保护功能,并保证网站部件如终端、数据链路等的功能不变而且仅仅是那些被授权的人们可以访问。
网站安全目前已发展成为一个跨学科的综合性学科,它包括通信技术、网站技术、计算机软件、硬件设计技术、密码学、网站安全与计算机安全技术等,网站安全是在攻击与防范这一对矛盾相互作用的过程中发展起来的。新的攻击导致必须研究新的防护措施,新的防护措施又招致攻击者新的攻击,如此循环反复,网站安全技术也就在双方的争斗中逐步完善发展起来。
二、网络与网站安全隐患概述
目前影响网站安全的问题主要来自于网络的不安全性,所以在这个意义上讲,网站的安全漏洞其实也就是网络的安全漏洞,其漏洞主要来自以下几个方面:
1.自然因素:
1.1软件漏洞
任何的系统软件和应用软件都不能是百分之百的无缺陷和无漏洞的,而这些缺陷和漏洞恰恰是非法用户、黑客进行窃取机密信息和破坏信息的首选途径。针对固有的安全漏洞进行攻击,主要在以下几个方面:
1.1.1、协议漏洞。例如,IMAP和POP3协议一定要在Unix根目录下运行,攻击者利用这一漏洞攻击IMAP破坏系统的根目录,从而获得超级用户的特权。
1.1.2、缓冲区溢出。很多系统在不检查程序与缓冲区之间变化的情况下,就接受任何长度的数据输入,把溢出部分放在堆栈内,系统仍照常执行命令。攻击者就利用这一漏洞发送超出缓冲区所能处理的长度的指令,来造成系统不稳定状态。
1.1.3、口令攻击。例如,Unix系统软件通常把加密的口令保存在一个文件中,而该文件可通过拷贝或口令破译方法受到入侵。因此,任何不及时更新的系统,都是容易被攻击的。
1.2病毒攻击
计算机病毒一般分为四类:①文件型病毒(FileViruses);②引导型病毒(SystemorBootSectorVirus);③链式病毒(SYSTEMorCLUSTERVirus);④宏病毒(MacroVirus)。计算机病毒的主要危害有:对计算机数据信息的直接破坏作用,给用户造成重大损失:占用系统资源并影响运行速度:产生其他不可预见的危害:给用户造成严重的心理压力。
计算机病毒疫情呈现出多元化的发展趋势,以网络为主要传播途径。呈现以下显著特点:①网络病毒占据主要地位;②病毒向多元化、混合化发展;③利用漏洞的病毒越来越多。
2、人为因素:
2.1操作失误
操作员安全配置不当造成的安全漏洞,用户安全意识不强.用户口令选择不慎.用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。这种情况在企业计算机网络使用初期较常见,随着网络管理制度的建立和对使用人员的培训,此种情况逐渐减少.对网络安全己不构成主要威胁。
2.2恶意攻击
这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下,进行截获、窃取、破译以获得重要机密信急。
当然作为本文最讨论的网站安全,它也有它自身的安全隐患存在,主要体现在以下几点:
3.用户输入验证不全面
在网站编程中,对于用户和用户的输入,都必须抱怀疑态度,不能完全信任。所以,对于用户的输入,不能简单的直接采用,而必须经过严格验证,确定用户的输入是否符合输入规则才可以录入数据库。用户输入验证应该包括以下几个方面:
(1)输入信息长度验证。程序员往往认为一般用户不会故意将输入过分拉长,不进行输入验证可能没有危害。但如果用户输入的信息达到几个兆,而程序又没有验证长度的话,可以使程序验证出错或变量占用大量内存,出现内存溢出,致使服务器服务停止甚至关机。
(2)输入信息敏感字符检查。在设计程序的时候,程序员可能都会关注javascript的一些敏感字符,如在设计留言版的时候,会将“<”等符号的信息过滤,以免用户留下页面炸弹。但还有以下几个方面需要特别注意,一是留言版内容信息的过滤。二是用户名信息的过滤。程序设计中,对用户名的验证往往只是验证长度,没有验证javascript或者HTML的标记,这样就容易形成漏洞。三是Email信息的验证,Email信息往往也只验证是否含有“@”符号,其他没有限制,这容易形成两个漏洞:输入信息过长的内存溢出漏洞;含有javascript等字符信息,造成显示用户Email的时候形成页面炸弹等。四是搜索信息的验证。尽管搜索信息不会直接保存到网站服务器,但是,搜索信息却与数据库或者服务器所有文件密切相关,如果搜索信息有问题,很容易就会暴露一些本来不应该暴露的数据库信息或者文件信息。如果用户对程序比较了解,可设计一些很特别的搜索信息,检索他不应该检索的数据库表,例如用户账号密码表等。因此,一般要验证一些常见的用于数据库操作的语句,例如搜索信息是否含有“Select”等,这样来限制用户输入,避免信息的泄露。
4.页面行为方式缺乏逻辑
在网站中注册新用户的时候,一般会首先要求用户输入自己需要注册的账号信息,验证该账号是否已经存在,确保用户的单一性。如果用户的注册信息通过了“存在该账号”的检测,在编程的时候就认为这个账号一定不存在,可以注册,在注册页面中直接使用“nsertInto”语句将注册信息插入用户数据库。上述的问题是:将注册信息插入数据库之前,并没有再一次检查这个用户是否存在,而是信任前一个检测页面传来的账号信息。由于可以阅读和保存HTML文件的源代码,如果用户将注册通过的页面保存并且将上面的账号信息修改为一个已经存在的账号,由于程序认为该账号已经通过检测,直接将该账号插入数据库,原来拥有该账号的用户信息就被修改,造成用户信息流失、出错等情况的发生。如果这个账号刚好是一个管理员账号,结果将是很难预料的。
使用以上错误方式编程的程序员很多,随便在网上找就可以找到很多这种方式编程的源代码和已经采用的程序。在电子商务初期,一些电子商务网站的程序中,存在着用户可以随意定义自己购买商品的价格这样的漏洞,也就是由页面行为方式缺乏逻辑造成的。
当然,网站安全还包括比如服务器攻击、病毒攻击等方面,但这些方面基本都属于上文中介绍过的网络安全问题,另外由于篇幅问题许多细节问题也不在此累赘了。
三、网站安全管理策略探讨
1.网络安全的管理
1.1使用防火墙
防火墙作为使用最多,效率最高的网络安全产品自然有它自身的优势,所以防火墙在整个网络安全中的地位将是无可替代的。
1.2与因特网接入处增设网络入侵检测系统
入侵检测系统(IDS即IntrusionDetectSystem)是实时网络违规自动识别和响应系统,它位于有敏感数据需要保护的网络上或网络上任何有风险存在的地方,通过实时截获网络数据流,能够识别、记录入侵或破坏性代码流,寻找网络违规模式和未授权的网络访问,一经发现入侵检测系统根据系统安全策略做出反应,包括实时报警、自动阻断通信连接或执行用户自定义安全策略等。
1.3病毒防御
选购杀毒软件,必须考虑产品的采购成本、应用(管理、维护)成本,以及将来企业或网络规模变化后,软件能否实现平滑过渡等问题。只有明确需求,重视产品的应用和管理,把网络防病毒纳入到信息安全防范体系之中进行综合防范,才能有效提升企业的信息安全水平。单纯防病毒,并不是企业的最终目标。
当然,对于网络安全的防御目前比较成熟的技术相当多,我们只有认准适合自己的技术,并采用多种技术相互结合才能达到相应的目的,由于篇幅有限对于其他诸如身份认证、数字签名等技术的介绍就不在此累赘了。
2.网站自身的安全管理
2.1网站服务器的安全管理
网站服务器的日常管理、维护工作包‘括网站服务器的内容更新、日志文件的审计、安装一些新的工具和软件、更改服务器配置、对服务器进行安全检查等。主要注意以下几点:
①从网络结构设计上解决安全问题
安装一个功能强大的防火墙可以有效防御外界对Web服务器的攻击,还可通过安装非法人侵监测系统,提升防火墙的性能,达到监控网络、执行立即拦截动作以及分析过滤封包和内容的动作,当有入侵者攻击时可以立刻有效终止服务。同时应限制非法用户对网络的访问,规定具有特定IP地址的客户机对本地网络服务器的访问权限,以防止从外界对网络服务器配置的非法修改。
②定期对网站服务器进行安全检查
由于网站服务器是对外开放的,容易受到病毒的攻击,所以应为服务器建立例行安全审核机制,利用漏洞扫描工具和IDS工具,加大对服务器的安全管理和检查。另外,随着新漏洞的出现,我们要及时为服务器安装各类新漏洞的补丁程序,从而避免服务器受到攻击和出现其他异常情况。
③定期进行必要的数据备份
对服务器上的数据定期进行备份是很重要的。网站的核心是数据,数据一旦遭到破坏,后果不堪设想。除了设置相应权限外,应建立一个正式的备份方案,而且随着网站的更新,备份方案也需要不断地调整。
2.2数据库安全管理
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄密和破坏。为了保证业务应用系统后台数据库的安全性,采用基于Client/Server模式访问后台数据库,为不同的应用建立不同的服务进程和进程用户标识,后台数据库系统以服务器进程的用户标识作为访问主体的标识,以确定其访问权限。我们通过如下方法和技术来实现后台数据库的访问
控制。
①访问矩阵
访问矩阵就是以矩阵的方式来规定不同主体(用户或用户进程)对于不同数据对象所允许执行的操作权限,并且控制各主体只能存取自己有权存取的数据。它以主体标行,访问对象标列,访问类型为矩阵元素的矩阵。Informix提供了二级权限:数据库权限和表权限,并且能为表中的特定字段授予Select和Update权限。因此,我们在访问矩阵中定义了精细到字段级的数据访问控制。
②视图的使用
通过视图可以指定用户使用数据的范围,将用户限定在表中的特定字段或表中的特定记录,并且视图和基础表一样也可以作为授权的单位。针对不同用户的视图,在授权给一用户的视图中不包括那些不允许访问的机密数据,从而提高了系统的安全性。
③数据验证码DAC
对后台数据库中的一些关键性数据表,在表中设置数据验证码DAC字段,它是由银行密钥和有关的关键性字段值生成。不同记录的DAC字段值也不相同。如果用户非法修改了数据库中的数据,则DAC效验将出错,从而提高了数据的安全性。
2.3编码中的安全管理
防止恶意代码注入
①验证输入,使攻击者无法注入脚本代码或使缓冲区溢出
②对所有包含输入的输出进行编码。这可防止客户端浏将潜在的恶意脚本标记作为代码进行转换。
③使用接受参数的存储过程,防止数据库将恶意SQL输为可执行语句进行处理。同时使用特权最低的进程帐户和模拟帐户。在攻击者企图应用程序的安全上下文执行代码时,可缓解风险并减少损害。
防止会话劫持:
①分隔个性化cookie和身份验证cookie。
②仅通过HTTPS连接传递身份验证cookie。
③不传递在查询字符串中代表已通过身份验证的用户标识符。
最为一名网络或者网站管理员,有责任同时也有义务做好网站的维护与管理,这就需要我们管理人员时刻保持虚心学习的心态,时刻关注新的管理技术与安全防御技术。对于已经出现的安全问题应该用最快、最有效的方法加以解决,对于目前还未出现的安全问题要有预见性,这才是一名优秀的网络管理员。
参考文献:
[1]沈文智.MicrosoftBS网页技术[M].北京:人民邮电出版社.1998.
[2]沈昌样.网络安全与信息战.网络安全技术与应用.2001.
网站安全是指对网站进行管理和控制,并采取一定的技术措施,从而确保在一个网站环境里信息数据的机密化、完整性及可使用性受到有效的保护。网站安全的主要目标就是要稳妥地确保经由网站传达的信息总能够在到达目的地时没有任何增加、改变、丢失或被他人非法读取。要做到这一点,必须保证网站系统软件、数据库系统其有一定的安全保护功能,并保证网站部件如终端、数据链路等的功能不变而且仅仅是那些被授权的人们可以访问。
网站安全目前已发展成为一个跨学科的综合性学科,它包括通信技术、网站技术、计算机软件、硬件设计技术、密码学、网站安全与计算机安全技术等,网站安全是在攻击与防范这一对矛盾相互作用的过程中发展起来的。新的攻击导致必须研究新的防护措施,新的防护措施又招致攻击者新的攻击,如此循环反复,网站安全技术也就在双方的争斗中逐步完善发展起来。
二、网络与网站安全隐患概述
目前影响网站安全的问题主要来自于网络的不安全性,所以在这个意义上讲,网站的安全漏洞其实也就是网络的安全漏洞,其漏洞主要来自以下几个方面:
1.自然因素:
1.1软件漏洞
任何的系统软件和应用软件都不能是百分之百的无缺陷和无漏洞的,而这些缺陷和漏洞恰恰是非法用户、黑客进行窃取机密信息和破坏信息的首选途径。针对固有的安全漏洞进行攻击,主要在以下几个方面:
1.1.1、协议漏洞。例如,IMAP和POP3协议一定要在Unix根目录下运行,攻击者利用这一漏洞攻击IMAP破坏系统的根目录,从而获得超级用户的特权。
1.1.2、缓冲区溢出。很多系统在不检查程序与缓冲区之间变化的情况下,就接受任何长度的数据输入,把溢出部分放在堆栈内,系统仍照常执行命令。攻击者就利用这一漏洞发送超出缓冲区所能处理的长度的指令,来造成系统不稳定状态。
1.1.3、口令攻击。例如,Unix系统软件通常把加密的口令保存在一个文件中,而该文件可通过拷贝或口令破译方法受到入侵。因此,任何不及时更新的系统,都是容易被攻击的。
1.2病毒攻击
计算机病毒一般分为四类:①文件型病毒(FileViruses);②引导型病毒(SystemorBootSectorVirus);③链式病毒(SYSTEMorCLUSTERVirus);④宏病毒(MacroVirus)。计算机病毒的主要危害有:对计算机数据信息的直接破坏作用,给用户造成重大损失:占用系统资源并影响运行速度:产生其他不可预见的危害:给用户造成严重的心理压力。
计算机病毒疫情呈现出多元化的发展趋势,以网络为主要传播途径。呈现以下显著特点:①网络病毒占据主要地位;②病毒向多元化、混合化发展;③利用漏洞的病毒越来越多。
2、人为因素:
2.1操作失误
操作员安全配置不当造成的安全漏洞,用户安全意识不强.用户口令选择不慎.用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。这种情况在企业计算机网络使用初期较常见,随着网络管理制度的建立和对使用人员的培训,此种情况逐渐减少.对网络安全己不构成主要威胁。
2.2恶意攻击
这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下,进行截获、窃取、破译以获得重要机密信急。
当然作为本文最讨论的网站安全,它也有它自身的安全隐患存在,主要体现在以下几点:
3.用户输入验证不全面
在网站编程中,对于用户和用户的输入,都必须抱怀疑态度,不能完全信任。所以,对于用户的输入,不能简单的直接采用,而必须经过严格验证,确定用户的输入是否符合输入规则才可以录入数据库。用户输入验证应该包括以下几个方面:
(1)输入信息长度验证。程序员往往认为一般用户不会故意将输入过分拉长,不进行输入验证可能没有危害。但如果用户输入的信息达到几个兆,而程序又没有验证长度的话,可以使程序验证出错或变量占用大量内存,出现内存溢出,致使服务器服务停止甚至关机。在线
(2)输入信息敏感字符检查。在设计程序的时候,程序员可能都会关注javascript的一些敏感字符,如在设计留言版的时候,会将“<”等符号的信息过滤,以免用户留下页面炸弹。但还有以下几个方面需要特别注意,一是留言版内容信息的过滤。二是用户名信息的过滤。程序设计中,对用户名的验证往往只是验证长度,没有验证javascript或者HTML的标记,这样就容易形成漏洞。三是Email信息的验证,Email信息往往也只验证是否含有“@”符号,其他没有限制,这容易形成两个漏洞:输入信息过长的内存溢出漏洞;含有javascript等字符信息,造成显示用户Email的时候形成页面炸弹等。四是搜索信息的验证。尽管搜索信息不会直接保存到网站服务器,但是,搜索信息却与数据库或者服务器所有文件密切相关,如果搜索信息有问题,很容易就会暴露一些本来不应该暴露的数据库信息或者文件信息。如果用户对程序比较了解,可设计一些很特别的搜索信息,检索他不应该检索的数据库表,例如用户账号密码表等。因此,一般要验证一些常见的用于数据库操作的语句,例如搜索信息是否含有“Select”等,这样来限制用户输入,避免信息的泄露。
4.页面行为方式缺乏逻辑
在网站中注册新用户的时候,一般会首先要求用户输入自己需要注册的账号信息,验证该账号是否已经存在,确保用户的单一性。如果用户的注册信息通过了“存在该账号”的检测,在编程的时候就认为这个账号一定不存在,可以注册,在注册页面中直接使用“nsertInto”语句将注册信息插入用户数据库。上述的问题是:将注册信息插入数据库之前,并没有再一次检查这个用户是否存在,而是信任前一个检测页面传来的账号信息。由于可以阅读和保存HTML文件的源代码,如果用户将注册通过的页面保存并且将上面的账号信息修改为一个已经存在的账号,由于程序认为该账号已经通过检测,直接将该账号插入数据库,原来拥有该账号的用户信息就被修改,造成用户信息流失、出错等情况的发生。如果这个账号刚好是一个管理员账号,结果将是很难预料的。
使用以上错误方式编程的程序员很多,随便在网上找就可以找到很多这种方式编程的源代码和已经采用的程序。在电子商务初期,一些电子商务网站的程序中,存在着用户可以随意定义自己购买商品的价格这样的漏洞,也就是由页面行为方式缺乏逻辑造成的。
当然,网站安全还包括比如服务器攻击、病毒攻击等方面,但这些方面基本都属于上文中介绍过的网络安全问题,另外由于篇幅问题许多细节问题也不在此累赘了。
三、网站安全管理策略探讨
1.网络安全的管理
1.1使用防火墙
防火墙作为使用最多,效率最高的网络安全产品自然有它自身的优势,所以防火墙在整个网络安全中的地位将是无可替代的。
1.2与因特网接入处增设网络入侵检测系统
入侵检测系统(IDS即IntrusionDetectSystem)是实时网络违规自动识别和响应系统,它位于有敏感数据需要保护的网络上或网络上任何有风险存在的地方,通过实时截获网络数据流,能够识别、记录入侵或破坏性代码流,寻找网络违规模式和未授权的网络访问,一经发现入侵检测系统根据系统安全策略做出反应,包括实时报警、自动阻断通信连接或执行用户自定义安全策略等。
1.3病毒防御
选购杀毒软件,必须考虑产品的采购成本、应用(管理、维护)成本,以及将来企业或网络规模变化后,软件能否实现平滑过渡等问题。只有明确需求,重视产品的应用和管理,把网络防病毒纳入到信息安全防范体系之中进行综合防范,才能有效提升企业的信息安全水平。单纯防病毒,并不是企业的最终目标。
当然,对于网络安全的防御目前比较成熟的技术相当多,我们只有认准适合自己的技术,并采用多种技术相互结合才能达到相应的目的,由于篇幅有限对于其他诸如身份认证、数字签名等技术的介绍就不在此累赘了。在线
2.网站自身的安全管理
2.1网站服务器的安全管理
网站服务器的日常管理、维护工作包‘括网站服务器的内容更新、日志文件的审计、安装一些新的工具和软件、更改服务器配置、对服务器进行安全检查等。主要注意以下几点:
①从网络结构设计上解决安全问题
安装一个功能强大的防火墙可以有效防御外界对Web服务器的攻击,还可通过安装非法人侵监测系统,提升防火墙的性能,达到监控网络、执行立即拦截动作以及分析过滤封包和内容的动作,当有入侵者攻击时可以立刻有效终止服务。同时应限制非法用户对网络的访问,规定具有特定IP地址的客户机对本地网络服务器的访问权限,以防止从外界对网络服务器配置的非法修改。
②定期对网站服务器进行安全检查
由于网站服务器是对外开放的,容易受到病毒的攻击,所以应为服务器建立例行安全审核机制,利用漏洞扫描工具和IDS工具,加大对服务器的安全管理和检查。另外,随着新漏洞的出现,我们要及时为服务器安装各类新漏洞的补丁程序,从而避免服务器受到攻击和出现其他异常情况。
③定期进行必要的数据备份
对服务器上的数据定期进行备份是很重要的。网站的核心是数据,数据一旦遭到破坏,后果不堪设想。除了设置相应权限外,应建立一个正式的备份方案,而且随着网站的更新,备份方案也需要不断地调整。
2.2数据库安全管理
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄密和破坏。为了保证业务应用系统后台数据库的安全性,采用基于Client/Server模式访问后台数据库,为不同的应用建立不同的服务进程和进程用户标识,后台数据库系统以服务器进程的用户标识作为访问主体的标识,以确定其访问权限。我们通过如下方法和技术来实现后台数据库的访问
控制。
①访问矩阵
访问矩阵就是以矩阵的方式来规定不同主体(用户或用户进程)对于不同数据对象所允许执行的操作权限,并且控制各主体只能存取自己有权存取的数据。它以主体标行,访问对象标列,访问类型为矩阵元素的矩阵。Informix提供了二级权限:数据库权限和表权限,并且能为表中的特定字段授予Select和Update权限。因此,我们在访问矩阵中定义了精细到字段级的数据访问控制。
②视图的使用
通过视图可以指定用户使用数据的范围,将用户限定在表中的特定字段或表中的特定记录,并且视图和基础表一样也可以作为授权的单位。针对不同用户的视图,在授权给一用户的视图中不包括那些不允许访问的机密数据,从而提高了系统的安全性。
③数据验证码DAC
对后台数据库中的一些关键性数据表,在表中设置数据验证码DAC字段,它是由银行密钥和有关的关键性字段值生成。不同记录的DAC字段值也不相同。如果用户非法修改了数据库中的数据,则DAC效验将出错,从而提高了数据的安全性。
2.3编码中的安全管理
防止恶意代码注入
①验证输入,使攻击者无法注入脚本代码或使缓冲区溢出
②对所有包含输入的输出进行编码。这可防止客户端浏将潜在的恶意脚本标记作为代码进行转换。
③使用接受参数的存储过程,防止数据库将恶意SQL输为可执行语句进行处理。同时使用特权最低的进程帐户和模拟帐户。在攻击者企图应用程序的安全上下文执行代码时,可缓解风险并减少损害。
防止会话劫持:
①分隔个性化cookie和身份验证cookie。
②仅通过HTTPS连接传递身份验证cookie。
③不传递在查询字符串中代表已通过身份验证的用户标识符。
最为一名网络或者网站管理员,有责任同时也有义务做好网站的维护与管理,这就需要我们管理人员时刻保持虚心学习的心态,时刻关注新的管理技术与安全防御技术。对于已经出现的安全问题应该用最快、最有效的方法加以解决,对于目前还未出现的安全问题要有预见性,这才是一名优秀的网络管理员。
参考文献:
[1]沈文智.MicrosoftBS网页技术[M].北京:人民邮电出版社.1998.
[2]沈昌样.网络安全与信息战.网络安全技术与应用.2001.
[3]骆耀祖,龚洵禹.动态网页设计教程[M].广州:中山大学出版社,2002.
[4]骆耀祖,刘永初等.计算机网络技术及应用[M]北京:清华大学、北方交大出版社,2003.
摘要:
[关键词]电子商务反向网站资源安全DNS
一、引言
电子商务是利用先进的电子技术进行商务活动的总称。它通过网络、使用先进的信息处理工具,利用计算机这种载体,将买卖双方的商务信息、产品信息、销售信息、服务信息,以及电子支付等活动,用相互认同的交易标准来实现。进行电子商务活动的最基础平台是电子商务网站,电子商务网站在企业的电子商务体系中有着重要的作用,其安全直接关系企业实施电子商务能否成功。
目前,对电子商务网站的保护,采用最多的方法是使用防火墙技术,只允许用户访问网站的WEB服务,过滤掉对网站服务器其他服务的访问。这种方法有一个问题:网站的WEB服务对外来说是完全暴露的,用户可以直接和网站服务器通信。
二、反向技术
通常的一般称为正向,只用于内部网络对外部网络的连接请求,不支持外部网络对内部网络的访问请求(因为内部网络对外部网络来说是不可见的)。当一个服务器能够外部网络上的主机访问内部网络时,这种的方式称为反向。
反向就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和外部网络之间增加一个高速的WEB缓冲服务器来降低实际的WEB服务器的负载的一种技术。反向是针对WEB服务器提供加速功能的,作为缓存,它并不是针对浏览器用户,而针对一台或多台特定WEB服务器,它可以外部网络对内部网络的访问请求。
反向服务器会强制将外部网络对要的服务器的访问经过它,这样反向服务器负责接收客户端的请求,然后到源服务器上获取内容,把内容返回给用户并把内容保存到本地,以便日后再收到同样的信息请求时,它会把本地缓存里的内容直接发给用户,以减少后端WEB服务器的压力,提高响应速度,的服务器对外部网络来说是不可见的。
反向服务器的工作流程归纳如下:
1.用户通过域名发出访问WEB服务器的请求,该域名被DNS服务器解析为反向服务器的IP地址,因此用户的请求被重定向到反向服务器。
2.反向服务器接受用户的请求。
3.反向服务器在本地缓存中查找请求的内容,找到后直接把内容发送给用户。
4.如果本地缓存里没有用户所请求的信息内容,反向服务器会代替用户向源WEB服务器请求同样的信息内容,并把信息内容转发给用户,如果信息内容是可缓存的还会把它保存到缓存中。
实施反向,只要将反向服务器放置在要的WEB服务器前端并在DNS系统中将要的服务器域名解析为反向服务器IP地址(达到强制将外部网络对要服务器的访问经过反向服务器的目的)即可,如图1所示:
在企业的电子商务网站建设中采用反向技术后,解决了网站服务器对外可见的问题,还有如下几个突出优点:
1.节约了有限的IP地址资源。企业内所有的网站共享一个在Internet中注册的IP地址,这些服务器分配私有地址,采用虚拟主机的方式对外提供服务。
2.保护了真实的WEB服务器。企业内所有网站服务器对外都不可见,外网只能看到反向服务器,而反向服务器上并没有存放实际的资源,因此,可以保证真实WEB服务器上资源的安全。
3.加快了对网站的访问速度,减轻WEB服务器的负担。反向服务器具有缓存网页的功能,如果用户需要的内容在缓存中,则可以直接从服务器中取得,减轻了WEB服务器的负荷,同时也加快了用户的访问速度。
三、反向服务器的部署
目前,能够实现反向的软件有很多,但用的最多还是由美国政府大力助的Squid开源免费软件,该软件可运行在任何平台上,本文选择Linux操作系统来部署Squid,因为Linux系统也是开源免费的。
1.Squid软件的获取。可以从squid-网站下载squid软件的最新版本,本文下载的是squid-2.6.STABLE13.tar.gz。2.Squid软件的安装。
(1)将获取的文件squid-2.6.STABLE13.tar.gz拷贝到/tmp目录;
(2)解压该文件,运行tarxvzfsquid-2.6.STABLE13.tar.gz命令,在/tmp目录中生成名为squid-2.6.STABLE13的目录;
(3)进入该目录,执行./configure,系统缺省将软件安装在/usr/local/Squid目录,用户也可以用--prefix=目录,指定安装目录;
(4)运行make;
(5)运行makeinstall;
(6)如没有错误,安装结束,Squid的可执行文件在安装目录的bin子目录下,配置文件在ctc子目录下。
3.Squid软件的配置。通过squid配置反向主要就是配置“squid.conf”这个配置文件,Squid2.6中和反向配置相关的主要包含以下三项(详细配置可参考squid-):
(1)http_port配置反向服务器的IP地址(和外网相连地址)和监听端口http_port202.115.144.30:80vhostvport。
(2)cache_peer配置内部的WEB服务资源,该资源可以是真实WEB服务器的IP地址,也可以是的域名(内部可见的域名),一般都采用IP地址,需要反向几个WEB服务器就要有几个对应。的配置cache_peer192.168.1.254parent800no-queryoriginserver
(3)cache_peer_domain指定对外部的资源(外网可见的域名)与真实资源的对应关系,同样,需要反向几个WEB服务器就要有几个对应的配置。
4.DNS系统的配置。在DNS服务器中将所有需要的真实WEB服务器的域名对应于反向服务器的IP地址INA202.115.144.30,经过这样对Squid配置和DNS的修改后,对的访问都会由反向服务器202.115.144.30定向到192.168.1.254这台真实的WEB服务器。
四、反向服务器的安全
Squid本身不具有认证程序,但是可以通过外部认证程序来实现用户认证,最常用的是采用NCSA认证,因为NCSA认证是Squid源代码包自带的一个外部认证程序。操作方法如下:
1.cd/tmp/squid-2.6.STABLE13/auth-modules/NCSA。
2.make;makeinstall。
3.编译成功后,会生成ncsa-auth的可执行文件,拷贝生成的执行文件ncsa-auth到/usr/local/squid/bin目录cpncsa_auth/usr/local/squid/bin。
4.修改squid.conf中的相关选项如下所示:
Authenticate_program/usr/local/squid/bin/ncsa_auth/usr/local/squid/etc/passwd。
5.定义相关的用户类aclauth_userproxy_authREQUIRED。
注意,REQUIRED关键字指明了接收所有合法用户的访问。
6.设置http_access。
http_accessallowauth_user。
7.利用apache携带的工具软件htpasswd在/usr/local/squid/etc下生成密码文件并添加相应的用户信息,该密码文件每行包含一个用户的用户信息,即用户名和密码;htpasswd-c/usr/local/squid/etc/passwdtesttest。这样就在密码文件passwd中添加用户和密码都是test的用户。然后重新启动Squid,密码认证就生效了,访问服务器就需要输入账号和密码。
五、结束语
反向方式不单是一种WEB服务器加速器,而且使也一种对外提供WEB时使用的有效的防火墙技术,使用它不但能节约紧缺的IP地址资源,加速WEB服务器的访问速度,而且能够保护WEB服务器,因此能够适应多种应用场合,特别是应用在电子商务这种对安全要求特别高的场合。
参考文献: