针对软件漏洞的攻击/工具的软件生命周期的独特之处是什么?


10

在我当地的大学中,有一个约20名学生的小型学生计算俱乐部。该俱乐部有几个小组,专门负责特定领域,例如移动开发,机器人技术,游戏开发以及黑客/安全性。

我正在向几个团队介绍一些基本的敏捷开发概念,例如用户故事,估计任务的复杂性以及持续集成以进行版本控制和自动构建/测试。

我熟悉一些基本的开发生命周期,例如瀑布,螺旋,RUP,敏捷等,但是我想知道是否存在诸如用于黑客入侵/破坏安全性的软件开发生命周期之类的东西。当然,黑客正在编写计算机代码,但是该代码的生命周期是什么?我认为他们不会太在意维护,因为一旦发现并修补了漏洞,利用该漏洞的代码就没有用了。

我认为生命周期将是这样的:

  1. 找出安全漏洞
  2. 利用安全漏洞
  3. 采购有效载荷
  4. 利用有效载荷

当产品的目的是破坏安全性时,软件的开发生命周期会有什么样的差异(如果有)?


4
谁说骇客有任何形式
棘手的怪胎2012年

1
ang,已经有四个好的答案。很难只选一个。
大卫·卡钦斯基

@DavidKaczynski,您也可以考虑在Information Security上询问此信息,以了解实际设计各种软件的人员的观点。而且,根据安全要求的不同,差异也很大……
AviD 2012年

@AviD谢谢,对于入侵软件的开发生命周期并没有本质上的差异,我想在这里得到了很好的答复。一旦破坏了安全性(例如用病毒感染计算机,创建后门或模仿用户获取数据),我想进一步了解入侵软件的目标或选择。
大卫·卡钦斯基

1
@DavidKaczynski,但我的观点是它本质上不同的-或者说,开发一种类型不同于另一种类型。以Terry的答案为例,将其与病毒进行进一步比较,再与零时差,再与Stuxnet进行比较。 。
AviD 2012年

Answers:


7

您在说什么类型的代码?

在黑客入侵过程中使用了许多安全工具,包括nmapsqlmapNessus等扫描程序。我可以想象它们具有与其他任何应用程序相同的软件生命周期类型。

另一方面,存在漏洞利用代码。编写代码以利用非常具体的漏洞利用和情况。我非常怀疑这些工具根本不需要任何生命周期。但是,许多漏洞利用代码也与更大的漏洞利用框架(例如Metasploit)集成在一起。


与@AviD讨论之后,我想补充几点。

对于特定情况,这将是非常不同的。

在修补零日漏洞之前,可能会赶出一些漏洞利用代码以考虑该窗口。代码也可能因为其他原因而被赶出。请参阅:犯罪-如何击败BEAST后继者?一个很好的例子。一个人编写了一段PoC代码以快速证明自己的观点。对于此类代码,不考虑软件生命周期方法。

像stuxnet或FLAME这样的武器化恶意软件可能会这样做。像Metasploit这样的打包软件也可以。

所以正确的答案是……这取决于。


我们还没有举行正式会议来讨论破坏安全性的目标或可能的途径,因此我无法说出我们将开发哪种类型的代码(或者如果我们将使用现有的软件/技术来实现我们的目标)。我仍然很想了解使用哪种类型的形式技术来利用受威胁的系统,例如创建后门,模仿用户,用病毒感染计算机等。我认为这种类型的问题可能更适合IT安全性。
David Kaczynski 2012年

3

我不明白为什么根据产品的用途应该有任何特别不同的开发生命周期。

为破坏安全性而开发的软件的使用寿命可以与任何其他类型的软件一样长,并且需要相同数量的维护和工作。

此类软件的不同创建者将根据其需求采用不同的生命周期。


3

您指定的开发模型就是开发模型。当您进行工程开发时,有需求时,必须创建或修改系统体系结构或组件设计,需要构建或修改产品及相关测试以及发布给客户时,它们非常有用。

我不确定这些模型是否可以直接应用于更多以研究为导向的项目,在这些项目中您尝试回答问题或了解有关系统的更多信息(或在特定情况下了解系统的安全弱点)。

我会怀疑迭代/增量模型(例如敏捷方法和Spiral模型)对于形成基础最有用。在每次迭代中,您可以尝试回答问题或定义更多可使用的参数,这可能包括也可能不包括编写任何代码。也许各种科学研究方法也可能提供有趣的基础。


1

黑客最近已经看到了强大的专业化能力,而不仅仅是单个黑客为“赚钱”或为成名而转向专家之间的合作,目的是为了赚钱。结果就是成熟的商业“黑客工具包”,例如Blackhole漏洞利用工具包,可以轻松地集成特定的软件弱点,例如插件。我认为此类产品的开发与其他任何软件产品几乎完全一样。

显然,零日漏洞利用市场正在发展。


1

Life-Cyle从不依赖于代码。它完全取决于其他因素,例如:

  1. 时间
  2. 预算
  3. 客户性质
  4. 产品性质

在您的方案中,敏捷生命循环方法将是最有用的。原因是您需要在开发过程中吸引客户,并且必须验证产品可接受的质量参数。敏捷方法会帮助你极大通过收集客户的反馈意见,然后逐步提高工作的黑客软件增量的基础。


这似乎有点主观。您是否建议其他生命周期方法在开发过程中不涉及客户或验证可接受的质量参数?当然,这并非敏捷独有。
杰·史蒂文斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.