PHP Sandbox的安全问题

我正在为Web应用程序Honeypot开发
PHP沙箱.
PHP沙箱将分析可能作为RFI攻击的一部分注入的PHP文件.它应该在安全的环境中运行该文件并返回结果,嵌入PHP脚本的输出.我们希望愚弄攻击者相信这是一个真正的反应,从而继续他的下一步攻击.

为了构建沙箱,我们使用了Advance PHP Debugger(ADP).使用rename_function和override_function,已经重写了易受攻击的PHP函数.某些函数(如exec,disk_free_space)已被重写以发送虚假回复.所有其他功能只是不返回任何东西. Here’s完整的已考虑功能列表.

此外,输入脚本在沙箱中最多只运行10秒.之后,整个沙盒进程被杀死.

>这个清单足够好吗?这是否使沙盒足够安全,成为Web应用程序的一部分?
>除了像这样阻止函数调用之外,是否还应该采取哪些安全措施?
>最后,这是一个蜜罐.因此,我们希望我们的回复尽可能接近真实回复.因此,通过阻止DNS函数调用(如dns_check_record和gethostbyname),我们不必要地限制脚本的执行范围. (我不确定他们为什么会出现在这里)

简而言之,我想知道我应该从列表中添加/删除哪些元素.
>关于如何处理此事的任何其他建议/建议将受到高度赞赏.

最佳答案 我认为很难(如果不是不可能的话)预见所有可能的有害函数调用以伪造它们的输出(例如,highlight_file或其别名show_source不在你的列表中).此外,对于真实应用程序和蜜罐使用相同的服务器引起了其他问题:应用程序是否使用扩展?如果它确实有更多功能必须被阻止/伪造.如果您更新其中一个扩展,该怎么办?你将不得不重新检查新的安全漏洞.如果恶意文件上传到蜜罐,然后从主应用程序访问,该怎么办?确定你会采取措施不允许这种情况发生,但是如果你在某个时候有错误,那么有害代码已经存在于服务器上……对我来说并不安全.

我认为最好像MitMaro建议的那样设置一个vm.在这种情况下,VM本身就像你可以得到的沙箱一样好,没有太多的努力你可以让所有那些讨厌的PHP函数在VM内部执行而不会损害主应用程序的安全性

点赞