有什么迹象表明Linux服务器已被黑客入侵?是否有任何工具可以按计划生成并通过电子邮件发送审核报告?
有什么迹象表明Linux服务器已被黑客入侵?是否有任何工具可以按计划生成并通过电子邮件发送审核报告?
Answers:
你不知道
我知道,我知道-但这确实是偏执的,可悲的事实;)当然,有很多提示,但是如果系统是专门针对的,则可能无法分辨。很高兴知道没有什么是绝对安全的。但是我们需要更加安全地工作,所以我将指向所有其他答案;)
如果您的系统遭到破坏,那么任何系统工具都不能被信任来揭露真相。
过去曾使我失望的一些事情:
ls
(破损的根工具包可能会发生这种情况)/
或中的隐藏目录/var/
(大多数脚本小子太愚蠢或懒惰以至于无法掩盖音轨)netstat
显示不应该存在的开放端口bind
,,但您始终使用djbdns
)另外,我发现有一个可靠的迹象表明一个盒子被盗了:如果您对继承系统的管理员的勤奋(包括更新等)有不好的感觉,请密切注意!
有一种方法可以通过以下方式检查被黑的服务器kill
:
本质上,当您运行“ kill -0 $ PID”时,您将发送一个nop信号来处理标识符$ PID。如果进程正在运行,kill命令将正常退出。(FWIW,由于您传递了一个nop kill信号,因此该过程将不会发生任何事情)。如果进程未在运行,kill命令将失败(退出状态小于零)。
当服务器被黑客入侵/安装了rootkit时,它要做的第一件事就是告诉内核从进程表等中隐藏受影响的进程。但是,它可以在内核空间中做各种很酷的事情来处理流程。所以这意味着
a)此检查不是广泛的检查,因为编码正确/智能的rootkit将确保内核将以“进程不存在”答复进行答复,从而使此检查变得多余。b)不管哪种方式,当被黑客入侵的服务器运行“不良”进程时,其PID通常不会在/ proc下显示。
因此,如果您到现在为止,方法是杀死-0系统中的每个可用进程(从1-> / proc / sys / kernel / pid_max中的任何值),并查看是否有正在运行但未报告的进程在/ proc中。
如果某些进程确实在运行时出现,但未在/ proc中报告,则从任何角度看您都可能有问题。
这是一个实现所有内容的bash脚本-https: //gist.github.com/1032229。将其保存在某个文件中并执行它,如果您发现proc中未报告的进程,则应该有一些线索来进行挖掘。
HTH。
我将在这里给出第二个响应,并添加自己的一个。
find /etc /var -mtime -2
这将使您快速了解最近两天是否有任何主服务器文件已更改。
这是来自一篇有关黑客检测的文章,该文章介绍 如何检测服务器是否被黑客入侵。
使用IDS
SNORT®是一种使用规则驱动语言的开源网络入侵防御和检测系统,结合了签名,协议和基于异常的检查方法的优点。迄今为止,Snort拥有数百万的下载量,是全球部署最广泛的入侵检测和防御技术,并已成为该行业的事实上的标准。
Snort读取网络流量,并可以查找“笔式驱动测试”之类的东西,其中有人只对您的服务器运行整个metasploit扫描。我认为很高兴知道这类事情。
使用日志...
根据您的使用情况,您可以进行设置,以便在用户登录或从奇数IP登录时,在root用户登录或有人尝试登录时知道。实际上,服务器让我通过电子邮件向我发送了高于调试的每条日志消息。是的,甚至注意。我当然会过滤掉其中的一些,但是每天早晨,当我收到10封关于某事的电子邮件时,我都希望对其进行修复,以使其不再发生。
监视您的配置-实际上,我将整个/ etc保留在subversion中,以便可以跟踪修订。
运行扫描。Lynis和Rootkit Hunter等工具可以向您发出警报,提醒您应用程序中可能存在的安全漏洞。有些程序会维护所有垃圾箱的哈希或哈希树,并且可以提醒您更改。
监视服务器-就像您提到的磁盘空间一样,如果出现异常情况,图形可以为您提供提示。我使用Cacti来监视CPU,网络流量,磁盘空间,温度等。如果某些东西看起来很奇怪,那就很奇怪了,您应该找出为什么这很奇怪。
我想补充一点:
检查您的bash历史记录,如果它为空,并且尚未设置或清空它,则很可能有人破坏了您的服务器。
最后检查。您可能会看到未知的IP,或者看起来很空白。
然后,如接受的答案所述,系统文件经常更改,请检查修改日期。但是,他们经常篡改日期。
他们通常会在随机端口上安装另一个版本的ssh。这通常隐藏在一些非常奇怪的地方。请注意,通常它将重命名为ssh以外的名称。因此,请检查netstat(由于经常替换它可能无法正常工作),并使用iptables阻止任何未知端口。
无论如何,在这种情况下,预防胜于治疗。如果您遇到问题,最好只是格式化并重新开始。几乎不可能确认您已成功清除了该hack。
请注意以下事项,以防止服务器受到损害。
值得一提的是,一旦它们进入一台服务器,它们将检查您的bash历史记录,并从该服务器中查找通过ssh连接到的其他服务器。然后,他们将尝试连接到这些服务器。因此,如果您由于密码错误而被迫强行使用,那么很有可能他们将能够连接到另一台服务器并破坏这些服务器。
这是一个丑陋的世界,我重申预防胜于治疗。
经过一番搜索之后,它也可以完成上面列出的内容以及其他一些内容:http : //www.chkrootkit.org/和http://www.rootkit.nl/projects/rootkit_hunter.html
您应该签出GuardRail。它可以每天扫描您的服务器,并以直观的方式告诉您发生了什么变化。它不需要代理程序,并且可以通过SSH连接,因此您不需要使用代理程序来浪费您的计算机和资源。
最重要的是,它最多可免费使用5台服务器。
在这里查看: