Forensisch neugierig sein: Prozess des Skriptschreibens
Unsere Reihe zu tiefgreifender kriminaltechnischer Forschungs-Methodik in drei Schritten begann mit„Der Prozess des Entdeckens“, führte zu „Der Prozess des Testens“ und „Der Prozess des Findens und Analysierens“, und endet heute mit unserem finalen Blogbeitrag „Der Prozess des Skriptschreibens“.
Unsere vorherigen Blogbeiträge bauten auf Jessica Hydevon Magnet Forensics und Cesar Quezada von Basis Technology sowie Kommentare von den Experten für kriminaltechnische Forschung Cheeky4n6Monkey und Heather Mahalik. Wir wenden uns nun an Preston Miller und Chapin Bryce, Autoren des kürzlich erschienenen Buchs The Python Digital Forensics Cookbook Preston und Chapin haben ein Skript zur Verwendung mit Magnet AXIOM geschrieben und beantworten freundlicherweise unsere Fragen über Ihren Prozess.
Magnet Forensics: Wie haben Sie zuerst mit dem Skriptschreiben begonnen? Wie lange dauerte Ihr Lernprozess bis Sie dort angekommen waren, dass Sie sich wohl damit fühlten, Ihre Skripte im Job zu nutzen und zu teilen?
Preston: Ein Praktikum in den Sommerferien bei einer Firma für Cyber-Ermittlungen war der Anstoß für mich, das Programmieren zu lernen. Ich hatte meinen Hintergrund in den Naturwissenschaften und mir fehlten die Informatik-Fähigkeiten, die die meisten meiner Kollegen hatten. Ich habe einen großen Teil dieses Sommers damit verbracht, die Besonderheiten von Python kennenzulernen, während sich mir offenbarte, was für eine wünschenswerte und nützliche Fähigkeit es war. Nach einem halben Jahr fühlte ich mich sicher genug, an Open-Source-Projekten zu arbeiten und meinen Code zu teilen. Bald darauf begann ich, anderen Studenten Python und seine Nutzung in forensischen Ermittlungen in meinem Graduiertenprogramm beizubringen.
Chapin: Ich habe mit dem Skripten bei einem Projekt an der Uni angefangen, bei dem wir Python für die Automatisierung digitaler Forensik-Workflows genutzt haben. In den nächsten Monaten wurde ich sicherer im Schreiben und Entwickeln meines eigenen Codes. Nach etwa einem Jahr in der Python-Entwicklung fühlte ich mich sicher genug, um meine Entwicklungen mit der Community zu teilen und mehr Skripte in meine Ermittlungen einzuführen. Später in dem Jahr gab ich Präsentationen für meine Mit-Studierenden, um über die Nutzung von Python in der Forensik zu lernen und präsentierte ein Python-basiertes Projekt mit meinem Entwicklungsteam bei verschiedenen Branchen-Konferenzen.
Magnet Forensics: Was ist leicht daran, eine neue Skriptsprache zu lernen? Was ist schwer, und wie können Lerner das ausgleichen?
Preston und Chapin: Eine neue Sprache zu lernen ist schwer. Es gibt einige Faktoren, die den Prozess beschleunigen können, darunter frühere Programmiererfahrung, aber man muss bereit sein, dem Ganzen Zeit zu geben und erwarten, dass man anfangs oft vor frustrierenden Problemen steht. Trotzdem hat Python eine sehr geradlinige Syntax im Gegensatz zu anderen Programmiersprachen und der Entwicklungszyklus ist vergleichsweise sehr schnell. Diese Features machen es zu einer tollen Sprache für eine Branche, die schnelles Denken und noch schnellere Lösung voraussetzt.
Magnet Forensics: Empfehlen Sie es, sich Ziele und Zeiträume zu setzen, um das Skripten zu erlernen? Wenn ja, können Sie uns Beispiele geben?
Preston und Chapin: Wiederholung ist der Schüssel zum Erfolg. Wenn man eine neue Computer- oder andere Sprache lernt, sollte man sich jeden Tag Zeit nehmen, neue Inhalte zu lernen oder sein Verständnis zuvor gelernter Konzepte zu festigen. Selbst wenn Sie nur 30 Minuten Zeit haben, hilft tägliche Wiederholung dabei, die Programmier-Synapsen zu stärken und so verbessern sich Ihre Programmierfähigkeiten schneller.
Manchmal ist das schwerste daran, ein Skript zu entwickeln, sich zu entscheiden, wo man anfängt und was man automatisiert. Um es sich leichter zu machen, nehmen Sie eine Aufgabe, die Sie in Ihrer Fallbearbeitung regelmäßig durchführen und automatisieren Sie einen Schritt davon. Fügen Sie Ihrem Skript Funktionalität hinzu, bis Sie die gesamte Aufgabe automatisieren können (wenn möglich). So lernen Sie sowohl die Sprache zu verwenden als auch wann Sie das tun können.
Ein Problem, das wir bei jungen forensischen Python-Entwicklern sehen, ist übermäßige Abhängigkeit und Verwendung der Sprache in Szenarien, in denen es schon andere Tools gibt oder andere Schritte durchgeführt werden können, um eine bestimmte Aufgabe zu erledigen. In diesen Szenarien müssen Sie das Rad nicht neu erfinden und unnötige Zeit mit der Entwicklung von Code zu verschwenden.
Außerdem sollten Sie beachten, dass man nicht alles automatisieren muss. Automatisierung ist kein Allheilmittel. Es gibt bestimmte Aufgaben, bei denen Automatisierung helfen kann, und solche, die komplizierter sind als dass sie es wert wären. Denken Sie daran, wenn Sie darüber nachdenken, welche repetitiven Prozesse Sie regelmäßig in einer Ermittlung durchführen.
Magnet Forensics: Neben dem Setzen von Zielen, wie kann man sich als Neuling sonst noch Zeit zur Recherche und dem Schreiben von Skripten nehmen? Welche täglichen, wöchentlichen und/oder monatlichen Aktivitäten sind Teil des Lernens einer neuen Sprache?
Preston und Chapin: Außer Zeit müssen Sie sich, genau wie beim Lernen einer normalen Sprache, in die Sprache einfühlen, um die besten Ergebnisse zu erzielen. Es gibt jede Menge Ressourcen, online und gedruckt, darunter unser erstes Buch Learning Python for Forensics, das als Starthilfe für ein tieferes Verständnis der Sprache und ihrer Fähigkeiten in Cyber-Ermittlungen dienen kann.
Magnet Forensics: Wie wichtig ist die Zusammenarbeit im Forschungs- und Skriptprozess? Wie können Ermittler professionelle Beziehungen aufbauen, die zu Zusammenarbeit führen?
Preston und Chapin: Sehr wichtig. Mit anderen zusammenzuarbeiten ist ein großartiger Schritt, um neue Tricks zu lernen, das Verständnis für grundsätzliche Programmierkonzepte zu festigen und während des Lernprozesses motiviert zu bleiben. Nachdem wir bei einem Sommerferien-Praktikum zusammengearbeitet hatten und zu unserer jeweiligen Alma Mater zurückgekehrt waren, starteten wir ein Open-Source-Projekt, das dazu entwickelt wurde, Android-Artefakte zu verarbeiten und automatisierte Berichte zu erstellen. So konnten wir voneinander lernen und den Entwicklungszyklus zusammen entdecken.
Mit Kollegen aus der Branche zusammenzuarbeiten ist ein großartiges Instrument, um solche Beziehungen zu bauen und zu festigen. Außerdem gibt es eine Menge Open-Source-Projekte, an denen man teilnehmen kann, um berufliche Beziehungen (und Skripte) zu entwickeln. Viele dieser Projekte haben Beitrags-Handbücher und nehmen gerne Leute aller Kompetenzniveaus auf.
Magnet Forensics: Erzählen Sie uns mehr über Ihr Buch, und was für Sie daran attraktiv war, mit Magnet zusammenzuarbeiten, um den macOS daily.out-Protokoll-Syntaxanalysierer zu entwickeln? Was ging in die Entwicklung dieses Skripts ein und was können Leser sonst noch von dem Buch erwarten?
Preston und Chapin: Wir haben das Python Digital Forensics Cookbook geschrieben, um zu verdeutlichen, wie viele Möglichkeiten es gibt, Python im Kontext jeder Cyber-Ermittlung anzuwenden. Das Programmieren ist für uns ein tolles Tool; wir wollten unser Wissen mit der Community teilen und anderen Ermittlern, die ihre Toolbox erweitern wollen, helfen. Das Buch besteht aus über 60 Rezepten, die ein ganzes Spektrum forensischer Prozesse abdecken. Unsere knappen Rezepte haben einen Ansatz „ohne Schnickschnack“, um häufige Herausforderungen in Ermittlungen zu lösen und decken ein breites Spektrum an Artefakten und Datenquellen ab. Die Beispiele, die wir abdecken, verbessern die Präzision und Effizienz der Analysefähigkeiten jedes Ermittlers – unabhängig von der Situation.
Wir freuen uns sehr, unser daily.out Protokoll-Syntaxanalyse-Skript in dem Buch und in der Magnet Artefakt-Börse zur Anwendung in macOS-Systemen zu teilen. Unsere Zusammenarbeit mit Magnet hat uns gezeigt, wie einfach es ist, auf eine bereits leistungsstarke forensische Analyse-Suite aufzubauen und sie durch Unterstützung für benutzerdefinierte Artefakte mithilfe von Python zu erweitern. In weniger als 50 Code-Zeilen konnten wir ein alleinstehendes Skript zu einem Plugin transformieren, dass die Verarbeitungs-, Prüfungs- und Bericht-Engine von AXIOM nutzt.
Magnet Forensics: Welchen Rat würden Sie Ermittlern geben, die coden wollen, aber nicht wissen, wo sie anfangen sollen?
Preston und Chapin: Engagieren Sie sich in der Community. Mit der Einführung von Github und der Verbreitung von Open-Source-Projekten gibt es jede Menge Möglichkeiten für junge unternehmerische Menschen, die lernen wollen, wie man Code entwickelt. Unserer Erfahrung nach reicht es, Enthusiasmus und die Fähigkeit, irgendetwas beizutragen zu zeigen, um bei den meisten Open-Source-Projekten mitzumachen. Die Entwickler freuen sich, gleich denkende Menschen zu finden, die Zeit und Energie investieren wollen, um zu ihren Projekten beizutragen.
Wir danken Preston und Chapin für das Gespräch über ihren Prozess, ihr Buch und dafür, dass sie AXIOM in ihre Recherche mit einbezogen haben!