本文首先介绍了网络与网站安全的隐患,其中包括常见的网络安全隐患和网站自身经常出现的安全隐患,之后作者从简要介绍了网络安全的防御问题,并详细介绍了网站自身的安全防御。
关键字:网站安全性管理
Abstract This article first introduced the network and the website security hidden danger, the security hidden danger which appears frequently including the common network security hidden danger and website itself, afterwards the author briefly introduced the network security defense, and introduced website own safe defense in detail.
一、前言
随着计算机信息技术的高速发展,人们的生活、工作越来越依赖互联网上的信息发布和信息获取,但是人们却时刻被信息网络的安全隐患所困扰,越来越多的人也开始了关于网络、网站的安全性管理研究。
网站安全是指对网站进行管理和控制,并采取一定的技术措施,从而确保在一个网站环境里信息数据的机密化、完整性及可使用性受到有效的保护。网站安全的主要目标就是要稳妥地确保经由网站传达的信息总能够在到达目的地时没有任何增加、改变、丢失或被他人非法读取。要做到这一点,必须保证网站系统软件、数据库系统其有一定的安全保护功能,并保证网站部件如终端、数据链路等的功能不变而且仅仅是那些被授权的人们可以访问。
网站安全目前已发展成为一个跨学科的综合性学科,它包括通信技术、网站技术、计算机软件、硬件设计技术、密码学、网站安全与计算机安全技术等,网站安全是在攻击与防范这一对矛盾相互作用的过程中发展起来的。新的攻击导致必须研究新的防护措施,新的防护措施又招致攻击者新的攻击,如此循环反复,网站安全技术也就在双方的争斗中逐步完善发展起来。
二、网络与网站安全隐患概述
目前影响网站安全的问题主要来自于网络的不安全性,所以在这个意义上讲,网站的安全漏洞其实也就是网络的安全漏洞,其漏洞主要来自以下几个方面:
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”等,这样来限制用户输入,避免信息的泄露。
在网站中注册新用户的时候,一般会首先要求用户输入自己需要注册的账号信息,验证该账号是否已经存在,确保用户的单一性。如果用户的注册信息通过了“存在该账号”的检测,在编程的时候就认为这个账号一定不存在,可以注册,在注册页面中直接使用“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.
沈昌样.网络安全与信息战.网络安全技术与应用.2001.
骆耀祖,龚洵禹.动态网页设计教程[M].广州:中山大学出版社,2002.
骆耀祖,刘永初等.计算机网络技术及应用[M]北京:清华大学、北方交大出版社,2003.