Zuerst einmal muß ich sagen, dass ich über die gesamte Situation ähnlich denke, wie @d0m1ng0 es hier formulierte.
Zur Übersichtlichkeit, hier einmal vier kurze Definitionen der beteiligten Personen:
Programmierer:
Ein Programmierer ist der fähigste Kodierer und hat nur Kenntnisse in ein einigen Programmiersprachen. Die grundlegende Funktion eines Programmierers besteht darin, die Codes für eine reibungslose und effiziente Anwendung zu schreiben. Sowohl die Hacker als auch die Entwickler sind Programmierer. Programmierer sind jedoch nicht dazu bestimmt, Hacker oder Entwickler zu sein.
Developer:
Entwickler schaffen Dinge, weshalb sie auch Entwickler genannt werden. Ein Entwickler kann Wege finden, um ein Problem zu identifizieren und zu lösen. Entwickler sind für die Verwaltung der Wartbarkeit, Leistung, Robustheit und Sicherheit ihrer Anwendung (Entwicklung) verantwortlich.
Hacker (Black Hat):
Ein Hacker ist eine kreative Person, die über Fachwissen in verschiedenen Bereichen wie Computerkenntnisse, Hardware-Entwicklung und Programmierung usw. verfügt. Hacker werden in Notfallsituationen benötigt und sind für ihre Schnelligkeit und Anpassungsfähigkeit bekannt. Ein Hacker ist definiert als eine Person, die Bugs oder jede andere Form von Fehlern benutzt, um in ein Computersystem einzudringen. Ein Hacker erstellt keine Anwendungen, sondern nimmt Änderungen daran vor, um in das komplexe System einzudringen.
Security-Researcher (White Hat):
Aufgrund der Zunahme von Cyber-Angriffen und der Entstehung neuer Malware erhöht sich die Nachfrage nach Sicherheitsforschern. Kurz und einfach gesagt, ein Sicherheitsforscher ist derjenige, der früher Fehler, Malware und Exploits in verschiedenen Webanwendungen gefunden hat und diese einfach den Firmeninhabern meldete und dafür Sicherheits-Kopfgelder erhielt. Im Gegensatz zu Hackern, wie wir Ihnen oben schon gesagt haben. Hacker verkaufen möglicherweise dieselben Daten oder könnten für falsche Assoziationen verwendet werden. Der Umfang der Jobs für Sicherheitsforscher ist recht groß.
Wie man direkt sehen kann, sind alle vier Beschreibungen ähnlich ausformuliert. Das liegt einfach daran, dass man zwischen den vier Tätigkeiten keine klaren Grenzen ziehen kann, sondern die Inhalte eher miteinander verschwimmen.
Ich denke, eine feste Definition der einzelnen Tätigkeiten ergibt sich immer erst, wenn die involvierten Personen sich selber fokussiert haben in ihrem Schaffen.
Meiner Meinung nach beschreibt auch der Wortlaut „FREAKS“ am Besten die Personen, welche über „Reverse Engeneering“ die Grundlagen schaffen, um anschliessend aus den gewonnenen Erkenntnissen igendwelche Massnahmen bzw. Gegenmassnahmen zu kreieren!
Fehlerhafte Produkte können entstehen, wenn Hersteller oberflächlich, mit fehlender fachlicher Kompetenz oder auch mit lückenhafter Projektstruktur arbeiten.
Ich bin aber auch der festen Überzeugung, dass die meisten Entwickler / Hersteller von Hardware (z.B. Intel) oder auch von Software im Vorfeld genau wissen, wieso und wo in ihren Produkten, Fehler und deren Quellen integriert sind!! Diese werden mit voller Absicht gerne „übersehen“, wenn das Endprodukt an sich zur Zufriedenheit funktioniert. In eigentlich allen Fällen des nicht sehen wollens, haben wirtschaftliche Aspekte den Vorang in der Unternehmensstruktur. Zudem gesellt sich gerne eine gewisse Überheblichkeit der Firmen in ihr Zukunftsdenken, frei nach dem Motto: „Das kann ja niemand so schnell merken!“. Solche Meinungen werden zum Beispiel dann gebildet, wenn es zum Zeitpunkt der Veröffentlichung noch keine Techniken, Ideen und Ansätze gibt, um den Fehler zu entdecken!
Überheblich daran ist die Tatsache, nicht über den eigenen „Tellerrand“ hinwegblicken zu müssen und es einfach der Zukunft zu überlassen, was danach passiert.
Und genau an dieser Stelle der Wertschöpfung setzt dann das sogenannte „Reverse Engeneering“ an!!
Reverse Engineering (englisch, bedeutet: umgekehrt entwickeln, rekonstruieren, Kürzel: RE; auch Nachkonstruktion) bezeichnet den Vorgang, aus einem bestehenden fertigen System oder einem meistens industriell gefertigten Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan erstellt.
Beispiele zum RE:
Hardware:
Um Hardware zwecks Nachbau zu untersuchen, wurden z. B. in der DDR Methoden entwickelt, bei denen ein Chip-Die lagenweise abgetragen wurde (durch Schleifen oder selektives Ätzen) und dann die Ebenen per Mikroskop untersucht wurden, um die Funktionalität und ihre Hardwarebasis herauszufinden. Auf diese Weise entstand ein Z80-Nachbau als U880. Diese Vorgehensweisen sind glaubhaft erklärt, da einige Firmen noch heute solche Dienste anbieten und erfolgreich erbringen.
Software:
Speziell bezogen auf Software wird darunter meistens einer der drei folgenden Vorgänge verstanden:
- Die Rückgewinnung des Quellcodes oder einer vergleichbaren Beschreibung aus Maschinencode. Z. B. von einem ausführbaren Programm oder einer Programmbibliothek, etwa mit einem Disassembler (kann Teil eines Debuggers sein) oder einem Decompiler.
- Die Erschließung der Regeln eines Kommunikationsprotokolls aus der Beobachtung der Kommunikation, z. B. mit einem Sniffer.
- Die nachträgliche Erstellung eines Modells, ausgehend von bereits vorliegendem Quellcode, in der objektorientierten Programmierung.
Fazit:
Die Fachleute des Reverse Engeneerings sind also letztendlich die Schnittstellen zwischen dem Hersteller des Produktes und der anschliessend entwickelten Malware!
Die Herstellung und / oder die Weiterentwicklung von Malware-Programmen aber auch der Infrastrukturen dahinter (z.B. Bot-Netze usw.) unterliegt letztendlich den gleichen Gesetzmässigkeiten, wie zuvor beim „Originalprodukt“ auch.
Ein Malware-Produkt ist heutzutage zumeist nicht die Tat eines einzelnen. Dahinter haben sich mitlerweile ganze „Schattenindustrien“ gebildet, die sich mit der Entwicklung und vor allem natürlich der weltweiten Verbreitung beschäftigen! Natürlich gibt es aber auch noch den schrulligen „Coder“ der in seinem abgedunkelten Hinterzimmer Ideen austüfftelt, ein Produkt entwickelt und dieses auf die Menschheit loslässt - aus welchen Beweggründen auch immer…