我需要让客户相信,他提交敏感数据的服务器只运行他批准的应用程序/进程。此外,客户无权访问我的服务器。他还需要证明,在他进行审核后,我无法修改任何正在运行的进程。
我的想法是创建一个 Amazon AMI,只预加载客户的应用程序。将不会有 SSH 访问或任何形式的访问该映像,以保证不会对其进行任何更改。与外界的唯一接口将是一个监听传入连接的进程。
是否可以使用 AWS 实现这一点?我担心 AWS 没有使实例变为只读的机制,因此甚至文件系统也可能被锁定以防止通过外部手段进行修改。
有什么建议吗?有提供独立验证的服务吗?
答案1
世界上不存在防篡改系统。即使是地球上最安全的系统,只要有足够的时间和金钱,也可能被攻破。话虽如此,我怀疑您的客户是否需要五角大楼的安全级别。
您需要与客户一起定义确切地防篡改的含义包括他们想要缓解的威胁。一旦你知道他们想要什么,那么努力实现它就会容易得多。向他们展示一堆信息(这些信息可能正确也可能正确)不会激发信心。
答案2
这不是亚马逊的问题,而是锁定服务器的一般问题。
你可以:
- 禁用所有服务,包括 ssh,
- 在启动时将所有磁盘卷挂载为只读,
然后创建 AMI。当您启动该 AMI 的实例时,它将仅运行您已设置的服务。
除了演示您用于创建 AMI 的过程之外,我不确定您如何能够“证明”这一点;您和客户之间可能至少需要有基本的信任程度。
答案3
为什么不直接帮助您的客户设置一个只有他们才能访问的 AWS 账户,并创建脚本来按照您的喜好设置服务器(我指的是 DevOPs...Puppet 或 Chef 等)。然后,您可以指导客户设置一个空白 AMI、应用他们批准的配置以及他们可以完全控制的机器。您可以在不到 1 小时内指导客户设置 AWS 账户、新 AMI 并运行预制的 Puppet 脚本。
至于与这台机器的通信...您应该考虑使用 VPN 和 SSL 等来尝试确保通信安全。DNS 和中间人攻击始终存在安全问题,因此应该概述和了解风险。