An meiner örtlichen Universität gibt es einen kleinen Studenten-Computerclub mit ungefähr 20 Studenten. Der Club hat mehrere kleine Teams mit bestimmten Schwerpunkten wie mobile Entwicklung, Robotik, Spieleentwicklung und Hacking / Sicherheit.
Ich stelle einigen Teams einige grundlegende agile Entwicklungskonzepte vor, z. B. User Stories, das Schätzen der Komplexität von Aufgaben und die kontinuierliche Integration für die Versionskontrolle und automatisierte Builds / Tests.
Ich bin mit einigen grundlegenden Entwicklungslebenszyklen vertraut, wie z. B. Wasserfall, Spirale, RUP, Agilität usw., aber ich frage mich, ob es einen Softwareentwicklungslebenszyklus für das Hacken / Verletzen von Sicherheit gibt. Sicherlich schreiben Hacker Computercode, aber wie ist der Lebenszyklus dieses Codes? Ich glaube nicht, dass sie sich zu sehr mit der Wartung befassen würden, da der Code, der diesen Verstoß ausgenutzt hat, nutzlos ist, sobald der Verstoß gefunden und gepatcht wurde.
Ich stelle mir vor, der Lebenszyklus wäre ungefähr so:
- Finden Sie eine Sicherheitslücke
- Sicherheitslücke ausnutzen
- Nutzlast beschaffen
- Nutzlast nutzen
Welche Unterschiede (falls vorhanden) gibt es für den Entwicklungslebenszyklus von Software, wenn der Zweck des Produkts darin besteht, die Sicherheit zu verletzen?
quelle
Antworten:
Über welche Art von Code sprechen Sie?
Es gibt viele Sicherheitstools, die beim Hacken verwendet werden, darunter Scanner wie nmap , sqlmap , Nessus und viele andere. Ich würde mir vorstellen, dass sie die gleiche Art von Software-Lebenszyklen haben wie alle anderen Anwendungen.
Auf der anderen Seite gibt es Exploit-Codes. Codes, die geschrieben wurden, um einen ganz bestimmten Exploit und eine bestimmte Situation auszunutzen. Ich bezweifle sehr, dass diese überhaupt einen Lebenszyklus benötigen. Viele Exploit-Codes sind jedoch auch in ein größeres Exploit-Framework wie Metasploit integriert .
Nach einer Diskussion mit @AviD möchte ich einige Punkte hinzufügen.
Es wird für bestimmte Situationen sehr unterschiedlich sein.
Einige Exploit-Codes werden möglicherweise ausgegeben, um das Fenster zu berücksichtigen, bevor der Zero-Day gepatcht wird. Code kann auch aus anderen Gründen herausgeschleudert werden. Siehe: KRIMINALITÄT - Wie kann man den BEAST-Nachfolger schlagen? für ein gutes Beispiel dafür. Eine Person hat einen PoC-Code geschrieben, um seinen Standpunkt schnell zu beweisen. Für solche Codes wird keine Software-Lebenszyklus-Methodik berücksichtigt.
Waffen-Malware wie Stuxnet oder FLAME ist wahrscheinlich der Fall. Gepackte Software wie Metasploit.
Die richtige Antwort lautet also ... es kommt darauf an.
quelle
Ich verstehe nicht, warum es je nach Zweck des Produkts einen spezifisch unterschiedlichen Entwicklungslebenszyklus geben sollte.
Software, die entwickelt wurde, um die Sicherheit zu verletzen, kann eine so lange Lebensdauer haben wie jede andere Art von Software und erfordert den gleichen Aufwand an Wartung und Arbeit.
Verschiedene Entwickler solcher Software werden je nach ihren Anforderungen unterschiedliche Lebenszyklen annehmen.
quelle
Die von Ihnen angegebenen Entwicklungsmodelle sind genau das - Entwicklungsmodelle. Sie sind äußerst nützlich, wenn Sie technische Entwicklung durchführen - wenn Sie Anforderungen haben, wenn Sie Systemarchitekturen oder Komponentendesigns erstellen oder ändern müssen, wenn Sie ein Produkt und die zugehörigen Tests erstellen oder ändern müssen und wenn Sie es an einen Kunden freigeben.
Ich bin mir nicht sicher, ob diese Modelle direkt auf forschungsorientiertere Projekte angewendet werden können, bei denen Sie versuchen, Fragen zu beantworten oder mehr über ein System (oder die Sicherheitsschwächen des Systems in Ihrem speziellen Fall) zu erfahren.
Ich würde vermuten, dass die iterativen / inkrementellen Modelle wie die agilen Methoden und das Spiralmodell am nützlichsten sind, um eine Basis zu bilden. In jeder Iteration können Sie darauf hinarbeiten, Fragen zu beantworten oder weitere Parameter zu definieren, mit denen gearbeitet werden soll. Dazu gehört möglicherweise das Schreiben von Code. Vielleicht bieten auch verschiedene wissenschaftliche Forschungsmethoden eine interessante Grundlage.
quelle
Das Hacken hat in letzter Zeit eine starke Professionalisierung erfahren, weg von einzelnen Hackern, die es "für den Lulz" tun oder um Ruhm zu erlangen, hin zur Zusammenarbeit zwischen Spezialisten mit dem Ziel, Geld zu verdienen. Das Ergebnis waren vollwertige kommerzielle "Hacking-Kits" wie das Blackhole-Exploit-Kit, in die bestimmte Software-Schwachstellen wie Plugins leicht integriert werden können. Ich würde annehmen, dass solche Produkte ziemlich genau wie alle anderen Softwareprodukte entwickelt werden.
Es gibt offenbar auch einen sich entwickelnden Markt für Zero-Day-Exploits .
quelle
Life-Cyle ist niemals codeabhängig. Es hängt eher von anderen Faktoren ab wie:
In Ihrem Szenario ist die Agile Life Cyle-Methode am nützlichsten. Grund dafür ist, dass Sie Ihren Kunden in die Entwicklung einbeziehen und die akzeptablen Qualitätsparameter Ihres Produkts überprüfen müssen. Agile Methodology würde Ihnen helfen, immens Ihre Hacking Software zur Verbesserung Ihres Kunden - Feedback über das Sammeln und dann auf nach und nach Arbeits inkrementalen Basis.
quelle