Faire preuve de curiosité en ce qui concerne la criminalistique Le processus d’écriture des scripts
Notre série de méthodologie avancée sur la recherche criminalistique en trois étapes, qui a commencé avec« Le processus de découverte », nous a menés vers « Le processus de test »et « Le processus d’identification et d’analyse », se termine aujourd’hui avec notre dernier blog, « Le processus de rédaction des scripts ».
Nos articles de blog précédents portaient sur des recherches menées par Jessica Hyde de Magnet Forensics et Cesar Quezada de Basis Technology, ainsi que sur les commentaires de Cheeky4n6Monkey et Heather Mahalik, des experts en criminalistique numérique. Nous nous tournons maintenant vers Preston Milleret Chapin Bryce, les auteurs du livre récemment publié « The Python Digital Forensics Cookbook » Ayant développé un script à utiliser avec Magnet AXIOM, Preston et Chapin ont accepté de répondre à nos questions sur leur processus.
Magnet Forensics : Comment avez-vous découvert l’écriture de script ? Combien de temps vous a-t-il fallu pour apprendre et vous sentir suffisamment à l’aise pour utiliser et partager des scripts en mission ?
Preston : C’est un stage d’été dans une entreprise de cyberenquêtes qui m’a donné envie de me familiariser avec le programme. J’ai suivi une formation en science physique, mais mes compétences en informatique étaient limitées, contrairement à la plupart de mes collègues. Cet été-là, j’ai passé beaucoup de temps à explorer tous les contours de Python, car il est devenu évident qu’il s’agissait d’une compétence recherchée et utile. En six mois, j’étais devenu suffisamment à l’aise pour commencer à travailler sur des projets open source et pour partager mon code. Peu de temps après, j’ai commencé à faire découvrir Python et son application aux enquêtes criminalistiques à d’autres étudiants de mon programme de mastère.
Chapin : Je me suis lancé dans l’écriture de script lors d’un projet à l’université, pour lequel nous avons utilisé Python dans l’automatisation des flux de travail de criminalistique numérique. Au fil des mois, je me suis familiarisé avec l’écriture et le développement de mon propre code. Environ un an après avoir commencé le développement avec Python, j’ai pu commencer à partager mes avancées avec la communauté et à introduire davantage de scripts dans mes enquêtes. Quelques mois plus tard, j’ai organisé des présentations auprès d’autres étudiants sur l’utilisation de Python pour la criminalistique et j’ai présenté un projet basé sur Python avec mon équipe de développement lors de plusieurs conférences du secteur.
Magnet Forensics : Quel aspect de l’apprentissage d’un nouveau langage de script est facile ? Qu’est-ce qui est difficile, et comment les apprenants peuvent-ils pallier ces difficultés ?
Preston et Chapin : Il est difficile d’apprendre un nouveau langage. Il existe certains facteurs qui peuvent aider à accélérer le processus, notamment une expérience en programmation, mais soyez prêt à y consacrer du temps et à rencontrer rapidement et régulièrement des problèmes frustrants. Ceci étant dit, un langage comme Python présente une syntaxe très simple contrairement à d’autres langages de programmation et, à titre de comparaison, le cycle de vie du développement est très rapide. Ces fonctionnalités en font un excellent langage pour un secteur qui requiert de réfléchir rapidement et d’avoir des solutions encore plus rapides.
Magnet Forensics : Est-il recommandéde se fixer des objectifs et des échéances pour apprendre l’écriture de script ? Si c’est le cas, pouvez-vous nous donner des exemples ?
Preston et Chapin : La répétition est cruciale. Lorsque vous apprenez n’importe quel langage (informatique ou autre), prévoyez du temps chaque jour et concentrez-vous sur l’apprentissage de nouveaux contenus ou sur la consolidation de votre compréhension des concepts précédemment appris. Même si vous ne pouvez y consacrer que trente minutes, la répétition quotidienne aide à renforcer ces synapses et améliorera plus rapidement vos capacités de programmation.
Parfois, la partie la plus difficile du développement d’un script consiste à déterminer où il faut commencer et ce qu’il faut automatiser. Pour faciliter les choses, prenez une tâche que vous effectuez régulièrement dans vos dossiers et automatisez une étape de cette tâche. Continuez d’ajouter de la fonctionnalité à votre script jusqu’à ce que vous automatisiez l’intégralité de la tâche (si possible). Ce faisant, vous apprendrez comment utiliser le langage et quand l’utiliser.
Le problème que nous remarquons souvent chez les jeunes développeurs Python en criminalistique est la trop grande dépendance au langage et son utilisation excessive dans des scénarios où d’autres outils existent ou d’autres étapes peuvent être suivies pour accomplir une certaine tâche. Dans ces scénarios, il faut éviter de réinventer la roue et de passer du temps à développer des codes inutilement.
De plus, l’automatisation ne peut pas être appliquée à toutes les situations comme s’il s’agissait d’une panacée. Il existe certaines tâches qui peuvent être facilitées par l’automatisation et d’autres que l’automatisation compliquerait inutilement. Gardez ces points à l’esprit lorsque vous réfléchissez aux processus répétitifs que vous effectuez régulièrement dans le cadre de vos enquêtes.
Magnet Forensics : Au-delà des objectifs à fixer, quelles autres solutions peuvent permettre aux nouveaux programmeurs de trouver du temps pour les recherches et l’écriture de scripts ? Quels genres d’activités quotidiennes, hebdomadaires ou mensuelles permettent d’apprendre un nouveau langage ?
Preston et Chapin : Au-delà du temps nécessaire, et comme pour l’apprentissage d’une langue étrangère, vous devez vous immerger dans la langue pour obtenir les meilleurs résultats. Il existe un certain nombre de ressources en ligne et imprimées, notamment notre premier livre « Learning Python for Forensics »,qui peut être utilisé pour faciliter la compréhension du langage et de ses capacités au sein de l’espace de cyberenquête.
Magnet Forensics : Quelle importance portez-vous aux collaborations dans les processus de recherche et d’écriture de script ? Comment les examinateurs peuvent-ils établir les relations professionnelles qui mènent aux collaborations ?
Preston et Chapin : Les collaborations sont très importantes. Travailler avec les autres est une excellente façon d’apprendre de nouvelles astuces, de consolider votre compréhension des principaux concepts de programmation et de rester motivé tout au long du processus d’apprentissage. Après avoir collaboré lors d’un stage d’été et lors de notre retour dans nos universités respectives, nous nous sommes lancés dans un projet open source conçu pour traiter les artéfacts Android et créer des rapports automatisés. Ce fut l’occasion d’apprendre l’un de l’autre et d’explorer ensemble le cycle du développement.
Collaborer avec des collègues de votre secteur est un excellent moyen d’établir et de développer ces types de relations. De plus, il existe une multitude de projets open source auxquels il est possible de se joindre pour commencer à développer des relations professionnelles (et des scripts). Bon nombre de ces projets proposent des guides de contribution et acceptent avec plaisir des personnes de tous niveaux.
Magnet Forensics : Dites-nous en plus sur votre livre et sur ce qui vous a poussé à vouloir travailler avec Magnet pour développer l’analyseur de journal daily.out macOS ? Comment avez-vous développé ce script, et que trouveront les lecteurs dans votre livre ?
Preston et Chapin :« The Python Digital Forensics Cookbook » a été écrit pour présenter les nombreuses façons d’utiliser Python dans le contexte de n’importe quelle cyberenquête. La programmation a été un excellent outil pour nous ; nous souhaitions partager nos connaissances avec la communauté et aider d’autres examinateurs qui cherchaient à compléter leur boîte à outils. Le livre propose plus de 60 recettes qui abordent tout un éventail de processus criminalistiques. Nos recettes concises adoptent une approche sans superflus pour résoudre les défis qui apparaissent couramment dans les enquêtes, tout en couvrant un large éventail de sources de données et d’artéfacts. Les exemples que nous abordons amélioreront la précision et l’efficacité des capacités analytiques de n’importe quel examinateur, quelle que soit la situation.
Nous sommes très heureux de partager notre script analyseur de journal daily.out dans le livre et dans Magnet Artifact Exchange, pour une utilisation avec les systèmes macOS. Notre collaboration avec Magnet nous a montré à quel point il est simple de se servir d’une suite d’analyse criminalistique qui est déjà puissante, et de l’améliorer davantage grâce à la prise en charge des artéfacts personnalisés avec Python. En moins de 50 lignes de code, nous sommes capables de transformer un script autonome en plug-in exploitant le moteur de traitement, d’examen et de production de rapports d’AXIOM.
Magnet Forensics : Quel conseil donneriez-vous aux examinateurs qui souhaitent coder, mais qui ne savent pas vraiment où commencer ?
Preston et Chapin : Impliquez-vous dans la communauté. Avec l’arrivée de Github et la prolifération des projets open source, il existe de nombreuses occasions pour les entrepreneurs qui souhaitent apprendre à développer du code. Vous découvrirez (comme nous l’avons autrefois découvert) que faire preuve d’enthousiasme et d’une capacité à apporter sa contribution est tout ce dont vous avez besoin pour vous lancer dans la plupart des projets open source. Les développeurs sont ravis de trouver des personnes partageant les mêmes points de vue et qui acceptent de consacrer du temps et de l’énergie à leurs projets.
Merci à Preston et Chapin de nous avoir parlé de leurs processus et de leur livre, et d’avoir impliqué AXIOM dans leurs recherches !