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

cow*_*god 38 security linux hacking audit

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

Bre*_*nt 36

  1. 将关键系统文件(例如 ls、ps、netstat、md5sum)的原始副本保存在某处,并带有其中的 md5sum,并定期将它们与实时版本进行比较。Rootkit 总是会修改这些文件。如果您怀疑原件已被盗用,请使用这些副本。
  2. aidetripwire会告诉您任何已被修改的文件——假设它们的数据库没有被篡改。
  3. 配置 syslog 以将您的日志文件发送到远程日志服务器,在那里它们不会被入侵者篡改。观察这些远程日志文件是否有可疑活动
  4. 定期阅读您的日志- 使用logwatchlogcheck来综合关键信息。
  5. 了解您的服务器。知道什么样的活动和日志是正常的。

  • 如果不扔掉,md5 已被严重削弱。您可能想要移动到 sha512。 (8认同)

Osk*_*orn 12

你没有。

我知道,我知道 - 但这是偏执的、可悲的事实,真的 ;) 当然有很多提示,但如果系统是专门针对的 - 可能无法分辨。很高兴理解没有什么是绝对安全的。但是我们需要为更安全而努力,所以我会指出所有其他答案;)

如果您的系统遭到入侵,那么您的任何系统工具都不能被信任来揭示真相。

  • 您假设您的攻击者具有一定的技能,想要以任何方式隐蔽,并且不完全对清除垃圾邮件和将您的 OC3 添加到僵尸网络感兴趣。现在,您通常会发现大量垃圾邮件从您的服务器中传出,通常是在不应该出现的过载系统上。如今,大多数“黑客”的动机都是金钱。 (5认同)
  • 如今,最先进的攻击工具需要零技能,而且很容易获得,有些在默认情况下和设计上非常隐蔽。僵尸网络/僵尸在被用于伤害之前可能会闲置很长时间,但攻击工具中的错误可能会导致意外崩溃和怪异行为等。 (2认同)

小智 12

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

  • 应该空闲的系统上的高负载
  • 奇怪的段错误,例如。来自标准实用程序,例如ls(这可能发生在损坏的根工具包中)
  • /或中的隐藏目录/var/(大多数脚本小子太愚蠢或懒惰以至于无法掩盖他们的踪迹)
  • netstat 显示不应该存在的开放端口
  • 进程列表中您通常使用不同风格的守护进程(例如bind,但您总是使用djbdns

此外,我发现有一个可靠的迹象表明一个盒子被破坏了:如果您对继承系统的管理员的勤奋(更新等)有不好的感觉,请密切关注它!


Whi*_*isk 11

Tripwire是一个常用的工具 - 它会在系统文件发生更改时通知您,但显然您需要事先安装它。否则,诸如您不知道的新用户帐户、您不认识的奇怪进程和文件或无缘无故增加带宽使用等项目都是常见的迹象。

Zabbix等其他监控系统可以配置为在 /etc/passwd 等文件发生更改时提醒您。


小智 10

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

本质上,当您运行“kill -0 $PID”时,您正在向进程标识符 $PID 发送 nop 信号。如果进程正在运行,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 中未报告的进程,您应该有一些线索开始挖掘。

哈。


小智 8

我会附上这里给出的回复并添加我自己的回复。

find /etc /var -mtime -2
Run Code Online (Sandbox Code Playgroud)

如果您的任何主服务器文件在过去 2 天内发生了更改,这将为您提供快速指示。

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


Tom*_*ter 5

如何检测服务器上不需要的入侵?

  • 使用 IDS

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

    Snort 读取网络流量,并可以寻找诸如“渗透测试驱动”之类的东西,其中有人只是对您的服务器运行整个 metasploit 扫描。在我看来,很高兴知道这些事情。

  • 使用日志...

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

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

  • 运行扫描。LynisRootkit Hunter等工具可以提醒您应用程序中可能存在的安全漏洞。有些程序可以维护所有垃圾箱的哈希或哈希树,并可以提醒您发生变化。

  • 监控您的服务器 - 就像您提到的磁盘空间 - 如果出现异常,图表可以给您提示。我使用Cacti来关注 CPU、网络流量、磁盘空间、温度等。如果有些东西看起来很奇怪,那它就是奇怪的,你应该找出它奇怪的原因。