Sudo和logging是用来让管理员负责的。但是,是否有一个命令/配置可以让您强制执行双重审批类型控件,如"二人概念"?(例如,两名经授权的个人必须发射核武器。)
可以将Sudo设置为记录管理员执行的操作,但这只是一个检测控件。如何实施强制执行命令的适当性的预防性控制?
发布于 2012-08-21 14:16:48
我不知道在操作系统级别上为两人概念设计的任何内置系统。虽然可以编写一个新版本的sudo/PAM来完成这一任务,但在我看来,在应用程序级别上,它比操作系统级别执行得更好,而操作系统级别是为您的特定目的在应用程序中定制的。可以使用多个密钥(属于不同用户)对数据进行加密,以确保root用户不能轻易绕过控制。
你认为--两个人坐在同一张桌子上,用户A认证,然后用户B认证,然后sudo命令执行?或者sudo emacs /etc/ssh/sshd_config中的用户A类型,一条消息被发送给用户B,用户B必须使用他们的身份验证细节来确定用户A可以在编辑文件之前编辑文件吗?
使用标准工作流,您可以在打开文件或创建更改之前以超级用户身份打开文本编辑器。因此,您可以从用户B获得执行sudo emacs /etc/ssh/sshd_config的权限,但是一旦emacs (作为超级用户)打开,您就可以开始编辑任意数量的其他文件(比如打开并编辑/etc/shadow,替换另一个休假管理员的哈希),甚至可以从emacs中打开超级用户shell (在标准设置下,不需要重新提示凭据或在/var/log/auth.log中对sudo的使用进行额外记录)。
在某种程度上,可以使用尤比基或谷歌为ssh设置两个因素身份验证。因此,您可以设置一个场景,您需要两个因素来登录,要求在用户登录时两个人都在场(例如,如果日志中有任何恶意记录,都可以触发),而每个成员只有一个要登录的因素。
发布于 2012-08-24 05:55:44
据我所知,在一个命令逐个命令的基础上,虽然你可以模拟它使用sudo与双因素认证(例如,尤比键),并给予每个密钥持有人一个因素。
但我确实有一个客户想要这样的东西,从总体意义上来说,所以我们在相关的盒子上安装了绊线。系统管理员拥有运行它的超能力,但没有密钥;管理人员拥有密钥,但没有特权。当然,我们管理员可能会把事情搞得一团糟,但那些更改的夜间琐碎摘要会通过电子邮件发送给管理层,他们不会将这些更改注销(通过在tripwire --update ...命令下输入密码,并在更改日志中写入签名条目),直到我们解释了更改的内容和原因。
这并不是万无一失的,但对于一个系统管理员(或管理团队的单个成员)来说,很难绕过他们的视线。
发布于 2012-08-21 13:32:16
虽然如果您对添加软件有限制,那么编写'su‘版本(传统实现的这是骨头)可能是个问题。
可以将2个用户身份验证实现为pam模块,但我认为您不能将其与提供身份验证的其他模块堆叠--因此使用单个setuid二进制文件,它独立地为每个用户调用pam。
(为什么每个pam客户都会在整个地方使用“goto”!)
https://security.stackexchange.com/questions/18979
复制相似问题