何为安全漏洞
—04009125程雨生
关键词:安全漏洞相关大事件;安全漏洞分类;危害等。
2012年11月28日,在教室聆听了王伟老师的关于安全漏洞的讲座。王老师的整个讲座内容贴近生活实际,通俗易懂,条理清晰。
安全大事件:
1、莫里斯蠕虫。
1988年冬天,正在康乃尔大学攻读的莫里斯,把一个被称为“蠕虫”的电脑病毒送进了美国最大的电脑网络——互联网。1988年11月2日下午5点,互联网的管理人员首次发现网络有不明入侵者。它们仿佛是网络中的超级间谍,狡猾地不断截取用户口令等网络中的“机密文件”,利用这些口令欺骗网络中的“哨兵”,长驱直入互联网中的用户电脑。入侵得手,立即反客为主,并闪电般地自我复制,抢占地盘。 短短12小时内,已有6200台采用Unix操作系统的SUN工作站和VAX小型机瘫痪或半瘫痪,不计其数的数据和资料毁于这一夜之间。造成一场损失近亿美元的空前大劫难!
2、阿丽亚娜5型火箭自爆
阿丽亚娜系列火箭,在一次发射过程中,由于计算机安全问题,导致火箭自爆,造成巨大损失。
3、“震网”病毒
1月16日,美国《纽约时报》发
文章称,美国和以色列联合研制的名为“震网”的电脑蠕虫病毒,成功袭击了伊朗的纳坦兹铀浓缩工厂等核设施。报道称,美、以在一场看不见硝烟的“网战”中延迟了伊朗的核
。
由于种种网络漏洞的产生,造成的安全大事件还有很多很多,给社会的经济带来了很多负面影响,所以,了解一定的安全漏洞知识是很必要的。
安全漏洞分类:
一、用户群体
(1)大众类软件的漏洞。如Windows的漏洞、IE的漏洞、QQ漏洞等等。
(2)专用软件的漏洞。如Oracle漏洞、Apache漏洞等等。
二、数据角度
(1)能读按理不能读的数据,包括内存中的数据、文件中的数据、用户输入的数据、数据库中的数据、网络上传输的数据等等。
(2)能把指定的内容写入指定的地方。
(3)输入的数据能被执行。
3、作用范围
(1)远程漏洞,攻击者可以利用并直接通过网络发起攻击的漏洞。这类漏洞危害极大,攻击者能随心所欲的通过此漏洞操作他人的电脑。并且此类漏洞很容易导致蠕虫攻击。
(2)本地漏洞,攻击者必须在本机拥有访问权限前提下才能发起攻击的漏洞。比较典型的是本地权限提升漏洞,这类漏洞在Unix系统中广泛存在,能让普通用户获得最高管理员权限。
四、触发条件
(1)主动触发漏洞,攻击者可以主动利用该漏洞进行攻击,如直接访问他人计算机。
(2)被动触发漏洞,必须要计算机的操作人员配合才能进行攻击利用的漏洞。比如攻击者给管理员发一封邮件,带了一个特殊的jpg图片文件,如果管理员打开图片文件就会导致看图软件的某个漏洞被触发,从而系统被攻击,但如果管理员不看这个图片则不会受攻击。
5、时间分类
(1)已发现很久的漏洞:厂商已经发布补丁或修补方法,很多人都已经知道。这类漏洞通常很多人已经进行了修补,宏观上看危害比较小。
(2)刚发现的漏洞:厂商刚发补丁或修补方法,知道的人还不多。相对于上一种漏洞其危害性较大,如果此时出现了蠕虫或傻瓜化的利用程序,那么会导致大批系统受到攻击。
(3)0day:还没有公开的漏洞,在私下交易中的。这类漏洞通常对大众不会有什么影响,但会导致攻击者瞄准的目标受到精确攻击,危害也是非常之大。
漏洞的种类
王老师把其具体分为:web类;二进制类;逻辑类。关于用户权限方面,分为水平权限和垂直权限。
水平权限漏洞:凡是用户A可以利用来访问用户B的敏感资源的漏洞。通常,水平权限漏洞产生的原因是:在展现用户信息时,使用了较易被伪造的身份依据。水平权限漏洞的原理看似简单,但他和开发的思维、编码习惯刚好相反,因此会经常冒出来。尤其是WAP和AJAX接口,开发者往往不把这些接口当作HTTP请求看,增加了很多其实不存在的有利于安全假设条件,从而导致更加忽视对权限的鉴别。
垂直权限是什么?我是普通用户,但是我可以看到管理员的权限,这就是权限控制漏洞。
漏洞的危害
安全漏洞的危害有很多种体现,可以分为:提权;水平权限不同用户间侵害;拒绝服务;欺骗等。
具体的例子有:
一、SQL注入
数据库系统除了可能受到缓冲区溢出的攻击外,近几年又出现了SQL注入的攻击方式,这种攻击方式被称为“SYSDBA的恶梦”。SQL注入可能导致数据库系统中的普通用户窃取机密数据(如获得SYSDBA密码)、进行权限提升(如获得SYSDBA特权)等,而这种攻击方式又不需要太多计算机方面的知识,一般只要能熟练使用SQL语言即可,因此对数据库的安全构成了很大的威胁。
SQL注入的攻击方式比较简单,一般是将一些特权语句注入到有漏洞的存储过程或触发器中导致这些语句被非法执行。例如在Oracle中由SYS创建如下存储过程并将执行权限授予普通用户:
CREATE OR REPLACE PROCEDURE PROC1 ( INPUT VARCHAR2) AS
... ...
STMT:='SELECT TITLES FROM BOOKS WHERE AUTHOR =''' || INPUT || '''';
EXECUTE IMMEDIATE STMT;
... ...
正常情况下用户可以通过执行:EXEC SYS.PROC1('DICKENS')来查询DICKENS的著作,但如果恶意用户这样执行该存储过程:
EXEC SYS.PROC1( 'DICKENS'' UNION SELECT PASSWORD FROM USERS_TABLE WHERE ''A'' = ''A'),那么他就非法地查出了所有用户的密码。
2、XSS攻击
XSS即跨站脚本攻击(Cross Site Scripting)。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知。
XSS攻击的危害包括:1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号;2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力;3、盗窃企业重要的具有商业价值的资料;4、非法转账;5、强制发送电子邮件;6、网站挂马;7、控制受害者机器向其它网站发起攻击。
3、JAVA安全漏洞攻击
其一是电脑黑客可以透过 Applet 并利用一些在 TCP/IP 及目录服务(NDS)上的弱点,绕过Internet的防火墙;另一则是通过Java的组态改变,黑客可以把某些程序像伏兵一样地预藏在客户端的电脑中,以便日后开门行盗。
虽然JAVA在
时已经设置了很好的安全措施,但是还会留下安全隐患。安全漏洞防不胜防。
安全漏洞到底长什么样子
王老师在讲座的最后时间里,给我们介绍了,到底安全漏洞在代码里是什么样子。还举例了经典安全漏洞——缓冲区溢出。
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出。
例如通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。比如下面程序:
void function(char *str) {
char buffer[16]; strcpy(buffer,str);
}
上面的strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。诸如此类的例子很多很多,缓冲区溢出攻击太普遍了,并且易于实现。而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。
二月浏览器捉虫月
最后,王伟老师给我们
了,最近的攻击对抗技术的发展,例如:exploit技术;对抗技术等等。
并介绍了,以王老师为代表的二月浏览器捉虫月活动,在这次活动中,主要测试了遨游、360、IE、 QQ等多家主流浏览器。发现了很多安全隐患:共33个安全漏洞,其中XSS 6(18%)、SPOOF 9(27%)、SOP BYPASS 9(27%)、传统溢出类 9(27%)。
由以上数据我们发现,现在的网络安全形势不容乐观,安全问题还是值得所有人关注的。
文档已经阅读完毕,请返回上一页!