UP | HOME
LPASRSI

Modules « Système Linux »

Vacations en licence professionnelle « Audit et Sécurité des Réseaux et Systèmes d'Information » à l'antenne de Ifs du pôle de Caen de l'IUT Grand Ouest Normandie


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 :

  1. la cible ou l’actif (asset en anglais) ayant — par définition — de la valeur,
  2. une vulnérabilité de cet actif,
  3. 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

  1. sa probabilité,
  2. les conséquences qu’elle entraîne
risque.png

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):

FA161975_TAB1.png

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

      John-Draper.jpg
      • 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

cyber-attack-kill-chain-1.jpg

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é avec grep)
    • --script !

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, …)

Effacement des traces

  • Journaux
  • Binaires
  • Contre-mesure : Tripwire, serveur de log, analyse des logs, alarmes

Emprise

Techniques (Qui ? Quoi ? Comment ? Pourquoi ?)

« When people attempt to formalize (and, often, brand & market) common sense, it tends to substitute checklists for thought »

silentbicycle

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.

security.png

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)
Botnet.png

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, …
    exploits_of_a_mom.png
    • 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 (strcpystrncpy, SSP, pile non exécutable, …)
    • 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
    • Brute force

Autres types de menaces

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)

  1. Prévenir : multiplier les barrières
  2. Bloquer (ou dégrader) : exclure (ou ralentir) les indésirables
  3. Limiter : sauvegarder, chiffrer
  4. Détecter : pour bloquer ce qui arrive à passer
  5. 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

Autres protections, mécanismes

  • Journalisation + corrélation (8pussy, Splunk, Graylo, ELK, …)
  • Métrologie
  • Pot de miel (Honey Pot), à interaction haute ou basse
  • Jamais un mot de passe par défaut !
password_strength.png
  • Serveur d’authentification, SSO
  • Autopsie (Forensics) et CERT

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

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

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
  • 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 :

  1. La source émet une requête d’établissement de connexion : bit SYN à 1 + numéro de séquence aléatoire (ISN) ;
  2. 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 ;
  3. 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.