我正在考虑将一个网站放到网上,该网站可能成为黑客或主机员工的一个有吸引力的目标,他们可能会修改该网站的代码以获取利益。
由于不希望自行托管,我考虑通过 SSH 进入主机,上传 md5 可执行文件并确保网站代码的 md5 符合预期。
但当然,代码可能会在我的扫描之间被更改并恢复。
我可以通过 SSH 自动执行 md5,这样修改窗口就会大大缩小,但理想情况下,我希望每次访问者使用代码时都对其进行 md5 验证,如果发生篡改,则向访问者提供的信息无效。
我无法在网上的代码中添加这样的完整性检查,因为它可能会被黑客入侵。另外,我在安全外壳中看到的代码是否与提供给访问者的代码相同...
执行之前是否存在任何公认的远程代码完整性检查方法?
我读过的有关代码签名的所有信息往往是在部署或下载期间。
答案1
每次访问网站时都检查网站的完整性似乎是一个奇怪的解决方法。
我建议你使用文件完整性监控系统,它会根据“已知良好”的基准检查您的网站。这些检查比简单的 MD5 检查更进一步 - 它们通常使用更强大的哈希值,例如 SHA-256,还会检查属性、安全属性等。完整性检查可以自动化,您可以安排它们以较短的间隔运行。任何好的系统还具有警报功能。
如果你使用的是 Linux,请查看绊线如果你使用的是 Windows,可以考虑类似Ionx Verisys。
您还应该确保服务器硬化适当地。如何操作将取决于您的操作系统。
答案2
Tripwire 可以检查文件中的差异:http://www.tripwire.org/
托管代码在实践中应该绝不可实时修改。要部署,请使用版本控制系统,这样任何更改都可以追踪到特定人员。然后在部署期间,您可以锁定站点的文件,这样它们就无法被修改。
如果您真的担心主机危及您的数据或应用程序,那么我建议您寻找另一个主机。