it-swarm.cn

我如何知道我的Linux服务器是否遭到黑客入侵?

有什么迹象表明Linux服务器已被黑客入侵?是否有任何工具可以按计划生成并通过电子邮件发送审核报告?

36
cowgod
  1. 将关键系统文件(例如ls,ps,netstat,md5sum)的原始副本放在其中,并带有md5sum,并定期将它们与实时版本进行比较。 Rootkit将始终修改这些文件。如果您怀疑原稿已被盗用,请使用这些副本。
  2. aidetripwire会告诉您任何已被修改的文件-假设它们的数据库未被篡改。
  3. 将syslog配置为将您的日志文件发送到远程日志服务器不能被入侵者篡改的位置。观看这些远程日志文件中的可疑活动
  4. 定期阅读日志-使用logwatchlogcheck合成关键信息。
  5. 知道您的服务器。了解哪些活动和日志是正常的。
34
Brent

你不知道.

我知道,我知道-但这确实是偏执的,可悲的事实;)当然有很多提示,但是如果系统是专门针对的,则可能无法分辨。很高兴知道没有什么是绝对安全的。但是我们需要更加安全地工作,因此我将指向所有其他答案;)

如果您的系统受到威胁,则任何系统工具都不能被用来泄露事实。

12
Oskar Duveborn

过去曾使我失望的一些事情:

  • 系统上的高负载应处于空闲状态
  • 奇怪的段错误,例如。来自ls之类的标准实用程序(这可能会因损坏的根套件而发生)
  • //var/中的隐藏目录(大多数脚本小子太愚蠢或懒惰以至于无法掩盖自己的足迹)
  • netstat显示不应存在的开放端口
  • 进程中的守护进程通常会使用不同的风格(例如bind,但始终使用djbdns

另外,我发现有一个可靠的迹象表明一个盒子被盗用:如果您对继承系统的管理员的勤奋(包括更新等)有不好的感觉,请密切注意!

11
user1686

Tripwire 是常用的工具-当系统文件更改时,它会通知您,尽管显然您需要事先安装它。否则,通常会出现一些迹象,例如您不知道的新用户帐户,您不认识的怪异进程和文件,或无故增加带宽使用情况。

可以配置其他监视系统,例如 Zabbix ,以在更改/ etc/passwd等文件时提醒您。

11
Whisk

有一种方法可以通过kill检查被黑的服务器-

本质上,当您运行“ kill -0 $ PID”时,您正在发送一个nop信号来处理标识符$ PID。如果进程正在运行,kill命令将正常退出。 (FWIW,由于您传递了一个nop kill信号,因此该过程将不会发生任何事情)。如果进程未运行,则kill命令将失败(退出状态小于零)。

当服务器被黑客入侵/安装了rootkit时,它要做的第一件事就是告诉内核从进程表等中隐藏受影响的进程。但是,它可以在内核空间中做各种很酷的事情来处理流程。所以这意味着

a)此检查不是广泛的检查,因为编码正确/智能的rootkit将确保内核将以“进程不存在”答复进行答复,从而使此检查变得多余。 b)无论哪种方式,当被黑客入侵的服务器运行“不良”进程时,其PID都通常不会显示在/ proc下。

So,如果您到现在为止,方法是杀死-0系统中每个可用进程(从1->/proc/sys/kernel/pid_max),然后查看是否有正在运行但未在/ proc中报告的进程。

如果某些进程确实在运行时出现,但未在/ proc中报告,则从任何角度看您都可能有问题。

这是一个实现所有功能的bash脚本- https://Gist.github.com/1032229 。将其保存在某个文件中并执行它,如果您发现proc中未报告的进程,则应该有一些线索来进行挖掘。

HTH。

10
Shai

我将在这里给出第二个响应,并添加自己的一个。

find /etc /var -mtime -2

这将使您快速了解最近两天是否有任何主服务器文件已更改。

这是来自一篇关于黑客检测的文章 如何检测您的服务器是否被黑客入侵。

7
Ian Purton

如何检测服务器上的有害入侵?

  • 使用IDS

    SNORT®是一种使用规则驱动语言的开源网络入侵防御和检测系统,该系统结合了签名,协议和基于异常的检查方法的优点。迄今为止,Snort拥有数百万的下载量,是全球部署最广泛的入侵检测和防御技术,并已成为该行业的事实上的标准。

    Snort可以读取网络流量,并且可以查找“笔式驱动测试”之类的东西,其中有人只对您的服务器运行整个metasploit扫描。我认为很高兴知道这类事情。

  • 使用日志...

    根据您的使用情况,您可以对其进行设置,以便在用户登录或从奇数IP登录时,root登录或有人尝试登录时知道。我实际上让服务器通过电子邮件向我发送每条高于Debug的日志消息。是的,甚至注意。我当然会过滤掉其中的一些,但是每天早晨,当我收到10封有关某事的电子邮件时,我都希望对其进行修复,以使其不再发生。

  • 监视您的配置-实际上,我将整个/ etc保留在Subversion中,以便可以跟踪修订。

  • 运行扫描。 LynisRootkit Hunter 之类的工具可以向您发出有关应用程序中可能存在安全漏洞的警报。有些程序会维护所有垃圾箱的哈希或哈希树,并且可以提醒您更改。

  • 监视服务器-就像您提到的磁盘空间一样,如果出现异常情况,图形可以为您提供提示。我使用 Cacti 来监视CPU,网络流量,磁盘空间,温度等。如果某些东西看上去很奇怪奇数,您应该找出为什么它是奇数。

5
Tom Ritter

我想补充一点:

检查您的bash历史记录,如果它是空的,并且尚未设置或清空它,则很可能有人破坏了您的服务器。

最后检查。您可能会看到未知的IP,或者看起来非常空白。

然后,如接受的答案所述,系统文件经常更改,请检查修改日期。但是,他们经常篡改日期。

他们通常会在随机端口上安装另一个版本的ssh。这通常隐藏在一些非常奇怪的地方。请注意,通常它将重命名为ssh以外的名称。因此,请检查netstat(由于经常替换它可能无法正常工作),并使用iptables阻止任何未知端口。

无论如何,在这种情况下,预防胜于治疗。如果您遇到问题,最好只是格式化并重新开始。几乎不可能确认您已成功清除了该hack。

请注意以下事项,以防止服务器受到损害。

  1. 更改SSH端口
  2. 阻止root用户登录
  3. 只允许某些用户
  4. 防止密码登录
  5. 使用ssh密钥,最好使用受密码保护的密钥
  6. 尽可能将所有ip列入黑名单,并将所需ip列入白名单。
  7. 安装和配置fail2ban
  8. 使用绊线检测入侵
  9. 监视使用Nagios或zabbix登录的用户数。即使您每次登录时都收到通知,至少您也会知道其他人何时在玩。
  10. 如果可能,将您的服务器保持在vpn上,并且仅允许通过vpn ip的ssh。保护您的VPN。

值得一提的是,一旦它们进入一台服务器,他们将检查您的bash历史记录,并从该服务器中查找通过ssh连接到的其他服务器。然后,他们将尝试连接到这些服务器。因此,如果您由于密码错误而被迫强行使用,那么很有可能他们将能够连接到另一台服务器并破坏这些服务器。

这是一个丑陋的世界,我重申预防胜于治疗。

2
Rob

经过一番搜索之后,它也可以完成上面列出的功能,包括其他一些功能: http://www.chkrootkit.org/http:// www.rootkit.nl/projects/rootkit_hunter.html

1
Shai

您应该签出GuardRail。它可以每天扫描您的服务器,并以一种不错的视觉方式告诉您发生了什么变化。它不需要代理程序,并且可以通过SSH连接,因此您不需要使用代理程序来浪费您的计算机和资源。

最重要的是,它最多可免费使用5台服务器。

在这里查看:

https://www.scriptrock.com/

0
Cheyne