|
探 讨 网 络 安 全
丁军,许榕生,孙蔚林
[关键词] 黑客:是英文hacker的译音。在Internet上有一批熟谙网络技术的人,其中 不乏网络天才,经常用网络上现存的一些漏洞,想方设法进入他人的 计算机系统。有些人只是为了一饱眼福,或纯粹出于个人兴趣,喜欢 探人隐私,这些人通常不会造成一些危害。但也有一些人是存着不? 动机侵入他人计算机系统的,通常会偷窥机密信息,或将其计算机系 统捣毁。这部分人我们就称其为Internet上的 “黑客” 。 CERT:计算机应急小分队(Computer Emergency ResponseTeam)是由美国 联邦政府资助专门研究计算机及网络安全的组织,它们随时提供最新 发现的计算机及网络安全问题,并提供一些解决方法。 要获得CERT的信息,可发电子邮件到: cert @cert.sei.cmn.edu Inetd:Internet Service Daemon,它是系统的超级服务器,它使得一台机 器上可以同时运行几十个服务器。它以这些服务器的名义同时侦听这 些服务器的口(Port)。以SNMP服务为例,当inetd侦听到口161有信 号时,它会自动启动SNMP服务器。当SNMP服务完成后,SNMP服务器会 自动关掉, inetd继续以Snmpd的名义侦听161口。`@34,32=3` 如今Internet火爆全球,可令人头疼的问题也随之而来, 那就是由于“黑客”在网上的活动极具危害性及破坏性,网 络安全问题已成为网络管理员头等关心的大事, 也是决定 Internet 命运的重要因素。 实际上已经出现不少许多个体 网络由于自身安全受到威胁, 而不得不被迫暂时退出 Internet的事件。 然而从根本意义上讲,绝对安全的计算机是根本不存在 的,绝对安全的网络也是不可能的。只有存放在一个无人知 晓的秘室里,而又不插电的计算机才可以称之为安全。只要 使用,就或多或少存在着安全问题,只是程度不同而已。美 国国防部制定的 “可靠计算机标准评估准绳” (Trusted 统捣毁。这部分人我们就称其为Internet上的 “黑客” 。 CERT:计算机应急小分队(Computer Emergency ResponseTeam)是由美国 联邦政府资助专门研究计算机及网络安全的组织,它们随时提供最新 发现的计算机及网络安全问题,并提供一些解决方法。 要获得CERT的信息,可发电子邮件到: cert @cert.sei.cmn.edu Inetd:Internet Service Daemon,它是系统的超级服务器,它使得一台机 器上可以同时运行几十个服务器。它以这些服务器的名义同时侦听这 些服务器的口(Port)。以SNMP服务为例,当inetd侦听到口161有信 号时,它会自动启动SNMP服务器。当SNMP服务完成后,SNMP服务器会 自动关掉, inetd继续以Snmpd的名义侦听161口。`@34,32=3` 如今Internet火爆全球,可令人头疼的问题也随之而来, 那就是由于“黑客”在网上的活动极具危害性及破坏性,网 络安全问题已成为网络管理员头等关心的大事, 也是决定 Internet 命运的重要因素。 实际上已经出现不少许多个体 网络由于自身安全受到威胁, 而不得不被迫暂时退出 Internet的事件。 然而从根本意义上讲,绝对安全的计算机是根本不存在 的,绝对安全的网络也是不可能的。只有存放在一个无人知 晓的秘室里,而又不插电的计算机才可以称之为安全。只要 使用,就或多或少存在着安全问题,只是程度不同而已。美 国国防部制定的 “可靠计算机标准评估准绳” (Trusted Computing Standards Evaluation Criteria) 将计算机安 全划为从A到D四个级别,每个级别之内还可以再细分。A1级 为最高,但除了放在一个无人知晓的地方,未插电的计算机 可以算得上A1级,再没有计算机可以享此殊荣。标准的Unix (只具有login口令, 文件保护这几项安全措施)被定为C1 级,DOS被定为D1级。目前还很少有操作系统能够符合B级标 准。 我们在探讨网络安全的时候,实际上是指一定程度的网 络安全。而到底需要多大的安全性,却要完全依据实际需要 及自身能力而定。网络安全性越高,同时也意味着对网络使 用的不便。因此,网络管理员在考虑网络安全时,必须两者 兼顾。网络的安全性与网络的使用便利性是一对矛盾的概念, 可以用下面的谱线图来描述。可以假定某台计算机达到绝对 安全(即前面所述不插电计算机),可是不幸的是这台计算 机却没有人可以使用。 ┌─┐ ┌─┐ ├─┘ ┌─┐ ├─┘ ╋━╋━╋━╋┿╋┿╋━╋━╋━╋━╋━╋━ └─┘ 使用 游标 网络 方便 安全 大〈--- --->大 在了解了如上网络安全的基本概念后,下面介绍为谋求 合理的网络安全,我们推荐给系统管理员及普通用户的几种 防范措施。
一、防火墙技术 网络安全一个使用很广泛的技术就是防火墙技术,即在 Internet和内部网络之间设一个防火墙。 目前在全球连入 Internet的计算机中约有1/3是处于防火墙保护之下。 那么什么是防火墙呢?顾名思义,防火墙是用来阻挡外 部(Internet)火情影响内部网络的(Internal network) 屏障。无论外部世界多么错综复杂,良莠不齐,经过防火墙 的过滤,内部网络大可隔岸观火,不受火灾危害。 用专业一点儿的话来描述,防火墙的主要目的就是防止 外部网络的未授权访问。如果某个网络决定设定防火墙,那 么首先需要由网络决策人员及网络专家共同决定本网络的安 全策略(security policy) ,即确定什么类型的信息允许 通过防火墙,什么类型的信息不允许通过防火墙。防火墙的 职责就是根据本单位的安全策略,对外部网络与内部网络交 流的数据进行检查,符合的予以放行,不符合的拒之门外。 另外,还要确定防火墙类型,即防火墙拓扑。(感兴趣者可 阅读ftp.tis.com /pub/frirwalls/firewall.ps.z) 防火墙的技术实现通常是基于 “包过滤” (packet 现。
二、加密技术 网络安全的另一个非常重要的手段就是加密技术 (cryptography)。它的思想核心就是既然网络本身并不安 全可靠,那么所有重要信息全部通过加密处理。 .单匙技术 即无论加密还是解密都是用同一把钥匙(secret key)。 这是比较传统的一种加密方法。发信人用某把钥匙将某重要 信息加密,通过网络传给收信人,收信人再用同一把钥匙将 加密后的信息解密。这种方法快捷简便,即使传输信息的网 络不安全,被别人截走信息,加密后的信息也不易泄露。但 这种方法也存在一个问题,即如果收信者和发信者不在同一 地理位置,那么他们必须确保有一个安全渠道来传送加密钥 匙。但是如果确实存在这样一个安全渠道(如通过信差、长 途电话等等),他们又何必需要加密呢?(当然如果你只希 望将个人保存的信息保密,而并不需要发送给某人,那么这 种技术是最好的方法。)后来出现的双匙技术解决了这个难 题。 .双匙技术 即有两个相关互补的钥匙。一个称为公用钥匙(public key ),另一个称为私人钥匙(secret key)。公用钥匙是 大家被告知的,而私人钥匙则只有每个人自己知道。发信者 需用收信人的公用钥匙将重要信息加密,然后通过网络传给 收信人。收信人再用自己的私人钥匙将其解密。除了私人钥 匙的持有者,没有人,即使是发信者,能够将其解密。公用 钥匙是公开的,可以通过网络告知发信人(即使网络不安全) 。而只知道公用钥匙是无法导出私人钥匙的。这种技术的缺 点就是速度较慢。因此,如果需要传送的信息量很大,比较 明智的作法是采用单匙技术将信息加密,而解密的钥匙则再 用双匙技术加密传给对方。 现有软件可直接实现这些功能 (如PGP:Pretty Good Privacy)。 加密技术主要有两个用途,一是加密信息,正如上面介 绍的;另一个是信息数字署名,即发信者用自己的私人钥匙 将信息加密,这就相当于在这条消息上署上了名。任何人只 有用发信者的公用钥匙,才能解开这条消息。这一方面可以 证明这条信息确实是此发信者发出的,而且事后未经过他人 的改动(因为只有发信息才知道自己的私人钥匙),另一方 面也确保发信者对自己发出的消息负责,消息一旦发出并署 了名,他就无法再否认这一事实。 如果既需要保密又希望署名,则可以将上面介绍的两个 步骤合并起来。即发信者先用自己的私人钥匙署名再用收信 者的公用钥匙加密,再发给对方。反过来收信者只需用自己 的私人钥匙解密,再用发信者的公用钥匙验证签名。这个过 程说起来有些繁锁,实际上很多软件都可以只用一条命令实 现这些功能,非常简便易行。 依据笔者的意见,加密技术是一种效率高而又灵活的安 全手段,建议加以推广。 目前,加密算法有多种,大多源于美国,但是大多受到 美国出口管制法的限制。
三、Xinetd(Extented Internet Service daemon) xinetd是inetd的替代版本,它除了能够实现inetd的全 部功能外,还提供了一系列安全措施: .控制系统只接受某些来自指定IP 地址或节点名的连 接请求。这可以用于杜绝一些来自有坏纪录的节点的连接请 求。 .控制系统只接受授权用户的连接请求。 .控制系统只在合法时间内接受请求。 .控制系统记录接受或拒绝的连接请求。 通常可以记录如下信息: A.远程节点地址 B.远程节点的UID(在某些服务中) C.登录和退出的时间 等等。 Xinetd是可以从网络上免费获得的软件 (anonymons ftp, mystique.cs.colorado.edu),建议系统管理员采用 xinetd代替inetd。
四、妥善的系统管理将网络的不安全性降至现有条件下 的最低 目前,在Unix上发现的大多问题,都归因于一些编程漏 洞及管理不善,如果每个网络及系统管理员都能注意到以下 几点,即可在现有条件下,将网络安全风险降至最低: 1、口令管理 目前发现的大多数漏洞,大多是由于口令管理不严,使 “黑客”得以趁虚而入。因此口令的有效管理是非常基本的, 也是非常重要的。 . 首先绝对杜绝不设口令的帐号存在。 这可以通过查 看/etc/passwd文件发现。例如存在用户名为www的帐号,没 有设口令,则在/etc/passwd文件中就有对应如下的一行: www::100:9::/home/usr/www:/bin/tcsh其第二项为空, 说明www这个帐号没有设口令, 这是非常危险的!任何可以 看到/etc/passwd文件的人(而这是很容易的, 因为这个文 件是世界用户可读的) 都可以轻而易举地盗用www的帐号进 入计算机而为所欲为。 Internet 上的“黑客”在非法闯入 一台计算机后,最常见的作法就是窥视passwd文件,以寻是 否有机可乘。 .缩短口令过期时间, 使用户经常更换口令。 .采用新版本口令管理软件。新的口令管理软件在用户 设定一些容易被猜中的口令时,会自动拒绝接受,并提示用 户重新选择口令。例如用户不能使用自己的名字、生日日期 等做口令时,不能选用英语单词做口令,等等。 另外, 在比较新的Unix系统,passwd 文件中的第二项 (存放口令密码) 均用X代替,而将口令密码放在一个只有 root才可读的/etc/shadow文件中, 这就杜绝了“黑客”在 获得passwd 文件后, 将口令解密的可能性。提倡用户使用 复杂的口令,例如可以用一句话作为口令(passphase)。 2、用户帐号管理 在为用户建立帐号时, 应注意保证每个用户的UID是唯 一的,应避免使用公用帐号,对于过期的帐号要及时封闭, 对于长期不用的帐号要定期检查,必要时封闭。(因为这样 的帐号通常是“黑客”袭击的目标,他们可以在上面大做手 脚而很长时间内不被发现)。 3、inetd/xinetd的妥善管理 Inetd是超级服务器, 它使得一台机器上可以同时运行 几十个服务器。它以这些服务器的名义同时侦听之些服务的 口(port)。当有服务请求到来时,它会启动相应的服务器。 通过其配置文件/etc/inetd.conf 可以对其进行合理配置。 inctd. conf通常包含下面的几行:ftp stream tcp nowait root /etc/ftpd ftpd -l tftp dgram udp wait root /etc /tftp tftpd\... ...... .tftp(Trivial File Transfer Protocol)的合理设 置 由于tftp在进行文件传输时不需要用户口令,因此会带 来许多安全问题。一般如果这种服务不是必需的,系统管理 员通常将其关闭,即在inetd.conf中与tftp相关的一行之前 加上注释符“#”即可。如果这种服务是必需的,(tftp 常 用于启动X终端、路由器等),则必须小心配置tftp,否则, 系统将允许传输任何文件! .Ftp(Fire Ttansfer Protocol) Ftp是任何机器普遍提供的一项文件传输服务。 在提供 anonymous ftp服务时,也要注意其正确的设置: A . ftp/tftp 不能访问任何 shell 。在/etc/passwd 文件中,其 shell 应设置成/bin/faulse。 B.一定要打开chroot开关, (一般为“-s”,具体可 查联机手册) ,保证ftp/tftp 所传输的文件限定在一定目 录下。 C.建议打开“登录” 开关(一般为“-l”),以便检 查。 4、谨慎使用r命令 r 命令可以使用户在不需提供密码情况下执行远程操作。 因此,在方便的同时,也带来潜在的安全问题。 Unix系统中, 系统是通过查看/etc/hosts.equiv及$ HOME/.rhosts文件来控制可以使用r 命令的节点及用户。所 以,这两个文件的正确设置是使用r命令安全的基本保障。 “黑客”在侵入某个Unix系统后,最通常做的一件事就 是修改在主目录下的 .rhosts文件,以便为自己日后再次进 入系统留下后路。因此,建议用户在怀疑自己的系统被闯入 时,马上查看 .rhosts文件,检查其最后一次修改日期及内 容,注意文件中绝对不能出现“++”,否则你的帐户就可 以被网络上任何一个用户不需知道你的密码就任意进入。 另外,还要特别注意 .rhosts文件中不能涉及一些特殊 帐户(例如news,bbs等等),一些“黑客”就是通过这条途 径进入用户帐户而又不留下自己的来龙去脉。 可以看出,.rhosts为外部侵入留下了潜在的危险,用 户自己在设置时要格外小心, 如果不是特别需要,建议在 rhosts文件中不设入口。 同样的,对于系统管理员,如果不是特别需要,建议在 /etc/hosts.equiv中不设入口。如果/etc/hosts.equiv中有 入口, 而用户个人为了安全起见, 可以在 .rhosts中加入 “--”,而关闭所有的入口。 此外,建议在这两个文件中不要加注释行(以#开头), 因为有些有特权的“黑客”可以将其节点名设成#而获得进 入你系统的权力! 5、X管理 X的使用无疑使计算机网络锦上添花。 它除了提供友好 的图形用户界面,还可以使用户通过网络在本机调用远程节 点的X程序。 同时,也正是由于X的广泛应用,物美价廉的X 终端(X terminal)才得以倍受欢迎。 X产生的宗旨原本就是通过client/server 模型, 使用 户的本地界面可以显示(服务) 网络上任何其他系统的X客 户程序;反过来,本机X 客户程序也可以在网络上任何其他 系统上显示。 X的设计本身就是针对并构架于计算机网络环 境之上的。然而在它给广大用户带来方便的同时,也正是由 于它的网络属性带来了不可避免的网络安全问题。 许多用户在醉心于X的网络功能带来的便捷时, 往往意 识不到自己,同时为计算机的安全打开一个缺口。在我们工 作间隙,有不少同事开玩笑,在朋友的计算机屏幕上送一个 “大钟”(xclock)或某张明星照,然后再跑过去观看他的 反应,这些毕竟是善意的。但如果是一些心怀不轨的人,那 不是很危险吗! 如果你没有将自己的X妥善管理好,那么除 了你的屏幕也许会受到你不希望的干扰外,更严重的是你屏 幕上的显示及你的敲键动作都有可能被远地某个不怀好意的 人监视到。对于一个敏感数据或信息,例如口令,如果在输 入时被人偷窥到,那么你的系统就毫无安全性可言了! 以上绝非危言耸听,笔者曾试验过一些用户的计算机安 全性,发现由于不少用户由于缺乏这方面的知识或由于系统 管理不善,他们的系统安全性能十分脆弱。笔者可以很容易 地将其正在使用的屏幕的全部内容捕捉到自己的显示器上, 或者在其屏幕上写字,开个善意的玩笑。 虽然要保证绝对的安全是不可能的,但下面将推荐几项 措施,以保障你的X系统的基本安全。 .设置X访问控制(Access Control) X提供了基于节点的访问控制的基本手段。 A./etc/X0.hosts文件的正确设置 这个文件列出了可以访问本 X服务器(X server)的一 系列节点名。 即名单上的系统的X客户程序可以随时访问本 地X服务器。 这个文件应由系统管理员根据实际情况合理设 定。 从安全角度出发,建议此文件中尽可能地少设入口。 例如HPWS2上/etc/X0.hosts文件内容为: HPWS0.ihep.ac.cn HPWS1.ihep.ac.cn . . . HPXT1.ihep.ac.cn HPXT2.ihep.ac.cn 即HPWS0上的X客户程序(如XV. ghostview )被授权可 以访问HPWS2的X服务器, 用通俗点儿的话说,即HPWS0可以 往HPWS2送显示。 B.Xhost客户程序 可以交互地设置节点访问控制。 例如允许sun上X client访问HPWS0的Xserver, 则应在 HPWS0上设置xhost +sun则有下示信息: Sun added to access control list “xhost +” 则会解除访问控制, 允许任何节点的X client访问本地X服务器。 从安全的角度讲,这无疑是大开 城门,存在许多潜伏的危险。因此,强烈建议用户不要使用 这样的命令。 .麻省理工魔术蛋糕(MIT-MAGIC-COOKIE-1) 上面的措施只能限制到节点上,即使所有其他节点均处 于访问控制之下,也仍存在着一个很大漏洞,即任何连接到 本机节点上的用户都有权访问本机X服务器。 为了解决这一点, 有些Xhost支持用户基本上的访问控 制,即xhost +username@domain,而最普遍采用的方法是 MIT-MAGIC-COOKIE-1。 A.HOME/.Xauthority文件 如果你的系统提供MIT-MAGIC-COOKIE-1服务,你就会在 你的主目录下发现一个 .Xauthority文件。这个文件装有机 器可识别代码(代码被称为魔术蛋糕MAGIC COOKIE),相当 于进入X服务器的密码。一个X客户程序在被允许与X联接前, 必须首先能够从.Xauthority中获得密码,被X服务器核实后, 才能获得其访问权。因此,为了确保只有你自己可以访问你 的X显示,你必须将 .Xauthority 文件保管好,只允许你本 人可读或修改此文件,即 .Xauthority的文件保护应设置为 “-rw------”。 B.Xauth命令 用户通常希望自己在网络上无论哪个节点帐户的X客户 程序均可以访问魔术蛋糕, 这样,不仅可以很方便地使用X 的网络功能,又保证了安全性。当然如果你的 .Xauthority 是由你的几个节点帐户共享的(如用NFS系统) ,那么你这 几个节点的X 客户程序可以方便地访问各X服务器。 但如果 是两个互不关联的系统,这时Xauth命令可以解决这个问题。 Xauth命令是用于将一个节点的魔术蛋糕传送给另一个节点, 例如将节点ss5的魔术蛋糕传送给Sun,则有如下命令: Xauth extract -ss5:0│rsh sun xauth merge - 这样, 只要是用户本人使用这两个节点的X资源,就不 需再做任何X访问控制的设置。 .保护Xterm Xterm是X模拟字符终端提供的用户窗口,用户可以在命 令提示符下键入各种命令。 为了防止他人偷窥你在Xterm输 入的内容, Xterm 专门提供了Xterm保护功能, 即在Xterm 的主菜单下 (同时按ctrl和第一个鼠标键) 选 “Secure keyboard” 一项,这时Xterm应底色变黑。如果没有变色, 则很有可能某个人正在监视你的Xterm。 一般建议用户在输 入敏感信息时,将其Xterm设保护。 6、采用最新版本的sendmail服务器 原码越长,安全漏洞就可能越多,而sendmail就恰巧应 了这句话。 Sendmail 虽然实现的功能简单,但原码却极其 庞大,其本身存在的安全问题,也是如今网络安全专家最头 疼的问题。目前还没有一个十分安全的sendmail软件,但已 经出现了不少针对其安全问题的改进版本,因此建议系统管 理员随时注意更换最新版本的sendmail软件。 7、加强信息服务器的安全措施 如果对外开放的信息服务器本身是不安全的,就相当于 在系统的防护罩上开了一个漏洞,那么其他的安全工作做得 再多,也会付诸东流。因此,系统管理员和信息服务器的管 理人员必须细心注意服务器本身的安全设置,并随时更新版 本。 目前,几乎所有的信息服务器(如www)均提供了安全 设置途径。
五、Ethernet Sniffer Sniffer是如今众多的Internet闯入的一种主要途径。 与电话专线不同,计算机网络是共享信道,这就意味着 网上的计算机可以接收到网上传输的发往其他节点的信息。 以Ethernet为例,信息被发往同一线路的每个节点,但只有 地址与信息头中的目的地址相符的计算机,才接收这个信息 包,而其他的机器均放弃。但是如果某台机器可以接受所有 信息,而不论这些信息是发给谁的,这台机器就可以称之为 Sniffer。 它可以是网络管理人员用于管理的监视器,也可 能成为 “黑客” 用于侵犯的基地。 由于帐号与口令在 Ethernet 上是以文本格式传输的, 因此,一旦“黑客”? 办法控制Sniffer,网络上的所有机器均处于危险之中。
[结束语] 最后是写给系统及网络管理员的一些建议: 可以预见,系统及各种服务以及应用软件的漏洞会越来 越多地被发现,然后被修补,同时,会有许多新的漏洞又出 现,再修补,是个循环往复的过程。因此,系统及网络管理 员应该: .及时与生产厂家联系,安装各种security patch .密切注意CERT消息 .参加网络安全讨论小组
(,2000-11-06)
|