应用程序运行时分离 - 最佳实践

信息安全 分离 运行
2021-09-05 07:51:20

我需要说服“管理层”在单个共享运行时环境(即单个“命令行”)中运行两个或多个不相关的业务关键应用程序是一个非常糟糕的主意问题是管理层不承认“安全怪人权威”(我),并希望我的事业得到来自 ISO、ISACA、NIST 或任何其他三到四个字母的实际权威的一些建议的支持-机构。

任何安全标准中是否有明确的“最佳实践”或要求明确指出在具有相同 UID 的单个共享运行时环境中运行两个或多个独立且不相关的应用程序(例如数据库进程)是错误的?

请注意,我知道这是一个坏主意,我可以提出很多理由来支持这一说法,但其中没有一个包括“标准”的引用。

2个回答

找到为您的公司提供与信息丢失等相关费用的保险的人。通常在合同中,他们定义了关键系统的要求,例如您的描述。以最好的方式(带上百吉饼)将其呈现给您的法律团队,而不是看着管理人员争先恐后地解决它并通过代理使您的系统达到标准。

即使没有由信函机构具体说明,贵公司的律师也会这样看待:

“如果我们因数据丢失而上法庭,而保险公司请专家来证明我们的系统没有使用最佳实践,我们就会输。”

在安全方面,法律实际上可以提供很大帮助。

这似乎是一个非常普遍的问题,但我会采取行动。

大多数服务器(Apache、Nginx 等)都有一个父进程,该进程由 root 拥有,然后分叉具有较少特权/受限用户的工作人员;在 Apache 的情况下是 www-data。分叉的进程使用 setuid 和/或 setgid 来更改用户和/或组并强制执行最小权限原则(您可以在 Wikipedia 上阅读)

使用 ptrace 功能,用户进程可以观察和控制具有相同用户 ID 的进程的执行,但它不能跟踪任意进程。尝试开始跟踪 setuid 根程序时会得到“权限被拒绝”。

在 Linux 中,每类进程(postgres、nginx、apache 等)都在单独的被监禁用户 ID 下运行,并且不能相互跟踪。

Windows 有点棘手,因为它基于线程但也有类似的概念。Windows 安全体系结构基于内核中的安全参考监视器。安全引用监视器通过将安全访问令牌中的用户和组 SID 与对象安全描述符的 ACL 中授予的访问权限进行比较来实施访问控制。有关此 MSDN 文章的更多信息https://msdn.microsoft.com/en-us/library/bb625963.aspx