> whoami
- Inti Rossenbach, expert / manager en cybersécurité depuis 1998
- Etudes de physique, cryptographie puis cybersécurité, expédition en Patagonie en kayak de mer, actuellement RSSI
- Assure un cours de cybersécurité à Paris XIII
- www.cryptosec.org
- Twitter @secucrypt
> les objectifs du cours
Appréhender le fonctionnement d’un système informatique, identifier les traces d’utilisation qu’il peut laisser soit localement soit sur les réseaux dans le cadre d’un contentieux
Acquérir un minimum de connaissances en sécurité informatique
> questions juridiques...
- Responsabilité des fournisseurs en matière de sécurité ?
- Protection des données personnelles et des libertés ? Quelles données ?
- Conditions techniques liées au droit à l’oubli
- Où et comment commence une attaque informatique ?
> questions juridiques...
- Responsabilité des fournisseurs en matière de sécurité ?
- Protection des données personnelles et des libertés ? Quelles données ?
- Conditions techniques liées au droit à l’oubli
- Où et comment commence une attaque informatique ?
- Authentification et signature électronique
- Force probante des supports, logs, messages…
- Expertise et doutes sur l'authenticité
- Investigations et recueil de preuves
- etc...
> Des attentes particulières?
> Le classique : cours sur les protocoles, les formats, les techniques et logiciels web, etc
> Mais... le domaine est trop vaste. Une vision trop classique risque d’éloigner des usages les plus courants. Permet peu d’adaptation.
> Choix d’un scenario qui servira de fil conducteur
Une personne allume son ordinateur puis:
- se connecte à un réseau wifi
- cherche un site web
- se connecte à ce site web
- s'authentifie et effectue quelques actions
- elle télécharge un fichier qu'elle enregistre localement
- elle veut consulter un site de façon relativement anonyme
- elle efface le fichier téléchargé
- elle ouvre un fichier et le modifie
- elle supprime une partie du contenu
- elle ouvre ensuite sa messagerie et reçoit un rapport de consommation web de son équipe
- elle ouvre et modifie à nouveau le fichier sur lequel elle travaillait et l’envoie par courriel
- elle décide également de transmettre le document à un ami qu'elle ne connaît que par un "réseau social": connexion à ce site et transmission
- son ordinateur plante et elle essaye de le réparer (réinstaller son système d'exploitation). Mais cela se passe mal et elle perd tous ses fichiers
- récupération de fichiers
- quelques jours plus tard elle se fait voler son ordinateur
À chaque étape, plusieurs thématiques peuvent être expliquées : ce qui se passe du point de vue informatique, les traces qui sont générées, paramétrages et configuration, risques, sécurité et preuves, etc.
Points de vue "good guy / girl" et "black hat"
> Scénario : une personne allume son ordinateur et se connecte à un réseau wifi
> A votre avis, que se passe-t-il ?
- Power on
- Chargement du BIOS / UEFI d’une NVRAM
- Test du matériel
- Sélection du boot device (disque, réseau…)
- Identification de la partition system EFI
- Chargement du boot loader (GRUB, etc.)
- Détermination de quel kernel à charger
- Chargement du kernel
- Exécution des scripts de démarrage
- Système d’exploitation
> Qu’est-ce que le wifi ?
Réseau local sans fil, basé sur le standard IEEE 802.11
Authentification en WPA2, avec du chiffrement AES
Amélioration par rapport au WEP, en particulier via l’introduction de Temporal Key Integrity Protocol (TKIP, échange dynamique de clés)
Mode « infrastrucure » en général
(mais existent aussi les modes « Ad hoc », « Pont » (« Bridge »), « Répéteur » (« Range-extender »)
Les Access point (AP) ou hotspot sont identifiés par des SSID (Service Set Identifier)
Afin de masquer un réseau wifi la diffusion du SSID peut être désactivée. Mais ce n’est pas une réelle protection.
Illustration: config de ma connexion
Une fois connecté au réseau wifi, on récupère une adresse IP.
> Qu’est-ce qu’une adresse IP ?
Sur un réseau qui implémente l’Internet Protocol (IP), c’est le numéro d’identification qui est attribué de façon permanente ou provisoire
> Internet ?
(http://ecoportal.org.uk/all/what-is-social-media/)
L'@IP sert au routage (acheminement) des paquets sur Internet.
IP v4 sur 32 bits / IPv6 sur 128 bits
La version 4 reste la plus courante : quatre nombres compris entre 0 et 255
Exemple de datagramme :
| @IP source | @IP destinataire | Données envoyées |
IP fonctionne sur la couche 3 du modèle OSI
> routage
Le routage permet de sélectionner les chemins au sein d’un réseau pour convoyer des données d’un expéditeur à un ou plusieurs destinataires
Le routage est un processus décentralisé: chaque routeur dispose des informations sur son voisinage
Les routeurs ont des « table de routage » (association à des réseaux / routeurs voisins) qui contiennent 3 types de routes :
- réseaux directement connectés (le paquet peut être acheminé directement via un protocole de niveau 2 comme Ethernet)
- les routes statiques, en dur (par exemple pour les admins)
- les routes dynamiques, acquises via un protocole de routage dynamique : réseaux disponibles
Si un routeur est trop occupé pour traiter des paquets ou que le « time to live » (TTL, nombre maximal de routeurs de transit est atteint) le paquet est détruit
> Illustrations
- les routes entre deux réseaux IP peut être visualisées via traceroute
- l’accessibilité et le « temps de parcours » d’un paquet via un ping
Exemple d’un datagramme encapsulé :
Enfin, il peut y avoir de la translation d’adresse, NAT
> Attribution des @IP
Initialement, IP supposait que chaque hôte avait une @IP statique, ou IP fixe
Mais les modifications entrainent trop d’erreurs...
Ainsi les @IP sont soit assignées par l'administrateur du réseau local dans le sous-réseau correspondant, soit automatiquement via un protocole: DHCP (Dynamic Host Configuration Protocol)
DHCP: configuration dynamique des hôtes, en particulier en leur donnant une @IP et un masque de sous-réseau
Bail : les @IP dynamique sont attribuées pour une durée limitée (lease time)
> Adresses mac
Au sein d’un réseau local, les hôtes sont aussi identifiés par leur adresse MAC (Media Access Control)
Identifiant physique des interface réseau, unique
Modifiable par l’utilisateur
Tous les appareils connectés en ont
> Illustration
- Interception réseau: wireshark
> Revenons à la connexion au wifi: quel problème de sécurité peut-il y avoir ?
Rogue AP et man-in-the-middle (avec des outils prêts à l’emploi)
Après la mise en place du rogue AP, on peut forcer l’utilisateur à se déconnecter du réseau légitime et le reconnecter à notre réseau en lui demandant ses identifiants
Scénario
Une personne allume son ordinateur puis:
- se connecte à un réseau wifi
- cherche un site web
- se connecte à ce site web
- s'authentifie et effectue quelques actions
- elle télécharge un fichier qu'elle enregistre localement
- ...
Mais d’abord… Quelle est la différence entre le « web » et « Internet » ?
Web = World Wide Web (www). À l’origine : réseau de pages sur des sites, liées par des hyperliens.
Exemple d’hyperlien (lien hypertexte):
< HTML >
< HEAD >
< TITLE >Lien hypertexte< /TITLE >
< BODY >
< P >
< A href="http://www.cryptosec.org">Cryptosec< /A >< BR >
Le web est une des applications sur internet
On y accède à l’aide de navigateurs
Le web 2.0 est un concept… qui décrit l’évolution du WWW initial : plus de complexité interne, plus simple d’accès
Au début il y avait des annuaires, puis sont apparus les moteurs de recherche, comme Google.
Ses algorithmes de classement ne sont pas publics.
Mais l’idée générale est que plus une page est référencée ou vue, plus elle est haut dans le classement. Sauf si le propriétaire paie…
Estimation du stockage cumulé Google, Amazon, Microsoft and Facebook :
1200 petaoctets = 1.2 millions de teraoctets (1 teraoctet = 1000 gigaoctets)
Une grande partie de ces données sont indexées : analogie avec une bibliothèque
Une entrée d'un index comporte une valeur extraite des données et un pointeur vers son emplacement
" "
-
*
AND
OR
Illustration!
site :
filetype :
inurl :
cache :
link :
…
Exemple :
inurl:/host.txt + filetype:txt + "password"
Si je clique sur un résultat, est-ce une intrusion ?
Loi Godfrain du 5 janvier 1988
Loi no 88-19 du 5 janvier 1988 relative à la fraude informatique
Article 462-2
Quiconque, frauduleusement, aura accédé ou se sera maintenu dans tout ou partie d'un système de traitement automatisé de données sera puni d'un emprisonnement de deux mois a un an et d'une amende de 2 000 F a 50 000 F ou de l'une de ces deux peines. Lorsqu'il en sera résulté soit la suppression ou la modification de données contenues dans les systèmes, soit une altération du fonctionnement de ce système, l'emprisonnement sera de 2 mois a 2 ans et l'amende de 10 000 F a 100 000 F.
Article 462-3
Quiconque aura, intentionnellement et au mépris des droits d'autrui, entravé ou faussé le fonctionnement d'un système de traitement automatisé de données sera puni d'un emprisonnement de trois mois à 3 ans et d'une amende de 10 000 F a 100 000 F ou de l'un de ces deux peines.
Article 462-4
Quiconque aura, intentionnellement et au mépris des droits d'autrui, directement ou indirectement, introduit des données dans un système de traitement automatisé ou supprimé ou modifié les données qu'il contient ou leurs modes de traitement ou de transmission sera puni d'un emprisonnement de 3 mois a 3 ans et d'une amende de 2000 F a 500 000 F ou de l'une de ces deux peines.
En mai 2015, jurisprudence de la Cour de Cassation dans l’affaire « Bluetouff »
Détenir et manipuler des outils et techniques permettant des intrusions est-il légal ?
En 2004, la Loi pour la confiance dans l'économie numérique modifie ajoute un article :
L. 323-3-1 : « le fait, sans motif légitime, d'importer, de détenir, d'offrir, de céder ou de mettre à disposition un équipement, un instrument, un programme informatique ou toute donnée conçus ou spécialement adaptés pour commettre une ou plusieurs des infractions prévues par les articles 323-1 à 323-3 »
Détenir et manipuler des outils et techniques permettant des intrusions est-il légal ?
En 2013 loi 2013-1168 du 18 décembre 2013, dite « programmation militaire » amende cet article (article 25) en ajoutant une exception, « un motif légitime, notamment de recherche ou de sécurité informatique »
- Historique de votre navigateur
- Les réseau qu'ont traversé vos requêtes
- Le moteur de recherche
- Parfois le site que vous cherchiez
Le règlement sur les données personnelles (RGPD) impose que les moteurs de recherche qui vous identifient, sites et réseaux sociaux doivent mettre à disposition de qui le demande l’historique de vos données personnelles.
Autres moteurs de recherche : Bing, Qwant, DuckDuckGo
Pourquoi www.cryptosec.org et pas son adresse IP ?
Un service de DNS (Domain Name System) donne une équivalence entre une @IP et un nom de domaine
Le système dans son ensemble est distribué (pas d’autorité centrale)
Quand on lance une requête vers un nom de domaine a lieu une résolution de nom, qui renvoie l’@IP. Ce service est rendu par les serveur de nom de domaine, le plus proche. S’il n’ a pas l’information, il va en interroger d’autres
Le nom complet, absolu (www.cryptosec.org par exemple) est appelé FQDN (Fully Qualified Domain Name)
Illustration : nslookup
Les noms de domaines peuvent être acquis auprès de bureaux d’enregistrement, ou registrars.
Illustration : le fournisseur Gandi
Tous ces systèmes et protocoles sont définis dans des requests for comments (RFC)
Des documents de référence qui standardisent les aspects techniques d’internet
Écrites par des experts, tout le monde peut proposer des drafts, mais elles ne deviennent RFC qu’après validation par l’IETF
Les exigences sont structurées par des MUST, MUST NOT, SHOULD, MAY
Illustration:
Internet protocol : https://tools.ietf.org/html/rfc791
A Standard for the Transmission of IP Datagrams on Avian Carriers: https://tools.ietf.org/html/rfc1149
Illustration : cryptosec.org
Qu’est-ce que le HTTP, au début?
Hypertext Transfer Protocol est un protocole de la couche application, c’est-à-dire « au-dessus » d’IP
Dans les faits, utilise la couche de transport TCP (Transmission Control Protocol)
Qu’est-ce que TCP?
Couche « transport » du modèle « TCP/IP »
1/ établissement de la connexion
Le système ouvre une « socket » et se met en attente. Le client envoie un message au serveur, le serveur lui répond par un message, le client confirme par un segment ACK.
2/ transfert des données
3/ clôture de la connexion
Par défaut, les serveurs sont à l’écoute sur le port 80 en HTTP et sur le port 443 pour HTTPS
HTTPS est une version sécurisée de HTTP, via le protocole SSL-TLS : Transport Layer Security
Ce protocole de sécurisation repose sur la cryptographie symétrique, asymétrique et l’utilisation de certificats électroniques
Ce protocole permet d’apporter des garanties de :
- Confidentialité
- Intégrité
- Authentification
Si des données sont transmises en HTTP, elles seront transmises « en clair » Pour les sécuriser et les véhiculer « chiffrées », il faut mettre en œuvre un protocole comme TLS
Les pages sont écrites en HTML : HyperText Markup Language, qui est un langage de balisage, interprété par les navigateurs
Aujourd’hui les sites modernes sont écrit HTML5 et à l’aide d'API JavaScript
« Application Programming Interface » : ensemble d'objets, de méthodes et de propriétés assemblées en thématiques
Connexion à un faux site web?
Exemple avec cryptosec.fr vs. cryptosec.org
Comment vérifier la légitmité d'un site:
- Le certificat électronique
- Contact / support
- Avis sur le web
- Le nom de domaine : https://www.whois.com/whois
Ne copiez pas ou ne cliquez pas pour aller sur un site: cherchez-le dans un moteur de recherche
Illustration : Code source de la page d’authentification de cryptosec.org
Si j’écris quelque chose dans la mire d’authentification, est-ce que cela sera enregistré par le serveur ?
Authentifier un utilisateur se déroule en 3 étapes :
1/ Identifier
2/ Authentifier qu’il est bien qui il dit être
3/ Si OK, donner des autorisations
(Pensez à l’analogie avec un passeport)
Dans le cas du site :
1/ L’utilisateur saisit dans la mire d’authentification son login (nom d’utilisateur) et son mot de passe
2/ En cliquant sur "OK" ou "Valider", le couple est envoyé au serveur
Si TLS est implémenté, la communication est chiffrée. Sinon, JavaScript chiffre le mot de passe s’il est activé ; sinon, le mot de passe est envoyé en clair
3/ Le serveur vérifie que le login (l’utilisateur) existe dans la table « utilisateurs » de la base de données
4/ Si étape 3/ en succès, le mot de passe haché est comparé au "haché" (condensat) stocké dans la base de données
Fonction de hachage : fonction à sens unique qui transforme des données de façon irréversible en une série d'octets de longueur fixe, unique, cacactéristique des données initiales (empreinte)
Si les hachés correspondent, l’utilisateur est authentifié
5/ Des droits / autorisations lui sont attribués
6/ Un cookie de session est attribué à l’utilisateur (ce qui évite de lui demander de se réauthentifier)
7/ Il a accès au site
C’est un petit fichier défini et envoyé par un serveur à un navigateur, que ce dernier renvoie au serveur lorsque nécessaire
Dans le cas d’authentification précédentes, un cookie peut contenir :
- la langue du visiteur
- divers réglages comme l’écran et couleur du visiteur
- un identifiant de session qui évite de se ré-authentifier
Scénario
Une personne allume son ordinateur puis:
- se connecte à un réseau wifi
- cherche un site web
- se connecte à ce site web
- s'authentifie et effectue quelques actions
- elle télécharge un fichier qu'elle enregistre localement
- elle veut consulter un site de façon relativement anonyme
Transfert de données, possible via différents protocoles: HTTP, FTP, POP3, BitTorrent...
Plusieurs types de téléchargements:
- d'une source unique, qui aboutit à un enregistrement de fichier (manuel ou automatique)
- de sources multiples, peer-to-peer
- pour lecture en continu (streaming)
Les fichiers, sur un disque dur ou une clé USB, sont organisés par un système de fichiers (filesystem en anglais)
Exemples de systèmes de fichiers : FAT (Windows), FAT32 (Windows), NTFS (Windows), ext3fs (Linux), ext4fs (Linux), HFS (MacOS)…
Les fichiers écrits sur le disque sont référencés par des métadonnées (données descriptives d'autres données)
Données décrivant la façon dont sont stockées les données
- nom long du fichier
- nom au format 8.3
- index (numéro d'ordre du fichier)
- taille du fichier
- dates et heures de création, modification et accès
- attributs du fichier
- droits d'accès
- liste des blocs (clusters) contenant le fichier (qui peuvent être compris dans la MFT s’ils sont assez petits)
- propriétaire
- type (régulier, répertoire, caractères, spécial, tube)
- droits accès (sur 9 bits)
- date d’accès, de modification, de création
- compteur de référence
- taille
- localisation des données
Métadonnée essentielle: localisation des données sur le disque
Similaire à un index
The onion router
Réseau composé de noeuds, qui permet:
- l'anonymat (relatif) des connexions
- la confidentialité et l'intégrité des échanges
A été conçu par la marine US, puis est rapidement devenu un outil populaire pour échapper à la surveillance d'internet
Comme toute invention, connait des usage détournés: DarkWeb
1/ Construction d'un circuit où chaque noeud ne connait que son prédécesseur et son successeur
2/ Chiffrement du paquet TCP pour chaque neoud... en couches successives
Démo avec Tor browser
- elle efface le fichier téléchargé
- elle ouvre un fichier et le modifie
- elle supprime une partie du contenu
- elle ouvre ensuite sa messagerie et reçoit un rapport de consommation web de son équipe
- elle ouvre et modifie à nouveau le fichier sur lequel elle travaillait et l’envoie par courriel
Lorsque l’on met un fichier à la « corbeille » (Windows / MAC), il est simplement déplacé
Lorsqu’à lieu un effacement définitif (manuel ou que la « corbeille » est vidée), les métadonnées sont modifiées :
L’espace occupé par les données sur le disque redevient disponible
Tant que de nouvelles données ne sont pas réécrites sur cet espace, les anciennes données sont « récupérables »
Un formatage simple n’efface pas non plus les données
Il est possible de « récupérer » les données qui ont perdu leurs données d’indexation (synonyme, dans ce contexte, de "métadonnées")
Quelques prérequis : on doit avoir accès au disque, le disque ne doit pas être chiffré
En général les fichiers ont quelques octets, au début ou à la fin, qui permettent de les identifier
(par exemple 0xFFD8 signifie SOI – start of image – pour JPEG)
Exemple de logiciel permettant la récupération de fichier effacés : photorec
Permet de récupérer des images (jpg, etc.), mais aussi des mp3, docx, pdf, zip, etc.
Autres outils : foremost ou PC Inspector File Recovery
Parfois les fichiers peuvent être endommagés, parce qu’une partie des secteurs qui ont été libérés pendant son effacement ont commencé à être réécrits
Si l’ordinateur est utilisé, plus le temps passe moins on a de chances de récupérer des fichiers complets
Si la MFT (Windows - Master File Table. Ce sont les métadonnées dans le cas du système de fichier NTFS - Microsoft. Filesystem successeur de FAT) ou les inodes (Unix / Linux) ne sont pas écrasés, on peut espérer retrouver les noms et autres métadonnées
Si l’on veut effacer des données définitivement, il faut réécrire de multiples fois sur les secteurs libérés
Il existe des logiciels d’effacement sécurisé (« wipe » en anglais)
En SDD (Solid-State Drive) c’est beaucoup plus complexe qu’en HDD (Hard Drive Disk, les disques durs traditionnels). Les données ne sont pas nécessairement réécrites à l’ancienne place du fichier effacé
(HDD et SSD sont les deux "types" de stockage de masse (disques durs). HDD, les classiques, anciens. Stockage magnétique. Disque dur qui tourne et une tête qui lit. SSD: les nouvelles technos de stockage. Typiquement les clés USB. Ou dans vos ordis portables modernes. Beaucoup plus rapide. Plus compacte. Stocke plus)
Il existe des dispositifs matériels (microscope à force magnétique), complexes d’utilisation, qui permettent de récupérer des données. Typiquement utilisées par certains acteurs gouvernementaux
Incertitude sur les capacités matérielles de recouvrement des données effacées
Mais si on veut effacer de façon sécurisée il faut procéder à des réécritures, ou, mieux, démagnétiser / détruire le disque
Concernant les réécritures, sur les supports modernes de stockage il n’est pas évident que plus d’une réécriture soit nécessaire. Il faut prendre en compte la durée de telles opérations
À noter que l’effacement des données est nécessaire dans toutes les organisations après que les ordinateurs soient amortis et avant qu’ils ne soient revendus à des brokers (revendeurs)
Les fichiers manipulés par les utilisateurs (documents, musique, images, etc.) ne représentent qu’une faible proportion des fichiers enregistrés par le système : fichiers temporaires, caches, traces, fichiers spécifiques des applications, etc.
- La RAM
- Les fichiers écrits suite à une hibernation
- Les fichiers de swap (fichiers qui peuvent servir à compléter une mémoire d’échange temporaire insuffisante. Ces fichiers peuvent contenir de la mémoire vive)
- Les core dump (en cas de plantage, certains systèmes écrivent sous forme de fichier l'état de la mémoire au moment du plantage. C'est de la mémoire vive)
- Les fichiers d'hibernation (veille prolongée). La mémoire vive est écrite sur le disque, ce qui permet lorsqu’on le ré-ouvre de le retrouver dans le même état