执行前进行远程代码完整性检查

执行前进行远程代码完整性检查

我正在考虑将一个网站放到网上,该网站可能成为黑客或主机员工的一个有吸引力的目标,他们可能会修改该网站的代码以获取利益。

由于不希望自行托管,我考虑通过 SSH 进入主机,上传 md5 可执行文件并确保网站代码的 md5 符合预期。

但当然,代码可能会在我的扫描之间被更改并恢复。

我可以通过 SSH 自动执行 md5,这样修改窗口就会大大缩小,但理想情况下,我希望每次访问者使用代码时都对其进行 md5 验证,如果发生篡改,则向访问者提供的信息无效。

我无法在网上的代码中添加这样的完整性检查,因为它可能会被黑客入侵。另外,我在安全外壳中看到的代码是否与提供给访问者的代码相同...

执行之前是否存在任何公认的远程代码完整性检查方法?

我读过的有关代码签名的所有信息往往是在部署或下载期间。

答案1

每次访问网站时都检查网站的完整性似乎是一个奇怪的解决方法。

我建议你使用文件完整性监控系统,它会根据“已知良好”的基准检查您的网站。这些检查比简单的 MD5 检查更进一步 - 它们通常使用更强大的哈希值,例如 SHA-256,还会检查属性、安全属性等。完整性检查可以自动化,您可以安排它们以较短的间隔运行。任何好的系统还具有警报功能。

如果你使用的是 Linux,请查看绊线如果你使用的是 Windows,可以考虑类似Ionx Verisys

您还应该确保服务器硬化适当地。如何操作将取决于您的操作系统。

答案2

Tripwire 可以检查文件中的差异:http://www.tripwire.org/

托管代码在实践中应该绝不可实时修改。要部署,请使用版本控制系统,这样任何更改都可以追踪到特定人员。然后在部署期间,您可以锁定站点的文件,这样它们就无法被修改。

如果您真的担心主机危及您的数据或应用程序,那么我建议您寻找另一个主机。

相关内容