我们网络上的一台机器消耗了大量的互联网带宽。然而没有用户使用该系统。
当我使用 SSH 连接到服务器并运行时,who
它显示用户从我无法识别的 IP 登录。我没有在系统上创建这个用户。并且/etc/sudoers
用户拥有无限的 root 访问权限:
test11 ALL = NOPASSWD: ALL
我终止了会话并更改了 root 密码。我也删除了该用户。
现在我可能安全了,但需要分析为什么会发生这种情况以及用户进行了哪些活动。
我如何找到有关该用户所做操作的更多信息?哪些系统日志文件可以帮助我获取有关 IP、持续时间、命令运行、访问的互联网站点等的更多信息?
注意:这是 CentOS 6 系统的默认安装。我没有安装任何安全或审核软件。我也没有更改任何系统配置。我需要知道可以从默认安装中提取什么。
答案1
由于您的系统已受到损害,因此您从该系统获得的任何信息都不可信。只有立即发送到外部系统的日志才是可信的(例如实时远程系统日志)。这意味着如果您有一些夜间日志轮换到 NFS 共享,您就不能信任它。
然而,用户可能并没有费心去掩盖他/她的踪迹,并且您可能在系统上仍然可以使用这些信息。
不幸的是,在默认的 Centos/RHEL 安装中,日志记录非常少。你基本上只能在/var/log
.您应该深入研究哪个日志取决于该机器上运行的服务。不过我会从 ssh 日志开始。之后查看以 root 身份运行或具有访问权限的任何服务的日志sudo
。
如果幸运的话,该test11
用户可能有一个主目录,其中包含一个.bash_history
包含所做操作历史记录的文件。
此外,由于系统已被破坏到未知用户能够获得 root 访问权限的程度,因此必须从头开始重建系统。您不能重复使用系统中的任何内容。将每个文件视为已泄露。我还建议不要使用备份,因为您不知道系统多久前被破坏了。
一旦用户获得 root 访问权限,就可以安装无限数量的后门。如果我是访问您系统的人,那么简单地删除该test11
用户并更改root
密码甚至不会减慢我的速度。
未来,你可以做一些事情。
远程记录
如前所述,只有实时远程日志记录才是可信的,不会被篡改。确保你有这个。
审计
您应该安装并使用 2 个实用程序来监视和审核系统的关键组件。这些都是审计和奥塞克。
这两个实用程序的操作方式不同,但目的相同,即监视异常活动。
终端记录
还有另一个审计工具叫做pam_tty_audit
它与前面提到的实用程序结合使用auditd
。pam_tty_audit
是一个添加到 pam 堆栈的实用程序,它记录 TTY 上的所有输入和输出。这意味着如果用户通过交互式 ssh 访问该盒子,他们的活动将被记录。
但请注意,最重要的是不惜一切代价保护该日志。这主要是因为密码。当您在提示符下输入密码时,即使您没有看到正在输入的密码,模块pam_tty_audit
也会看到它并记录下来。您也有可能会cat
输出(或以其他方式查看)包含敏感信息的文件,这些信息也将被记录。因此,该日志必须立即从本地系统移出,以便入侵者无法获取它,或者必须对其进行加密(并且解密密钥不得位于本地系统上)。最好两者都应该执行、远程发送并加密。