如何检测并删除Linux木马?

如何检测并删除Linux木马?

我最近(重新)偶然发现了这一点:

是的,我知道从不受信任的来源添加一些随机 PPA/软件会带来麻烦(或更糟)。我从来不这样做,但很多人这样做(许多 Linux 博客和小报都提倡为精美的应用程序添加 PPA,但没有警告它可能会破坏您的系统,或更糟糕的是,会损害您的安全。)

如何检测和删除特洛伊木马或流氓应用程序/脚本?

答案1

没有通用的食谱。如果您的系统被未知木马感染,您所能做的就是重新安装。

如果您知道该木马以某种方式运行(例如,您知道该木马不会感染内核),则可能有一种不太严厉的恢复方式。但这完全取决于了解特洛伊木马的行为方式。如果您所拥有的只是症状(例如您的计算机在未经您同意的情况下发送垃圾邮件),则没有通用技术:木马检测器必须比木马设计者更聪明(而且幸运)。就木马而言,检测和隐藏就像枪和盔甲:技术不断升级,双方都没有内在优势(尽管隐藏者确实有先机)。

许多系统都有安全的分发渠道。例如,当您使用基于 apt 的工具(apt-get、aptitude、synaptic、软件中心等)从 Ubuntu 存储库安装软件包时,该工具会检查该软件包是否由 Ubuntu 信任的人签名(审查)。 (大多数发行版都有类似的机制。)当您从 PPA 安装软件包时,您所能知道的只是 PPA 所有者审查了该软件包,如果您一开始就没有理由信任 PPA 所有者,那么这没有任何帮助。

关于木马和后门,我强烈推荐阅读肯·汤普森图灵奖演讲,关于信任信任的思考。总结一下,他改变了编译器,在编译登录程序时,添加了允许他使用秘密密码登录的代码;然后他更改了编译器,使其在编译自身时插入添加后门的代码;然后他重新编译了整个系统(特别是登录程序和编译器);最后他将编译器源恢复到原始的、无可置疑的源。再次,阅读肯·汤普森的文章;那么你也可以阅读大卫·惠勒的对位法,也许最好的理解是通过布鲁斯·施奈尔的博客文章

答案2

如果我理解正确的话,本文中描述的“木马”无法以“正常”方式被发现为“正常”恶意软件。该IRCd在被使用之前一直表现正常,因此管理员只有在以下情况下才能找到该安全漏洞:1)它被使用并且该漏洞执行的操作导致日志中的条目或以其他方式可见,2)读取源代码。

“真正的”Linux 恶意软件也应该可以被 Linux 的 AV 软件或 AV LiveCD 救援磁盘检测到,这样您就可以使用该软件扫描计算机。正如你所看到的安全列表列表中有 1941 个名称带有 Linux 的条目,并且该软件应该可以被卡巴斯基软件检测到。快速浏览此列表会发现,许多条目都是关于一些 DDoS 工具和漏洞利用工具或无法自动传播且只能用作攻击工具的工具(因此无害)。

要检查破解者安装的后门/rootkit,您可以使用检查文件校验和的工具(您应该在干净的系统上生成文件和校验和列表,并在服务器软件更新后更新它)。每个新文件或校验和错误的文件都是可疑的。校验和和生成它的工具的列表应该位于只读介质上(破解者也可以更改例如 md5sum,因为它自己的版本显示错误的校验和)。这种查找恶意软件的方法可用于软件不会每天升级的“稳定”系统。

某些恶意软件可以通过在netstat本地运行来检查网络流量来检测,但如果系统受到感染,显示的数据netstat也可能会被更改。在这种情况下,一些解决方案是监视来自另一台计算机的网络流量(例如来自路由器,以检查发送到互联网的流量)。

答案3

SELinux 和 AppArmor 的存在是为了防止木马/rootkit 和其他感染。我讲述了 SELinux 的案例,我对此更加了解。启用 SELinux 后,您可以为计算机上安装的所有进程(包括守护进程)提供上下文。您还可以标记文件系统以与上下文配合使用,并进行匹配。当进程尝试执行不在其上下文范围内的操作时,您会收到一条消息,并且如果 SELinux 处于强制模式,则该操作无法完成。
这样,如果您的 ircd 木马愿意覆盖 ps 命令或其他命令(木马/rootkit/蠕虫避免检测的常见策略),我将不会被允许这样做。你会被告知。
我知道配置起来很困难,但我的机器现在正在强制执行 SELinux,而且我的(两台)Fedora 笔记本电脑可以轻松完成台式机所需的任何操作。
甚至我的家庭服务器现在也处于强制模式。
另一种策略是定期运行 Rootkit 检测器,它计算关键命令的校验和,并通知您有关基本命令的更改。
我使用 SELinux 和 rkhunter(加上 clamav 防病毒软件)。

问候

答案4

另一种回应声称“隐藏者”(隐形恶意软件)比“检测器”具有内在优势。我不同意。如果您限制自己使用依赖签名或启发式方法来检测恶意软件的检测方法,则情况确实如此。但还有另一种检测恶意软件的方法:验证已知商品。  绊线,助手等,可以验证磁盘上的文件。 Second Look® 可以验证正在运行的内核和进程。 Second Look 使用内存取证来直接检查操作系统、活动服务和应用程序。它将内存中的代码与 Linux 发行版供应商发布的代码进行比较。通过这种方式,它可以立即查明由 rootkit 和后门程序以及正在执行的未经授权的程序(木马等)进行的恶意修改。

(披露:我是 Second Look 的首席开发人员。)


编者注:

相关内容