PCI DSS 2.0 和 ssh 密钥

信息安全 验证 SSH pci-dss
2021-09-09 12:13:37

我知道审计师的真实答案。

我们是一家规模较小的公司,员工总数不到 40 人,也符合 PCI 1 级标准。我们一直在内部服务器上使用 ssh 密钥。您不能从外部 ssh 并在 vpn 上进行 2 因素身份验证。我们的审计员一直对我们使用 ssh 密钥表示满意,因为他说我们是一家小公司。自 2012 年审计以来,我们的规模翻了一番,现在他希望我们使用密码通过 LDAP 之类的方式进行 ssh 登录。

作为系统管理员,我讨厌一直 ssh 进入并输入密码。有什么我可以回去告诉他使用 ssh 密钥同样安全的吗?

3个回答

无论您的公司规模如何,SSH 密钥都可以。

让我们更深入地了解 PCI DSS(从 3.0 版本中提取,但也在 2.0 中):

8.2 除了分配唯一的 ID 外,通过至少采用以下一种方法对所有用户进行身份验证,确保对所有系统组件上的非消费者用户和管理员进行适当的用户身份验证管理:
*您知道的信息,例如密码或密码
*您拥有的东西,例如令牌设备或智能卡
*您的身份,例如生物特征。

“至少”:以上 3 个选项之一是可以的。

关于“你拥有的东西”的官方指南:

 请注意,数字证书是“您拥有的东西”的有效选项,只要它对于特定用户是唯一的。

结论 :

只要每个 SysAdmin 都有自己的密钥对,SSH 密钥就是合规的。

必须添加最佳实践(以及 PCI DSS req 2)将需要使用强密码保护私钥。

由于您的商店的员工人数增加了一倍,这增加了有人会无意或有意错误管理一个或多个 SSH 密钥的风险。在不通过 LDAP 的情况下使用 SSH 密钥会产生漏洞,例如,某人可以连接到系统帐户并将所有持卡人数据从您的数据库中提取出来,所有这些都是作为授权用户并破坏审计/访问管理。

见 2.3、3.6、8.1。

另请参阅https://serverfault.com/questions/471753/what-are-best-practices-for-managing-ssh-keys-in-a-team

最佳实践:“每个用户一个 ssh 密钥”或“每个主机多个 ssh 密钥”

当我还是 QSA 时,我总是遇到 SSH 密钥问题。主要是因为人们基本上构建一次然后忽略它们。

作为渗透测试人员,有很多方法可以访问系统。对我来说最简单的总是使用 ssh 密钥访问系统管理系统,或者使用浏览器或其他本地漏洞(网络钓鱼攻击)来提取密钥和电子邮件或网络/如果我无法直接获得访问权限,则将它们提交出去到系统。或者只是购买 IT 员工出售的旧硬件,并进行年度升级;我敢肯定它们没有被擦掉,其中一个上面还留着一把钥匙。有很多方法可以访问密钥。

一旦我有了 ssh 密钥,我就可以访问所有内容最好的帐户是不再在公司工作的管理员。如果没有中央管理,那么这些帐户很可能仍在系统中。

问问自己这个。你在做什么来管理系统上的 ssh 密钥和帐户?如果您有本地系统帐户,使用本地 sudo 并使用 ssh 密钥访问,当有人在公司更换角色或您雇用新人或有人离开时,您会怎么做。或者更糟糕的是,当您有恶意的人知道他们要离开时,他们会在他们离开之前预先构建帐户和 ssh 密钥。您如何对此进行监控和控制?

SSH 密钥通常使您的系统成为数十个或数百个或您拥有的单个系统的数量。

是的,密码很痛苦,但现在有很多管理员;尤其是那些受过培训并获得正确工具的人会构建强密码。

此外,使用 ssh 密钥,即使使用密码;你是怎么控制的?没有办法集中强制更改密码,甚至是强密码。我见过很多 ssh 密钥密码短语,密码为“a”或“password”......

如果您真的想要安全性,您应该查看基于半径的令牌解决方案;但无论哪种方式,您都应该考虑集中管理和控制您的帐户。winbind 甚至只是 ldap 可用于用户帐户验证以及适当的用户组授权,因此您可以正确控制对系统的访问。

这不是一个简单的答案;但是你需要问的问题是你想要这个是为了方便还是安全?