我最近偶然发现:
是的,我知道从不受信任的来源添加一些随机的PPA /软件会带来麻烦(或更糟)。我从来没有这样做,但是有很多人这样做(许多Linux博客和小报都鼓励为新奇的应用程序添加PPA,而没有警告它可能会破坏您的系统甚至更糟,从而危及您的安全性。)
如何检测和删除特洛伊木马或流氓应用程序/脚本?
我最近偶然发现:
是的,我知道从不受信任的来源添加一些随机的PPA /软件会带来麻烦(或更糟)。我从来没有这样做,但是有很多人这样做(许多Linux博客和小报都鼓励为新奇的应用程序添加PPA,而没有警告它可能会破坏您的系统甚至更糟,从而危及您的安全性。)
如何检测和删除特洛伊木马或流氓应用程序/脚本?
Answers:
没有一般的食谱。如果您的系统已被未知木马感染,则您只需重新安装即可。
如果您知道该木马以某种方式运行(例如,您知道该木马不会感染内核),则恢复的方式可能不太苛刻。但这完全取决于了解木马的行为。如果只有症状(例如您的计算机未经您的同意发送垃圾邮件),则没有通用技术:特洛伊木马检测程序必须比特洛伊木马程序设计者更聪明(而且很幸运)。就特洛伊木马而言,侦查和隐藏就像枪械和盔甲:技术在不断升级,任何一方都没有内在的优势(尽管藏身之处确实有先机)。
许多系统都有适当的安全分发渠道。例如,当您使用基于apt的工具(apt-get,aptitude,synaptic,软件中心等)从Ubuntu存储库中安装软件包时,该工具会检查该软件包是否已由Ubuntu信任的人签名(审核)。(大多数发行版都具有类似的机制。)从PPA安装软件包时,您所知道的就是PPA所有者对软件包进行了审核,如果您首先没有理由信任PPA所有者,这将无济于事。
关于特洛伊木马和后门程序,我强烈建议阅读Ken Thompson的Turing奖讲座“关于信任信任的思考”。总而言之,他更改了编译器,以便在编译登录程序时,将添加允许他使用秘密密码登录的代码。然后,他更改了编译器,以便在编译器自身进行编译时,将插入代码以添加后门。然后他重新编译了整个系统(特别是登录程序和编译器);最后,他将编译器源还原为原始的,毫无疑问的源。再次阅读肯·汤普森的文章;然后,您可能还会阅读David Wheeler的观点,也许最好通过Bruce Schneier 的博客文章来了解。
如果我正确理解本文中描述的“特洛伊木马”,则无法以“正常”方式被发现为“正常”恶意软件。该IRCd在使用之前一直处于正常状态,因此管理员只有在以下情况下才能发现此安全漏洞:1)使用了该漏洞,并且该漏洞所采取的措施导致了日志中的输入或以其他方式可见; 2)读取源代码。
用于Linux或AV LiveCD Rescue Disk的AV软件也应检测到“真实” Linux恶意软件,因此您可以使用此软件扫描计算机。正如您在列表中的SecureList中看到的那样,名称中有Linux的条目有1941个,并且该软件应由卡巴斯基软件检测。快速浏览此列表可以发现,许多条目涉及某些DDoS工具以及无法自动传播的漏洞利用或工具,它们仅可用作攻击工具(因此无害)。
要检查cracker安装的后门/ rootkit,可以使用检查文件校验和的工具(您应在干净的系统上生成文件和校验和的列表,并在服务器软件更新后对其进行更新)。每个新文件或校验和错误的文件都是可疑的。校验和的列表和生成该校验和的工具应位于只读介质上(例如,cracker可能会更改md5sum,因为它是自己的版本,显示错误的校验和)。这种查找恶意软件的方法可以用于“稳定”的系统,而这些系统每天都不会升级软件。
可以通过在netstat
本地运行以检查网络流量来检测到某些恶意软件,但是如果系统被感染,则netstat
也可能会更改所显示的数据。在这种情况下,一些解决方案是监视来自另一台计算机的网络流量(例如,从路由器来的网络流量,以检查将哪些流量发送到Internet)。
SELinux和AppArmor可以预防木马/ rootkit和其他感染。我讲了SELinux的情况,我知道的更多。启用SELinux后,您将为安装在计算机上的所有进程(包括守护程序)提供上下文。您还标记文件系统以使其与上下文一起使用,使它们匹配。当某个进程尝试执行不在其上下文中的操作时,您会收到一条消息,并且,如果SELinux处于强制模式,则该操作无法完成。
这样,如果您的ircd木马愿意覆盖ps命令或其他命令(木马/ rootkits /蠕虫的通用策略以避免检测),则不允许这样做。然后您会被告知。
我知道配置起来很困难,但是我的机器现在可以使用SELinux强制执行,并且我的两台Fedora笔记本电脑可以轻松完成台式机所需的任何工作。
甚至我的家庭服务器现在都处于强制模式。
另一种策略是定期运行Rootkit检测器,该检测器将计算Cirtical命令的校验和,并通知您有关基本命令的更改。
我同时使用SELinux和rkhunter(以及clamav防病毒软件)。
问候
另一回应断言,“隐藏者”(隐形恶意软件)比“检测器”具有内在优势。我不同意。如果您将自己限制在依靠签名或启发式方法检测恶意软件的检测方法,那么这是正确的。但是还有另一种检测恶意软件的方法:验证已知商品。Tripwire,AIDE等可以验证磁盘上的文件。Second Look可以验证正在运行的内核和进程。Second Look使用内存取证来直接检查操作系统,活动服务和应用程序。它将内存中的代码与Linux发行商发布的代码进行比较。这样,它可以立即查明由Rootkit和后门程序以及正在执行的未经授权程序(木马等)进行的恶意修改。
(公开:我是Second Look的首席开发人员。)