我们的服务器安全审计员在两周内提出以下要求:
- 所有服务器上所有用户账户的当前用户名和纯文本密码列表
- 过去六个月内所有密码更改的列表(同样以纯文本形式)
- 过去六个月内“从远程设备添加到服务器的每个文件”的列表
- 任何 SSH 密钥的公钥和私钥
- 每次用户更改密码时都会向他发送一封电子邮件,其中包含纯文本密码
我们正在运行带有 LDAP 身份验证的 Red Hat Linux 5/6 和 CentOS 5 盒。
据我所知,该列表上的所有内容要么不可能获得,要么极难获得,但如果我不提供这些信息,我们将面临无法访问我们的支付平台并在过渡期转向新服务时失去收入的问题。有什么建议可以解决或伪造这些信息吗?
我能想到的唯一获取所有纯文本密码的方法是让每个人都重置密码并记下他们设置的内容。这并不能解决过去六个月密码更改的问题,因为我无法追溯记录这类内容,记录所有远程文件也是如此。
由于我们只有少数用户和计算机,因此获取所有公钥和私钥是可能的(尽管很烦人)。除非我错过了更简单的方法来实现这一点?
我多次向他解释,他所要求的事情是不可能的。针对我的担忧,他回复了以下电子邮件:
我有超过 10 年的安全审计经验,并且完全了解 Redhat 的安全方法,因此我建议您核实事实,了解哪些是可能的,哪些是不可能的。您说没有公司可能拥有这些信息,但我已经进行了数百次审计,这些信息随时可用。所有 [通用信用卡处理提供商] 客户都必须遵守我们的新安全政策,此次审计旨在确保这些政策得到正确实施*。
*“新的安全政策”是在我们审计的两周前推出的,在政策改变之前不需要六个月的历史记录。
简而言之,我需要;
- 一种“伪造”六个月密码更改并使其看起来有效的方法
- 一种“伪造”六个月入站文件传输的方法
- 收集所有正在使用的 SSH 公钥和私钥的简单方法
如果我们未能通过安全审核,我们将无法访问我们的卡处理平台(我们系统的关键部分),而且需要整整两周的时间才能转移到其他地方。我有多倒霉?
更新 1(23 日,星期六)
感谢您的所有回复,知道这不是标准做法让我感到非常欣慰。
我目前正在计划回复他的电子邮件,解释情况。正如你们许多人指出的那样,我们必须遵守 PCI,它明确规定我们不应该有任何方式访问纯文本密码。写完电子邮件后我会发布。不幸的是,我不认为他只是在考验我们;这些事情现在已列入公司的官方安全政策中。不过,我已经开始着手暂时放弃这些事情,转而使用 PayPal。
更新 2(23 日,星期六)
这是我起草的电子邮件,有什么建议可以添加/删除/更改吗?
嗨 [name],
不幸的是,我们无法为您提供一些所需信息,主要是纯文本密码、密码历史记录、SSH 密钥和远程文件日志。这些事情不仅在技术上是不可能的,而且能够提供这些信息既违反 PCI 标准,也违反了数据保护法。
引用 PCI 要求,8.4 使用强加密技术使所有密码在所有系统组件上传输和存储时不可读。
我可以为您提供我们系统上使用的用户名和哈希密码列表、SSH 公钥和授权主机文件的副本(这将为您提供足够的信息来确定可以连接到我们服务器的唯一用户数量以及使用的加密方法)、有关我们的密码安全要求和 LDAP 服务器的信息,但这些信息不得带出网站。我强烈建议您检查您的审计要求,因为目前我们无法在遵守 PCI 和数据保护法的同时通过此审计。
此致敬礼,
[我]
我会抄送公司的 CTO 和我们的客户经理,希望 CTO 能确认此信息不可用。我还将联系 PCI 安全标准委员会,解释他对我们的要求。
更新 3(26 日)
以下是我们交换的一些电子邮件;
回复:我的第一封电子邮件;
如上所述,任何维护良好的系统上的任何称职管理员都应能轻松获取此信息。您未能提供此信息,这让我相信您知道系统中的安全漏洞,但不愿意透露。我们的要求符合 PCI 指南,并且两者都可以满足。强加密仅意味着在用户输入密码时必须对其进行加密,但随后应将其转换为可恢复的格式以供日后使用。
我认为这些请求不存在数据保护问题,数据保护仅适用于消费者而不适用于企业,因此这些信息应该不存在问题。
只是,什么,我,不能,甚至……
“强加密仅意味着在用户输入密码时必须对其进行加密,但随后应将其转换为可恢复的格式以供日后使用。”
我要把它装裱起来并贴在墙上。
我厌倦了这种外交手段,并引导他到这个帖子向他展示我得到的答复:
提供这些信息直接违背了 PCI 指南的几个要求。我引用的部分甚至说
storage
(暗示我们将数据存储在磁盘上的位置)。我在 ServerFault.com(系统管理员专业人员的在线社区)上发起了一场讨论,引起了巨大的反响,所有人都认为无法提供这些信息。请随意阅读https://serverfault.com/questions/293217/
我们已经将系统迁移到新平台,并将在未来一天左右取消我们在您这里的帐户,但我希望您意识到这些要求是多么荒谬,没有一家正确实施 PCI 准则的公司会或应该能够提供这些信息。我强烈建议您重新考虑您的安全要求,因为您的任何客户都不应该能够遵守这一点。
(我实际上忘记了我在标题中称他为白痴,但正如所提到的,我们已经离开了他们的平台,所以没有什么损失。)
他在回复中表示,显然你们都不知道自己在说什么:
我仔细阅读了这些回复和您的原始帖子,回复者都需要弄清事实。我在这个行业工作的时间比该网站上的任何人都长,获取用户帐户密码列表是非常基本的,这应该是您学习如何保护系统时要做的第一件事之一,并且对于任何安全服务器的运行都是必不可少的。如果您真的缺乏做这么简单的事情的技能,我会假设您没有在服务器上安装 PCI,因为能够恢复此信息是软件的基本要求。在处理诸如安全之类的问题时,如果您对其工作原理没有基本的了解,则不应在公共论坛上提出这些问题。
我还想建议,任何试图揭露我或[公司名称]的行为都将被视为诽谤,并将采取适当的法律行动
如果你错过了以下关键愚蠢观点:
- 他担任安全审计员的时间比这里的任何人都长(他要么在猜测,要么在跟踪你)
- 在 UNIX 系统上获取密码列表是“基本”
- PCI 现在是软件
- 当人们不确定安全性时,他们不应该使用论坛
- 在网上发布事实信息(我有电子邮件证明)是诽谤
出色的。
PCI SSC 已作出回应,并正在调查他和该公司。我们的软件现已转移到 PayPal,所以我们知道它是安全的。我将等待 PCI 先回复我,但我有点担心他们可能在内部使用这些安全措施。如果是这样,我认为这对我们来说是一个主要问题,因为我们所有的卡处理都通过他们进行。如果他们在内部这样做,我认为唯一负责任的做法就是通知我们的客户。
我希望当 PCI 意识到情况有多糟糕时,他们会调查整个公司和系统,但我不确定。
所以现在我们已经离开了他们的平台,并且假设 PCI 至少需要几天时间才能回复我,有没有什么有创意的建议可以稍微戏弄他一下?=)
一旦我得到法律人员的许可(我非常怀疑这一切实际上是诽谤,但我想再检查一下),我会公布公司名称、他的姓名和电子邮件,如果你愿意,你可以联系他并解释为什么你不了解 Linux 安全的基本知识,比如如何获取所有 LDAP 用户密码的列表。
小更新:
我的“法律顾问”表示,透露公司信息可能会导致比需要的更多问题。不过我可以说,这不是一家主要提供商,使用这项服务的客户不到 100 个。我们最初开始使用它们时,网站规模很小,运行在一台小型 VPS 上,我们不想费尽心思获取 PCI(我们过去常常重定向到他们的前端,如 PayPal Standard)。但当我们转向直接处理卡(包括获取 PCI 和常识)时,开发人员决定继续使用同一家公司,只是 API 不同。该公司位于英国伯明翰地区,所以我非常怀疑这里的任何人都会受到影响。
答案1
首先,不要屈服。他不仅是个白痴,而且错得离谱。事实上,公布这些信息会违反PCI 标准(我假设审计就是为此而进行的,因为它是一个支付处理器)以及所有其他标准和简单的常识。它还会使您的公司承担各种责任。
我接下来要做的就是向你的老板发送一封电子邮件,说他需要让公司法律顾问参与进来,以确定公司采取这一行动将面临的法律风险。
最后这一点由你决定,但是我将利用此信息联系 VISA,并取消其 PCI 审计员身份。
答案2
作为一名经历过审计程序的人普华永道对于机密的政府合同,我可以向你保证,这是完全不可能的,这个家伙疯了。
当普华永道想要检查我们的密码强度时,他们:
- 要求查看我们的密码强度算法
- 根据我们的算法运行测试单元,以检查它们是否会拒绝弱密码
- 要求查看我们的加密算法,以确保它们无法被逆转或解密(即使通过彩虹表),即使是那些拥有系统各个方面完全访问权限的人也无法解密
- 检查以前的密码是否被缓存,以确保它们不会被重复使用
- 向我们请求许可(我们批准了),以便他们尝试使用非社会工程技术(例如 xss 和非 0 日漏洞)侵入网络和相关系统
如果我甚至暗示我可以向他们展示过去 6 个月的用户密码,他们就会立即拒绝与我们签订合同。
如果它是可能的为了满足这些要求,您需要立即失败每一次审计都值得。
更新:您的回复邮件看起来不错。比我写的任何内容都专业得多。
答案3
老实说,这听起来像是这个人(审计员)在陷害你。如果你向他提供他想要的信息,你就等于向他证明了你可以被社会操纵,从而泄露关键的内部信息。失败。
答案4
你正在遭受社交工程攻击。要么是为了“测试你”,要么就是黑客冒充审计员来获取一些非常有用的数据。