M61 : Sécurité du réseau, les menaces
« Que l’on me donne six heures pour couper un arbre, j’en passerai quatre à préparer ma hache »
— Abraham Lincoln
Des technologies de l’information
Temps d’investissement requis | Méthodologie | Niveau de contrôle | Niveau de dépendance |
---|---|---|---|
Proche de zéro | Pratique | Simple utilisation | Exécutant |
x | Technique | Maîtrise | Responsable |
∞ | Scientifique | Émancipation | Libéré |
cf Allégorie de la caverne — Platon
Définitions
Menace
Dans le dictionnaire, le terme a plusieurs sens :
- Intimidation => Hostilité avérée,
- Signe plus ou moins pregnant de quelque chose que l’on doit craindre => risque, voire danger
Risque
Le risque est défini par plusieurs composantes :
- la cible ou l’actif (asset en anglais) ayant — par définition — de la valeur,
- une vulnérabilité de cet actif,
- une menace
- exploitant cette vulnérabilité, et donc
- portant atteinte à la valeur de l’actif
L’occurrence d’un risque est caractérisée par
- sa probabilité,
- les conséquences qu’elle entraîne

Sécurité de l’information
La sécurité de l’information est définie par la préservation de trois qualités, abrégées CID :
- la confidentialité,
- la disponibilité,
- l’intégrité
Les moyens mis en œuvre pour garantir ces qualités permettent également d’assurer l’authentification et la capacité de faire preuve, appelée aussi non-répudiation (ou traçabilité => DICT).
Risques pour l’information
Analyse sommaire
L’information est un capital, un bien immatériel, un actif essentiel dans toute entreprise ou organisation. Sa valeur est intrinsèquement liée aux qualités CID qui sont à préserver.
Aujourd’hui, l’information est produite, traitée, transportée et exploitée par des systèmes et sur des réseaux qui présentent des vulnérabilités.
Les menaces sont très nombreuses, diverses et variées. Elles sont l’objet de la suite de ce document. La probabilité d’occurrence du risque d’atteinte aux qualités de l’information, à la valeur de l’actif dépend largement de la menace
Conséquences potentielles
La nature capitale de l’information est intrinsèquement liée aux qualités CID. Suivant la nature de l’information, la menace peut porter sur l’une ou l’autre de ces qualités.
La confidentialité de l’information peut être visée à des fins d’espionnage (industriel, stratégique ou politique) ou d’usurpation d’identité (vol d’information bancaires, exploitation des données personnelles, détournement de ressources, …).
L’atteinte à la disponibilité de l’information affecte l’activité économique, voire la réputation et la capacité de non-répudiation (faire la preuve). Une menace typique portant sur la disponibilité, l’attaque par déni de service (DoS), est à la fois – relativement – simple à mettre en œuvre et difficile à éviter (contre-mesures complexes).
L’intégrité de l’information est essentiellement visée à des fins de désinformation. L’occurrence de risques non-intentionnels sur l’intégrité de l’information engendrent généralement une indisponibilité, même temporaire.
Menaces non intentionnelles
La vulnérabilité des actifs informationnels et les menaces qui pèsent sur ces actifs ne sont pas nécessairement de nature informatique. Les menaces ne sont pas non plus toutes de nature intentionnelles.
La suite de ce document n’aborde que les menaces et vulnérabilités délibérées (D). Toutefois, l’examen de l’annexe C de la norme ISO 27005 donne une liste d’exemples de menaces accidentelles (A) et environnementales (E):

Conséquences graves
Si l’impact des conséquences de l’occurence d’un risque peut être d’ordre économique, il existe aussi certains cas où les conséquences peuvent présenter un facteur humain.
En 2013, une attaque – probablement par phishing – ayant pour cible la chaîne d’information Al-Jazeera a permis à des membres de la Syrian Electronic Army, organisation gouvernementale, d’obtenir des informations confidentielles issues d’emails de ses journalistes révélant l’identité de certaines sources.
Des faits avérés tel que celui-ci, de l’ordre de la criminalité, tendent à généraliser l’utilisation du terme de cybercriminalité. Il est toutefois essentiel de bien différencier les crimes des délits. Le contexte actuel y est cependant défavorable ; ainsi par exemple, le principe de la désobéissance civile (cf opération payback) n’est pas reconnu par la loi et assimilé à un crime dès lors qu’il s’agit d’attaques informatiques.
Par contre, l’exploitation par les grandes entreprises (GAFA) du numérique des données personnelles de leurs usagers (légalement du fait de l’approbation des CGU par l’usager : TL;DR ou « Si c’est gratuit, c’est que vous êtes le produit ») à des fins lucratives ne semble poser aucun problème. La tendance est même plutôt à la généralisation de l’exploitation de ces données à des fins de surveillance.
Ces conséquences, réellement graves, sont virtuellement exclues de la suite de ce document.
ROI de la sécurité
« La sécurité informatique coûte cher mais elle ne rapporte rien. »
Outre la perte d’activité, à laquelle le profit est généralement directement lié, la plus grave conséquence d’une atteinte à la sécurité de l’information est la perte de confiance car c’est la confiance qui permet de générer des profits.
QQO(Q)C(CP)
Qui ?
- Qui peut être attaqué ? : N’importe qui présent sur le réseau !
- Qui attaque ?
- gentils/méchants
- intérieur/extérieur
- humain/non-humain
Quand ?
- Quand doit-on se protéger ? : Avant de se connecter dans l’idéal, sinon maintenant, dès que possible au pire.
- Quand est-on attaqué ? :
hier : Un peu d’histoire
- 1971 : phreaking de Cap’n Crunch
- 1980 : Kevin Mitnick réalise son premier délit en pénétrant physiquement dans le central téléphonique de Pacific Bell
- 1983 : Dark Dante (Kevin Poulsen) et Kevin Mitnick accèdent à l’ARPAnet, ancêtre d’internet sans autorisation
- 1984 : Apparition des premiers virus. The Cracker s’introduit dans les serveurs de la NASA et du DoD
- 1988 : Le ver de Morris paralyse internet, il est condamné à trois ans de mise à l’épreuve, 400 heures de TIG et une amende de 10000 dollars.
- 1990 : Dark Dante gagne une Porsche 944 lors d’un concours radio après avoir piraté le système téléphonique. Finalement arrêté en 1994, il écope de 4 ans d’emprisonnement pour espionnage.
- 1991 : le virus MichaelAnge est programmé pour s’exécuter le 6 mars
- 1992 : Kevin Mitnick échappe de peu à la police (il avait mis sur écoute les fédéraux chargés de la traquer) et rentre en cavale pendant 3 ans. Il sera condamné à 5 ans de prison.
- 1994 :
- Datastream Cowboy, 16 ans est arrêté pour accès non autorisé à des données informatiques
- Vladimir Levin, mathématicien russe, dérobe 10 millions de dollars à la CityBank
- 1995 : Minor Threat est banni d’internet
- 1996 : un virus à retardement de Tim Lloyd provoque 12 millions de dollars de perte pour la société Omega Engineering, il est condamné à 41 mois de prison.
- 1998 :
- Deux jumeaux chinois sont condamnés à mort pour avoir détourné 85000 dollars via le réseau informatique d’une banque
- Le virus CIH efface la mémoire BIOS des ordinateurs vulnérables
- 2000 : Mafiaboy fait tomber les sites de Yahoo, Ebay, Amazon et CNN par une attaque par déni de service (DoS). Mineur, il est condamné à huit mois de détention dans un centre de détention juvénile.
- 2001 : Le virus CodeRed infecte une centaine de milliers d’ordinateurs en quelques heures.
- 2002 : Gary McKinnon à la recherche d’informations sur la zone 51, pirate une centaine d’ordinateurs de la NASA, du DoD, du pentagone, … S’il était extradé aux USA, il purgerait 70 ans de prison.
- …
- aujourd’hui (cf Liens)
- demain => veille !
Où…
- Où sont les attaquants ?
- intérieur/extérieur
- aspect géographique
- Où est ciblée l’attaque ? Sur n’importe quel dispositif (matériel, logiciel, réseau, personne, site, organisation) à partir du moment où il présente une vulnérabilité exploitable et une valeur convoitée
Combien…
- Combien peut-on subir d’attaque ? Exercice : Essayer de laisser un service ouvert (vulnérable ou pas, ex : ssh) sur le réseau et superviser les connexions non autorisées.
Connaître son ennemi
« Si vis pacem, parabellum »
— Végèce, in. Traité de l’Art Militaire
Catégorisation des attaquants

On peut classer les attaquants suivant leur niveau technique, leur éthique, les moyens à leur disposition, leurs motivations…
Profils techniques
- Script Kiddy : du nuke à metasploit
- [Cr|H]acker :
- Cracker vs. Hacker
- White hat vs. Black Hat (et 50 nuances de gris…)
- Certains changent aussi facilement de casquette qu’ils pénètrent les systèmes et les réseaux
- Hackademy, Ethical Certified Hacker
- Hacktivisme
- Phreaker, Warez, …
- APT : Advanced Persistent Threat
Motivations
- Pirate informatique : Défi, Amour-propre, Rébellion, Statut, Argent
- Escroc informatique : Gain financier, Divulgation illégale d’informations, Destruction d’informations, Modification non autorisée de données
- Terroriste : Renseignement, Extorsion, Destruction, Vengeance, Avantage politique, Couverture médiatique
- Espionnage industriel : Avantage concurrentiel, Espionnage économique
- À l’intérieur : Employés mécontents, malveillants, malhonnêtes ou licenciés / Amour-propre, Renseignement, Gain financier, Vengeance
Les phases d’une attaque
« À l’école, on apprend à imiter. Pour avoir de bonnes notes, il faut imiter le professeur. À l’université, le procédé est un peu plus subtil : on est censé imiter le professeur, tout en le persuadant qu’on ne l’imite pas, mais qu’on a saisi la quintessence de son enseignement. »
— Robert M. Pirsig in Traité du zen et de l’entretien des motocyclettes
Selon le modèle initial de la kill chain une cyberattaque se compose de plusieurs phases, de la reconnaissance à l’exfiltration de données. Il existe de nombreux modèles alternatifs. Selon celui de MITRE, le plus détaillé, une attaque peut comprendre les phases suivantes :
- Reconnaissance
- Le recueil d’informations qui pourront être utilisées pour mener à bien l’attaque
- Développement de ressources
- Recueil et mise en place de ressources qui pourront être utilisées dans les autres phases du cycle
- Accès initial
- Intrusion dans le réseau attaqué
- Exécution
- Exécution de code sur un système attaqué, local ou distant
- Persistance
- Maintien dans la durée d’une présence sur le système attaqué
- Élévation des privilèges
- Obtention d’un niveau de privilège plus élevé
- Évasion de la défense
- Échapper à la détection ou aux systèmes de sécurité
- Accès authentifié
- Utilisation d’informations d’identification légitimes pour accéder au système
- Découverte
- Acquisition post-compromission d’une connaissance interne du système
- Mouvement latéral
- Mouvement d’un système à un autre au sein du réseau cible
- Collecte
- Processus de collecte d’informations d’intérêt pour l’attaquant, telles que des fichiers, avant exfiltration
- Commandement et contrôle
- Communication avec les systèmes contrôlés par l’attaquant au sein du réseau cible
- Exfiltration
- Extraction des informations collectées, d’intérêt pour l’attaquant et sensibles pour le système cible
- Impact
- Perturbation des processus du système cible
Cf https://attack.mitre.org/, base de connaissances globale des techniques et tactiques de piratage utilisée pour spécifier des modèles de menaces particuliers et faciliter leur identification.
Recueil d’informations
- Passive : DNS, Whois, moteurs de recherche, OSINT
- Semi-active : Recherche des services ouverts, cartographie, analyse DNS
- Active : Scanning (Nmap)
- Nmap (RTFM !)
- TCP :
-sT
(standard : connexion en trois étapes),-sS
(SYN seulement),-sF
(FIN),-sX
(Xmas) et-sN
(Null) - UDP :
-sU
-P0
(pas de ping préalable)-PR
(ping ARP pour les scans de niveau 2)-O
,-A
(détection d’OS, de la version des services)-T
,-D
,-S
(évasion)-oN
,-oX
,-oS,
-oG
pour contrôler le format de sortie (-oG -
est concis et conçu pour être utilisé avecgrep
)--script
!
- TCP :
Recherche de vulnérabilités
- CVE (common vulnerability exposure) : Dictionnaire des
vulnérabilités maintenu par le MITRE
- identifiants normalisés : CVE-AAAA-NNNN
- utilisé dans de nombreux produits, notamment les IDS
- souvent associé au CVSS (scoring system) qui note les vulnérabilités (sur 10) selon des critères mesurables
- Passive ou active (nmap script, *OpenVAS)
- Scan de Vulnérabilité = scan de port + identification des versions de service + corrélation
- Fingerprinting
- Bannières (telnet)
- Base de données de vulnérabilités
- Services, mais pas que…
- Vulnérabilités web (cf Module de monsieur Gigan)
- Problématique de la publication des vulnérabilités (Full disclosure, éthique)
- Contre-mesure : Mise à jour automatique des systèmes (tous les systèmes !)
Intrusion
- Exploitation des vulnérabilités (Metasploit, à expérimenter avec Metasploitable)
- Contre-mesures :
- Système de détection d’intrusion (IDS) :
- niveau réseau (NIDS, Snort)
- niveau hôte (HIDS)
- Système de prévention d’intrusion (IPS), nécessairement lié au parefeu
- Tests de pénétration (Pentesting, whitebox, blackbox, certifications, …)
- Système de détection d’intrusion (IDS) :
Effacement des traces
- Journaux
- Binaires
- Contre-mesure : Tripwire, serveur de log, analyse des logs, alarmes
Emprise
- Rootkits
- intégrés
- librairies
- noyau
- hyperviseur
- Bootkits
- Contre-mesure :
- Chkrootkit
- Tunnels, Port Knocking
- métrologie, détection de tunnels par analyse statistique
Techniques (Qui ? Quoi ? Comment ? Pourquoi ?)
« When people attempt to formalize (and, often, brand & market) common sense, it tends to substitute checklists for thought »
Ingénierie sociale
Les techniques d’ingénierie sociale sont mises en œuvre par des humains sur des humains à des fins de divulgation d’informations, généralement avec usurpation d’identité.
L’importance de l’informatique dans la vie quotidienne et les avancées techniques aidant, cette catégorie de techniques s’appuie de plus en plus sur des processus automatisés utilisant le mail et le /web et des attaques par phishing.
Seule la formation des usagers permet de se prémunir efficacement contre ce type d’attaques.
Cf Outil dédié !
APT
APT est l’acronyme de Advanced Persistent Threat. C’est le nom donné à la fois à un type complexe d’attaques et aux organisation qui mettent en œuvre ces attaques.
Ce type d’attaque exploite généralement des vulnérabilités de type 0day, met en œuvre des moyens importants, vise des cibles spécifiques et emploie des méthodes d’ingénierie sociale adaptées (électronique ou non). Les technologies employées sont pointues : exfiltration furtive de données, agents dormants, …
Sniffing
Le sniffing est une technique semi-active qui consiste à écouter le réseau afin d’y collecter des données, éventuellement utilisables à d’autres fins, l’usurpation d’identité notamment.
Sur les réseaux « modernes », la technologie de commutation interdit aux postes de travail standards d’écouter les conversations qui ne les concernent pas. Cependant, comme il existe des mécanismes de protection, il est possible de forcer certains matériels de réseau à diffuser plus largement. L’une de ces techniques est appelée l’ARP poisoning.
Les dispositifs de collecte des données peuvent être déportés de l’enregistrement et de l’analyse. Les données brutes sur le réseau (trâmes) peuvent être collectées et/ou analysées avec les outils adéquats, comme Tcpdump ou Wireshark.
Le chiffrement des communications est une réponse à ce type d’attaque, bien que les mécanismes de chiffrement puissent eux aussi présenter des vulnérabilités.

Sur les communications WiFi, cette technique est appeléé snarfing.
Malware
- Une machine sur 4 infectée d’après Vinton Cerf, « inventeur d’internet »
- Virus, Vers, Bombe logique, …
- Spyware, Keyloggers, …
- Backdoors (Back Orifice), Chevaux de Troie, …
- Ransomware (qui génère d’énormes revenus)
- Stealers
Botnets et Zombies
Quelques noms :
- Rustok – #1, 44 milliards de spams par jour, 3 millions de zombies,
- Grum #2,
- Cutwail #3,
- Lethic, SpamIT, SpyEte, Carberp, Zeus/Murofet, Mariposa, Waledac, Mega-D, Avalanche…
L’infection des machines du botnet se fait par malware (14 millions de logiciels recensés, 60000 nouveaux par jour) via :
- le mail (0,3% du trafic mondial infecté)
- ou le web (+25% entre 2009 et 2010, 43000 domaines affectés)
Les botnets :
- offrent une puissance de calcul ;
- permettent de mener des attaques DDoS, de diffuser des malwares, du spam (77% issu de botnets) ;
- être loués ! (modèle économique)

Le démantèlement de botnets est une opération d’envergure internationale qui requiert la coopération des gouvernements.
En 2010, 10% des botnets ont été démantelés gràce à la coordination du CERT, opérateurs, hébergeurs, autorités locales.
Déni de service
- DoS vs DDoS
- Attaque « simple » et efficace
- WinNuke, Ping of Death, LAND (@ip.src = @ip.dst), fragment recouvrants, …
Intrusion
Le terme d’intrusion s’applique aux systèmes et requiert l’exploitation de vulnérabilités de ces systèmes (exploit en anglais).
- Sécurité système
- Services ouverts
- Règles élémentaires d’administration système (cache des
empreintes de mots de passe,
suid
, mises à jour, …) - Règles de développement (validation des entrées utilisateur !)
- Vulnérabilités
- Buffer overflow (stack smashing)
- Vulnérabilités web : XSS, injection SQL, …
- Buffer|Heap overflow
- Principe :
- entrée utilisateur
- zones de mémoire :
- instructions
- données
- exécution, dynamique, type LIFO, le tampon (buffer)
- tas, dynamique
- Fonctions,
push
,call
(depuis @mem utilisée pour le retour),ret
- Code dans les données dépassant la taille prévue ⇒ dépassement
- Exécution de l’instruction suivante qui a été écrasée (shellcode)
- Contre-mesure : Protections système (
strcpy
→strncpy
, SSP, pile non exécutable, …)
- Principe :
- Shellcode
- Pas d’octet nul (
0x00
, arrête le déploiement des données du shellcode), présence de NOP (0x90
) - Chargeur (fonction booléenne ou exclusif)
- Chiffrement, Code polymorphe, Obfuscation
- Le shellcode passe même les antivirus
- Pas d’octet nul (
- Brute force
- John The Ripper
- Dictionnaires
- puissance de calcul : Cloud Computing
Autres types de menaces
- Cracking (warez)
- Cryptanalyse
- Rétro-ingénierie
Autres outils
- Kali Linux : Distribution Linux qui regroupent un nombre impressionnant d’outils liés à la sécurité
- Damn Vulnerable Linux :
- Distribution Linux conçue pour être aussi vulnérable que possible
- Collection d’outils pro et anti sécurité
- Inclut des leçons complètes et leur environnement de test
Mise en œuvre de contre-mesures
Processus global
« Dès lors que vous avez accepté comme une faveur la demande qu’on vous a faite, vous devez prendre sur vous pour vous en acquitter, quoi qu’il vous en coûte. »
— Bushidō Shoshinshû, Taïra Shigésuké (~1700)
- Prévenir : multiplier les barrières
- Bloquer (ou dégrader) : exclure (ou ralentir) les indésirables
- Limiter : sauvegarder, chiffrer
- Détecter : pour bloquer ce qui arrive à passer
- Réagir : être prêt en cas d’intrusion
Inventaire complet
L’annexe A de la norme ISO27001 présente une classification non exhaustive des objectifs de sécurité qui peuvent être mis en œuvre.
Par exemple, au point 6.8, on trouve une mesure relative aux emails qui recommande : « Les informations liées à la messagerie électronique doivent être protégée de manière adéquate ».
Ces objectifs sont très détaillés et les mesures pratiques afférentes sont proposées dans la norme ISO 27012.
Analyse du risque
La différence entre la NSA et une PME locale réside :
- dans la nature du risque (valeur de l’information, probabilité d’une attaque, type d’attaque potentiel, impact possible)
- dans l’appréciation de ce risque (acceptation ou non)
L’analyse du risque permet de définir une politique de la sécurité de l’information dont découlent les mesures techniques et organisationnelles qui constituent la politique de sécurité du système d’information.
Sécurisation à tous les étages
- Humain
- Accès physique
- Systèmes
- Réseau
- Éviter l’alignement des vulnérabilités, multiplier les barrières
Liens et sources d’information
- Tu me montreras ?
- Bien sûr.
- C’est difficile ?
- Pas si on a un bon état d’esprit. C’est ça qui est difficile.
— Robert M. Pirsig in Traité du zen et de l’entretien des motocyclettes
- Entretien avec un hacker black hat
- 18h de formation par l’ANSSI, sensibilisation exhaustives aux enjeux de la sécurité informatique…
- Apprendre à utiliser Kali Linux (en, inclut une bonne introduction à Linux, par Raphaël Hertzog, mainteneur Debian français bien connu)
- Exercices d’utilisation de Metasploit (en)
- Apprendre à utiliser Metasploit (en)
- Plateforme pour tester ses compétences
- Une autre, avec cursus élaboré selon vos objectifs (en ; débutant, pentest, défense, spécialisé web)
- 17 outils de pentest utilisés par les pros (en)
- Advanced Persistent Threat (vu par Wired) (en)
- News sécurité réseau (source d’informations) (en)
- La politique des USA contre la cybercriminalité (en)
- Hack dans le nuage (PSN hacké en utilisant des ressources EC2) (en)
- Rapport de vulnérabilités sur des serveurs de la NASA (pdf) (en)
- Mysql.com piraté par une injection SQL (en)
- Comment devenir un hacker ? (éthique) (en)
- Une plateforme de formation sécurité par Google (pratique) (en)
- Security Mailing List Archive (listes de diffusion) (en)
- Open Source Software Security Wiki (sécurité du logiciel libre) (en)
- Observatoire de la Sécurité des Systèmes d’Information et des Réseaux (source d’informations)
- Défense en profondeur (pdf)
- L’armée des hackers Indiens (hackers d’état) (en)
- Les emails d’Al-Jazeera entre les mains de la Syrian Electronic Army mettent des opposants en danger (hackers d’état)
- Amesys et la surveillance de masse : du fantasme à la dure réalité
- Les mails des députés européens accessibles à tous ? (en)
- Tao, les hackers de la NSA (hackers d’état)
- Démarrer dans le monde de la sécurité de l’information (en)
- Un hacker en train de hacker (vidéo, 1 heure)
Travaux
Port ouvert sur internet
Dresser un bilan des tentatives de connexion aux deux ports d’accès au
service SSH de votre VM (grep
, cut
, sed
, sort
, wc
, …)
Tutoriel : Capture de paquets avec tshark
Interfaces disponibles
tshark -D
Première capture
thasrk -i ens3 # Interrompre avec C-c
On peut aussi indiquer le nombre de paquets à capturer avec -c
.
Premier filtre
Examinez le fichier /etc/resolv.conf
pour en déduire le serveur DNS.
tshark -i ens3 -c 10 host 192.168.144.2
On eput aussi capturer tout UDP :
tshark -i ens3 -c 10 udp
Sauvegarde
tshark -i ens3 -c 10 udp -w nlog.pcap
Après la capture, il est intéressant d’examiner le fichier créé avec
la commande file
.
Wireshark
Transférer — si besoin — le fichier de capture sur une interface graphique disposant de l’application Wireshark, afin de l’utiliser pour ouvrir le fichier.
Afficher un horodatage
tshark -t ad
Afficher le contenu d’un paquet
tshark -V
À tester sur un échange DNS par exemple
Capturer un handshake TCP
Fournir par mail le fichier pcap
d’un handshake TCP
https://fr.wikipedia.org/wiki/Transmission_Control_Protocol#%C3%89tablissement_d'une_connexion
Capturer un handshake TLS
Fournir par mail le fichier pcap
de l’établissement d’une connexion
TLS (ex : HTTPS)
https://fr.wikipedia.org/wiki/Transport_Layer_Security#D%C3%A9tails_du_protocole
nmap
- Tester
nmap
:- en binôme, l’ataquant lance des scans nmap sur la cible qui doit
deviner le type de scan en utilisant
tshark
- sur le LAN
- sur la machine
192.168.1.212
- en binôme, l’ataquant lance des scans nmap sur la cible qui doit
deviner le type de scan en utilisant
- Dans chaque cas, réaliser une synthèse présentant les tests réalisés et les résultats constatés.
Rappels techniques
Protocoles
La détection d’intrusion requiert d’analyser le trafic réseau aux différents niveaux du modèle de communication TCP/IP, notamment aux couches réseau (IP et ICMP) et transport (TCP).
IP
L’en-tête d’un datagramme IP est composé d’une partie fixe de 20 octets et d’une partie variable, les options.
Il est utile de connaître les champs du protocole IP, qui sont utilisés à des fins de reconnaissance ou en cas d’attaque par déni de services :
- Version (4 bits) : version du protocole (IPv4 en l’occurrence,
soit
0100
) - En-tête (4 bits) : spécifie la longueur de l’en-tête, en mots de 32 bits. Soit 5 au minimum, car il y a 20 octets au minimum dans l’en-tête
- Type de service (8 bits) : notion de qualité de service (ToS)
- Longueur totale (16 bits) : longueur du datagramme complet (en-têtes + données) : max 65 535 octets
- Identification (16 bits) : valeur pour identifier les fragments d’un même datagramme
- Flags (3 bits) : pour contrôler la fragmentation IP
- Bit 0 : réservé (doit être laissé à 0)
- Bit 1 : Accept Fragmentation (AF) (0 si autorisée)
- Bit 2 : Don’t Fragment (0 lors du dernier fragment)
- Offset de fragmentation (13 bits) : spécifie le décalage du premier octet par rapport au datagramme complet. Le décalage du premier fragment vaut 0. Le maximum pour un datagramme est de 8192 fragments
- Durée de vie / TTL (8 bits) : permet de limiter la durée de vie d’un paquet sur le réseau. Est décrémentée par chaque saut lors du transit.
- Protocole (8 bits) : indique le protocole de niveau supérieur utilisé (ex. : ICMP/IGMP/TCP/UDP)
- Somme de contrôle d’en-tête (16 bits, checksum) : calculée sur l’en-tête uniquement, à chaque modification du TTL ou du ToS
- Adresse source (32 bits)
- Adresse destination (32 bits)
TCP
Les champs de TCP, comme ceux de IP, sont souvent utilisés par des pirates à des fins intrusives. Voici un rappel de ces champs :
- Port source & port destination (16 bits) : déterminent le service requis
- Numéro de séquence (32 bits) : numéro du premier octet de données par rapport au début de la transmission, sauf si SYN est marqué. Dans ce cas, numéro de séquence = ISN.
- Accusé de réception (32 bits) : Si ACK est marqué, ce champ contient le numéro de séquence du prochain octet que le récepteur s’attend à recevoir
- Header Length (4 bits) : taille de l’en-tête TCP en nombre de mots de 32 bits
- Réservé (6 bits) : usage futur toujours à 0
- Flags (6 bits) : utilisés pour contrôle et gestion des connexions
TCP
- URG : champ « pointeur de données urgentes » significatif
- ACK : champ « accusé de réception » significatif
- PSH : fonction Push
- RST : réinitialisation de la connexion
- SYN : synchronisation des numéros de séquence
- FIN : fin de connexion
- Fenêtre (16 bits) : nombre d’octets à partir de la position marquée dans l’accusé de réception que le récepteur est capable de recevoir
- Checksum (16 bits) : somme de contrôle calculée sur le datagramme
- Pointeur de données urgentes (16 bits) : spécifie la position d’une donnée urgente (position par rapport au numéro de séquence)
- Options (variable) : doit être un multiple de 8 bits (remplissage,
dit padding éventuel)
- Maximum Segment Size (MSS) : taille maximale des segments : envoyée dans la requête de connexion initiale
- Window Scale : permet de définir des tailles de fenêtre supérieures à 64 Ko
- Selective Acknowledgement (SACK) : acquittements sélectifs
- NOP (No OPeration) : séparateur pour aligner le début d’une option sur le début d’un mot de 16 bits
Pour établir une connexion TCP, il y a un protocole de négociation appelé « poignée de main TCP » (handshake). Celle-ci se déroule en 3 phases :
- La source émet une requête d’établissement de connexion : bit SYN à 1 + numéro de séquence aléatoire (ISN) ;
- Si la destination accepte : bits SYN et ACK à 1 + numéro de séquence propre + numéro de séquence de la source augmenté de 1 ;
- La source acquitte la réponse de la destination en positionnant le bit ACK à 1, en incrémentant son numéro de séquence originel et un numéro d’acquittement égal au numéro de séquence de la destination augmenté de 1.
UDP
Voici également un rappel des champs du protocole UDP :
- Port source (16 bits)
- Port destinataire (16 bits)
- Longueur (16 bits) : nombre d’octets du datagramme entier (y compris en-tête). Min=8
- Checksum (16 bits)
ICMP
Le protocole ICMP est souvent utilisé à des fins malicieuses, car c’est un protocole utile pour des messages flash, et il ne nécessite pas de connexion ni de port.
Les paquets ICMP sont encapsulés dans les paquets IP pour des raisons historiques. Les champs ICMP sont les suivants :
- Type (8 bits) : type de message
- Code (8 bits) : précise le message identifié, par rapport au type de message
- Type 0 (Echo reply) =>pas de code
- Type 3 (Destination Unreachable) =>0 = net unreachable, 1 = host unreachable, 2 = protocole…
- Type 4 (Source Quench) : contrôle de flux
- Type 5 (Redirect) =>Code 0 = network, 1 = host
- Type 8 (Echo request)
- Type 11 (Time exceeded) : durée de vie écoulée
- Type 13 (Timestamp) : marqueur temporel
- Type 14 (Timestamp reply ) : réponse au marqueur temporel
- Type 30 (Traceroute)
Scans TCP
TCP « classique »
Il s’agit d’une détection des ports ouverts en effectuant une
connexion complète (hadnshake en 3 étapes). Nmap
réalise un tel scan
avec l’argument -sT
. C’est l’un des seuls scans possibles sans
privilège.
TCP SYN
Il s’agit d’un scan de ports TCP qui consiste à n’envoyer que le
premier paquet du handshake (la connexion n’est pas complètement
établie). Nmap
peut réaliser ce type de scan avec l’argument -sS
. Il
est rapide (moins de paquets).
TCP FIN
Ici, seul le flag FIN est à un.
TCP Xmas
Là les flags FIN, PSH et URG sont à un (tout est allumé comme dans un sapin).
Scan null
Il s’agit d’un scan de ports TCP qui envoie un paquet TCP avec tous
les champs du header à 0. Si le port est fermé, le serveur répond
normalement par une commande RST. Si le port est ouvert, le serveur ne
répond pas. Nmap
réalise ce scan avec l’argument -sN
.