ソフトウェアの脆弱性に対する攻撃/ツールのソフトウェアライフサイクルの固有の側面は何ですか?


10

私の地元の大学には、約20人の学生からなる小さな学生向けコンピューティングクラブがあります。クラブには、モバイル開発、ロボット工学、ゲーム開発、ハッキング/セキュリティなど、特定の分野に重点を置いた小さなチームがいくつかあります。

ユーザーストーリー、タスクの複雑さの見積もり、バージョン管理と自動ビルド/テストの継続的な統合など、いくつかのチームにいくつかの基本的なアジャイル開発コンセプトを紹介しています。

ウォーターフォール、スパイラル、RUP、アジャイルなど、いくつかの基本的な開発ライフサイクルに精通していますが、セキュリティをハッキング/侵害するためのソフトウェア開発ライフサイクルのようなものがあるのだろうかと思っています。確かに、ハッカーはコンピュータコードを書いていますが、そのコードのライフサイクルは何ですか?いったん違反が発見されてパッチが適用されると、その違反を悪用したコードは役に立たなくなるので、彼らがメンテナンスにあまり関心を持つことはないと思います。

ライフサイクルは次のようになると思います:

  1. セキュリティのギャップを見つける
  2. セキュリティのギャップを悪用する
  3. ペイロードの調達
  4. ペイロードを利用する

製品の目的がセキュリティ違反である場合、ソフトウェアの開発ライフサイクルにはどのような違いがありますか(ある場合)?


4
ハッキングにはなんらかの形式があると言っている人
ラチェットフリーク

1
ダン、すでに4つの良い答え。1つだけを選ぶのは難しいでしょう。
David Kaczynski、

@DavidKaczynski では、さまざまなタイプのソフトウェアを実際に設計している人たちの見解を得るために、情報セキュリティについて質問することもできます。そして、セキュリティ要件によっては大きな違いがあります...
AviD

@AviDのおかげで、侵略的なソフトウェアの開発ライフサイクルは本質的に変わらないという事実に関して、私はここでいくつかの優れた回答を得たと思います。コンピューターがウイルスに感染したり、バックドアが作成されたり、ユーザーがデータを取得するように模倣したりするなど、セキュリティが侵害された場合の侵入型ソフトウェアの目標やオプションについて詳しく知りたいと思います。
David Kaczynski、

1
@DavidKaczynskiしかし、私のポイントは、それがあることであるかではなく、一種類を開発する別のタイプは異なっている-は本質的に異なります。たとえば、Terryの回答を例として参照し、それらをウイルス、さらにゼロデイ、そしてStuxnetと比較してみてください。適切に設計されているものもあれば、一夜に捨てられるものもあり、さまざまなコンテキストや要件によって異なります。 。
AviD 2012年

回答:


7

どのタイプのコードについて話しているのですか?

nmapsqlmapNessusなどのスキャナーを含む、ハッキングのプロセスで使用される多くのセキュリティツールがあります。他のアプリケーションと同じタイプのソフトウェアライフサイクルがあると思います。

一方、エクスプロイトコードがあります。非常に特定のエクスプロイトと状況を利用するために書かれたコード。私はそれらにライフサイクルがまったく必要ないことを非常に疑っています。ただし、多くのエクスプロイトコードは、Metasploitなどの大規模なエクスプロイトフレームワークにも統合されています。


@AviDとの議論の後、いくつかの点を付け加えたいと思います。

特定の状況では非常に異なります。

ゼロデイにパッチが適用される前のウィンドウを考慮に入れるために、いくつかのエクスプロイトコードが急いで出される可能性があります。他の理由でコードが急いで出る可能性もあります。参照:CRIME-BEASTの後継者を倒す方法は?この良い例です。人は彼のポイントをすばやく証明するためにPoCコードを書きました。このようなコードでは、ソフトウェアのライフサイクル方法論は考慮されません。

stuxnetやFLAMEなどの武器化されたマルウェアはおそらくそうします。Metasploitのようなパッケージ化されたソフトウェアはそうします。

正解は...場合によります。


目標やセキュリティ違反の可能性について話し合うための正式な会議はまだありません。そのため、どのタイプのコードを開発するのか(または既存のソフトウェア/テクノロジーを使用して目標を達成するのか)は言えません。バックドアの作成、ユーザーの真似、コンピューターのウイルスへの感染など、侵害されたシステムを利用するためにどのような形式的な手法があるのか​​を知りたいと思っています。ITセキュリティ
David Kaczynski、

3

製品の目的に応じて、特に異なる開発ライフサイクルが必要な理由はわかりません。

セキュリティを侵害するために開発されたソフトウェアは、他の種類のソフトウェアと同じくらいの寿命があり、同じ量のメンテナンスと作業が必要になります。

そのようなソフトウェアの異なる作成者は、彼らのニーズに応じて異なるライフサイクルを採用します。


3

指定する開発モデルは、開発モデルです。これらは、技術開発を行う場合、つまり要件がある場合、システムアーキテクチャまたはコンポーネントの設計を作成または変更する必要がある場合、製品および関連するテストをビルドまたは変更する必要がある場合、および顧客にリリースする場合に非常に役立ちます。

これらのモデルが、より多くの研究指向のプロジェクトに直接適用できるかどうかはわかりません。そこでは、質問に回答したり、システム(または特定のケースではシステムのセキュリティの弱点)についてさらに学習したりしようとしています。

アジャイル手法やスパイラルモデルなどの反復/増分モデルが、基礎を形成するのに最も役立つと思います。各反復では、質問に答えたり、操作するパラメーターをさらに定義したりすることができます。これには、コードの記述が含まれる場合と含まれない場合があります。おそらく、さまざまな科学研究手法も興味深い基盤を提供するかもしれません。


1

ハッキングは最近、強力な専門化を目の当たりにしており、金を稼ぐことを目的とする専門家間のコラボレーションに向けて、「ルルズのために」または名声を得るためにそれを行う単一のハッカーから離れています。その結果、特定のソフトウェアの弱点をプラグインのように簡単に統合できるBlackholeエクスプロイトキットのような本格的な商用「ハッキングキット」が生まれました。このような製品は、他のソフトウェア製品とまったく同じように開発されていると思います。

また、ゼロデイエクスプロイトの市場も発展しているようです


1

Life-Cyleはコードに依存しません。それは次のような他の要因にかなり依存しています:

  1. 時間
  2. 予算
  3. 顧客の性質
  4. 製品の性質

あなたのシナリオでは、アジャイルライフサイクルの方法論が最も役立ちます。理由は、開発中に顧客を巻き込み、製品の許容可能な品質パラメーターを検証する必要があるためです。アジャイル方法論は、顧客のフィードバックを収集し、段階的に徐々に作業することにより、ハッキングソフトウェアを大幅に改善するのに役立ちます。


これは少し主観的です。他のライフサイクル方法では、開発中に顧客を関与させたり、許容可能な品質パラメーターを検証したりしないことを提案していますか?もちろん、これはアジャイルに固有のものではありません。
ジェイスティーブンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.