私の地元の大学には、約20人の学生からなる小さな学生向けコンピューティングクラブがあります。クラブには、モバイル開発、ロボット工学、ゲーム開発、ハッキング/セキュリティなど、特定の分野に重点を置いた小さなチームがいくつかあります。
ユーザーストーリー、タスクの複雑さの見積もり、バージョン管理と自動ビルド/テストの継続的インテグレーションなど、いくつかの基本的なアジャイル開発の概念をいくつかのチームに紹介します。
ウォーターフォール、スパイラル、RUP、アジャイルなどの基本的な開発ライフサイクルには精通していますが、セキュリティをハッキング/侵害するためのソフトウェア開発ライフサイクルなどがあるのではないかと思います。確かに、ハッカーはコンピュータコードを書いていますが、そのコードのライフサイクルは何ですか?違反が発見されてパッチが適用されると、その違反を悪用したコードは役に立たないため、彼らがメンテナンスにあまり関心を持っているとは思いません。
ライフサイクルは次のようになると思います。
製品の目的がセキュリティの侵害である場合、ソフトウェアの開発ライフサイクルにはどのような違いがありますか?
どんな種類のコードについて話しているのですか?
nmap 、 sqlmap 、 Nessus などのスキャナーを含む、ハッキングのプロセスで使用される多くのセキュリティツールがあります。他のアプリケーションと同じタイプのソフトウェアライフサイクルを持っていると思います。
一方、エクスプロイトコードがあります。非常に特殊なエクスプロイトと状況を利用するために作成されたコード。私はそれらがライフサイクルを必要としていることを非常に疑っています。ただし、多くのエクスプロイトコードは、 Metasploit などのより大きなエクスプロイトフレームワークとも統合されています。
@AviDとの議論の後、いくつかの点を付け加えたいと思います。
特定の状況では非常に異なります。
一部のエクスプロイトコードは、ゼロデイパッチが適用される前にウィンドウを考慮に入れるために急いで出される可能性があります。他の理由でコードが急いで出る可能性もあります。これの素晴らしい例については、 CRIME-BEASTの後継者を打ち負かす方法は? を参照してください。人はPoCコードを書いて、自分の主張をすばやく証明します。このようなコードでは、ソフトウェアライフサイクルの方法論は考慮されていません。
StuxnetやFLAMEのような武器化されたマルウェアはおそらくそうします。 Metasploitのようなパッケージ化されたソフトウェアはそうします。
正解は...場合によります。
製品の目的に応じて、特に異なる開発ライフサイクルが必要な理由がわかりません。
セキュリティを破るために開発されたソフトウェアは、他のタイプのソフトウェアと同じくらい長い寿命を持つ可能性があり、同じ量のメンテナンスと作業が必要になります。
このようなソフトウェアのさまざまな作成者は、ニーズに応じてさまざまなライフサイクルを採用します。
指定する開発モデルはまさにそれです-開発モデル。これらは、技術開発を行う場合、つまり要件がある場合、システムアーキテクチャまたはコンポーネントの設計を作成または変更する必要がある場合、製品および関連するテストをビルドまたは変更する必要がある場合、および顧客にリリースする場合に非常に役立ちます。
これらのモデルが、質問に答えたり、システム(または特定のケースではシステムのセキュリティの弱点)について詳しく学ぼうとしている、より研究指向のプロジェクトに直接適用できるかどうかはわかりません。
アジャイル手法やスパイラルモデルなどの反復型/インクリメンタルモデルが基礎を形成するのに最も役立つと思います。各反復では、質問への回答や、使用するパラメーターの定義に取り組むことができます。これには、コードの記述が含まれる場合と含まれない場合があります。おそらく、さまざまな 科学的研究手法 も興味深い基盤を提供するかもしれません。
Life-Cyleはコードに依存することはありません。それはむしろ次のような他の要因に依存しています:
あなたのシナリオでは、 アジャイルライフサイクル方法論 が最も役立ちます。開発中に顧客を巻き込み、製品の許容可能な品質パラメータを検証する必要があるという理由。アジャイル方法論は、顧客のフィードバックを収集し、徐々に incremental に取り組むことにより、ハッキングソフトウェアを大幅に改善するのに役立ちます。
ハッキングは最近、強力な専門化を目の当たりにしており、金を稼ぐことを目的とする専門家間のコラボレーションに向けて、「ルルズのために」または名声を得るためにそれを行う単一のハッカーから離れています。その結果、 ブラックホールエクスプロイトキット のような本格的な商用「ハッキングキット」が作成され、プラグインのように特定のソフトウェアの弱点を簡単に統合できます。このような製品は、他のソフトウェア製品とまったく同じように開発されていると思います。
また、開発中の ゼロデイ攻撃の市場 もあるようです。