Introduction : Python et l’informatique forensique
Pourquoi un livre sur le sujet ?
1. La mutation de l’informatique forensique
a. Des usages toujours plus nombreux et variés
Aujourd’hui, l’informatique est omniprésente dans nos vies, que ce soit au travers des téléphones portables, des ordinateurs ou encore, plus récemment, avec les équipements ménagers dits connectés.
Il faut savoir qu’au-delà des utilisations évidentes, certains services ne faisant pas directement intervenir l’outil informatique en sont désormais dépendants. Par exemple, l’eau qui coule d’un robinet à son ouverture est conditionnée par un ensemble de systèmes automatisés, de plus en plus fréquemment contrôlés par des ordinateurs.
Couplée à la course aux coûts les plus faibles, cette diffusion de masse s’accompagne d’une fragilisation des équipements et des usagers sur le plan de la sécurité. De plus, la manne financière que représentent les données pousse les acteurs du milieu à mettre en place toutes sortes de canaux pour collecter un maximum d’informations valorisables.
Ces deux leitmotive poussent vers la mise en place de services de plus en plus centralisés : fournis par des serveurs appartenant à une entité unique, par du code propriétaire laissant peu de chances (ou de droits) à la mise en place de solutions d’hébergement alternatives. D’une manière presque naturelle, la centralisation rassure quand on a à cœur de « protéger » la propriété intellectuelle des programmes fournissant un service, mais elle présente surtout l’avantage de faciliter la collecte de données, la rendant discrète, efficace et peu coûteuse. Cette stratégie augmente de manière dramatique le périmètre...
Présentation du langage
1. Un langage adapté
a. Python, un langage de script
Python est un langage de programmation créé par Guido Van Rossum dans les années 90. Langage de script alliant simplicité et flexibilité en conservant une bonne efficacité, il est de plus en plus considéré comme une référence dans le domaine du calcul scientifique. De par sa relation proche avec le langage C et les couches bas niveau du système d’exploitation, il permet l’écriture rapide de scripts puissants, utiles pour des administrateurs système, des équipes devops ou, précisément, dans le cadre de l’informatique forensique.
b. Une interface efficace avec C
L’interpréteur de référence CPython propose une interface avec C. Elle permet la manipulation d’instances d’objets Python et l’écriture de fonctions en langage C qui pourront être appelées depuis du code Python. Le code C, compilé dans un objet partagé (shared object traditionnellement nommé avec l’extension « .so ») est alors importable à la manière d’une bibliothèque écrite en Python.
Cette interface efficace avec C pour un langage de script comme Python a grandement participé à son adoption dans le domaine du calcul scientifique.
D’autre...
Le choix des logiciels
1. Le choix du système d’exploitation
a. GNU/Linux
Pour ce livre, le choix a été fait de se concentrer sur les systèmes d’exploitation GNU/Linux, car ce sont les plus utilisés (depuis les smartphones utilisant Android™). Une autre raison est qu’en tant que logiciels libres, ils garantissent la liberté nécessaire à la compréhension de leur fonctionnement et à l’exercice de la discipline que ce livre présente. De la même manière, les outils présentés et utilisés par les auteurs fournissent les mêmes garanties en termes de libertés informatiques, les considérant comme conditions préalables à l’appropriation par le plus grand nombre de l’outil informatique ainsi que du savoir et du pouvoir associés.
Bien que le langage Python, en raison de ces interpréteurs, soit considéré comme portable, beaucoup de ces concepts sont fortement influencés par ceux hérités du système d’exploitation Unix©, lui-même considéré comme la base de construction d’un grand nombre de systèmes d’exploitation. GNU/Linux peut être perçu comme le représentant le plus courant de cette famille, et sera, à ce titre, au centre des usages présentés dans ce livre....