- Inti Rossenbach, expert / manager en cybersécurité depuis 1998
- Etudes de physique, cryptographie puis cybersécurité, expédition en Patagonie en kayak de mer, RSSI
- Cours de cybersécurité à Sorbonne Paris Nord
- www.cryptosec.org
- iro@cryptosec.org
- Mastodon @cryptosec@infosec.exchange
kahoot.it
- Acquérir des bases en informatique pour comprendre des notions de sécurité informatique
- Passer en revue les grands domaines de la sécurité des systèmes d’information
- Donner des clés pour comprendre les sujets cyber
- Faire manipuler et transmettre quelques pratiques concrètes
- Les composants
- Les mots de passe
- L'ingénierie sociale
- Les vulnérabilités
- Cryptologie: la science du secret
- Sécurité, risques et menaces
- Cyberattaques
- Mesures de sécurité
- Traces et anonymat
> Quels composants d’un ordinateur connaissez-vous ?
- S’exécute directement sur votre bureau
- "Dialogue" avec votre système d’exploitation
- En général plus rapide car elle interagit directement avec l’OS (Operating System)
- S’exécute au travers d’un navigateur web
- "Dialogue" avec le navigateur web
- En général plus lent car cela rajoute une couche entre l’application et l’OS
- Sous forme de signaux électriques ou ondes radio (wifi par exemple)
- Dans les câbles ou sur les ondes : des suites de 0 et de 1
- Un paquet est une courte série de 0 et de 1
- Les ordinateurs s’échangent des paquets
- Des protocoles qui organisent ces paquets sont utilisés pour communiquer
- c'est comme votre adresse postale, mais dans le contexte d'un réseau informatique
- c’est un numéro attribué à votre ordinateur (PC) pour l'identifier dans le réseau
- exemple : 192.168.0.42
- cela permet aux paquets d'être acheminés à destination dans le réseau
- l'IP sert aussi au routage (acheminement) des paquets sur Internet
- quatre nombres compris entre 0 et 255 (en v4)
- cela fait 255*255*255*255 = à peu près 4 milliards de possibilités
- problème : nous sommes bientôt 8 milliards sur Terre, comment faire ?
- les réseaux domestiques utilisent les mêmes adresses IP privées
- exemple d'adresse privée : 192.168.0.x avec x qui peut varier de 0 à 255
- seul le routeur (box free, bouygues, ...) est relié directement à Internet
- seul ce routeur a donc une IP unique : c'est l'IP publique
- les villes ont toutes un nom unique différent
- les rues n'ont pas un nom unique
- si je dis "l'avenue Victor Hugo", on ne sait pas d'où je parle car il y en a plusieurs en France
- si je dis "l'avenue Victor Hugo à Paris" on sait la situer
- c'est un ordinateur un peu particulier
- il n'a pas vocation à être utilisé avec un écran, un clavier, une souris (IHM)
- il héberge des données (pages web, bases de données...)
- il envoie ses données aux autres ordinateurs quand on les lui demande
Voyez-vous un équipement qui pourrait être un serveur sur l'image ?
> Architectures client - serveur
- des cas très caractéristiques de serveurs sont les serveurs web
- lorsque vous consultez un site web, votre ordinateur envoie des requêtes vers des ordinateurs qui hébergent les serveurs web
- le serveur web répond aux requêtes en envoyant des pages web (html) que votre navigateur affichera
- Un unique serveur et plusieurs clients
- Facile à implémenter
- Possibilité de surcharge réseau
- Données centralisées
- Problème de la sauvegarde
- Tout le monde est client et serveur à la fois
- Un peu plus dur à gérer
- Plus rare d’avoir une surcharge réseau
- Données décentralisées
- Pas de problème de sauvegarde
Pourquoi, pour aller sur Wikipedia, n'écrit-on pas son adresse IP, mais www.wikipedia.org ?
Comment se fait-il que vous n'ayez pas des adresses IP à retenir?
- les serveurs DNS stockent et donnent une équivalence entre une @IP et un nom de domaine (ex.: www.wikipedia.org <--> 185.15.59.224)
- lorsque vous faites une requête web vers wikipedia.org, votre navigateur va d'abord interroger un serveur DNS pour connaître son @IP
- ensuite il utilise cette adresse IP pour envoyer ses requêtes au serveur web
- le système dans son ensemble est distribué (pas d’autorité centrale)
- si un serveur DNS n'a pas la réponse, la requête est transmise à d'autres serveurs DNS
- les noms de domaines peuvent être acquis auprès de bureaux d’enregistrement, ou registrars
- requêter un serveur DNS "à la main" avec nslookup
- observer des entrées DNS chez un registrar (gandi.net)
> Le routage
L'@IP sert au routage (acheminement) des paquets sur Internet
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
- 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 » est atteint le paquet est détruit
> Routage: Démo!
- les route entre deux réseaux IP peut être visualisées via traceroute
- l’accessibilité et le « temps de parcours » d’un paquet via un ping
> Concept de port réseau
- Les ordinateurs possèdent 65526 ports réseaux
- Un programme peut "écouter" sur un port pour recevoir des paquets réseau
- C'est typiquement le cas d'un serveur web, dont le programme associé "écoute" sur le port 80 ou 443
- Quand vous envoyez une requête vers un serveur web, vous envoyez une requête sur le port 80 ou 443 du serveur en question
> Redirection de port
- Une "nouvelle" version de IPv4 (elle date de 1998)
- IPv4 reste aujourd'hui la version la plus utilisée
- Avantage IPv6 : 2128 adresses possibles au lieu de 232
- 232 = 4294967296
- 2128 = 340282366920938463463374607431768211456
- plus de problème de pénurie d'adresses comme IPv4
- IPv6 pourrait donc permettre de donner une IP publique à tous les ordinateurs du monde
- mais est-ce qu'on veut vraiment faire ça ?
- donner une IP publique à un ordinateur revient à le rendre accessible depuis Internet
- aujourd'hui de + en + d'équipements sont "connectés"
- caméra, réfrigérateur, télévision, domotique, ...
- avec IPv6, tous ces équipements pourraient être accessibles directement depuis Internet
- si un logiciel vulnérable se trouve sur un de ces équipements -> compromission possible de l'équipement
- Série de caractères (lettres, chiffres, caractères spéciaux, ...)
- Peut être un mot ou une phrase secrète (passphrase)
- Sert à prouver son identité
- Central pour la sécurité de son identité : risque d'usurpation
Élément classique des mécanismes d'authentification, qui peuvent se décomposer en trois facteurs:
- Quelque chose que je sais
- Quelque chose que je suis
- Quelque chose que je possède
- Si la base de donnée d’authentification d'un site est compromise, révélée (leak), ce sont "presque" tous les mots de passe qui sont compromis
- Pourquoi "presque" ?
- Selon vous, quel est le mot de passe le plus important ?
Dans quelles situations un mot de passe peut être compromis ?
- Regarder par dessus votre épaule (shouldersurfing)
- Connexion non chiffrée, en clair
- Keylogger / malware
- Saisie sur un site ou un ordinateur non sûr
- Mot de passe écrit en clair quelque part
- Base de donnée compromise / réutilisation de mots de passe
Vérifiez si un de vos comptes figure dans une base de comptes compromis https://haveibeenpwned.com
(mais d'ailleurs... comment savoir que ce site est sûr?)
- Il doit être résistant contre le bruteforce -> dépend de l'application
- Théoriquement, faut-il plutôt augmenter la longueur du mot de passe, ou ajouter différents caractères ?
- Il ne doit pas avoir de rapport avec vous
- Il est unique (comment faire ?)
- Plus besoin de retenir des mots de passe compliqués
- Plus de problème de multiplier / dédier les mots de passe
- Gestionnaires locaux et gestionnaires en ligne
- Démo: KeePass (https://keepass.info)
- "Multi Factor Authentication"
- Quelque chose que vous connaissez
- Quelque chose que vous possédez
- Quelque chose dont vous "êtes"
- Authenfication à deux facteurs
- Mot de passe + code PIN ("token")
- Le token change régulièrement
- Si votre mot de passe est compromis, on ne peut pas accéder à votre compte sans le token
- Donne un bon niveau de sécurité dans la majorité des cas
- ... mais ce n'est pas infaillible
- Tromper la victime, par exemple en se faisant passer pour quelqu'un d'autre
- But : prendre le contrôle d'un compte, récupérer des informations sensibles, installer un malware
- C'est un moyen d'accès initial très utilisé par les attaquants
- Il requiert peu de connaissances techniques, peut engendrer des dégâts importants
- Phishing de masse : message identique à des centaines de destinataires
--> L'idée étant que statistiquement une petite proportion de gens vont se faire avoir
- Phishing ciblé (spear phishing) : message personnalisé pour une victime (particulier, entreprise)
--> Recueillir des informations sur sa cible pour personnaliser le vecteur d'attaque
Exercice : https://phishingquiz.withgoogle.com
- Fraudes "au président" (utilisation d'IA pour imiter des voix)
- L'appel du "service informatique" ou d'un "conseiller bancaire"
- Par SMS, par QR code...
Si un attaquant veut prendre la main sur votre ordinateur
Il va chercher à vous faire exécuter du code malveillant (via un fichier .exe par exemple)
Un fichier exécutable .exe peut faire faire des actions à votre ordinateur:
- récupérer vos fichiers et photos
- installer un keylogger pour récupérer identifiants et mots de passe
- suivre toute votre activité
- transformer votre ordinateur en "bot"
- installer un logiciel qui permet le contrôle à distance
Il existe beaucoup de types de fichiers pouvant contenir du code:
exe, bat, msi, dll...
Il faut donc faire attention avant d'ouvrir des fichiers dont on ne connaît pas le type et la provenance
Windows et MacOS intègrent des mécanismes de prévention
Ils connaissent les types de fichier dangereux et vous alerteront souvent si le type fichier peut être malveillant
Attention, ici on ne parle pas de savoir si le fichier EST malveillant, mais s'il PEUT être malveillant
C'est le rôle d'un antivirus de savoir si le fichier est malveillant (avec plus ou moins de réussite)
Au lieu d'utiliser un fichier exécutable "brut", qui est très suspect, un attaquant peut camoufler son attaque :
Par exemple les documents Microsoft Office (Word, Excel, ...) peuvent contenir des "macros"
Ces macros permettent de programmer certaines actions dans un document
Mais elles intègrent également des moyens d’exécuter du code en dehors d'Office, sur votre ordinateur
https://powerspreadsheets.com/how-to-enable-macros-excel/
Comme on peut le voir, les messages d'avertissement ne sont pas toujours identiques
Ils dépendent de la version d'Office utilisée
Il y a donc deux mécanismes de base pour un attaquant qui souhaite faire exécuter du code sur un ordinateur personnel:
- envoyer un fichier exécutable
- envoyer un fichier Office avec une macro malveillante
Il existe d'autres mécanismes similaires, mais ces deux là sont les plus courants
C'est une catégorie d'attaque qui nécessite FORCÉMENT qui vous acceptiez un risque
"Enable content", ou "Accepter d'exécuter ce code provenant d'une source inconnue", etc...
Comment vous y prendriez-vous pour induire quelqu'un à activer une macro Office malveillante ?
Pourtant... parfois il faut bien faire confiance, aussi.
Imaginons que vous receviez un message de
securite@paris-nanterre.fr vous indiquant un lien où télécharger une mise à jour de Microsoft Teams pour mettre à jour votre système suite à une vulnérabilité...
Que faites-vous?
Réflechissez toujours avant de cliquer!
- Vérifiez bien les noms de domaine
- Cherchez sur un moteur de recherche
- Vérifiez les adresses sur https://www.virustotal.com
- Ne transférez pas à vos collègues
- Prévenez les administrateurs ou la sécurité
- Ce peut être un défaut de configuration
- Un défaut de spécification (vulnérabilités fonctionnelles)
- Un bug qui, une fois exploité par l'attaquant, va permettre d'outrepasser des mesures de sécurité
- Une fonction volontairement introduite, une backdoor (porte dérobée)
- Des fichiers contenant des données confidentielles en libre accès sur un serveur (cf. jurisprudence "Bluetouff")
- Des mécanismes de cloisonnement inexistants ou mal programmés, permettant à un utilisateur de voir des données d'un autre utilisateur
- Des logiciels non mis à jour, qui ont des bugs exploitables, permettant à un attaquant d'exécuter le code qu'il veut sur un ordinateur
Exemples: https://www.hacksplaining.com/lessons
- Vous, une personne entre la chaise et le clavier.
La grande majorité des attaques commencent par une phase d'ingénierie sociale, où les attaquants réussissent à faire faire quelque chose à la cible
Typiquement: cliquer sur un lien ou un code malveillant comme vu dans le chapitre précédent
1/ L'ingénierie sociale, que nous avons vu au chapitre précédent avec des macros et/ou fichier exécutables
2/ Des logiciels non mis à jour
Nous allons étudier ce deuxième scénario
Contrairement aux macros Office / fichiers exécutables, qui nécessitait une action "d'acceptation de risque", ce scénario peut vous rendre vulnérable sans AUCUNE interaction de votre part
Vous n'aurez donc ni cliqué sur "Enable content" ni sur "Faire confiance à tel exécutable"
Et pourtant l'attaquant aura pu compromettre votre ordinateur avec les mêmes conséquences
(i.e., voler vos fichiers, poser un keylogger, ...)
Vous savez qu'un logiciel peut contenir des bugs
Un bug, en apparence, a souvent l'air anodin... un simple dysfonctionnement
A l'origine, c'est *pratiquement toujours* un problème dans le code du logiciel
Mais un bug peut créer une faille de sécurité
La grande majorité des bugs sont détectés lors des phases de développement
Mais, inexorablement, sur des gros logiciels certains bugs échappent à la vigilance des développeurs
Les utilisateurs normaux (non malveillants) peuvent tomber sur des bugs en utilisant le logiciel
Et les signaler aux développeurs en les contactant
Mais les personnes mal intentionnées peuvent _chercher_ des bugs:
- en analysant le code du programme (analyse statique)
- en faisant fonctionner le programme (analyse dynamique)
Exemple de test dynamique: entrer "bonjour" dans un formulaire qui attend une date d'anniversaire
Cela à l'air trivial mais si la saisie est mal gérée sur le serveur, cela peut révéler un bug
Le code d'un logiciel peut être accessible publiquement
C'est ce que l'on appelle un code "open source"
Si le code source n'est pas public, l'attaquant peut toutefois accéder au "code machine"
C'est le code qui est exécuté par votre ordinateur, il est beaucoup plus dur à lire pour un humain
Mais pas impossible. Pour ce faire, un attaquant fait ce qu'on appelle de la rétro ingénierie
Une fois que l'attaquant a trouvé un bug, il peut chercher quelle est la cause du bug
La gravité "sécurité" du bug en varie grandement
Certains bugs exploités peuvent par exemple permettre à l'attaquant de découvrir des informations techniques, alors que d'autres permettent de compromettre totalement la machine sur laquelle est exécuté le logiciel
Exemples :
- si le bug se trouve sur votre navigateur web, c'est potentiellement votre machine toute entière qui peut être compromise
- si le bug se trouve sur un site web (Wikipedia par exemple), c'est la machine qui héberge le site Wikipédia qui peut être compromise
Certains logiciels sont donc beaucoup plus critiques que d'autres :
- Navigateur web
- Client courriel / email bureautique
- Lecteur image, musique, pdf (Acrobat Reader)...
car ces logiciels manipulent des données qui proviennent souvent d'Internet
Un logiciel peut donc contenir des bugs exploitables : ce sont des failles de sécurité
Si une faille est découverte, mais que l'éditeur n'en est pas prévenu, on parle de vulnérabilité "zero-day"
"0 jour que l'éditeur est au courant du bug"
Les 0day peuvent se vendre très cher sur le dark web, selon le logiciel impacté et la sévérité de la faille
A l'inverse, si l'éditeur est mis au courant du problème
-> celui-ci va développer et publier un correctif de sécurité rapidement
Les utilisateurs pourront alors installer une mise à jour
Tant que vous ne mettez pas à jour votre logiciel, vous êtes donc exposé à une faille de sécurité PUBLIQUE
N'importe qui peut essayer de l'exploiter
Voilà pourquoi il faut mettre à jour ses logiciels régulièrement
Attention à ne pas être paranoïaque sur les 0days
OUI, il est possible (et presque certain), que des failles 0day tout à fait inconnues existent sur des navigateurs comme Firefox ou Chrome
MAIS un attaquant possédant une telle faille n'a pratiquement / probablement aucun intérêt à vous cibler
Sauf si vous êtes une cible... (exemple récent de Pegasus)
En effet, les 0days sont des failles précieuses qui peuvent valoir très cher
Elles nécessitent souvent des centaines d'heures pour être trouvées
Utiliser une 0day contre un utilisateur lambda, c'est prendre le risque que la vulnérabilité soit exposée au public
Les 0day sont souvent utilisés par des gouvernements pour des attaques étatiques
Exemples:
- Stuxnet, qui utilisait quatre vulnérabilités 0day (2010)
- Outils de la NSA révélés par Shadow Broker (août 2016)
- Logiciel de piratage des mobiles Pegasus (dont l'ampleur de l'utilisation est révélé en 2021)
Les deux scénarios principaux sont :
1/ De l'ingénierie sociale pour essayer de vous faire cliquer/exécuter un programme malveillant
C'est le scénario le plus courant
2/ Une exploitation via une faille de sécurité non mise à jour sur un de vos logiciels
(par oubli de votre part par exemple)
Scénario moins courant car beaucoup plus technique pour l'attaquant
Mais existe, d'où la nécessité de mettre à jour régulièrement
Ce dernier scénario est toutefois très efficace, parce qu'il ne nécessite aucune action de votre part pour être exploité
A noter que le scénario 1 peut utiliser des vulnérabilités du scénario 2
- Programme de recherche de vulnérabilités contre rémunération
- Chaque site, fournisseur de logiciel, peut proposer un programme de bug bounty
- Lorsque que quelqu'un trouve une vulnérabilité sur un site / logiciel du programme, il peut être rémunéré en fonction de la sévérité
- Activité en développement et de plus en plus courante (mais n'a pas que des vertus)
-> dwwdtxh ghpdlq pdwlq
- comment déchiffrer ce message ?
-> dwwdtxh ghpdlq pdwlq
-> attaque demain matin
- on peut améliorer notre système de Cesar
- on substitue chaque lettre de l'alphabet par une autre
- la clef --> élément secret connu seulement de l'expéditeur et du destinataire
- l'algorithme --> mécanisme qui prend un texte à chiffrer avec une clef, et le rend inintelligible
En bref : chiffrer un message revient à transformer un grand secret en un petit secret
- un chiffrement consiste à rendre un texte inintelligible grâce à un algorithme cryptographique et une clef secrète
- un encodage consiste à réécrire une information en utilisant un code (public)
- lors de la seconde guerre mondiale, cacher le système était vital
- si le système tombait entre les mains de l'ennemi, il s'en trouvait affaibli voire compromis
- exemple d'Enigma, la machine utilisée par les militaires allemands
- le système de chiffrement / déchiffrement doit être robuste
- le système doit pouvoir tomber entre les mains de l'ennemi sans crainte
- la clef doit pouvoir être retenue sans le secours de notes écrites
en bref --> la seule chose secrète est la clef
- tout ce que l'on vient de voir concerne le chiffrement symétrique
- la clef utilisée pour chiffrer et déchiffrer un message est identique
- problématique de l'échange des clefs --> comment échanger les clefs ?
- pendant la seconde guerre mondiale, il y avait des carnets de codes préalablement échangés
- utilise une clef différente pour chiffrer et déchiffrer
- les deux clefs sont corrélées, mais la connaissance de l'une ne permet pas de trouver l'autre
- les asymétries, des problèmes mathématiques faciles dans un sens et difficiles dans l'autre, sont au coeur des chiffrements asymétriques
- le chiffrement RSA, un des premiers chiffrements asymétriques, repose sur la difficulté à factoriser les grands nombres (ce qui se rapporte à la distribution des nombres premiers)
- si vous trouvez un moyen de factoriser rapidement les nombres, vous cassez RSA (et vous devenez célèbre)
- on utilise une clef publique pour chiffrer un message
- et une clef privée pour le déchiffrer
- plus besoin d'échanger des clefs de façon secrète au préalable pour communiquer de manière chiffrée
- chacun doit avoir un couple clef privée / publique
- pour accéder aux sites web de manière sécurisée (le S de HTTPS)
- pour chiffrer vos messages sur Whatsapp... ou mieux, Signal
- en bref : pour établir n'importe quel canal sécurisé entre deux machines (voir VPN plus tard)
C'est une fonction qui prend en entrée des données quelconques et donne en sortie une empreinte unique
Exemple: la fonction de hash SHA-256
- irréversibles
- deux jeux de données différents ont des condensés différents
- une infime modification des données change complètement le condensé
- Exemple d'utilisation: les condensés sont utilisés pour ne pas stocker les mots de passe
Appliquer les recommandations des cryptographes, ne pas "improviser"
En 2025, recommandations:
- Asymétrique: RSA 2028... mais on passe à 3072 bits
- Symétrique: AES 128 bits
- Algorithme de condensation / hash: SHA-256
Référence: https://www.keylength.com/fr/
Cryptographie : science visant à transformer, à l'aide de conventions secrètes, des informations en clair en informations inintelligibles sans connaître la clé
Cryptanalyse : science visant à analyser un message chiffré pour le rendre intelligible sans connaître la clé
Cryptologie : science regroupant la cryptographie et la cryptanalyse
Stéganographie : discipline de la cryptographie visant à camoufler des informations sur un support
Code : méthode de chiffrement substitant des mots du clair par d'autres mots
Chiffrer : convertir de l'information intelligible (texte clair) en information inintelligible (texte chiffré)
Déchiffrer : opération inverse, permet de retrouver le texte clair à partir du texte chiffré
Confidentialité : chiffrement de données qui assure que seules les entités autorisées y auront accès
Signature : preuve de l'intégrité de données et de l'identité de son auteur
Intégrité : garantie que des données n'ont pas été modifiées ou altérées, toute modification doit être décelable
Authentification : processus visant à établir de manière formelle et intangible l'identification d’entités ou de données
Non-répudiation : caractéristique qui garantit qu’une action ou transaction ne puisse pas être mise en cause par son ou ses auteurs
La sécurité est une situation objective caractérisée par la seule présence de risques maitrisés
> La sûreté est relative aux risques accidentels tandis que la sécurité traite des actes malveillants
> Dans le domaine informatique, le terme utilisé est « sécurité » ou « cybersécurité » (« sûreté » est parfois utilisé pour parler de sécurité physique)
Les risques sont des contingences indésirables qui peuvent être avérées, potentielles ou futures
Ils découlent d'une probabilité qu'une menace exploite, intentionnellement ou non, une vulnérabilité
Il y a quatre façons de traiter un risque unitaire :
> le réduire
> l'accepter
> le refuser
> le transférer
La sécurisation résulte toujours d'une dynamique
La façon classique de présenter les risques :
> Les risques surgissent du croisement de (Menaces) et de (Vulnérabilités)
> Quantification du risque = (Impact) x (Probabilité d'occurrence)
Quel est à votre avis le problème de cette approche de quantification des risques ?
Les impacts peuvent se décliner en trois catégories :
> Intégrité
> Confidentialité
> Disponibilité
> Non-conformité (aux lois, réglements, contrats...)
Enfin, les mesures de sécurité peuvent se diviser en trois catégories :
> Prévention : mesures visant à empêcher la matérialisation d'un risque, ou retarder les actions des attaquants. Réduisent la probabilité d'occurrence, la surface d'attaque
> Détection : nécessaires si l'on admet qu'aucune mesure de sécurité préventive ne peut arrêter tout attaquant, que cela dépend de leurs compétences et de leurs moyens
> Réaction : mesures qui visent à réduire l'impact d'une attaque, suite à sa détection
Trouver cet équilibre est essentiel
Le risque 0 ne peut pas exister. Il n'y a pas de vie sans risques
La sécurité a un coût: en énergie, en temps, en argent, mais aussi en usage et en liberté
Il faut toujours se demander si le coût des moyens de sécurité n'est pas disproportionné, ou ne met pas en jeu certains principes éthiques essentiels
La bonne sécurité résulte toujours d'un équilibre...
(et ce n'est pas dans l'ère du temps)
Pour faire de la bonne sécurité, il faut savoir penser comme un attaquant
Et donc essayer de savoir qui ils peuvent être...
Objectifs : Gains financiers
Moyens : vol et revente de données, fraudes et détournements de fonds, demandes de rançons, mise à disposition d'infrastructures d'attaques (CaaS, botnets, etc.)
Objectifs : Divers / Opportunistes
Moyens : Opportuniste, utilisation d'outils et de services d'attaques
Objectifs : Espionnage, désinformation, cyberguerre
Moyens très importants : dénis de service, attaques ciblées, portes dérobées...
Objectifs : Espionnage industriel, avantage concurrentiel
Moyens : Dénis de services, vol de données, attaques ciblées, ransomwares, via des mercenaires
Objectifs : Divers
Moyens : Accès à des ressources non protégées, exploitation de lacunes de sécurité
Objectifs : Impact médiatique, politique
Moyens : Défacements, dénis de service, vol de données
Objectifs : Gain de temps, aucun
Moyens : Manque de sensibilisation à la sécurité, complexité du SI
Les attaquants vont déployer divers types d'attaques :
> Attaques « au filet dérivant »
> Attaques ciblées
> Intrusion en ciblant des défauts de protection
> Ransomwares (rançongiciels... cf. Cyberdico)
> Attaques par chaine d'approvisionnement
> Matériels ou logiciels piégés
> Dénis de service (DoS), Dénis de service distribués (DDoS)
> Tous les "scams" que vous recevez, non personalisés
> Courriels de phishing, contenant des malwares ou des liens (par exemple vers des fausses mires d'authentification)
> Attaques de point d'eau (Watering Hole)
> Courriels malveillants personnalisés, spear phishing
> Faux sites, typosquatting
> Clés USB piégées
> Exploitation de vulnérabilités sur les services en ligne
> En 2012, contre l'Elysée, utilisation de "Flame" et FB...
> De 2013 à aujourd'hui, contre des journalistes, politiques, opposants, militants... ciblés sur leurs mobiles par le logiciel Pegasus
> Compte Twitter de Trump
> Attaques Target et Banque centrale du Bangladesh
Avant l'élection US de 2016, trois experts néerlandais avaient réussi à s'authentifier sur le compte Twitter de Trump. Comment ? En cherchant l’intéressé dans une base de comptes ayant fuité en 2012, provenant de LinkedIn. La base ne contenait pas les mots de passe, mais leurs condensés
Pour savoir si vous apparaissez sur un leak: https://haveibeenpwned.com
Le condensé associé à Trump était : 07b8938319c267dcdb501665220204bbde87bf1d
Comment retrouver le mot de passe correspondant ?
Ils ont utilisé un outil, John the Ripper, pour trouver le mot de passe
Mais dans ce cas, parce que les mots de passes n’étaient pas salés, ils auraient aussi pu utiliser des rainbow table, comme celles accessibles sur https://crackstation.net
> Quels problèmes voyez vous?
- mot de passe très faible
- mots de passe non salés
- réutilisation du même mot de passe sur plusieurs sites
- pas d'utilisation d'authentification multi-facteurs
- pas de surveillance des leaks
- les autorités US n'ont pas réagi lorsque l'info leur a été transmise
Vol de 40 millions de numéros de carte de crédit et des données personnelles de 70 millions de personnes
Dommages estimés : plus de 150 millions de dollars (mais les estimations de pertes financières sont toujours sujettes à caution)
Vol de 81 millions de dollars, via l'infrastructure SWIFT
Détails sur
> Chiffrement des données de la cible et demande de rançon
> Eventuellement, vol et publication de données pour augmenter la pression
> Paiement? Assurances cyber?
> Avril 2020: d'après une étude, 46% des PME / TPE britanniques ont été ciblées par des rançongiciels et 73% de celles chez qui les attaques ont fonctionné... ont payé
> 2017: WannaCry. Victimes: Nissan, Telefónica, FedEx...
> 2017: Petya / NotPetya. Victimes: Maersk, Saint-Gobain, DHL...
> 2021: Colonial Pipeline
> Compromission d'un fournisseur de logiciel
> Distribution aux clients / utilisateurs de versions compromises
> Très difficile de s'en prémunir
> Trappes - backdoors
> Historiquement, les services de renseignement (Exemple: Stuxnet 2010)
> Ce que vous téléchargez sur des sources non sûres peut être compromis (logiciels, apps, extensions des navigateurs...)
> Rendre des sites / services indisponibles en envoyant des requêtes pour saturer le service
> Soit depuis une ou quelques sources: Denial of Service (DoS)
> Soit depuis de très nombreuses sources (bots), Distributed Denial of Service (DDoS)
> Exemples: Dyn (provider de DNS), en 2016: botnet IoT, plusieurs centaines de Gbps
Loi Godfrain du 5 janvier 1988
Loi 88-19 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 »
La défense périmétrique, ce sont toutes les mesures de sécurité visant à isoler un système d’information de « l’extérieur ».
Mesures et dispositifs permettant par exemple de :
- Dissimuler le réseau et les services internes de l’extérieur
- Filtrer le trafic entrant et sortant
- Filtrer les données entrantes, i.e. le contenu du trafic
- Délimiter des zones de confiance variable: réseau local, Internet
- Détecter des tentatives d’intrusion
- Créer des points d’accès distants (pour connexions à d’autres réseaux, à Internet)
Un pare-feu est un équipement de sécurité réseau qui permet de filtrer et surveiller le trafic entre des zones réseau, selon des règles préétablies.
Options de règles typiques :
- Tout ce qui n’est pas explicitement interdit est autorisé : liste d'exclusion (denylist - ex-blacklist)
- Tout ce qui n’est pas explicitement autorisé est interdit : liste d'autorisation (allowlist - ex-whitelist)
Une « zone démilitarisée » est une zone entre deux zones de sensibilité différentes, par exemple un réseau interne et Internet
On y met les serveurs et composants qui sont "à cheval" sur les deux zones et cela permet de filtrer et d'interrompre les flux
Exemples de composants: serveurs web, serveurs de messagerie, accès VPN, répartiteurs de charge, proxy web...
Une sonde IDS (Intrusion Detection System) est un dispositif qui surveille le trafic réseau pour détecter des signes de malveillance ou des violations des politiques de sécurité
Les sondes qui savent bloquer un flux sont appelées IPS (Intrusion Prevention System)
Les virus et codes malveillants (malwares) sont un risque connu depuis longtemps, ils arrivent souvent par courriel
Filtrer les courriels entrants est un enjeu important: spams, scams (selon réputation), liens et pièces jointes malveillantes, spoofing...
Dans la plupart des organisations existent des proxys web, qui relaient les requêtes des utilisateurs au sein d’un réseau local
Ces équipements ont des fonctions de sécurité importantes: filtrage par catégories / réputation, listes d'exclusion, selon le contenu...
La sécurité ce ne sont jamais que des logiciels, des produits
La sécurité ce sont des processus
La défense en profondeur consiste à mettre des défenses au cœur du système d’information (SI), et pas uniquement en périphérie. Cela vise à ralentir ou stopper un attaquant qui aurait percé les défenses périmétriques
On modélise en général la défense en profondeur en quatre activités :
- sécuriser le réseau
- sécuriser les hôtes (serveurs, postes de travail)
- sécuriser les applications
- sécuriser les données
Un réseau interne peut-être « à plat » ou cloisonné
S’il est « à plat », toute @IP peut être jointe par toute @IP
Le cloisonnement réseau consiste à définir des sous-réseaux différents, et à filtrer les flux entre ces sous-réseaux
Logiciels, parfois appelés antimalwares, destinés à détecter, stopper et supprimer les logiciels malveillants (virus, vers, keyloggers, rootkits, ransomwares, chevaux de Troie…).
Les malwares détectés peuvent être bloqués, supprimés ou mis en quarantaine
Détections sur le principe de signatures ou de comportements
Exemples d’antivirus : https://www.virustotal.com
Il s’agit du processus de gestion continue des vulnérabilités techniques. C’est un pilier de ce que l’on appelle le maintien en conditions de sécurité (MCS)
Tous les jours sont publiées des vulnérabilités affectant les OS, les logiciels, les firmware...
Exemple des pires vulnérabilités: celles qui sont activement exploitées: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Le durcissement des systèmes consiste à en réduire la surface d’attaque, c’est-à-dire les potentielles vulnérabilités, en modifiant les configurations
Exemples:
- Désactivation de comptes non nécessaires
- Modifications des mots de passe par défaut
- Désinstallation des logiciels inutiles
- Restrictions d’accès à certaines ressources
- Restriction de l’usage des droits administrateur
Chiffrement des données "at rest"
Chiffrement des données "in transit"
Exemplew: Gestion (chiffrées) de vos mots de passe: https://keepass.info, TLS (https) ou... Zip chiffrés.
La sécurisation doit être homogène : la sécurité globale est toujours celle du maillon le plus faible
Sur la base des traces, logs et alertes:
- Détecter les tentatives d'intrusion, au plus vite. Outil de traitement des évennements de sécurité: SIEM
- Investiguer, pour connaitre les impacts (forensics - DFIR - anayse "post mortem")
- Réagir, pour limiter les impacts et empêcher que ça n'arrive à nouveau
Organisation:
SOC, CSIRT, CERT, cellules de crise, communication...
Faire tester ses systèmes par des professionnels de la sécurité offensive
- Découvrez vos propres faiblesses avant qu’un tiers ne le fasse
- Corriger / réduire les risques
- La connaissance des attaques oriente la défense
Types de pentests:
A des fins de conception, de maintenance et de sécurité, les logiciels journalisent l'historique des évènements qu'ils traitent ou subissent
Un fichier de logs ou journal d'évènements est un fichier qui contient ces entrées
Tous les logiciels peuvent en générer, avec différents niveaux de détail
"access.log" d'un serveur web:
Logs d'erreur d'un logiciel:
Historique d'un navigateur:
> Les traces / logs peuvent servir à:
- Identifier un dysfonctionnement, une erreur
- Identifier des tendances, faire des statistiques
- la sécurité
- comme élément de preuve
- Dans l'historique de votre navigateur
- Sur les équipements réseau qu'ont traversé vos requêtes
- Sur les serveurs DNS
- Sur les moteurs de recherche que vous avez utilisés
- Sur le serveur qui héberge le site que vous consultez
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’une authentification précédente, 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
> Exemple de cookie (1/2)
> Exemple de cookie (2/2)
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 pour les liens "Sponsorisés"...
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 ?
Les fichiers, sur un disque dur ou une clé USB, sont organisés par un système de fichiers (filesystem)
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
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 (magic bytes)
(par exemple 0xFFD8 signifie SOI – start of image – pour JPEG)
Exemple de logiciel permettant la récupération de fichiers 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
Comment trouver un logiciel sans risquer d'en installer un vérolé?
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 SSD (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.
> VPN
"Réseau privé virtuel"
Deux objectifs possibles :
- créer un tunnel chiffré entre deux ordinateurs / réseaux
- créer un réseau privé qui passe par Internet
- possibilité de l'utiliser pour cacher son IP publique
- c'est donc l'IP de sortie du VPN qui sera visible sur les paquets réseau
- attention : l'hébergeur du VPN, lui, est toujours au courant des sites que vous visitez
- cela ne sécurise en rien votre ordinateur, cela permet tout au plus de cacher (partiellement) votre identité
- selon les législations, les hébergeurs de VPN sont tenus de donner des informations aux autorités si besoin
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, connaît des usages bienveillants et malveillants (le fameux Dark web?)
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 noeud... en couches successives