是否存在静态的服务器端漏洞/病毒/恶意软件/BadThings™ 扫描程序?

是否存在静态的服务器端漏洞/病毒/恶意软件/BadThings™ 扫描程序?

我们运行一个共享托管网络服务器,使用常见的 LAMP 堆栈。它从很多年前就开始运行了(嗯,Apache-1.3 和 PHP-3 时代?),并且经历了多次迭代。我们努力制定良好的系统管理员政策,例如保持所有堆栈都是最新的、检查弱密码、最小化攻击面、使用 suhosin、关注系统日志等等。当然,每个虚拟主机都限制在其目录中(用于 FTP 访问和作为 php open_basedir)。

但归根结底,它总是一个运行着不受信任的 PHP 垃圾的 Web 服务器,这些垃圾由客户(即没有任何 IT 经验的未知且大多愚蠢的用户)上传,并且 HTTP 暴露给世界(Web 表单等等)……这些情况并不太罕见:

  • 用户将密码泄露给太多人,导致网站被盗用
  • 用户电脑被入侵,FTP/网页应用/密码被盗
  • 用户安装了糟糕的 PHP 程序,程序遭到入侵
  • 用户安装了优质的 PHP 软件(它真的存在吗?)但多年没有更新,因此遭到入侵
  • 用户编写自己的 PHP 内容(啊!他们从 ---------- 墙里出来了!
  • 等等。你明白了。

在调查受损的 PHP/JS/HTML/无论什么内容时,我们有时会发现以 javascript 形式存在的恶意软件(在 .js 文件中或嵌入在 html 内容中),有时我们甚至会发现包含适用于 Microsoft Windows 的恶意软件/病毒的 .zip 文件。

在如此混乱的环境中,不可能反复在网站上运行自动化漏洞测试,而且可能也没什么用。我还认为,在这种共享、通用、失控的环境中,像 mod_security 这样的东西是行不通的。

但我想知道是否有类似防病毒的东西可以在服务器端运行,至少可以查找被众所周知的 javascript 或可执行文件破坏的网站,或旧版 PHP Web 应用程序中的已知漏洞。每晚从 cron 运行并获取一封不错的电子邮件报告。

有这样的事吗?clamav 能检测出一些令人讨厌的 JS 内容吗?(我假设我们已经可以使用它来检测上传的带有 Win32 恶意软件的 zip 文件)还有什么我没想到的可以在服务器端运行进行静态扫描的吗?那么存储在 MySQL 中的内容呢(例如从表单上传并存储在 SQL 中以供以后显示在网页上的 javascript)?

答案1

除了 ClamAV,还可以考虑使用马尔代特用于额外的恶意软件检测。根据文档,它能够与 ClamAV 集成,尽管我个人还没有设置过。

答案2

Snort 可以在恶意软件上传时进行检测。此外,使用 Cloud Linux 或 SELinux 等。如果配置为这样做,这可以防止许多作品损害网站。您也可以在 Web 服务器上运行 Kaspersky Scan,它可以检测到一些东西,但并不总是能正确消毒。最重要的是,您可以实施策略,即上传的任何内容都必须具有受限访问权限,您还可以做的是防止覆盖文件,但特殊文件夹除外,这些文件夹不能外部链接。这是可能的,并且有很多方法可以做到这一点。ACL、SELinux、SUEXEC 等。

答案3

Clam 防病毒软件是您想要的工具。它在邮件系统中起着常见作用,但您没有理由不能监控通过 Web 应用程序传入的上传内容。

请记住,您可能需要更改应用程序代码才能有效使用它。它需要处理 ClamAV 将独立于您的应用程序扫描、检测并可能删除/阻止文件的事实。最好的选择是每次上传时从您的应用程序中调用 ClamAV,但这可能会比您想要投入的开发时间更长。

答案4

我建议你尝试使用 Linux Malware Detect (http://www.rfxn.com/projects/linux-malware-detect/)。将其放入 cron 以运行定期扫描:

0 * * * * /usr/local/sbin/maldet -r ~ >输出

相关内容