Quels sont les aspects uniques d'un logiciel Cycle de vie d'une attaque / d'un outil sur une vulnérabilité logicielle?


10

Dans mon université locale, il y a un petit club d'informatique étudiant d'environ 20 étudiants. Le club a plusieurs petites équipes avec des domaines de concentration spécifiques, tels que le développement mobile, la robotique, le développement de jeux et le piratage / la sécurité.

J'introduis quelques concepts de développement agile de base à quelques équipes, tels que les user stories, l'estimation de la complexité des tâches et l'intégration continue pour le contrôle de version et les builds / tests automatisés.

Je connais certains cycles de vie de développement de base, tels que cascade, spirale, RUP, agile, etc., mais je me demande s'il existe un cycle de vie de développement logiciel pour pirater / violer la sécurité. Certes, les pirates écrivent du code informatique, mais quel est le cycle de vie de ce code? Je ne pense pas qu'ils seraient trop préoccupés par la maintenance, car une fois que la violation a été trouvée et corrigée, le code qui a exploité cette violation est inutile.

J'imagine que le cycle de vie serait quelque chose comme:

  1. Trouver une lacune dans la sécurité
  2. Exploiter l'écart de sécurité
  3. Procurez-vous la charge utile
  4. Utiliser la charge utile

Quels types de différences (le cas échéant) existe-t-il pour le cycle de vie de développement d'un logiciel lorsque le but du produit est de violer la sécurité?


4
qui dit qu'il y a une quelconque formalité dans le piratage que ce soit
ratchet freak

1
Dang, quatre bonnes réponses déjà. Il va être difficile d'en choisir un seul.
David Kaczynski

@DavidKaczynski, vous pouvez également envisager de poser cette question sur la sécurité de l'information , pour obtenir le point de vue de ceux qui conçoivent réellement les différents types de logiciels. Et il y a de grandes différences, selon les exigences de sécurité ...
AviD

@AviD merci, je pense avoir obtenu ici d'excellentes réponses en ce qui concerne le fait que les cycles de développement des logiciels invasifs ne sont pas intrinsèquement différents. Je voudrais en savoir plus sur les objectifs ou les options des logiciels invasifs une fois la sécurité violée, comme infecter l'ordinateur avec un virus, créer une porte dérobée ou imiter un utilisateur pour obtenir des données.
David Kaczynski

1
@DavidKaczynski mais mon point est qu'il est intrinsèquement différent - ou plutôt, le développement d'un type est différent d'un autre type. Voir par exemple la réponse de Terry à titre d'exemple, et comparer celles-ci davantage aux virus, et encore à zero-days, et encore à Stuxnet, et ... .
AviD

Réponses:


7

De quel type de code parlez-vous?

Il existe de nombreux outils de sécurité utilisés dans le processus de piratage, y compris des scanners comme nmap , sqlmap , Nessus et bien d'autres. J'imagine qu'ils ont le même type de cycle de vie logiciel que n'importe quelle autre application.

D'un autre côté, il existe des codes d'exploitation. Codes écrits pour profiter d'un exploit et d'une situation très spécifiques. Je doute fort que ceux-ci aient besoin d'un cycle de vie. Cependant, de nombreux codes d'exploitation sont également intégrés à un cadre d'exploitation plus large comme Metasploit .


Après une discussion avec @AviD, je voudrais ajouter quelques points.

Ce sera très différent pour des situations spécifiques.

Certains codes d'exploitation peuvent être précipités pour prendre en compte la fenêtre avant le patch du jour zéro. Le code peut également être précipité pour d'autres raisons. Voir: CRIME - Comment battre le successeur de BEAST? pour un excellent exemple de cela. Une personne a écrit un morceau de code PoC pour prouver rapidement son point de vue. Aucune méthodologie de cycle de vie logiciel n'est prise en compte pour des codes comme celui-ci.

Les logiciels malveillants comme stuxnet ou FLAME le font probablement. Des logiciels emballés comme Metasploit le font.

Donc, la bonne réponse est ... cela dépend.


Nous n'avons pas encore eu de réunion officielle pour discuter des objectifs ou des voies possibles de violation de la sécurité, donc je ne peux pas dire quel type de code nous développerions (ou si nous utiliserions les logiciels / technologies existants pour atteindre nos objectifs). Je suis toujours intéressé à savoir quels types de techniques formelles existent pour tirer parti d'un système compromis, comme créer des portes dérobées, imiter des utilisateurs, infecter l'ordinateur avec un virus, etc. Je suppose que ce type de question peut être plus adapté à la sécurité informatique
David Kaczynski du

3

Je ne vois pas pourquoi il devrait y avoir un cycle de vie de développement spécifiquement différent selon le but du produit.

Un logiciel développé pour violer la sécurité peut avoir une durée de vie aussi longue que tout autre type de logiciel et nécessitera la même quantité de maintenance et de travail.

Différents créateurs de ces logiciels adopteront des cycles de vie différents selon leurs besoins.


3

Les modèles de développement que vous spécifiez ne sont que des modèles de développement. Ils sont extrêmement utiles lorsque vous effectuez un développement d'ingénierie - lorsque vous avez des exigences, lorsque vous devez créer ou modifier des architectures système ou des conceptions de composants, lorsque vous devez créer ou modifier un produit et les tests associés, et lorsque vous livrez à un client.

Je ne suis pas sûr que ces modèles puissent être directement appliqués à des projets plus axés sur la recherche, où vous essayez de répondre à des questions ou d'en savoir plus sur un système (ou les faiblesses de sécurité du système, dans votre cas particulier).

Je soupçonne que les modèles itératifs / incrémentaux, tels que les méthodes agiles et le modèle en spirale seraient les plus utiles pour former une base. Dans chaque itération, vous pouvez travailler à répondre à des questions ou à définir plus de paramètres à utiliser, ce qui peut inclure ou non l'écriture de code. Peut-être que diverses méthodes de recherche scientifique pourraient également fournir une base intéressante.


1

Le piratage informatique a récemment connu une forte professionnalisation, loin des pirates seuls qui le font "pour le lulz" ou pour gagner la gloire, vers une collaboration entre spécialistes dans le but de gagner de l'argent. Le résultat a été des «kits de piratage» commerciaux à part entière comme le kit d'exploitation Blackhole où des faiblesses logicielles spécifiques peuvent être facilement intégrées comme des plugins. Je suppose que ces produits sont développés à peu près exactement comme tous les autres logiciels.

Il existe également apparemment un marché en développement pour les exploits zero-day .


1

Life-Cyle n'est jamais dépendant du code. Cela dépend plutôt d'autres facteurs comme:

  1. Temps
  2. Budget
  3. Nature du client
  4. Nature du produit

Dans votre scénario, la méthodologie Agile Life Cyle serait la plus utile. La raison en est que vous devez impliquer votre client pendant le développement et vérifier les paramètres de qualité acceptables de votre produit. La méthodologie agile vous aiderait énormément à améliorer votre logiciel de piratage en collectant les commentaires de vos clients et en travaillant progressivement sur une base incrémentielle .


Cela semble un peu subjectif. Suggérez-vous que d'autres méthodes de cycle de vie n'impliquent pas le client pendant le développement ou ne vérifient pas les paramètres de qualité acceptables? Bien sûr, ce n'est pas unique à Agile.
Jay Stevens
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.