接管开源项目的其他尝试

在发现XZ Utils之后,人们已经检查其他开源项目。令人惊讶的是,这起事件并不是唯一的:

OpenJS基金会跨项目委员会收到了一系列可疑的电子邮件,邮件内容类似,名称不同,与GitHub相关的电子邮件重叠。这些电子邮件恳求OpenJS采取行动,更新其一个流行的JavaScript项目,以“解决任何关键漏洞”,但没有具体说明。电子邮件作者希望OpenJS指定他们为项目的新维护者,尽管之前很少参与。这种方法与“贾谭”在XZ/liblzma后门中定位自己的方式极为相似。

[…]

OpenJS团队还发现其他两个非基金会托管的热门JavaScript项目中存在类似的可疑模式,并立即向各自的OpenJS领导人以及美国国土安全部(DHS)的网络安全和基础设施安全局(CISA)报告潜在的安全问题。

本文包括一个可疑模式列表和另一个安全最佳实践列表。

发布于2024年4月18日上午7:0610条评论

评论

冬季2024年4月18日上午7:59

OpenJS可能是错误的目标,因为似乎有几个开发人员涉及可见性。

我更关心的是主要处于维护模式的1/2超负荷开发项目。这些开发人员没有时间和资源按照OpenSSF准则“正确”地做每件事。正是这些过度扩张的项目可能会受到诱惑,欢迎“新鲜血液”来帮助他们应对所谓的“安全紧急情况”。

XZ就是这样一个目标的教科书范例。事实上,Jian Tan背后的人已经与首席开发人员合作了一年或更长时间,这使得识别游戏计划变得更加困难。

回声2024年4月18日上午9:23

据我所知,我是唯一一个链接或讨论过多域安全模型的人,本周之前的主题中可能提到过最多3-4行与此相关的内容,我将不讨论这一行。我忙于阅读其他材料,甚至连这篇文章都看不到。

毫无疑问,每个人都会证明我错了,他们会做出180度的动作,展示出许多深谙圣人的表情,并对那些之前被他们抛弃和践踏的人倾吐出同情之情!

马克·沃尔夫冈2024年4月18日上午10:26

如果XZ妥协确实是一个具有较长时间范围的民族国家,那么毫无疑问,他们会运行并行操作来妥协几个开源项目。

有一两个开发人员的小而模糊的项目。非活动项目等。

想象一下,一个开源项目负责人开始他的项目只是一种爱好。Project变得流行起来,他的图书馆也被纳入了其他项目。项目创始人/dec凭借其爱好项目的可信度获得了理想的工作,现在没有时间维持。进来的是一个乐于助人的志愿者开发人员,他们在一两年内为项目做出了重大贡献。项目创始人最终授权志愿者实质上接管项目。

克莱夫·罗宾逊2024年4月18日上午11:47

@所有人Mark Wolfgang,

回复:一段旅程经过目的地的危险。

“项目创始人/dec凭借其爱好项目的可信度获得了理想的工作,现在没有时间维持。”

问题通常在那之前开始…

想象一下,在一次公交车上,乘客们上车后决定乘公交车去他们想去的地方。不是预定的旅行目的地。

混乱确保了公交车在地图上蜿蜒而行,没有乘客感到高兴,公交车司机为了让他们高兴而发疯。

对许多开源软件项目来说是这样的。像公交车这样的项目不可能满足乘客的需求。

你会注意到,成功的项目是司机坚持路线和时间表,乘客可以随时上下车。如果乘客们认为会有更好的公交车出现,他们可以“步行或等待”…

否则,他们会“坐以待毙”,可以坐在那里保持安静。

如果乘客不想“步行或等待”,那么昂贵的选择从“付费”开始,比如租车或司机服务,甚至买一辆车并付费给司机,可能是唯一可用的选择。但他们几乎从不想付款…

因此,我们认为“专制项目”或“温和独裁者”是“光荣的领导者”。

但它永远不会持续下去,总有人会出现,声称每个人都应该“平等”——只有一些人认为他们“比其他人更平等”,因为他们要求要求,不给予赞扬,认为每个人都应该赞扬他们等等。

因此,当司机决定以某种方式下车时,项目会“越过悬崖”或类似情况。

至于那些认为自己“比别人更平等”的人,他们通常都没有技能或其他有用的属性。

因此,该项目成为孤儿或被遗弃,就像过去的孩子一样,容易受到各种形式的虐待,或者实际上死于忽视。

安德鲁·杜安2024年4月18日12:09 PM

别忘了这个简单得多的版本(几乎奏效了),在Linux中,有人在一个非常复杂的if语句中隐藏了一个“uid=0”,而不是“uid==0”,希望没有人会注意到。几乎没有人这样做,但有人在提交之前(就在提交之后)发现了它。

如果有人知道正确的标志组合,就可以将其uid设置为0。

克莱夫·罗宾逊2024年4月18日12:52 PM

@布鲁斯,所有人,

回复:这不是一条供应链。

我们在ICT行业的思维中有点陷入了陷阱,而且这种情况每年都会重复发生多次。

这是为了“方便”,我们从“有形的物理世界”中提取一个术语,并在“无形的信息世界”中重复使用该术语。

事实上,它很少能令人满意,而且我们会提出一些我们真的不应该这样做的假设。

正如我在前面的“XZ实用程序”讨论中指出的那样,

“这不是供应链攻击”

因为它实际上不是传统意义上的“供应链”,而且攻击也不会发生在那里。

在传统意义上,“仓库中的成品”是“供应链”的起点,最终由客户在其“进货”“码头”签收。因此,最初的NSA“供应链攻击”实际上是通过“植入物”在“有形物理世界”“供应链”中进行的。在运输节点抓取箱子,将其带到安全/保密场所并打开,取出箱子打开,插入子组件,关闭箱子,放回原始箱子,巧妙地重新密封,并放回同一运输节点的供应链中……”。

现代自由和开放源码软件和类似软件的性质更像是从“材料清单”中购买制造产品,以便在“客户场所”有效地制造/组装成“成品”。

攻击实际上并不发生在“供应链”中,而是先从BOM中的零件构造开始,然后在客户场所内完成,最后从BOM中列出的零件组装/构造项目。

BOM不是“供应链”,而是“供应商零件清单”。事实上,这只是“制造供应树”的一部分。

也就是说,数百个零部件来自多个地方,它们被构造成许多子组件,而这些子组件又从多个地方采购,从而形成更大的子组件、子系统或最终系统。通过多个装配点的大量供应链看起来像是一棵树的根。

因此,“供应树”。需要注意两件重要的事情,

1、子组件是“独立的”
2、独立子组件可以而且确实具有共享的标准组件。

这将“树”根的概念转变为更多的“漏斗状”。

那些见过真正漏斗状蜘蛛的人都知道,它们的大小可能非常巨大,而“有毒蜘蛛”可能会出现在网络中的任何地方,只是在等待。

网络表演2024年4月19日4:21 AM

我同意你的观点克莱夫;拦截和篡改/干预货物
过境并不完全等同于对前体的干扰
制造成本。它似乎更类似于对
物料清单,可能只是选择,比如选择一个较弱的
密码。它更接近渗透。

所以我有点误用了这个词在这里

另一个论坛的评论大意是“请不要给我们打电话
自由/开源软件开发您的“供应链”。没有人付钱给我们,我们也没有
商业游戏中的资产”

这听起来很正确,进一步削弱了“供应链”的正确性
描述。我用了一个类比,即使用自由/开源软件的公司
依赖性是从普通人那里觅食、采集或收获食物
土地。当心,有人在苹果树上时会毒死它。

正如Bruce的帖子证实了我对开发人员漏洞的担忧,
有一个巨大的心理攻击面
各种恶作剧。

鲍勃·帕多克2024年4月19日上午8:45

@安德鲁·杜安
“有人隐藏了'uid=0'而不是'uid=0'”

这就是常量位于左侧的原因:

“0==uid”

由于无法为常量赋值,因此会立即捕获错误。

我已经得到了许多荒谬的答案,因为我反对编码中的简单安全预防措施。唉,有些语言确实反对它。最常见的语言不反对。

乔安妮·h2024年4月19日上午11:21

@鲍勃·帕多克(Bob Paddock),我同意“左边的常量”风格是好的,但软件项目的开发人员经常反对“风格化”补丁,这使得它更像是一个政治问题,而非技术问题。

此外,在比较两个变量时,这个技巧也不起作用。如果他们想比较“uid”和“root_uid”呢?(虽然这个例子看起来有点做作,但用户名称空间确实使root始终是用户0的想法复杂化了。)我们的工具提供了一些帮助,例如,编译器开关可以使赋值表达式返回无效结果。

44 52 4D二氧化碳+22024年4月19日下午7:41

这些类型的攻击很难通过程序检测或防范,因为它们通过社会工程破坏信任。短期内,清晰透明地共享上述可疑活动将有助于其他社区保持警惕。

提及众所周知的可疑活动与清晰透明地分享事情不是一回事。

有人知道在哪里可以找到这些信息吗?还是仍处于禁运状态?

留下评论

登录

允许的HTML•<a href=“URL”>•<em><cite><i>•<strong><b>•<sub><sup>•<ul><ol><li>•<blockquote><pre>额外降价语法通过https://michelf.ca/projects/php-markdown/extral/

Joe MacInnis拍摄的Bruce Schneier的侧栏照片。