在我当地的大学里,有一个由大约20名学生组成的小型学生计算俱乐部。俱乐部有几支小组,他们的重点是移动开发、机器人技术、游戏开发和黑客/安全。
我正在向几个团队介绍一些基本的敏捷开发概念,例如用户故事、估计任务的复杂性、以及版本控制和自动构建/测试的持续集成。
我熟悉一些基本的开发生命周期,比如瀑布、螺旋、RUP、敏捷等等,但我想知道是否有一个软件开发生命周期用于黑客/破坏安全。当然,黑客们正在编写计算机代码,但这些代码的生命周期是什么?我不认为他们会太关心维护,因为一旦发现并修补了漏洞,利用该漏洞的代码就毫无用处。
我想生命周期应该是这样的:
发布于 2012-10-15 15:44:56
你在说什么类型的代码?
在黑客攻击过程中使用了许多安全工具,包括nmap、平面图、内苏斯等扫描仪。我可以想象,他们的软件生命周期和其他任何应用程序都是一样的。
另一方面,也有剥削代码。为了利用一个非常特殊的漏洞和情况而编写的代码。我非常怀疑他们是否需要任何生命周期。然而,许多开发代码也与更大的开发框架(如Metasploit )集成在一起。
在与@AviD进行了讨论之后,我想补充几点。
对于具体情况,情况会有很大的不同。
在零日修补之前,一些漏洞代码可能会被赶出考虑到窗口。由于其他原因,代码可能也会被匆忙输出。有关这方面的一个很好的例子,请参见:犯罪-如何打败野兽接班人?。一个人写了一段PoC代码来快速证明他的观点。这样的代码没有考虑到软件生命周期方法。
武器化的恶意软件,如stuxnet或火焰,可能会。像Metasploit这样的打包软件。
所以正确的答案是..。那得看情况。
发布于 2012-10-15 13:47:51
我不明白为什么会有任何具体不同的开发生命周期取决于产品的用途。
为了破坏安全性而开发的软件可以与任何其他类型的软件一样长的寿命,并且需要同样数量的维护和工作。
这类软件的不同创建者将根据他们的需要采用不同的生命周期。
发布于 2012-10-15 13:50:42
您指定的开发模型就是-开发模型。当您正在进行工程开发时,当您有需求时,当您必须创建或修改系统架构或组件设计时,当您需要构建或修改产品和相关测试时,以及当您向客户发布时,它们都是非常有用的。
我不确定这些模型是否可以直接应用于更多面向研究的项目,在这些项目中,您正在尝试回答问题或了解更多关于系统的信息(或者系统的安全弱点,在您的特定情况下)。
我怀疑迭代/增量模型(例如敏捷方法和螺旋模型)对于形成基础是最有用的。在每次迭代中,您可以致力于回答问题或定义更多要使用的参数,这可能包括编写任何代码,也可能不包括编写代码。也许各种科研方法也可以提供一个有趣的基础。
https://softwareengineering.stackexchange.com/questions/169941
复制相似问题