当你经历了暴风雨,你也就成为了暴风雨
时光飞逝。天哪,从那时起发生了很多变化! 成长得太快了!
这是Kali如何诞生的故事,以及一路走来的一些挑战。
我们是如何走到今天的?有一个快速的答案,也有一个不那么快速的答案。
这一切开始于2004年,Whoppix是一个基于Knoppix的安全操作系统。这通往了2005年的WHAX,它使用Slax。2006年,BackTrack Linux出现了,它最初是基于Slax的,然后转移到Ubuntu。这些操作系统中的每一个及其变化都是为了解决不同的问题。利用所学到的一切,Kali Linux诞生了。2013年3月,一个全新的开始。
Knoppix - 最初的两个星期的工作
Whoppix(White-Hat和knOPPIX)的出现是由于创始人@Muts在2004年做了一个持续两周的亲自空隙(译者注:就是完全网络隔离的环境)网络渗透测试。这是一份政府合同,他不被允许带自己的笔记本电脑,也不允许在他们的机器上安装任何软件。因此,每天,他只被允许带入CD-ROM上的软件,然后在每天结束时被销毁。在当时,Live CD是 "流行的东西"。它们将允许您完全脱离磁盘运行Linux操作系统,使用RAM作为临时硬盘,而不会留下任何痕迹。Knoppix被选为基础操作系统,它是基于Debian的。他为这次评估创建了一个系统,并预装了他认为工作中需要的各种工具。每天晚上,他都会回去,通过添加更多的工具或错误修复来调整它。评估结束后,他对其进行了清理,并于2004年8月在一个论坛上在线分享。然后他离开去度假了。回来后,他检查了日志,看了看下载量,不敢相信它是如此受欢迎!他开始收到人们的请求,要求提供包含工具以及错误报告。
Slax - 开始认真对待它
起初只是一个用于单一评估的 "快速小东西",现在已经开始有了吸引力。随着Whoppix的普及,它变得越来越难开发。当时,Slax在生成Live-CD和使用OverlayFS方面有一个更成熟的工具链。因此,它是一个更适合的选择。编者注:我们不能确定,但镜像文件的大小可能已经成为一个问题。随着更多的工具想要被加入,空间也就越来越小。当时CD-R正处于高峰期,可以提供650-700MB,而USB媒体还没有出现。通过换到Slax,基本的操作系统大小下降,并允许更多的自定义软件包被包括在内,以及更严格的压缩(LZMA)。总的来说,这给了我们更多的发展空间。
并入BackTrack
与此同时,在remote-exploit上也有一个类似的项目,Auditor Security Collection(基于Knoppix),该项目于2005年首次启动。Auditor和WHAX有类似的目标,但是优势不同。当时,在 "开源项目 "上的合作与今天非常不同,因为它是 "我做了这个东西,我要分享它。"。当时更多的是几个大的参与者的贡献,而不是能够接受很多小的提交的工作。经过作者之间的讨论,与其让两个项目处理同样的问题,不如将两个项目合并在一起。这就在2006年5月创建了BackTrack。起初,它仍然基于Slax,但后来转移到Ubuntu。编者注:我们不能确定 "BackTrack "这个名字是怎么来的。当时,在内部调试问题时,"通过日志进行反向追踪 "这句话被频繁提及。我们不知道哪个先出现,是短语还是名字。
OffSec的开始
USB--实时启动和持久性
BackTrack现在有了一个稳定、成熟的Live-CD项目,这正是当时空隙网络的问题所需要的。虽然这些Live-CD是某些情况下的答案,但该团队希望扩展到更多领域。U盘的成本大幅下降,因此可以更自由地使用。于是就有了向 "Live-Boot"(CD或USB)的转变。下一个要解决的问题是让他们的数据 "持久化",而不是在关闭电源时丢失。2008年6月,进入BackTrack 3。
系统软件更新
几个月后,该团队再次参加了美国黑帽大会和DEF CON,他们对有多少人在使用他们创造的系统感到非常兴奋,并亲眼看到人们是如何使用它的。DEF CON也意识到了这一点,因为他们正在跟踪用户在web请求中的用户代理!当时的情况与现在不同。在这些安全会议上,大型漏洞的出现是很常见的。2008年也不例外。走在路上,团队可以亲眼看到有多少人受到攻击,而他们却无能为力,因为他们没有办法推送补丁。Live-Boot的一个缺点是,为了更新到最新版本,你需要替换整个操作系统。一个完整的重新安装。即使有USB的持久性,它更多的是针对用户数据,而不是软件包。即使你安装了BackTrack,也没有一个更新机制,因为当时的基础设施系统没有支持它。你不可能得到最新的版本。你必须做一个完整的重新安装。该团队知道他们要解决的下一个问题是什么:系统软件更新。
随着项目需求的变化,团队已经开始遇到使用Slax作为基础的技术限制,并开始寻找一个替代的底层操作系统。他们需要一种方法让终端用户能够轻松地更新他们的系统,而不需要完全重新安装。乌班图正在发出很多积极的声音,由于它受到终端用户的欢迎,而且有很好的开发工具,所以获得了很大的吸引力。它允许软件包的更新很容易被应用到人们的系统中。2009年2月,在Shmoocon黑客大会,BackTrack 4 "Beta "使用Ubuntu发布。
这一变化标志着BackTrack开始成为一个 "真正的操作系统"--一个传统的全功能发行版。以前,当有重大变化时,项目会有一个新的名字。然而,由于BackTrack逐渐为人所知,它已经长大了,开始出现在媒体上,它已经在流行文化中根深蒂固,他们希望保持这种势头。
安装程序
在之前的各种版本中,都包含了一个安装程序,它是从底层的基础操作系统(Slax)继承过来的。然而,它并不是直接使用的,而是希望在执行之前运行某些命令。再加上不允许任何自定义,这意味着它在后来的版本中被删除了。
随着计算机硬件每年都变得更加强大,使用虚拟机变得更加容易。然后,用户开始希望能够安装BackTrack。社区开始提供关于如何手动安装BackTrack的指南,并通过终端创建了一个官方教程。现在的目标很明确,BackTrack需要一个 "简单 "的安装程序。2009年6月,在BackTrack 4 "Pre-Final "中出现了一个图形化的安装程序。
域名
系统底层升级
当团队开始从Slax切换到Ubuntu时,他们抓住了当时的最新版本(8.10 - Intrepid Ibex)。由于这不是一个 "长期支持"(LTS)版本,上游只支持它到2010年4月--一年零六个月。这意味着,在这个版本的后期,更新变得越来越少,打包变得越来越难,工作量也越来越大。事情并不像它刚发布时那样稳定。
直到2011年5月,BackTrack的下一个主要版本才被发布,这也是最后一个版本,BackTrack 5。这一次,它是基于Ubuntu 10.04(Lucid Lynx)LTS。这使得上游提供了三年的支持。
最后的新起点
在接下来的几年里,该团队忙于工作,做他们最擅长的事情。然而,他们又开始遇到各种问题。随着这些问题的不断积累,很明显,需要再次进行重建,这是最后一次。由于发生了如此多的变化,这个项目不可能不换名字。他们需要让人们明白有多大的变化。BackTrack Linux在2013年3月成为Kali Linux。
转移到滚动式
总的来说,Kali 2.0收到的反馈是积极的,它是成功的。它受到如此欢迎的原因之一是大多数软件包的更新版本。在信息安全(infosec)领域,有必要使用最新的版本。这通常是因为:
编写漏洞或开发信息安全工具也不例外,他们经常需要访问最新的库。Debian 是稳定的,这是因为他们大约每两年才更新一次稳定版,以使软件包当时是最新的测试版本。他们会手动 "向后移植"更新,以修补旧版本的任何安全漏洞,以便修复该版本的软件包
为了帮助理解原因,可能需要长达两年的时间来更新一个稳定的软件包。然而,这并不意味着它在那之前没有准备好,只是因为这背后有一个完整的工作流程。有一个叫做 "测试 "的分支,它是为准备进入稳定版的软件包准备的,但只有在每个包都准备好了的时候,才会进入稳定版。一个软件包将从 "不稳定 "开始,一旦它通过了Debian严格的软件包测试过程,它就可以进入测试版。在测试中有大量的包升级从未使其处于稳定状态,它将处于稳定状态以发布。这对Kali团队来说,感觉是一个稳定和最新的良好平衡。
当Kali 2.0出炉后,Kali团队就知道他们必须要做什么。从 "Debian stable "转移到 "Debian testing"。5个月后,2016年1月,Kali成为一个滚动发行的Kali 2016.1。
从这时起,Kali团队会对网络仓库进行 "快照",测试,然后发布。这是因为 "Debian测试 "的更新是持续发生的。
现在,快照大约每季度一次,一年有四个主要版本,而不是每两年一次在Debian的稳定版本之后的几个月进行。
信不信由你,这个故事甚至还有更多的细节可以去了解。如果这是你想要的东西,请让我们知道
在整个项目中,有一个项目一直是不变的。这个标志。这条龙。这个标志有可能比项目本身更出名!
最初是一个竞赛,起源于Whoppix论坛,想法是 "最佳图形将成为下一张壁纸"。第一个被授予冠军的作品是龙。我们非常喜欢它,所以我们从来没有为下一个版本重新开放竞争!"!
我们当时不知道的是,该作品是抄袭的。它是在没有得到作者许可的情况下从deviantart上取下来的。我们找到了合法的作者,为Kali Linux买下了它的版权。
多年来,龙的设计被稍作调整,在这里和那里做了改动,例如使它在某些地方更薄(减肥!),使尾巴更弯曲等等。但我们一直小心翼翼地保护这个标志性的形象,因为它是这个领域中最容易识别的标志之一。为了回答这个问题,我们没有计划取代龙的标志。
左图,旧的。右边,新的
与其说是发布BackTrack 6,不如说是Kali 1.0(Moto)出来了。但为什么呢?有了BackTrack 3 -> 4(Slax到Ubuntu),为什么没有BackTrack 5 -> 6(Ubuntu -> Debian)?为什么要有这样一个新的开始而不保持这个势头呢?
好吧,一些新的问题开始出现,有些是技术性的,有些不是,而且团队知道有一天他们需要找到解决方案,比如说:
上游起源
Ubuntu在几年内运行良好,但是团队越来越发现他们遇到了技术问题,造成了限制。当时,如果有人在BackTrack上发现了一个软件包的问题,如果它不是BackTrack自定义的东西,它就需要 "上游 "到Ubuntu。由于Ubuntu以Debian为基础,如果他们没有分叉软件包,那么就需要到Debian去解决这个问题。然后,当一个补丁被创建时,它需要被推送到Debian,然后被拉到Ubuntu,再被拉到BackTrack。这是一个漫长的过程。否则,团队将不得不分叉一个软件包,从而承担起维护的所有权和责任,以包括一个补丁。随着需要分叉的软件包越来越多,更多的时间被用于维护操作系统,而不是安全方面,这让团队失去了乐趣,因为它变成了一场恶梦。我们决定去掉中间层,使用Debian作为基础,而不是Ubuntu。
上游方向
通过使用另一个操作系统作为你的基础,你通常会遵循他们的项目方向。你可以改变,但在同步时确实增加了额外的复杂性(想想git rebase)。这就占用了时间和注意力,使BackTrack成为BackTrack! Ubuntu已经宣布了一项重大的桌面环境变化。从GNOME作为他们的默认环境到他们创造的Unity(和Mir)。当时,这引起了一些争论。我们也知道某些工具将不被兼容。编者注:Whoppix和Whax都使用KDE作为默认的桌面环境,而我们在使用Ubuntu时切换到GNOME。
我们也不知道完全定制Ubuntu有多难。当时,Ubuntu的开发者设置了各种限制来阻止我们需要做的事情。我们相信这是因为他们试图制作一个对刚开始使用的人友好的操作系统,而不是对那些有Linux经验的人来说,他们会尝试做渗透测试。
稳定性
如果我们要使用Debian,最好是遵循他们的规则。因此,我们需要遵循 "正确的 Debian 包装标准"。这意味着我们必须遵守Linux的文件系统层次标准(FHS)。这是在Whoppix开始时引入的,所以人们已经习惯了/pentest目录,并喜欢它。然而,这也是该项目出现稳定性问题的原因之一,因此用户可能会有升级问题。这并不是管理和维护软件包的最佳方式。好处是,程序被添加到$PATH中,允许你从任何地方调用一个程序!
缺乏FHS在很多方面对我们造成了伤害。由于软件包不在预期的Linux位置上,我们不得不手动为库创建链接。这当然是一个依赖性的噩梦。正如你所预料的那样,由于工作量大,更新软件包是一件很痛苦的事情,因此工具变得过时了。
这也是为什么你不应该将BackTrack的网络资源库添加到另一个操作系统中的原因 另外,如果你开始尝试安装BackTrack网络资源库以外的东西,就很容易产生连锁反应,破坏其他东西。担心执行更新是不对的,因为简单的更新可能会破坏安装。
软件包维护
由于Debian的标准,对于最终用户来说,它有助于使软件包更加稳定,并且有明确的更新和升级路径。对于我们开发者来说,维护软件包也变得更加容易。因此,我们可以:
因此,我们所要做的就是在本地构建软件包,测试它以确保其工作。然后签字,在软件包上添加我们的数字签名(所以它来自我们,没有被任何恶意的一方篡改/改变),然后再将软件包的源代码上传到构建机器人,它们将为每个支持的架构重新编译它。很简单!
这种成熟的工作流程有助于防止所有奇怪的边缘案例,这些案例会导致用户的机器因进行简单的更新而损坏。这有助于使系统更加强大。
定制化
上面谈到了包,但另一项要指出的是镜像。我们可以用来引导构建,允许生成自定义的镜像,例如在桌面环境创建之间灵活切换(GNOME、KDE、Xfce、其他?) 另外,它还支持在设置过程中预置答案文件,允许做无人值守的完全自动化的安装。这更像是一种正确的做事方式,而不是一种黑客式的工作,例如,生成文件,而不是依靠安装后的脚本进行修改。
ARM - 多架构
基础设施
在BackTrack,我们使用subversion作为我们的控制系统。我们开始收到政府的请求,因为他们想在内部使用我们的操作系统。然而,有一些症结。我们需要对我们的软件包进行数字签名,而且他们需要能够在内部自行编译操作系统。当我们开始使用Kali的时候,我们把所有的东西都废除了,从头开始,我们转移到Git,并使用GPG来标记发布,同时,发布我们所有的构建脚本,允许任何人在任何平台上构建Kali。这使得Kali成为真正的开源产品。
这个团队以前真的没有使用过Ubuntu,因此,我们花了很多时间来获得一个正常运作的生态环境(可能还不如说是工作系统!)。这一次,我们不想再犯这样的错误,所以我们咨询了写Debian手册的人,希望得到他的建议和指导,以便从第一天开始就正确地理解Debian的做事方式。
我们还在各种不同的架构上设置了专门的构建环境(因为我们想支持ARM)。这使我们能够对自动构建的软件包进行 "CI/CD",以及对镜像和系统升级进行夜间测试。我们还为软件包设置了单元测试,允许从Debian导入时进行测试。
设置
我们知道拥有一个有效的设置过程是多么重要,它需要能够涵盖很多不同的情况。在切换到Debian之后,我们能够增加:
总结
选择Debian是因为它是最大的Linux发行版之一,由社区驱动(因此是开源的),并且支持许多不同的架构和硬件。与其使用一个从Debian分叉出来的操作系统,从而增加了另一层 "上游 "的复杂性,不如直接进入源代码。那么遵循Debian的标准和政策对我们有巨大的好处。
缺点是意味着完全的重新设计和重组。我们的意思是完全重新做一遍。从我们的基础设施(软件包和镜像构建机器人,网络源镜像处理等),基础操作系统,我们的软件包等一切。完全重写。我们停止了对BackTrack的关注,专注于Kali的秘密工作,这花了一年多时间。
不用说,这是一个大量的工作,但这是完全值得做的。无论是从开发团队,还是从精简许多方面,都给用户体验带来了更大的改善。
译者注:以下是我的总结
为什么叫 "Kali Linux"?
"Kali "已经是一个团队成员词汇的一部分,当它在内部被提出来的时候,每个人都喜欢它。网上有很多关于我们为什么选择这个名字的不正确的说法(比如说它代表了什么),但实际上,我们只是喜欢它。是的,它在斯瓦希里语中也是 "强大 "的意思,也是印度教的一个女神。我们。只是。喜欢上了它。
你们是怎么取这个名字的?
在想出这个名字的时候,我们知道我们需要一个很酷、很好听、很独特的名字。我们不想在信息安全领域,甚至在一般的IT领域踩到任何其他项目的脚趾。
在美国黑帽大会的一个晚上,团队围坐在一起,试图想出一个新的名字。他们开始想出短语的首字母,或合并缩写,甚至想出一个全新的词。在没有任何成功的情况下,其中一个团队成员本能地采用了他们为新宠物命名时的做法;众神的名字。在列举了许多神话中的各种神灵后,团队开始查找哪些神灵还没有在行业中使用。虽然有几个术语是团队非常喜欢的,但它们已经被其他项目使用了。在查阅了70多个建议后,只有一个真正脱颖而出,即 "Kali"。Kali是印度教的 "毁灭和重生 "女神。没有比这更合适的了;一个项目结束,一个新项目开始。当团队成员听到这个建议时,他们的耳朵抽搐了一下,因为他们说的是斯瓦希里语,"kali "的意思是 "强大"。在对这个词有了一点了解后,还有一种武术也叫 "kali"。它的风格?只有进攻,没有防御。我感觉这是个标志,所有一切都指向 "Kali"。这是唯一一个强势出现的名字,没有理由不使用它。团队停止了寻找名字的工作。
Kali这个词对许多不同的人有很多意义。每个人都是对的,因为它对每个人的意义不同。我们。只是。喜欢上了它。
他们说 "一张照片胜过千言万语",所以这里是一次价值59,000英镑的记忆之旅:
我们再次与Uzimon合作,现在有了一首Kali的曲子! 请听一下Going Back to Kali,你可以自由下载、使用和混音。请欣赏!
kali现在要做 “运动鞋网络”(译者注:这是幽默词。指脱网传输数据的方式)。不,这是真的!我们在运动鞋上有kali。
这是一个非常独特的,也是一个收藏品。是乔丹鞋,采用意大利牛皮和真正的蟒蛇皮(不是Python 3.11,而是真正的东西!)。由于这些都是限时销售的手工品,所以价格一定要与之匹配。请注意:我们不收取佣金,我们不从任何销售价格中获取分成。100%都是给制鞋商的。
如果你错过了,而且你有任何迫切的问题想让团队回答,请随时参加下一次的Discord会议。我们的目标是在每次Kali发布后的第一个星期二安排这些会议。Kali 2023.2见!
不幸的是,由于时间限制和个人事情,我们无法及时准备好我们的 "kali4kids"。我们本来希望能早点推出今年的特别节目,但与其急于求成,降低质量,还不如推迟推出。相信我们,它将是值得等待的。这并不是愚人节玩笑,游戏不会在4月1日发布 - 我保证!
那么,在未来的10年里,我们如何看待Kali?好问题!简而言之:我们不知道!
10年前,我们不可能预测到今天的情况。现在也一样,我们无法预测未来10年的情况。
我们需要对出现的项目做出反应。无论是从上游(Debian)的角度,还是从信息安全行业的角度。
随着技术的发展,趋势也在变化。Live-CD曾经是 "流行的东西",然后持久性USB是 "它",然后转移到虚拟机,让位给容器,目前 "云 "是在这里。谁知道下一步是什么呢?
在信息安全领域,随着技术的变化、软件栈的变化、攻击面的变化和防御措施的改进,趋势也在变化。因此,我们需要能够适应。在某一阶段,无线黑客 "是一件事",所以我们需要在尽可能多的卡上支持注入。今天,更多的是 "指挥和控制"、"云"、"Living off the Land "和 "端点检测和响应"。我们不知道明天会发生什么,但我们需要准备好对它作出反应。
我们已经建立了各种内部技术债务,我们需要偿还这些债务。幸运的是,没有什么东西是超过10年的!
我们可以谈论的一个项目是把我们的镜像源重定向器换成一个较新的解决方案。我们从Kali开始就使用这个方案,虽然它确实有效,但它的功能越来越有限,而且无法与新栈集成。
刷新我们用于构建镜像的CI解决方案是另一个早该完成的项目。这将有助于更快地发现我们的镜像和平台的构建问题。
一旦我们尽可能地减少了债务,我们将处于一个更强大的地位,能够向前推进,而且比我们现在做任何未来的项目更快。我们的目标是乘着发展的势头,在社区上建立起兴奋感。
就像Kali Purple一样,Kali正在进行防守。这是Kali的一个新领域,目前我们只触及到表面。我们希望能更深入,并进入更多的信息安全领域!
我们正在寻找想法和建议,请来参与你想看到的Kali Purple变成什么样。
Kali是一个开源的项目。之前我们一直在闭门造车,但我们一直在公众面前做更多的宣传。但我们可以做得更多。我们想尽可能地在公开场合做得更多。我们是想养活和帮助社区贡献的增长。
......但有一点是肯定的,我们不打算改变项目的名称。Kali将继续存在!
多年来,在不同的领域都有一些活动。下面我们把一些你们可能感兴趣的事情拼凑起来。
多年来,该团队就这些项目进行了各种不同的演讲。他们可能更深入地了解某个平台或功能,但以下是更高级的概述:
多年来,我们做了一些视频来展示这个项目。这里是一个集合:
我们知道每个人都是一个目标,但是作为业内的一部分,我们也把自己描绘成一个更大的目标。我们不时地犯错误。幸运的是,据我们所知,从来没有任何重大、关键或面向用户的任何错误:
我们喜欢热闹,多年来一直以恶作剧而闻名:
于是,"Kali4kids "就成了明年愚人节笑话的内部名称。我们已经有了足够多的想法为我们想尝试的东西,直到2039年!
"Dojo"这个词与武术有关,是你练习它的地方。由于一直有一个武术的潜在主题,所以用这个词感觉很合适。kali武馆,是在大多数会议上举办的一系列研讨会。这些将是实践性的练习,使用Kali操作系统中的功能进行操作,Kali: