规避八大问题 避免Linux安全误区
【IT168专稿】尽管Linux在安全设计上比其他一些操作系统具有一定的优势,但它也决不像早先一些人认为的"绝对安全",近年来,基于Linux的安全事件也多有发生。
无论是Linux还是Windows,在安全方面最大的问题都不是产品本身,而是使用的人有没有实践一些基本的安全原则,例如"Default to a secure mode"、"Apply the principle of least privilege"那些认为只要把Windows换成Linux就可以一劳永逸高枕无忧的人,就大错特错了。
实践中,不少企业尽管选择非常好的工具,但采取的安全策略和行为却很不恰当,有些甚至会带来隐患。如下这些不安全的Linux安全策略和行为来自笔者在平时工作中的经验总结,安全专家们一直在不断寻觅那些经实践证明切实可行的方法,以便我们可以用来确保网络和数据的安全。
忽视物理安全
如果您希望真正保护您的Linux网络中的数据,最关键的是要物理安全和计算机网络安全并重。主要包括以下几点:
配备冗余设施 数据中心的许多设施需要采用双源供应,比如电力、通信数据。
避免不必要的窗口,数据中心是数据仓库而不是办公室。如果必须要有一些窗户的话,那么也要把窗户限制在休息室或管理区。
使用多因素认证, 生物特征识别正成为数据中心敏感区域的标准身份识别技术,其他区域可以使用更便宜的通行卡。
要禁止食物的出现在关键的数据中心, 要提供一个公共的地方给人员吃饭用,这样食物就不会危险地出现在关键的计算机设备上。
依赖工具忽视人为因素
许多Linux系统管理员认为只要采用了合理的技术: 防病毒、防垃圾邮件、防火墙、补丁管理器、虚拟专用网(VPN)、公钥基础设施(PKI)、入侵预防系统(IPS)和入侵检测系统(IDS),我们就高枕无忧。 问题在于,产品的效果完全取决于配置及监控产品的人。
应当看到安全不但是技术问题,更是行为问题,正确的安全策略是结合技术和员工行为。策略的制订需要业务和IT领导人的共同努力。当然,有些策略主要依靠技术(如Linux Iptables 防火墙的配置),而其他策略纯粹依靠行为(如不要把登录口令写在便条上)。两者同样重要。
没有正确设置用户的痛苦系数
Linux 系统管理员要建立合理的用户痛苦系数(痛苦系数是指安全限制引起的抵制的函数),不能仅仅从技术上考虑问题,还要站在用户的观点上考虑。过分要求安全反而会促使人们采取变通办法来逃避。
例如,我们能够想每次Macintosh用户登录时都使用S/Key吗? 彻底安全的系统从理论上讲不可能,因此我们所指安全性只是在代价与可用性间作平衡。若是用户提交的每一个变量都要求有生物学验证(如指纹鉴定),则将获得极高水平的可靠性。但是也会造成用户填写一个表格就要几十分钟。
这时用户就会采取绕过安全验证的方法。一个系统的可靠性只能由整个链条中最薄弱的环节来决定。在任何安全系统里面,人是最脆弱的连接,单单技术本身不能让系统安全。最好的安全策略通常能够不那么明显地适应环境的需求,它不会妨碍用户完成他们的工作,也不会使代码编写员面过分负担复杂的情形。
不要觉得安全标准设置得越严越好,如果安全标准设置过高,会造成许多网络应用不能实现,如办公自动化系统、共享应用等。一旦你防火墙设置过于严格,妨碍了你的日常应用,用户就会觉得防火墙碍事而绕过或者卸载它,结果得不偿失。
频繁更改复杂的口令
毫无疑问含有16位随机字符的口令很难被猜中,臂如asldf**fe#&sq*,但这种口令也不太容易被记住,万一自己忘记了,也是很麻烦的。也就是说肯定要把它记在纸上,或者保存在一个文件中,这显然是更加不安全的。明智的办法是使用比较容易记住、但又不是一猜即中的口令。
以银行为例,证明这种策略可以取得成功。以ATM登录密码为例。我们使用六位数字,数字安全领域的人士会说,这六位数字不安全,因为很容易被随机数字生成器猜出来针孔摄像头录下,用户因而可能会选择用出生年月做口令。那么银行为什么还决定这么做呢?
因为使用六位数字做口令,主要是因为许多人用不着写在纸上,又具有一定的安全性。当然,要把安全的复杂性隐藏起来,最好的办法就是采用统一身份管理系统。那样,你不仅可以用智能卡登录到服务器上,还可以用来进入大楼的正门。无需口令,省了麻烦。但这种方法需要负责处理物理安全和数字安全的人员密切合作。
糟糕的口令策略也会危及安全。这是个特别棘手的平衡问题: 如果策略过于严格--譬如要求口令使用字符和数字,至少要有八个字符,而且定期重新设置,你只会迫使用户把口令记在纸上或一个文件中。但如果过于宽松,口令又很容易被猜中。关键就在于找到合理的平衡点。
认为仅仅使用数据加密可以保障安全
笔者使用过的许多加密Linux磁盘加密软件(TrueCrypt,http://www.truecrypt.org/ 等)只能保护处于关闭状态的计算机数据,如果计算机在开启状态,那么所有数据的读取时是自动解密的。例如笔记本电脑的整个硬盘加密功能,可以保障在笔记本丢失后不会泄密。
但是如果你使用笔记本登录到一个网络中后,其他黑客此时通过网络登录到您的笔记本,这种整个硬盘加密就没有作用了。加密本身只能解决窃听问题,但是假冒和篡改的威胁依然存在。解决问题的方法是使用多层次安全保护。
在过去的五年中,计算机安全协会和FBI的计算机犯罪联合调查发现,至少一半安全破坏事件源自网络内部,年年如此。 内部滥用是网络安全的公开秘密。内部滥用事件往往被掩盖起来。不过就看不到问题或者不愿看到问题,并不表明问题就没有了。关键在于管理,许多单位的管理措施只是针对普通员工,对于一些企业高级管理人员缺乏制约(主要是指中小企业)。在法律来讲缺乏制约的权利意味着腐败。在技术上何尝不是如此,只不过腐败变成了不安全。
系统管理员和用户沟通不足
对于系统和网络管理员来说更重要的是要建立安全意识,了解你的用户(系统管理员越熟悉自己的用户和用户的工作习惯,就越能快速发现不寻常的事件,而不寻常的事件往往意味着系统安全问题。)、定期检查你网络中的重点设备如服务器,交换机,路由器。最好配备一些专业工具。网络管理员还要给用户提供安全服务。
对用户要定期发送安全邮件,发送邮件是让用户具有安全意识。管理意识是提高安全性的另-个重要因素。如果用户的管理部门对安全要求不强烈,只靠系统管理员也不行。最好让管理部门建立一套每个人都必须遵守的安全标准,如果系统管理员在此基础再建立自己的安全规则,就强化了安全。管理有助于加强用户意识,让用户明确,信息是有价值的资产。
系统管理员应当使安全保护方法对用户尽可能地简单,提供一些提高安全的工具。网络管理员要建立合理的用户痛苦量(痛苦量是指安全限制引起的抵制的函数),不能仅仅从技术上考虑问题,还要站在用户的观点上考虑。用户知道的关于安全的知识越多,网络安全就更有保障。
没有正确认识Linux 补丁问题
许多人认为只要:及时为服务器打补丁,能够补救安全漏洞。在补丁方面有这种自满心理的特别多。有时,有打补丁很管用,有时打补丁会把漏洞转移到别处;有时打补丁反而会带有新的漏洞。"我们知道,补丁只能解决已公布的漏洞,但对于那经还没有被公开的漏洞则无计或施,问题在于,网络所依赖的许多技术是在比较早期比较纯真的年代开发而成的,许多最大的安全漏洞是TCP/IP加构所固有的缺陷。
首先要说的是:Linux 补丁管理策略是和Windows不同的。如果经历了发现漏洞、通知危险、分发补丁的漫长过程后,再人为安装补丁就已经太晚了,所以自动化就变成了惟一的选择,尤其是考虑了投资回报率与生产力利润后。没有经过很好整合和测试的补丁,服务器的维护工作将是一个非常繁重任务。这是因为系统管理员必须跟踪系统里安装的每一个软件包,有时当补丁发布时还要对子系统进行改造。
如果把每个RadHat Linux主机分别连接到RadHat的升级网站更新补丁,首先会造成企业网络出口阻塞、浪费宽带资源,另外也不安全。这里笔者建议建立一个独立的APT服务器,管理员可以自己先下载软件包,然后通过网络其他用户可以方便的进行定期升级。 APT服务器上面可以安装多个版本的 Linux 发行版本的的RPM 套件,并且需要提供 WWW服务,因为客户端则是通过服务器的 WWW协议进行 软件包和内核更新。
APT服务器就像 Microsoft 的SUS补丁机一样,它可以自动对网络中的Linux主机打补丁,无论是服务器端还是客户机都可以自动完成操作。而且 APT 不需注册,完全免费,更可以安装非 RedHat 提供的软件。所以APT能够在发现软件包依赖性的同时,自动下载相应的软件包并加以安装,使得管理员能毫无故障地执行系统软件的升级。APT使得零停机时间升级成为现实。运行一个apt软件库(http://apt-rpm.tuxfamily.org/)并不是一件非常困难的事情,它可以为持续的安全升级提供一个非常好的机制。可以定时更新系统软件,弥补网络和系统的安全漏洞。
对于Linux这样的开放式系统,和其他私有操作系统(Windows/AIX)相比, 发行商的短期支持策略使得网管经常需要上相应的网站看,是否有补丁,是否有了bug 修复,是否需要升级。千万不要报侥幸心理,否则一个Shell脚本就可能拿下你的网站。套用一句名言:你的服务器永远可能在第二天被黑客接管。
Linux服务器运行的软件主要包括:Samba,Ftp,Telnet,Ssh,Mysql,Php,Apache,Mozilla等,这些软件,大都是开源软件,而且都在不停升级,稳定版和测试版交替出现。在www.apache.org 上,最新的ChangeLog中都写着:bug fix(漏洞修正), security bug fix(安全漏洞修正)的字样。所以Linux系统管理员要经常的关注相关网站的bug fix和升级,及时升级或添加补丁。
总结:其实Linux网络安全领域的诸多观点根本就没有经受过考验,我们之所以信以为真,是因为经常从windows安全方面有所耳闻,于是这些安全观点就成了误区。
如果认为安装了防火墙、认证授权和入侵检测系统就可以保护网络免受各种攻击的话,是错误的。实际上,并没有绝对安全的网络,也没有 "无坚不摧"的安全解决方案。从辩证法的角度来说:安全是相对的。如果一味地只依靠技术工具,那就会越来越被动;需要多方面综合使用技术和人的因素。遗憾的是还没有得到大多数企业重视,这也是本文的写作目的。