Linux:没有 root 的高效系统管理员(保护知识产权)?

Mat*_*att 64 security linux root

有没有办法让经验丰富的 Linux syadmin 在不给他完全的 root 访问权限的情况下提高工作效率?

这个问题来自保护知识产权 (IP) 的角度,在我的情况下,它完全是代码和/或配置文件(即易于复制的小型数字文件)。我们的秘方使我们比我们的小规模所暗示的更成功。同样,我们曾经被一些试图窃取 IP 的前任肆无忌惮的员工(不是系统管理员)了一口,两次害羞。高层管理人员的立场基本上是,“我们信任人们,但出于自身利益,不能承担给任何人比他们完成工作绝对需要的更多访问权限的风险。”

开发人员方面,划分工作流和访问级别相对容易,这样人们就可以提高工作效率,但只能看到他们需要看到的内容。只有顶级人才(实际公司老板)有能力将所有原料组合起来,制作出特别的酱汁。

但是我还没有想出一个很好的方法来在 Linux 管理端维护这个 IP 保密。我们广泛使用 GPG 来处理代码和敏感文本文件……但是有什么可以阻止管理员(例如)向用户发出警告并跳转到他们的 tmux 或 GNU Screen 会话并查看他们在做什么?

(我们还在可能接触敏感信息的任何地方禁用 Internet 访问。但是,没有什么是完美的,聪明的系统管理员可能会漏洞或网络管理员方面的错误。甚至是旧的 USB。有当然还有许多其他措施,但这些超出了本问题的范围。)

我能想到的最好的方法基本上是使用带有sudo 的个性化帐户,类似于以root 身份工作的多个 Linux 系统管理员中描述的内容。具体来说:除了公司所有者之外,没有人实际上拥有直接的 root 访问权限。其他管理员将拥有个性化帐户和sudo进入 root的能力。此外,将建立远程日志记录,并将日志发送到只有公司所有者才能访问的服务器。看到日志记录关闭会引发某种警报。

一个聪明的系统管理员可能仍然会在这个方案中找到一些漏洞。除此之外,它仍然是被动的而不是主动的。我们 IP 的问题在于,竞争对手可以非常迅速地利用它,并在很短的时间内造成大量损害。

所以最好是一种限制管理员可以做什么的机制。但我承认这是一个微妙的平衡(特别是考虑到目前需要解决的故障排除和生产问题)。

我不禁想知道其他拥有非常敏感数据的组织如何管理这个问题?例如,军事系统管理员:他们如何在无法看到机密信息的情况下管理服务器和数据?

编辑:在最初的帖子中,我打算先发制人地解决开始浮出水面的“招聘实践”评论。一,这应该是一个技术问题,IMO 的招聘实践更倾向于社会问题。但是,二,我会这样说:我相信我们会尽一切合理招聘人员:面试多个公司人员;背景和参考调查;所有员工都签署了大量法律文件,其中一份声明他们已阅读并理解我们的手册,其中详细介绍了知识产权问题。现在,它超出了这个问题/网站的范围,但如果有人可以提出“完美”的招聘做法,过滤掉 100% 的坏演员,我全都在听。事实是:(1)我不相信有这么完美的招聘流程;(2) 人在变——今天的天使可能是明天的恶魔;(3) 企图窃取代码在这个行业似乎有些司空见惯。

Tim*_*ham 50

到目前为止,这里所说的一切都是好东西,但有一种“简单”的非技术方法可以帮助否定一个流氓系统管理员 -四眼原则基本上要求两个系统管理员在场以进行任何提升的访问。

编辑:我在评论中看到的两个最大的项目是讨论成本和勾结的可能性。我考虑过的避免这两个问题的最大方法之一是使用仅用于验证所采取措施的托管服务公司。如果做得好,技术人员不会互相认识。假设 MSP 应具备的技术实力,很容易对所采取的行动进行签字......甚至可能就像对任何邪恶的事情做出是/否一样简单。

  • @Sirex:是的,这就是安全问题——它总是有代价的。 (17认同)
  • 不,我在相当小的(100-1000 人)组织中工作过,正是这样做的。他们只是接受了他们的程序将使所有系统管理员活动的成本是其他情况的四到十倍,并且他们支付了费用。 (10认同)
  • 这是唯一真正的答案。我们的工具包位于一些安全的政府位置内,并且(除其他步骤外)我们使用这种方法来确保没有人可以进入高架终端。提出了要完成的工作的详细请求,很多人都签署了它(50+,_sigh_),然后两个管理员聚在一起进行更改。它最大限度地降低了风险(以及愚蠢的错误)。完成任何事情都是昂贵的和巨大的痛苦,但这就是安全的代价。回复:50 多个签署方,包括网络团队、DC 团队、项目经理、安全、存储、渗透测试员、软件供应商等。 (10认同)
  • 你可能很难招聘,是的。这对我来说会是一个即时的表演障碍,因为我喜欢实际完成工作,这会削弱我的工作乐趣。 (4认同)
  • 请注意,增加的成本并不适用于每个系统管理员操作。但是,它确实适用于提升的动作本身以及它们的准备。IOW,你不能说:“系统管理员每周工作 40 小时,其中 4 小时升职,所以成本增加只有 10%”。从好的方面来说,该计划还可以捕获正常的、诚实的错误。这样省钱。 (3认同)
  • 是的,不应低估这会带来多少开销。可能_至少_生产力降低了 10 倍,因为您有两个“中断”源而不是一个源,并且需要对一切进行检查。尽管如此,它可能并不完美 - 总有可能串通,或者“滑过”另一双眼睛。 (2认同)

Rob*_*oir 27

如果人们真的需要对系统进行管理员访问,那么您几乎无法限制他们在该框上的活动。

大多数组织所做的是信任,但要验证- 您可以让人们访问系统的某些部分,但您使用命名的管理员帐户(例如,您不让他们直接访问root),然后将他们的活动审计到他们的日志中不能干涉。

这里有一个平衡的行为;您可能需要保护您的系统,但您也需要信任人们来完成他们的工作。如果公司以前被不道德的员工“咬”,那么这可能表明公司的招聘做法在某种程度上很糟糕,而这些做法可能是由“高层管理人员”创造的。信任始于家;他们正在做什么来修正他们的招聘选择?

  • 这是一个很好的观察 - 良好的审计可以让人们完成他们的工作,同时仍然对他们的行为负责。 (3认同)
  • 审计的真正问题是有很多噪音。几个月后,除非发生某些事情,否则没有人会查看日志。 (3认同)

Sob*_*que 19

你所说的被称为“Evil Sysadmin”风险。它的长短是:

  • 系统管理员是具有提升权限的人
  • 技术娴熟,达到了使他们成为优秀“黑客”的水平。
  • 在异常场景中与系统交互。

这些因素的结合使得阻止恶意行为基本上是不可能的。甚至审计也变得困难,因为你没有“正常”可以比较。(坦率地说 - 一个破碎的系统很可能也破坏了审计)。

有很多缓解措施:

  • 权限分离——你不能阻止一个有 root 权限的人在系统上做任何事情。但是你可以让一个团队负责网络,另一个团队负责“操作系统”(或单独的 Unix/Windows)。
  • 将 kit 的物理访问权限限制在不同的团队,他们没有管理员帐户......但要照顾好所有的“手”工作。
  • 分离“桌面”和“服务器”的责任。配置桌面以禁止删除数据。桌面管理员无法访问敏感信息,服务器管理员可以窃取它,但必须越过障碍将其从建筑物中取出。
  • 对受限访问系统的syslog审计-以及对他们没有特权访问的相对防篡改系统的事件级审计。但是收集它是不够的,您需要对其进行监控 - 坦率地说,有很多方法可以“窃取”可能不会出现在审计雷达上的信息。(偷猎者与猎场守卫)
  • 应用“静态”加密,因此数据不会“明文”存储,并且需要实时系统才能访问。这意味着具有物理访问权限的人无法访问未被主动监控的系统,并且在系统管理员正在处理的“异常”场景中,数据暴露较少。(例如,如果数据库不工作,数据可能不可读)
  • 两个人的规则——如果你认为你的生产力被削弱了,你的士气也一样。(说真的 - 我已经看到它完成了,工作和被监视的持续状态使它的工作条件变得极其困难)。
  • 检查您的系统管理员 - 根据国家/地区,可能存在各种记录检查。(犯罪记录检查,你甚至可能会发现在某些情况下你可以申请安全许可,这会触发审查)
  • 照顾好您的系统管理员 - 您最不想做的事情就是告诉“受信任”的人您不信任他们。而且您当然不想损害士气,因为这会增加恶意行为(或“并非完全疏忽,而是警惕性下降”)的机会。但根据职责和技能付费。并考虑“津贴”——这比薪水便宜,但可能更有价值。比如免费咖啡,或者每周一次的披萨。
  • 您也可以尝试应用合同条件来抑制它,但要注意上述情况。

但从根本上说 - 你需要接受这是一个信任的事情,而不是一个技术问题。作为这场完美风暴的结果,您的系统管理员对您来说总是具有潜在的危险。

  • 是的。由于锁匠可以合法闯入您的房屋的所有原因,系统管理员可能需要闯入网络。 (3认同)
  • 我偶尔会戴上系统管理员的帽子。我发现有必要在我可以使用的地方保留强大的工具,其中一些工具的设计目的是规避系统访问控制(当然,以防有人设法将所有人锁定在工作站之外)。由于其运作的本质,审计被削弱或无效。 (2认同)

Gra*_*avy 18

不要让自己陷入疯狂的技术思维扭曲中,试图想出一种方法来赋予系统管理员权力而不赋予他们权力(这可能是可行的,但最终会在某些方面存在缺陷)。

从商业实践的角度来看,有一组简单的解决方案。不是便宜的解决方案,但很简单。

你提到你关心的IP是分块的,只有上层的人才有权力看到。这基本上就是你的答案。您应该有多个管理员,并且他们中的任何一个都不应该是足够系统上的管理员来组合完整的图片。当然,每件作品至少需要 2 或 3 名管理员,以防管理员生病或发生车祸或其他事情。甚至可能让他们错开。假设您有 4 个管理员和 8 条信息。admin 1 可以访问有piece 1 和2 的系统,admin 2 可以进入pieces 2 和3,admin 3 可以进入3 和4,admin 4 可以进入4 和1。每个系统都有一个备份admin,但没有管理员能够妥协全貌。

军方也使用的一种技术是移动数据的限制。在敏感区域,可能只有一个系统可以刻录磁盘,或者使用 U 盘,所有其他系统都受到限制。并且使用该系统的能力极其有限,并且在允许任何人将任何数据放在可能导致信息泄漏的任何事物上之前,需要得到上级的具体文件批准。出于同样的原因,您可以确保不同系统之间的网络流量受到硬件防火墙的限制。控制防火墙的网络管理员无法访问他们正在路由的系统,因此他们无法专门访问信息,并且您的服务器/工作站管理员确保所有进出系统的数据都配置为加密,

所有笔记本电脑/工作站都应该有加密的硬盘驱动器,每个员工都应该有一个私人储物柜,他们被要求在晚上结束时将驱动器/笔记本电脑锁在里面,以确保没有人早到/晚离开并获得一些东西他们不应该这样做。

每台服务器至少应该在自己上锁的机架中,如果不是自己上锁的房间,那么只有负责每台服务器的管理员才能访问它,因为在一天结束时,物理访问胜过一切。

接下来是一种可以伤害/帮助的练习。有限的合同。如果你认为你可以支付足够的钱来吸引新的人才,那么只在预定的时间(即 6 个月、1 年、2 年)内保留每个管理员的选项将允许你限制某人拥有的时间尝试将您 IP 的所有部分放在一起。

我的个人设计将是...将您的数据分成许多部分,假设为了拥有数字 8,您有 8 个 git 服务器,每个都有自己的一组冗余硬件,每个由一组不同的管理员。

所有将接触 IP 的工作站的加密硬盘。在驱动器上有一个特定的“项目”目录,这是唯一允许用户放入他们的项目的目录。在每晚结束时,他们需要使用安全删除工具清理他们的项目目录,然后移除硬盘驱动器并锁定(只是为了安全)。

项目的每一部分都分配了不同的管理员,因此用户只能与分配给他们的工作站管理员交互,如果他们的项目分配发生变化,他们的数据将被擦除,他们会被分配一个新的管理员。他们的系统不应该具有刻录功能,并且应该使用安全程序来防止使用 USB 闪存驱动器在未经授权的情况下传输数据。

从中获取你想要的。

  • 谢谢,那里有很多好东西,我们正在做很多事情。虽然我喜欢多管理员的想法,但我们的规模还不够大,需要它。我真的只*需要*一个管理员,所以如果我有四个管理员,他们通常会感到无聊。我们如何找到我们想要的顶级人才,但只给他们很小的工作量?我担心聪明的人很快就会厌倦并转向更绿色的牧场。 (2认同)
  • 是的,这是一个大问题,实际上是政府领域的一个严重问题。我开始担任管理员的地方通常被称为“旋转门”。整件事是一个很难处理的问题。一般来说,信息保证是一个非常难以破解的难题:\ (2认同)

Wad*_* M. 11

这将类似于为建筑物雇用看门人的挑战。看门人拥有所有钥匙,可以打开任何门,但原因是看门人需要它们来完成工作。与系统管理员相同。人们可以对称地思考这个古老的问题,并看看历史上授予信任的方式。

尽管没有明确的技术解决方案,但事实上没有任何解决方案不应成为我们不尝试任何解决方案的理由,不完美的解决方案的聚合可以产生一些很好的结果。

赢得信任的模型

  • 开始时给予较少的权限
  • 逐步增加权限
  • 放置一个蜜罐并监控未来几天会发生什么
  • 如果系统管理员报告它而不是试图滥用它,这是一个好的开始

实施多层次的行政权力

  • 级别 1:可以修改较低层的配置文件
  • 级别 2:可以修改稍高级别的配置文件
  • 级别 3:可以修改稍高的配置文件和操作系统设置

始终创建一个人不可能完全访问的环境

  • 集群中的拆分系统
  • 为不同的组授予集群管理员权限
  • 最少2组

在进行高级核心更改时使用两人规则

信任并验证

  • 记录一切
  • 日志监控和告警
  • 确保所有操作都是可区分的

文书工作

  • 让他们签署文件,让法律系统能够在他们伤害你时通过起诉他们来帮助你,从而更有动力不这样做


Ste*_*nds 9

很难保护主机免受具有管理访问权限的主机的侵害。虽然像工具执牛耳试图这样做,成本都添加别的东西,可以打破在固定它添加到尝试障碍。当您实施这样的事情时,您的系统可用性下降,因此尽早将这种期望设置为保护事物的成本。

另一种可能性是查看您的应用程序是否可以通过云提供商或在本地托管的私有云中运行在一次性主机上。当一个坏了,而不是派管理员来修复它,你把它扔掉并自动构建一个替代品。这将需要在应用程序方面进行大量工作才能使它们在此模型中运行,但它可以解决许多操作和安全问题。如果做得不好,可能会造成一些严重的安全问题,所以如果你走那条路,请获得有经验的帮助。