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:
- Trouver une lacune dans la sécurité
- Exploiter l'écart de sécurité
- Procurez-vous la charge utile
- 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é?
la source
Réponses:
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.
la source
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.
la source
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.
la source
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 .
la source
Life-Cyle n'est jamais dépendant du code. Cela dépend plutôt d'autres facteurs comme:
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 .
la source