Grey Box Testing : Comment j’ai réussi l’examen GREM de GIAC sans suivre le cours

Je veux préfacer cet article en disant que si vous êtes comme moi, nouveau dans l’analyse des logiciels malveillants et avec un budget, étudier sans avoir accès aux supports de cours peut ne pas être la meilleure option pour vous. La meilleure façon de poursuivre la certification SANS GREM sans source de financement pour le cours est de demander le programme SANS Work Study pour le cours FOR610. En échange de votre assistance à l’instructeur du cours, vous serez autorisé à évaluer le cours et à passer l’examen de certification. Vous recevrez également des copies des livres et du matériel de cours, qui ne peuvent être obtenus d’aucune autre manière en raison de la politique du SANS sur le partage du matériel de cours. Le coût total de ce programme est en fait inférieur à ce que j’ai payé de ma poche juste pour l’examen.

Pour participer au programme d’étude de travail, cependant, votre demande doit être acceptée, et vous devez être en mesure d’assister à une conférence SANS pendant 6 jours. Je n’ai pas poursuivi cette option parce que les conférences SANS dans ma région entraient en conflit avec d’autres éléments importants de mon emploi du temps. Je n’ai pas non plus jugé bon de demander à mon employeur de couvrir le coût de la formation, car elle n’était pas directement liée à mon rôle dans le projet. Pour ces raisons, la formation SANS était hors de question.

Maintenant que j’ai établi pourquoi j’ai fait ce que j’ai fait, entrons dans le « comment ».

Ce que j’avais besoin d’apprendre

Suite au site web du SANS, pour le GREM dont j’avais besoin :

  • Concepts d’assemblage Windows pour la rétro-ingénierie – Ce que vous faites dans IDA Pro, pourquoi vous avez besoin de connaissances en assemblage et en C
  • Caractéristiques communes des logiciels malveillants Windows – Fonctions API, threads, structures
  • Analyse approfondie des exécutables malveillants et protégés – Ce que vous faites dans IDA Pro après un peu de pratique
  • Analyse de documents malveillants – Les attaquants mettent des scripts dans les fichiers
  • Analyse de scripts de navigateurs web malveillants -Les attaquants mettent des scripts sur internet, le trafic de commande et de contrôle circule sur le fil
  • Memory forensics – Volatilité

L’importance du langage d’assemblage et du C

Avant d’entrer dans les différentes ressources que j’ai utilisées pour préparer l’examen, je veux noter qu’il est vital d’avoir au moins une maîtrise bancale de l’assemblage x86. Vous ne pouvez vraiment pas faire de l’ingénierie inverse sur un exécutable portable ou un shellcode sans cela. Ce n’est pas aussi grave qu’il n’y paraît, l’assembleur n’est qu’une arithmétique qui permet aux ordinateurs de faire des choses. Tout ce que vous devez savoir pour commencer à apprendre la rétroconception binaire, ce sont les registres x86, les types de variables (word, dword, int, char, etc.), les bases de la pile et quelques instructions de déroulement du programme. Voici une ressource que j’ai trouvée utile pour apprendre les bases:

Une connaissance pratique du C est importante, mais vous saurez la plupart de ce dont vous avez besoin si vous savez comment programmer dans un langage similaire au C, comme Java. Les seuls nouveaux concepts dont vous aurez besoin pour la rétroconception de logiciels malveillants sont les pointeurs, l’allocation de mémoire et le tas. J’ai appris ce dont j’avais besoin grâce à ces deux ressources :

Reverse Engineering « Reverse Engineering »

J’ai décidé de titrer cet article « Grey Box Testing » parce qu’avec le recul, je me suis rendu compte que c’était essentiellement ce que j’ai fait pour étudier cet examen. Comme quelqu’un qui était nouveau dans l’analyse des logiciels malveillants, je ne savais pas vraiment à quoi m’attendre. Tout au long de ma préparation à l’examen, je me suis référé à ces sources d’information :

  • Recommandations de livres postées par ceux qui ont passé l’examen sans payer le cours il y a trois à cinq ans
  • Le syllabus officiel du cours SANS FOR610
  • Les antisèches d’analyse de fichiers malveillants créées par Lenny Zeltser

Je vais diviser ces éléments en sections pour montrer ce que j’ai appris de chaque source.

Recommandations de livres

Choisir des livres utiles est très important pour réussir le GREM, car vous êtes autorisé à en emporter une brassée dans les examens GIAC comme références. La plupart des titulaires de la certification GREM partageront volontiers une liste des livres (non-SANS) qu’ils ont utilisés pour se préparer avec les personnes qui se demandent où commencer à étudier pour l’examen. J’ai commencé par consulter les listes de lecture recommandées par le plus grand nombre d’anciens du GREM que j’ai pu trouver. Les livres que j’ai trouvés les plus systématiquement recommandés étaient :

  • « Practical Malware Analysis »- Un guide fantastique sur l’analyse comportementale, l’ingénierie inverse et la mise en échec de l’anti-analyse. Ce livre est non négociable, vous ne trouverez pas une source qui ne le recommande pas. En plus de l’information, il est livré avec des laboratoires très utiles pour renforcer vos connaissances.
  • « The Malware Analyst’s Cookbook » – Un guide pour une grande variété d’outils d’analyse de logiciels malveillants. Les laboratoires et les scripts sont très dépassés, mais les aperçus des outils étaient très utiles. J’ai utilisé les sections sur l’analyse judiciaire de la mémoire, les logiciels malveillants de script de navigateur et l’analyse des documents malveillants pour préparer mon examen.
  • « The Art of Memory Forensics » – Il est utile d’avoir ceci pas nécessairement comme une ressource principale, mais comme une ressource supplémentaire à la section « Malware Analyt’s Cookbook » sur l’analyse judiciaire de la mémoire. La plupart des plugins Volatility dont vous aurez besoin ne sont pas couverts en détail, et les informations du MAC doivent être croisées avec celles de ce livre. Ce livre couvre également beaucoup de Windows Internals qui sont utiles pour l’examen.
  • « Windows Internals 6 ou 7 » – Je pense personnellement que ces livres sont excessifs. Si vous êtes familier avec Windows du point de vue de la sécurité, les livres précédents sont tout ce dont vous avez besoin pour comprendre Windows Internals. Je ne recommanderais jamais d’emmener ces livres avec vous à l’examen ou même de les indexer. Toutes les informations pertinentes sont déjà dans « Art of Memory Forensics » ou sur le site MSDN.
  • « The IDA Pro Book » – Je ne pense pas que quelqu’un vous dira d’emporter ce livre à l’examen, mais que vous l’utilisiez ou non du tout est vraiment une question de comment vous apprenez les outils. J’ai appris IDA Pro en utilisant PMA et en bricolant un peu pendant mon temps libre, donc je n’en ai pas eu besoin. Si vous apprenez mieux les outils en lisant de longs livres avec peu d’images ou d’illustrations, c’est le livre parfait pour vous.

Le Syllabus SANS FOR610

Celui-ci est assez simple. L’examen SANS GREM est l’examen associé au cours SANS FOR610, donc il est sûr de supposer que ce que vous apprenez dans le cours est ce que vous appliquerez à l’examen. Je n’ai pas eu accès au cours, mais j’ai pu consulter le syllabus sur le site Web du SANS, qui donne un aperçu des sujets et des outils couverts par le cours. Le syllabus du cours FOR610 était plus utile pour les outils que pour les sujets, bien que cela ne soit pas vrai pour tous les cours de DFIR du SANS. Certains semblent énumérer peu d’outils, mais présentent une ventilation de chaque sujet. Je pense que cela dépend de la façon dont le cours est technique vs théorique.

La liste des outils sur le syllabus peut ne pas être complète, mais c’est la seule liste que vous obtiendrez. Familiarisez-vous avec chaque outil de la liste, à quoi ils ressemblent, comment ils fonctionnent et ce qu’ils font. Je commence généralement par la page Github d’un outil et je poursuis à partir de là. « The Malware Analyst’s Cookbook » et le site Web de Lenny Zeltser ont tous deux d’excellentes références d’outils.

Vous voulez réduire ce que vous devez savoir pour l’examen ? Si un sujet semble un peu large ou un outil trop important pour que le syllabus ne le mentionne pas, il n’est probablement pas dans le cours ou dans l’examen.

Lenny Zeltser’s Infosec Cheat Sheets

Lenny Zeltser, l’un des instructeurs SANS FOR610 qui a aidé à rédiger à la fois le cours et l’examen, publie des antisèches pour des sujets comme la rétro-ingénierie de code malveillant et l’analyse de documents malveillants. Il s’agit là des mêmes sujets que ceux mentionnés dans le syllabus du cours FOR610 et sur la page Web du GREM. Cela peut être une bonne idée d’étudier et de prendre des notes sur le contenu de ces cheat sheets.

Un cheat sheet qui peut vraiment vous aider avec les laboratoires « Practical Malware Analysis » et les conventions d’appel de l’assemblage x86:

Next Steps : Labos, sujets spéciaux et indexation appropriée

Je recommande de suivre les labos dans « Practical Malware Analysis » et la section memory forensics de « The Malware Analyst’s Cookbook » pendant que vous lisez ces livres. Faites un laboratoire par nuit, un laboratoire tous les deux soirs, ce qui vous convient le mieux. Le temps de pratique est flexible, mais la pratique n’est pas facultative. La pratique est le meilleur moyen de renforcer la compréhension de la matière, surtout lorsque vous avez affaire à de nombreux outils. La meilleure façon d’apprendre les outils est de les utiliser. Pour l’investigation de documents malveillants, il peut être utile de suivre certains ateliers en ligne de Didier Stevens, car il a écrit de nombreux outils mentionnés dans le syllabus FOR610 sous cette section.

Entre la réalisation de tous les laboratoires et l’indexation, j’avais besoin de faire une pause cérébrale. J’ai décidé de poursuivre un sujet qui m’aiderait à l’examen, mais qui m’éloignerait également de la préparation épuisante de l’examen : l’écriture d’exploit et de shellcode de base. Je suis revenu revigoré et plus motivé que jamais après trois semaines de vacances de préparation. Je recommande de trouver un sujet amusant qui touche à l’assemblage et à la rétro-ingénierie à apprendre si vous vous sentez épuisé ou démotivé.

Après avoir passé en revue tous les livres que vous utiliserez, fait quelques laboratoires et pris une pause cérébrale, il est temps de se préparer à votre premier examen pratique. Beaucoup de gens recommandent de ne pas utiliser d’index pour votre examen blanc, mais je pense qu’il est essentiel de créer un index avant de tenter un examen blanc. En partie parce que les examens pratiques peuvent être utilisés pour vous dire où se trouvent les trous dans votre index, en partie parce que l’indexation est la meilleure façon de revoir toutes les informations que vous avez apprises au cours de ce qui peut avoir été des mois d’étude.

Qu’est-ce qu’un index ?

Avec vos livres de référence, vous êtes autorisé à prendre des notes dans l’examen pratique. Traditionnellement, la plupart des gens prennent un index de tous les livres qu’ils ont lus à l’examen. Les index sont généralement créés sous forme de feuilles de calcul avec des colonnes filtrées. Je vous recommande d’utiliser un code couleur pour votre index. Un index doit inclure tous les sujets importants, les numéros de page pour chaque sujet et les notes pour chaque sujet. Mon index comprend également le domaine FOR610 auquel je suppose que chaque sujet appartient. Dans mes notes, j’ai souligné les éléments importants tels que les fonctions de l’API Windows, les structures et les plugins Volatility. Les numéros de page doivent également être indiqués dans les livres que vous apporterez à l’examen. J’ai codé mes onglets en couleur pour correspondre à l’index, ce qui m’a beaucoup aidé lorsque j’avais besoin de chercher quelque chose rapidement.

Un exemple d’entrée d’index. Notez que ce sujet n’est pas nécessairement lié à l’examen, et a été choisi au hasard dans « Practical Malware Analysis » à des fins de démonstration.

Avec cet examen, il y aura beaucoup de sujets couverts dans les ressources en ligne, mais aucun de vos livres. J’aime ajouter des notes sur ces sujets à l’index avec un numéro de page vierge. C’est plus ordonné que de créer une feuille de notes séparée pour chaque sujet qui ne se trouve pas dans un livre.

Notez que votre index sera probablement très différent du mien, car vous trouverez un style qui vous convient le mieux. N’utilisez jamais l’index d’une autre personne, car c’est à la fois une violation des directives de la SANS et inutile comme aide à l’étude car il n’a pas été fait par vous. Pour cette même raison, il est généralement recommandé aux personnes qui ont suivi le cours et qui possèdent des livres SANS comprenant des index préétablis de créer leur propre index au lieu d’utiliser ces index. Ne copiez jamais d’informations dans l’index directement à partir d’un site Web ou mot pour mot à partir d’un livre. Vous pouvez le faire dans une feuille de notes séparée si vous le souhaitez, mais pas dans votre index. Il ne s’agit pas d’une violation des règles, mais simplement d’une bonne règle de base. Tout ce qui figure dans votre index doit être rédigé dans vos propres mots, de votre propre main. L’acte de créer l’index est vital pour la préparation à l’examen.

Tout index que vous créez avant le premier examen pratique va avoir des trous, surtout si vous n’avez pas suivi le cours. N’ayez pas peur de vous présenter à votre premier examen pratique avec un index de 20 ou 30 pages. Je suis arrivé avec un index de 25 pages, mais mon index la veille de l’examen réel faisait plus de 40 pages.

Examens blancs

Avant de commencer : N’achetez QUE des tentatives d’examens pratiques OFFICIELS sur le site Web de GIAC, www.giac.org. N’utilisez JAMAIS aucune autre source pour les examens pratiques. Ceci est interdit par les directives de l’examen GIAC et considéré comme de la triche. Ces examens pratiques non officiels utilisent des questions d’examen volées et périmées et ne doivent pas être considérés comme une ressource d’étude. Achetez les tentatives d’examen pratique officiel ici:

Maintenant que c’est sorti de la voie, je vous recommande de prendre un examen pratique avant d’acheter le test. Le test est livré avec deux examens de pratique, mais au moment où vous y êtes, vous avez dépensé 2 000 $ et n’avez aucune idée si vous êtes prêt pour l’examen. Votre premier examen blanc est un excellent moyen de savoir si vous êtes encore loin de pouvoir acheter l’examen. Si vous le réussissez, je vous recommande d’acheter l’examen dès que possible. Sinon, cela vous indiquera les domaines dans lesquels vous êtes faible afin que vous puissiez vous concentrer sur ceux-ci avant d’acheter l’examen.

Le premier examen pratique et les suivants sont également un excellent moyen de combler les trous dans votre index. Comme je l’ai mentionné précédemment, le syllabus FOR610 n’est pas complet, et les examens pratiques sont le seul moyen de trouver les outils et les sujets que vous devez étudier davantage. Évitez de vous contenter d’écrire dans votre index ce dont vous vous souvenez des réponses. C’est un excellent moyen de réussir les futurs examens pratiques, car ils partagent tous une banque de questions. C’est aussi un excellent moyen d’échouer à l’examen réel. C’est aussi la raison pour laquelle je ne recommande pas de passer plus de trois examens blancs, les rendements décroissants vous donneront un faux sentiment de sécurité. Utilisez plutôt ce que vous avez mal compris comme point de départ pour une recherche plus approfondie. Les examens pratiques sont également un excellent moyen de déterminer à quel point vous devez connaître chaque sujet.

Les examens pratiques vous permettront également de vous familiariser avec le fonctionnement des examens GIAC. J’étais nouveau à GIAC et familier avec CompTIA, donc je n’étais pas préparé à l’idée que de nombreuses questions auraient plusieurs réponses correctes et une « bonne » réponse. J’ai également dû apprendre quand il fallait « sauter » des questions. Vous disposez d’un nombre limité de questions que vous pouvez sauter et auxquelles vous pouvez revenir plus tard, et si vous répondez à une question et la soumettez, vous ne pourrez pas y revenir. Lire les questions très attentivement semble être un cliché, mais c’est une compétence légitime que j’ai dû développer pour me préparer à l’examen. J’apprécie vraiment qu’avec GIAC, rien ne remplace à aucun moment l’étude, la pratique et l’effort appliqué.

Avant de programmer l’examen réel, sachez que l’examen pratique est plus facile que l’examen réel, vous devriez donc obtenir un score de 5 à 10 points plus élevé que nécessaire. Cela varie en fait entre les différents examens GIAC. J’ai vu beaucoup de personnes qui ont passé d’autres examens GIAC SANS dire que leurs examens pratiques étaient plus difficiles que leur examen.

La « demande » d’examen GIAC

Lorsque vous achetez votre examen GREM, vous devrez remplir une demande et attendre deux jours pour l’approbation avant de pouvoir programmer ou accéder à vos examens pratiques gratuits. Je ne pense pas que quelqu’un ait vraiment approfondi ce qu’il faut mettre là-dessus, mais je ne stresserais pas à ce sujet. Je doute qu’ils accordent trop d’importance à vos qualifications, mais ils s’intéressent probablement à la façon dont vous avez étudié et à ce que vous apportez à l’examen. Lorsque vous remplissez le formulaire de candidature, soyez honnête. N’ayez pas peur de mentionner les certifications non-SANS que vous avez déjà, les cours que vous avez suivis avec eux ou d’autres, votre poste actuel, les livres que vous avez utilisés pour préparer l’examen, et ce sur quoi votre index est basé. Vous serez probablement approuvé dans un jour ou deux.

Regrets de l’examen

Mon plus grand regret est probablement de mettre tout ce qui concerne l’analyse comportementale liée au réseau et les logiciels malveillants basés sur des scripts jusqu’à la dernière seconde. Je n’étais pas préparé pour cette section, et bien que j’ai réussi l’examen avec un 81,3%, mon score dans ces sections aurait été beaucoup plus élevé si j’avais fait plus de pratique au lieu de me contenter de lectures liées à ce sujet. J’ai trop mis l’accent sur l’analyse exécutable, même après avoir compris que c’était mon point faible. Ma recommandation est de se concentrer sur les domaines les plus faibles que vous voyez dans vos tests pratiques avant toute autre chose.

My Next Steps

Les forensics de mémoire, l’analyse comportementale liée au réseau et le débogage en mode noyau sont trois choses que j’aimerais apprendre davantage. J’ai décidé de les atteindre toutes en une seule fois en analysant les rootkits. Je publierai bientôt un article sur la façon de mettre en place un laboratoire pour analyser les rootkits Win32, et un autre où j’analyse un échantillon de rootkit en mode kernel (probablement Cutwail, sous réserve de modifications) à l’aide d’outils d’analyse comportementale, d’outils réseau comme INetSim, du débogueur en mode kernel WinDBG et des plugins Volatility pour l’analyse judiciaire de la mémoire des rootkits.

Je devrais aussi probablement analyser quelques échantillons supplémentaires de javascript et de macros VB basés sur des documents pour m’assurer que ma compréhension des techniques utilisées pour analyser ces types de logiciels malveillants est solide.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.