如何找到未经授权的人进入服务器的入口点

ste*_*tef 2 security

我们正在运行一个内部专用服务器,上面有 100 个站点。其中一些站点非常不安全,并且盒子管理得不好。有人进来了,搞砸了一堆东西,并通过破坏一些网站、要钱等来纠缠我们。

我们做了很多修复,但仍然有某种后门可以让他进入。我们发现并删除了一些类似黑客控制面板的文件,但由于该文件只是名为contactUs.php,因此不可能知道这些类型的文件的所有实例都被删除了。

我意识到这是一个非常广泛的主题和一个可能难以回答的问题,但是人们将采取哪些步骤来找出此人如何进入系统?

它是一台主要运行 PHP 站点的 Fedora 机器。

wom*_*ble 11

老实说,如果您正在经营一家企业,我不会尝试研究攻击者,我只会将他们锁定并继续前进。与这样的人进行斗智斗勇,花费时间、麻烦和沮丧是不值得的。摆脱它们的一些想法:

  • 使用已知良好的介质从头开始重新安装盒子。
  • 在您开始在其上放置任何站点之前,请确保它已完全修补并且是最新的。如果您运行的是过时的 Fedora 版本(不主动接收安全更新的版本),请升级到最新版本(或使用具有适当安全支持的版本)。
  • 不要通过 运行 PHP 脚本mod_php,因为它是利用必须授予网络服务器对系统各个部分的写入访问权限而导致的不可避免的权限问题的小游戏。使用 suexec 或 suphp。
  • 以独立于主“FTP 帐户”(或等效帐户)的用户身份运行 PHP 脚本,因此,如果您有用户example(对于站点example.com),则在名为example-cgi(或等效)的用户中运行其动态内容。然后只授予example-cgi用户对文件系统树中需要它们的那些部分的写访问权限。(这需要修改suexec的权限检查,但值得)。这样攻击者就无法运行修改站点 PHP 代码的脚本,他们必须更加努力地注入漏洞利用。
  • 主动、持续地寻找和销毁所有世界可写文件。
  • 限制来自已知位置的 FTP 和 SSH 连接,而不是允许整个 Internet 连接。
  • 使用诸如 PAM 的 cracklib 模块之类的东西来强制使用强密码——或者,更好的是,完全摆脱 FTP 并需要使用 SSH 密钥才能进入机器。

可能还有一堆我现在想不起来的东西,但这会让你坚持一段时间。

  • +1 - 无法再次信任受损的操作系统安装。保留旧操作系统作为证据或寻找可能的初始攻击向量可能是值得的,但不要再次在生产中使用它。所有的建议都是好的。 (3认同)