中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 网络安全 > 攻击防范 > 其它
多层次解网站安全之谜
http://www.edu.cn   2011-05-20 中国教育网络 作者:林予松 黄信海 王宗敏

字体选择:【大】 【中】 【小】

  网站安全防护技术

  1、基础网络层次防护

  基础网络层次的防护包括网络设备的物理防护及对一些常见的网络安全威胁的防范。

  物理防护指采取防火、防水、防震等防止自然力量破坏的措施;在网络环境中设置屏障和隔离设施,防止来自物理线路的电磁信号窃听,在网管中心、重要的数据交换和存储中心,安装温度、湿度控制设备,采取防静电、接地、物理屏蔽或防电磁干扰等措施;使用UPS等防断电设备,使得环境对网络设备的影响降到最低;针对网络设备进行冗余备份,防止人为或设备自身的故障对网络环境造成影响,加强网络设备等的防盗保护措施等。

  对于一些常见的网络安全威胁,采用传统的防火墙,入侵检测/防御系统,漏洞扫描相结合的方式,进行合理恰当的配置,可以有效地应对。在网络层使用IPsec VPN,在应用层和数据链路层使用会话及用户(或主机)验证和数据加密链接技术,可以有效地防范会话劫持等攻击。

  2、宿主操作系统安全防护

  宿主操作系统是Web服务器及数据库管理系统运行的基础,宿主操作系统的漏洞、错误的配置及不必要的服务安装都将造成Web应用系统不安全。位于OWASP TOP 10第六位的“安全配置错误”正体现了这一点。

  保障宿主操作系统的安全有以下措施:

  (1)及时了解每个已部署环境的所有最新软件的更新和补丁,并进行升级部署等,周期性地运用自动扫描工具来检测配置错误或缺失的补丁;

  (2)修改系统安装时的默认设置,在Windows系统中,使用NTFS格式分区,并进行相应合适的权限分配,关闭默认共享,修改默认的远程服务端口。禁止建立空连接,卸载Net-Bios协议,或者关闭139端口,仅开放Web服务、数据库服务等端口;关闭卸载不必要的服务,改名或关掉不安全的组件;

  (3)安装相应的防病毒反间谍软件,可以有效的应对常见的病毒及间谍软件,同时对网站后门木马的运行也有一定的抑制作用。

  3、Web应用和数据库安全防护

  对Web应用的攻击大部分利用Web应用本身的缺陷或漏洞,采用了“正常”和“合法”的途径对Web应用进行攻击,传统的安全防范措施不能有效地应对这种类型的攻击。注入和跨站脚本攻击是Web应用10大安全威胁的前2位,以下主要对SQL注入和跨站脚本攻击(XSS)这两种安全威胁的防范进行分析,同时也将介绍其他一些安全威胁的防范措施。

  SQL注入防范

  SQL注入的本质是应用程序对用户数据合法性的检查不足或缺失,防止SQL注入的措施有以下几种:

  ( 1 ) 变量标准化(V a r i a b l e Normalization):这种方法通过学习提取基本的SQL语句结构,并定义一系列所允许执行的标准化的SQL语句,当一个SQL注入攻击发生时,攻击语句会改变SQL语句的基本结构,系统探测到与所允许执行的SQL语句不符,从而拒绝执行注入的语句。

  这种方法引入一个代理驱动——SQLBlock,需要的开销很小,并且不需要修改客户端任何源代码就可以与各种数据库服务器同时工作。但是这种方法也有缺陷,它不适用于使用关键字in进行范围限制查询,因为选择的多样化使其无法构造出标准化的SQL语句基本结构。

  (2)AMNESIA:这种方法采用基于模型的方法来检测非法的语句,它包括静态分析和动态监控两部分。静态分析部分找出源码中所有动态SQL语句的构造点,为动态SQL语句建立自动机模型,同时在原系统中插入检测代码;动态监控部分检查提交的SQL语句是否满足自动机模型,如果满足则是正常操作,否则,就认为发生了SQL注入攻击。这种方法的主要弱点是需要能够获得应用程序的源代码,并且需要修改源代码。

  (3)SQL DOM:这是一个对象模型,它允许通过操纵对象来构造SQL语句,从而将查询构建过程转变成API类型检查的系统过程。它创建新的SQL命令不产生包含SQL 关键字的字符串,这样在应用程序中就没有了SQL注入攻击主要目标的SQL字符串的产生。SQL DOM提供了防范重言式,非法或逻辑不正确语句,联合查询语句以及推理攻击、替换编码的机制。SQL DOM也有缺陷,它要求新的编程模式,并且对存储过程的攻击没有任何防护。

  (4)SQLRand:基于命令集随机化技术的SQLRand方法是在开始时对源代码中包含动态SQL语句模版中的关键字进行随机化编码处理,这些编码规则攻击者事先是不知道的。在运行时,对随机化编码之后的SQL命令进行解码,如果解码失败则表示遭受到了SQL注入攻击。例如:

  随机数为整数123,则编码后SQL命令为

  SELECT123 name FROM123 students WHERE123 id = 1

  这种方法的缺点是需要拥有源码和修改源码,同时需要改变原有业务系统的部署,方案复杂。

  (5) Defensive Programming:Web应用开发过程中采取防范性的编程方法、过滤机制,以及对用户输入等进行SQL关键字及特殊符号过滤,这种方法存在过滤不全面的问题和被绕过的可能,不能完全防范注入攻击。

  以上几种方法主要针对在Web应用程序本身进行SQL注入的检测和防范,对于已经部署且存在SQL注入漏洞的Web应用程序,重新实现Web应用程序往往不现实且代价比较大。针对此种情况,研究和关注的技术重点主要是过滤技术,它可以保证在不修改Web应用源码的基础上防范SQL注入攻击。比如Web应用防火墙,以及微软的UrlScan均采用过滤技术,根据配置对有害信息进行过滤,从而保障Web应用的安全。当然由于配置信息的不同,可能产生误报或者漏报的现象。浙江大学蔡亮等人提出的数据库防火墙的参考模型对SQL注入防范也是一种不错的选择,它提供了全面的语义控制和SQL API流的审查,并且对数据库实施基于内容驱动的访问控制。

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com