Ich möchte diesen Artikel mit der Bemerkung einleiten, dass, wenn Sie wie ich ein Neuling in der Malware-Analyse sind und nur über ein begrenztes Budget verfügen, ein Studium ohne Zugang zu Kursmaterialien vielleicht nicht die beste Option für Sie ist. Die beste Möglichkeit, die SANS GREM-Zertifizierung ohne eine Finanzierungsquelle für den Kurs zu erlangen, ist die Bewerbung für das SANS Work Study-Programm für den FOR610-Kurs. Als Gegenleistung für die Unterstützung des Kursleiters dürfen Sie den Kurs bewerten und die Zertifizierungsprüfung ablegen. Außerdem erhalten Sie Kopien der Bücher und Kursunterlagen, die aufgrund der SANS-Richtlinie über die Weitergabe von Kursunterlagen nicht auf andere Weise erworben werden können. Die Gesamtkosten für dieses Programm sind tatsächlich niedriger als das, was ich aus eigener Tasche für die Prüfung bezahlt habe.
Um am Work Study Programm teilzunehmen, muss Ihre Bewerbung jedoch angenommen werden und Sie müssen in der Lage sein, 6 Tage lang an einer SANS-Konferenz teilzunehmen. Ich habe diese Möglichkeit nicht wahrgenommen, weil die SANS-Konferenzen in meiner Gegend mit anderen wichtigen Terminen kollidierten. Außerdem hielt ich es nicht für angemessen, meinen Arbeitgeber zu bitten, die Kosten für den Kurs zu übernehmen, da er nicht direkt mit meiner Projektrolle zusammenhing. Aus diesen Gründen kam eine SANS-Schulung nicht in Frage.
Nachdem ich nun geklärt habe, warum ich das getan habe, was ich getan habe, kommen wir nun zum „Wie“.
Was ich lernen musste
Direkt von der SANS Website, für das GREM, das ich brauchte:
- Windows Assembler-Konzepte für Reverse Engineering – Was man in IDA Pro macht, warum man Assembler- und C-Kenntnisse braucht
- Gemeinsame Merkmale von Windows Malware – API-Funktionen, Threads, Strukturen
- Gründliche Analyse bösartiger und geschützter ausführbarer Dateien – Was Sie in IDA Pro nach einiger Übung tun
- Analyse bösartiger Dokumente – Angreifer legen Skripte in Dateien ab
- Analyse bösartiger Webbrowser-Skripte – Angreifer legen Skripte im Internet ab, Befehls- und Kontrollverkehr fließt über die Leitung
- Speicherforensik – Volatilität
Die Bedeutung von Assemblersprache und C
Bevor ich auf die verschiedenen Ressourcen eingehe, die ich zur Vorbereitung auf die Prüfung verwendet habe, möchte ich anmerken, dass es unerlässlich ist, zumindest ein wackeliges Verständnis von x86-Assembler zu haben. Ohne diese Kenntnisse kann man keine portable ausführbare Datei oder Shellcode zurückentwickeln. Das ist wirklich nicht so schlimm, wie es scheint, denn Assembler ist im Kern nur Arithmetik, die Computer zum Arbeiten bringt. Alles, was Sie wissen müssen, um mit dem binären Reverse Engineering zu beginnen, sind die x86-Register, Variablentypen (word, dword, int, char, etc.), Stack-Grundlagen und einige Programmablaufanweisungen. Hier ist eine Ressource, die ich für das Erlernen der Grundlagen hilfreich fand:
Eine funktionierende Kenntnis von C ist wichtig, aber Sie werden das meiste wissen, was Sie brauchen, wenn Sie wissen, wie man in einer C-ähnlichen Sprache wie Java programmiert. Die einzigen neuen Konzepte, die Sie für das Reverse Engineering von Malware benötigen, sind Zeiger, Speicherzuweisung und der Heap. Was ich brauchte, habe ich aus diesen beiden Quellen gelernt:
Reverse Engineering „Reverse Engineering“
Ich habe mich entschlossen, diesen Artikel mit „Grey Box Testing“ zu betiteln, weil ich im Nachhinein festgestellt habe, dass ich im Grunde genommen genau das getan habe, um für diese Prüfung zu lernen. Als jemand, der neu auf dem Gebiet der Malware-Analyse war, wusste ich nur wenig von dem, was mich erwarten würde. Während meiner Vorbereitung auf die Prüfung habe ich mich auf folgende Informationsquellen bezogen:
- Buchempfehlungen von Personen, die vor drei bis fünf Jahren die Prüfung bestanden haben, ohne für den Kurs zu bezahlen
- Der offizielle Lehrplan des SANS FOR610-Kurses
- Spickzettel zur Analyse bösartiger Dateien, erstellt von Lenny Zeltser
Ich werde diese Punkte in Abschnitte unterteilen, um zu zeigen, was ich aus jeder Quelle gelernt habe.
Buchempfehlungen
Die Auswahl nützlicher Bücher ist sehr wichtig für den GREM-Erfolg, da man einen ganzen Arm voll davon als Referenzen in die GIAC-Prüfungen mitnehmen darf. Die meisten Inhaber der GREM-Zertifizierung geben gerne eine Liste der (nicht von SANS stammenden) Bücher weiter, die sie zur Vorbereitung auf die Prüfung verwendet haben. Mein erster Schritt bestand darin, mir die empfohlenen Bücher von so vielen GREM-Absolventen anzusehen, wie ich finden konnte. Die Bücher, die mir am häufigsten empfohlen wurden, waren:
- „Practical Malware Analysis“- Ein fantastischer Leitfaden zur Verhaltensanalyse, zum Reverse Engineering und zum Besiegen von Anti-Analysen. Dieses Buch ist unverzichtbar, Sie werden keine Quelle finden, in der es nicht empfohlen wird. Zusätzlich zu den Informationen enthält es sehr hilfreiche Übungen zur Vertiefung der Kenntnisse.
- „The Malware Analyst’s Cookbook“ – Ein Leitfaden für eine Vielzahl von Malware-Analyse-Tools. Die Übungen und Skripte sind sehr veraltet, aber die Übersichten über die Tools sind sehr nützlich. Ich habe die Abschnitte über Speicherforensik, Browser-Skript-Malware und die Analyse bösartiger Dokumente zur Vorbereitung auf meine Prüfung verwendet.
- „The Art of Memory Forensics“ – Es ist hilfreich, dies nicht unbedingt als primäre Ressource zu haben, sondern als ergänzende Ressource zum „Malware Analyt’s Cookbook“-Abschnitt über Speicherforensik. Viele der Volatility-Plugins, die Sie benötigen, werden nicht im Detail behandelt, und Informationen aus dem MAC sollten mit Informationen aus diesem Buch verglichen werden. Dieses Buch deckt auch eine Menge Windows-Interna ab, die für die Prüfung nützlich sind.
- „Windows Internals 6 or 7“ – Ich persönlich denke, dass diese Bücher zu viel sind. Wenn man mit Windows vom Sicherheitsstandpunkt aus vertraut ist, sind die vorherigen Bücher alles, was man braucht, um Windows Internals zu verstehen. Ich würde niemals empfehlen, diese Bücher mit in die Prüfung zu nehmen oder sie gar zu indizieren. Alle relevanten Informationen sind bereits im „Art of Memory Forensics“ oder auf der MSDN-Website zu finden.
- „The IDA Pro Book“ – Ich glaube nicht, dass Ihnen jemand raten wird, dieses Buch mit in die Prüfung zu nehmen, aber ob Sie es überhaupt verwenden, ist wirklich eine Frage der Art und Weise, wie Sie Tools lernen. Ich habe IDA Pro mit Hilfe von PMA und ein wenig Tüftelei in meiner Freizeit erlernt, so dass ich es am Ende nicht gebraucht habe. Wenn Sie Tools am besten lernen, indem Sie lange Bücher mit wenigen Bildern oder Illustrationen lesen, ist dies das perfekte Buch für Sie.
Der SANS FOR610 Syllabus
Dieses ist ziemlich einfach. Die SANS GREM-Prüfung ist die Prüfung, die mit dem SANS FOR610-Kurs verbunden ist, also kann man davon ausgehen, dass das, was man im Kurs lernt, auch in der Prüfung angewendet wird. Ich hatte zwar keinen Zugang zum Kurs, aber ich hatte Zugang zum Lehrplan auf der SANS-Website, der einen Überblick über die im Kurs behandelten Themen und Tools bietet. Der FOR610-Lehrplan war für die Werkzeuge nützlicher als für die Themen, obwohl dies nicht für alle DFIR-Kurse der SANS gilt. Einige scheinen nur wenige Tools aufzulisten, haben aber eine Aufschlüsselung aller Themen. Ich denke, es hängt davon ab, wie technisch oder wie theoriebasiert ein Kurs ist.
Die Liste der Tools auf dem Lehrplan ist vielleicht nicht umfassend, aber es ist die einzige Liste, die Sie bekommen. Machen Sie sich mit jedem Werkzeug auf der Liste vertraut, wie sie aussehen, wie sie funktionieren und was sie tun. Ich beginne in der Regel auf der Github-Seite eines Tools und gehe von dort aus weiter. „The Malware Analyst’s Cookbook“ und die Website von Lenny Zeltser bieten beide großartige Tool-Referenzen.
Wollen Sie eingrenzen, was Sie für die Prüfung wissen müssen? Wenn Ihnen ein Thema zu umfangreich erscheint oder ein Tool zu wichtig ist, um im Lehrplan nicht erwähnt zu werden, ist es wahrscheinlich weder im Kurs noch in der Prüfung enthalten.
Lenny Zeltser’s Infosec Cheat Sheets
Lenny Zeltser, einer der SANS FOR610-Ausbilder, der sowohl bei der Erstellung des Kurses als auch der Prüfung mitgeholfen hat, veröffentlicht Spickzettel zu Themen wie Reverse Engineering von bösartigem Code und der Analyse von bösartigen Dokumenten. Dies sind zufällig einige der Themen, auf die sowohl im FOR610-Lehrplan als auch auf der GREM-Webseite verwiesen wird. Es kann eine gute Idee sein, den Inhalt dieser Spickzettel zu studieren und sich Notizen zu machen.
Ein Spickzettel, der Ihnen bei den „Practical Malware Analysis“-Übungen und den x86-Assembler-Aufrufkonventionen wirklich helfen kann:
Nächste Schritte: Labs, Special Topics, and Proper Indexing
Ich empfehle, die Labs in „Practical Malware Analysis“ und den Abschnitt über Speicherforensik in „The Malware Analyst’s Cookbook“ mitzumachen, während Sie diese Bücher lesen. Machen Sie eine Übung pro Nacht, eine Übung alle zwei Nächte, was immer für Sie am besten funktioniert. Die Übungszeit ist flexibel, aber die Übung ist nicht optional. Übung ist der beste Weg, um das Verständnis des Materials zu festigen, besonders wenn Sie mit vielen Tools arbeiten. Der beste Weg, Werkzeuge zu lernen, ist, sie zu benutzen. Für die Forensik bösartiger Dokumente kann es nützlich sein, einige Online-Workshops von Didier Stevens zu besuchen, da er viele der im FOR610-Lehrplan in diesem Abschnitt erwähnten Tools entwickelt hat.
Zwischen all den Übungen und der Indexierung brauchte ich eine Denkpause. Ich beschloss, mich einem Thema zu widmen, das mir bei der Prüfung helfen, mich aber auch von der anstrengenden Prüfungsvorbereitung ablenken würde: dem Schreiben von grundlegenden Exploits und Shellcode. Nach diesem dreiwöchigen Vorbereitungsurlaub kam ich erfrischt und motivierter als je zuvor zurück. Wenn Sie sich erschöpft oder demotiviert fühlen, empfehle ich Ihnen, sich ein Thema zu suchen, das Spaß macht und mit Assembler und Reverse Engineering zu tun hat.
Nachdem Sie alle Bücher, die Sie verwenden werden, durchgearbeitet und sich eine Denkpause gegönnt haben, ist es an der Zeit, sich auf Ihre erste Übungsprüfung vorzubereiten. Viele Leute empfehlen, keinen Index für die Übungsklausur zu verwenden, aber ich denke, dass es wichtig ist, einen Index zu erstellen, bevor man eine Übungsklausur ablegt. Zum Teil, weil Sie anhand von Übungsprüfungen feststellen können, wo die Lücken in Ihrem Index liegen, zum Teil, weil das Anlegen eines Indexes die beste Möglichkeit ist, alle Informationen zu überprüfen, die Sie in vielleicht monatelangem Lernen gelernt haben.
Was ist ein Index?
Neben Ihren Nachschlagewerken dürfen Sie auch Notizen in die Übungsprüfung mitnehmen. Traditionell nehmen die meisten Leute einen Index aller Bücher, die sie gelesen haben, mit in die Prüfung. Indizes werden in der Regel als Tabellenkalkulationen mit gefilterten Spalten erstellt. Ich empfehle, den Index farblich zu kennzeichnen. Ein Index sollte alle wichtigen Themen, Seitenzahlen für jedes Thema und Anmerkungen zu jedem Thema enthalten. Mein Index enthielt auch den FOR610-Bereich, von dem ich annahm, dass jedes Thema dazugehört. In meinen Notizen habe ich wichtige Dinge wie Windows-API-Funktionen, Strukturen und Volatility-Plugins hervorgehoben. Die Seitenzahlen sollten auch in den Büchern, die Sie zur Prüfung mitbringen werden, mit Registern versehen sein. Ich habe meine Registerkarten farblich an den Index angepasst, was eine große Hilfe war, wenn ich etwas schnell nachschlagen musste.
Bei dieser Prüfung werden viele Themen in Online-Ressourcen behandelt, aber nicht in Ihren Büchern. Ich füge gerne Notizen zu diesen Themen mit einer leeren Seitenzahl in den Index ein. Das ist übersichtlicher, als für jedes Thema, das nicht in einem Buch steht, ein eigenes Blatt mit Notizen anzulegen.
Beachten Sie, dass Ihr Index wahrscheinlich ganz anders aussehen wird als meiner, denn Sie werden einen Stil finden, der Ihnen am besten passt. Verwenden Sie niemals den Index einer anderen Person, da dies sowohl gegen die SANS-Richtlinien verstößt als auch als Lernhilfe unbrauchbar ist, da er nicht von Ihnen erstellt wurde. Aus demselben Grund wird denjenigen, die den Kurs absolviert haben und über SANS-Bücher mit vorgefertigten Indizes verfügen, in der Regel empfohlen, ihre eigenen Indizes zu erstellen, anstatt diese Indizes zu verwenden. Kopieren Sie niemals Informationen direkt von einer Website oder Wort für Wort aus einem Buch in den Index. Sie können dies in einem separaten Notizblatt tun, wenn Sie wollen, aber nicht in Ihrem Index. Dies ist kein Verstoß gegen die Regeln, sondern nur eine gute Faustregel. Alles, was in Ihrem Index steht, sollte mit Ihren eigenen Worten und von Ihrer eigenen Hand geschrieben sein. Die Erstellung der Kartei ist für die Prüfungsvorbereitung von entscheidender Bedeutung.
Jede Kartei, die Sie vor der ersten Übungsprüfung erstellen, wird Lücken aufweisen, insbesondere wenn Sie den Kurs nicht besucht haben. Haben Sie keine Angst davor, mit einem 20- oder 30-seitigen Index in Ihre erste Übungsprüfung zu gehen. Ich kam mit einem 25-seitigen Index an, aber mein Index am Abend vor der echten Prüfung war über 40 Seiten lang.
Praxisprüfungen
Bevor ich anfange: Kaufen Sie NUR OFFIZIELLE Übungsprüfungen von der GIAC-Website, www.giac.org. Verwenden Sie NIEMALS eine andere Quelle für Übungsprüfungen. Dies ist nach den GIAC-Prüfungsrichtlinien verboten und gilt als Betrug. Diese inoffiziellen Übungsprüfungen verwenden gestohlene, veraltete Prüfungsfragen und sind nicht als Lernressource zu betrachten. Offizielle Übungsprüfungen können Sie hier kaufen:
Nachdem das nun geklärt ist, empfehle ich Ihnen, vor dem Kauf der Prüfung eine Übungsprüfung abzulegen. Der Test wird mit zwei Übungsprüfungen geliefert, aber bis dahin haben Sie bereits 2.000 Dollar ausgegeben und wissen nicht, ob Sie für die Prüfung bereit sind. Die erste Übungsprüfung ist eine gute Möglichkeit, um herauszufinden, wie weit Sie davon entfernt sind, die Prüfung kaufen zu können. Wenn Sie sie bestehen, empfehle ich Ihnen, die Prüfung so bald wie möglich zu kaufen. Wenn nicht, erfahren Sie, in welchen Bereichen Sie Schwächen haben, so dass Sie sich auf diese konzentrieren können, bevor Sie die Prüfung kaufen.
Die ersten und nachfolgenden Übungstests sind auch eine gute Möglichkeit, Lücken in Ihrem Index zu füllen. Wie ich bereits erwähnt habe, ist der FOR610-Lehrplan nicht umfassend, und die Übungstests sind die einzige Möglichkeit, Hilfsmittel und Themen zu finden, die Sie noch lernen müssen. Vermeiden Sie es, nur das, woran Sie sich bei den Antworten erinnern, in Ihren Index zu schreiben. Dies ist ein guter Weg, um zukünftige Übungstests zu bestehen, da sie alle eine gemeinsame Fragenbank haben. Es ist aber auch eine gute Möglichkeit, in der echten Prüfung durchzufallen. Das ist auch der Grund, warum ich nicht empfehle, mehr als drei Übungstests zu machen, denn die abnehmenden Erträge geben Ihnen ein falsches Gefühl der Sicherheit. Nutzen Sie stattdessen das, was Sie falsch gemacht haben, als Ausgangspunkt für weitere Nachforschungen. Übungstests sind auch eine gute Möglichkeit, um herauszufinden, wie gut Sie die einzelnen Themen beherrschen müssen.
Übungsprüfungen machen Sie auch damit vertraut, wie die GIAC-Prüfungen funktionieren. Ich war neu bei GIAC und mit CompTIA vertraut, so dass ich nicht darauf vorbereitet war, dass viele Fragen viele richtige Antworten und eine „gute“ Antwort haben würden. Ich musste auch lernen, wann ich Fragen „überspringen“ sollte. Es gibt nur eine begrenzte Anzahl von Fragen, die man überspringen und später wiederholen kann, und wenn man eine Frage beantwortet und abschickt, kann man nicht mehr zu ihr zurückkehren. Die Fragen sehr sorgfältig zu lesen, scheint ein Klischee zu sein, aber es war eine legitime Fähigkeit, die ich entwickeln musste, um mich auf die Prüfung vorzubereiten. Ich weiß wirklich zu schätzen, dass es bei GIAC in keiner Phase einen Ersatz für Studium, Übung und angewandte Anstrengung gibt.
Bevor Sie die echte Prüfung ansetzen, sollten Sie wissen, dass die Übungsprüfung einfacher ist als die echte Prüfung, so dass Sie eine um 5-10 Punkte höhere Punktzahl erreichen sollten als nötig. Dies variiert zwischen den verschiedenen GIAC-Prüfungen. Ich habe gesehen, dass viele, die andere SANS DFIR-Prüfungen abgelegt haben, sagen, dass ihre Übungsprüfungen schwieriger waren als ihre Prüfung.
Die GIAC-Prüfung „Anwendung“
Wenn Sie Ihre GREM-Prüfung kaufen, müssen Sie eine Anwendung ausfüllen und zwei Tage auf die Genehmigung warten, bevor Sie Ihre kostenlosen Übungsprüfungen planen oder abrufen können. Ich glaube nicht, dass irgendjemand wirklich darauf eingegangen ist, was man da eintragen soll, aber ich würde mir keinen Stress machen. Ich glaube nicht, dass sie viel Wert auf Ihre Qualifikationen legen, aber sie interessieren sich wahrscheinlich dafür, wie Sie gelernt haben und was Sie für die Prüfung mitbringen. Wenn Sie die Bewerbung ausfüllen, seien Sie ehrlich. Scheuen Sie sich nicht, bereits vorhandene Zertifizierungen, die nicht von SANS stammen, Kurse, die Sie bei SANS oder anderen Anbietern absolviert haben, Ihre derzeitige Position, die Bücher, mit denen Sie sich auf die Prüfung vorbereitet haben, und die Grundlage Ihres Indexes zu nennen. Sie werden wahrscheinlich innerhalb eines Tages oder so zugelassen.
Exam Regrets
Mein größtes Bedauern ist wahrscheinlich, dass ich alles, was mit netzwerkbezogener Verhaltensanalyse und skriptbasierter Malware zu tun hat, bis zur letzten Sekunde aufgeschoben habe. Ich war auf diesen Abschnitt nicht vorbereitet, und obwohl ich die Prüfung mit 81,3 % bestanden habe, wäre meine Punktzahl in diesen Abschnitten viel höher gewesen, wenn ich mehr geübt hätte, anstatt nur etwas zu diesem Thema zu lesen. Ich habe zu viel Wert auf die ausführbare Analyse gelegt, selbst nachdem ich herausgefunden hatte, dass dies mein schwächster Bereich war. Meine Empfehlung ist, sich vor allem auf die schwächsten Bereiche zu konzentrieren, die man in den Übungstests sieht.
Meine nächsten Schritte
Speicherforensik, netzwerkbezogene Verhaltensanalyse und Debugging im Kernelmodus sind drei Dinge, über die ich gerne mehr lernen würde. Ich habe mich entschlossen, alle diese Themen in einem Rutsch zu behandeln, indem ich Rootkits analysiere. Ich werde bald einen Artikel darüber veröffentlichen, wie man ein Labor zur Analyse von Win32-Rootkits einrichtet, und einen weiteren, in dem ich ein Kernel-Mode-Rootkit-Beispiel (wahrscheinlich Cutwail, Änderungen vorbehalten) unter Verwendung von Tools zur Verhaltensanalyse, Netzwerk-Tools wie INetSim, dem Kernel-Mode-Debugger WinDBG und Volatility-Plugins für die Rootkit-Speicherforensik analysiere.
Ich sollte wahrscheinlich auch einige weitere dokumentenbasierte Javascript- und VB-Makro-Beispiele analysieren, um sicherzustellen, dass mein Verständnis der Techniken zur Analyse dieser Arten von Malware solide ist.