信息安全具有不可证明的特性,只能说在某些已知攻击下是安全的,对于将来新的攻击是否安全仍然很难断言。
信息系统不安全的主要因素有程序设计漏洞、用户操作不当和外部攻击。外部攻击形式主要有计算机病毒、恶意软件、黑客攻击等。目前计算机系统在理论上还无法消除计算机病毒的破坏和黑客的攻击,最好的方法是尽量减少这些攻击对系统造成的破坏。
▶1.程序设计中的漏洞
1)程序中漏洞和后门
漏洞是指应用软件或操作系统在程序设计中存在的缺陷,或程序编写中产生的错误。后门是一种绕开系统安全设置后登录系统的方法,后门有系统服务后门(便于维护人员远程登录),账号后门(密码遗忘后的补救措施),木马程序后门(黑客设置的系统入口)等。随着软件越来越复杂,漏洞或后门不可避免地存在。这些漏洞和后门平时看不出问题,但是一旦遭到病毒和黑客攻击就会带来灾难性后果。程序中的漏洞可能被黑客利用,通过植入木马、病毒程序等方式,攻击或控制计算机,窃取计算机中的重要资料,甚至破坏系统。
例:大多数Web服务器都支持脚本程序,以实现网页的交互功能。黑客可以利用脚本程序来修改Web页面,为未来攻击设置后门等。例如,用户在浏览网站、阅读电子邮件时,通常会单击其中的超链接。攻击者通过在超链接中插入恶意代码,黑客网站在接收到包含恶意代码的请求后,会产生一个包含恶意代码的页面,而这个页面看起来就像是一个合法页面一样。用户浏览这个网页时,恶意脚本程序就会执行,黑客可以利用这个程序盗取用户的账户名称和密码、修改用户系统的安全设置,做虚假广告等。
2)程序设计中的漏洞——溢出
溢出是指数据存储过程中,超过数据结构允许的实际长度,造成的数据错误。例如,黑客将一段恶意代码通过各种方法插入到正常的程序代码中(入侵),这会导致两种后果,首先由于代码长度是固定的,插入恶意代码后就会有一部分正常代码被溢出,这会导致程序执行时的崩溃;其次插入的恶意代码会当作正常代码执行,黑客可以修改函数返回地址,让程序跳转到任意地址执行一段恶意代码,以达到攻击的目的。
3)程序设计中的漏洞——数据边界检查
大部分编程语言(如C、Java等)没有数据边界检查功能,当数据被覆盖时不能被发现。如果程序员总是假设用户输入的数据是有效的,并且没有恶意,那么就会造成很大的安全隐患。大多数攻击者会向服务器提供恶意编写的数据,信任任何输入可能会导致缓冲区溢出。
从安全角度来说,对于外部输人的数据,永远要假定它是任意值。安全的程序设计应当对输入数据的有效性进行过滤和安全设置,但是这也增加了程序的复杂性。
4)程序设计中的漏洞——最小授权
最小授权原则认为:要在最少的时间内授予程序代码所需的最低权限。除非必要,否则不允许使用管理员权限运行应用程序。部分程序员在编制程序时,没有注意到程序代码的运行权限,长时间打开系统核心资源,这样会导致用户有意或无意的操作对系统造成严重破坏。在程序设计中,应当使用最少和足够的权限去完成任务。在不同的程序或函数中,不同时间只给出最需要的权限。应当给用户最少的共享资源。
▶2.用户操作中存在的安全问题
(1)操作系统默认安装。大多数用户在安装操作系统和应用软件时,通常采用默认安装方式。这样带来了两方面的问题,一是安装了大多数用户不需要的组件和功能;二是默认安装的目录、用户名、密码等,非常容易被黑客利用。
(2)激活软件全部功能。大多数操作系统和应用软件在启动时,激活了尽可能多的功能。这种方法虽然方便了用户,但产生了很多安全漏洞。
(3)没有密码或弱密码。大多数系统都把密码作为唯一的防御,弱密码或缺省密码是一个很严重的问题。安全专家通过分析泄露的数据库信息,发现用户“弱密码”的重复率高达93%。根据某网站对600万个账户的分析,其中采用弱密码、生日密码、电话号码、QQ号码作为密码的用户占590万(占98%)。
密码最好是选取一首歌中的一个短语或一句话,将这些短语单词的第1或第2个字母,加上一些数字来组成密码,在密码中加入一些符号将使密码更难破解。
▶3.计算机病毒带来的安全问题
我国实施的《*计算机信息系统安全保护条例》第二十八条中明确指出:“计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。
计算机病毒(以下简称为:病毒)具有传染性、隐蔽性、破坏性、未经授权性等特点,其中最大特点是“传染性”。病毒可以侵入计算机软件系统中,而每个受感染的程序又可能成为一个新病毒,继续将病毒传染给其他程序,因此传染性成为判定病毒的首要条件。
▶4.计算机恶意软件带来的安全问题
中国互联网协会2006年公布的恶意软件定义为:恶意软件是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵害用户合法权益的软件,但不包含我国法律法规规定的计算机病毒。恶意软件具有下列特征之一:
(1)强制安装。未明确提示用户或未经用户许可,在用户计算机上安装软件。
(2)难以卸载。未提供程序的卸载方式,或卸载后仍然有活动程序。
(3)浏览器劫持。修改用户浏览器相关设置,迫使用户访问特定网站
(4)广告弹出。未经用户许可,利用安装在用户计算机上的软件弹出广告。
(5)垃圾邮件。未经用户同意,用于某些产品广告的电子邮件。
(6)恶意收集用户信息。未提示用户或未经用户许可,收集用户信息。
(7)其他侵害用户软件安装、使用和卸载知情权、选择权的恶意行为,