Introduction à la cybersécurité

 

Université Paris XIII - Master 2

I. Rossenbach
 
Twitter @secucrypt      |      iro@cryptosec.org

www.cryptosec.org

 

Décembre 2017 - version 2

  Adresse du support de cours:

  http://www.cryptosec.org/docs/CoursMaster2017/CoursCyberSecuriteMaster_2017_v2.pdf

 

  Sous licence Creative Commons – BY – NC – SA

  « Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions » (CC BY-NC-SA 2.0 FR)
 

 

  Avant de commencer...

 

  Mon compte a-t-il été compromis?

 

  https://haveibeenpwned.com/

Sommaire

 

  • Une attaque réelle
  • La sécurité et les risques
  • Équilibre entre le cout de la sécurité et la liberté des usages
  • Paysage des menaces
  • Défense périmétrique
  • Défense en profondeur
  • Politique de sécurité

Sommaire

 

  • Sensibilisation sécurité
  • Méthodes d’authentifications cliente
  • Détection
  • Réaction
  • Éthique et légalité
  • Sécurité des applications
  • Récapitulatif : les grands principes de la sécurité

Une attaque réelle

Target - Décembre 2013
Chronologie de l'attaque

La sécurité et les risques

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.

> Mais dans le domaine informatique, le terme utilisé est « sécurité » (« sûreté » est utilisé en 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 :

 

> Risque = (Menace) x (Vulnérabilité)

 

> Quantification du risque = (Impact) x (Probabilité d’occurrence)

 

Quel est le problème de cette approche de quantification des risques ?

Les impacts peuvent se décliner en trois catégories :

 

> Intégrité

 

> Confidentialité

 

> Disponibilité

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 d’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 un attaquant suffisamment motivé, compétent ou doté de moyens assez importants.

> Réaction : ces mesures visent à réduire l’impact d’une attaque, suite à sa détection.

Équilibre entre la sécurité et les usages

Trouver cet équilibre est essentiel.

Non seulement le risque 0 ne peut pas exister, mais il n’y a pas de vie sans risques.

Et la sécurité a un cout, en énergie, en temps, en argent, mais aussi en usage et en liberté.

Il faut toujours se demander si le cout des moyens de sécurité n’est pas disproportionné, ou ne met pas en jeu certains principes essentiels.

La bonne sécurité résulte toujours d’un équilibre...

(et ce n'est pas dans l'ère du temps)

Paysage des menaces

Pour faire de la bonne sécurité, il faut savoir penser comme un attaquant.

Et donc essayer de savoir qui ils peuvent être…

Cyberdélinquance

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

Script kiddies

Objectifs : Divers / Opportunistes

Moyens : Opportuniste, utilisation d’outils et de services d’attaques

Vous connaissez ?

États et groupes paraétatiques

Objectifs : Espionnage, désinformation, cyberguerre

Moyens très importants : dénis de service, attaques ciblées, portes dérobées…

Concurrence

Objectifs : Espionnage industriel, avantage concurrentiel

Moyens : Dénis de services, vol de données, attaques ciblées, ransomwares, via des mercenaires

 

Malveillances internes

Objectifs : Divers

Moyens : Accès à des ressources non protégées, exploitation de lacunes de sécurité

Cyberprotestations

Objectifs : Impact médiatique, politique

Moyens : Défacements, dénis de service, vol de données

 

Erreurs, négligences

Objectifs : Gain de temps, aucun

Moyens : Manque de sensibilisation à la sécurité, complexité du SI

On voit que tous ces types d’attaquants vont déployer divers types d’attaques :

> Attaques « au filet dérivant »: courriels piégés (phishing), sites compromis avec malwares, faux sites...

> Attaques ciblées: envoi de courriels personnalisés (spear phishing), clés USB piégées, faux sites ciblés…

> Intrusion en ciblant des défauts de protection, des vulnérabilités applicatives…

> Dénis de service (DoS), Dénis de service distribués (DDoS)

> Distribution de matériel ou logiciels piégés (trappes - backdoors…)

> …

Défense périmétrique

Ce sont toutes les mesures de sécurité visant à isoler un système d’information de « l’extérieur ».

Pare-feu | DMZ | WAF | IDS / IPS | Filtrage courriels / web

Mesures et dispositifs permettant par exemple de :

> dissimuler le réseau et les services internes / à l’extérieur

> différencier et filtrer le trafic entrant et sortant (indépendamment de ce qu’il contient)

> délimiter des zones de confiance variable: réseau local, DMZ externe

> détecter des tentatives d’intrusion

> filtrer les données entrantes (le contenu du trafic)

> créer des points d’accès distants (pour connexions à d’autres réseaux, à internet)

Filtrage réseau

Pare-feu

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.

Typiquement ils vont permettre de séparer une zone réseau de confiance (comme le LAN d’un SI) d’une zone non sure, comme internet.

Pare-feu?

Imaginons que vous soyez en voiture et que vous deviez rejoindre un village, pour y acheter un cercle. Puis vous devrez en revenir (avec le cercle dans le coffre de votre voiture).

À l’approche du village, une girafe persuadée de l’importance des frontières est plantée au milieu de la route et contrôle ceux qui veulent passer.

Selon quels principes peut-elle agir pour vous laisser passer ou non, à l’aller et au retour ? (si la girafe se comportait comme un pare-feu)

Pare-feu

Types de pare-feu: réseau, logiciels ou en appliances, locaux, à états (stateful)...

Option de règles typique :

> Tout ce qui n’est pas explicitement interdit est autorisé : liste noire (blacklist)

> Tout ce qui n’est pas explicitement autorisé est interdit : liste blanche (whitelist)

Pare-feu

Problèmes typiques :

> Accumulation de règles

> Absence d’audit

> Ouvertures en cas d’incident, et non-fermeture ultérieure

> Règles temporaires non fermées

 

De plus, il est impossible interdire ce que vous devez autoriser. Sachez faire accepter les risques identifiés.

Filtrage réseau

DMZ

Une « zones démilitarisée » est une zone entre deux zones de sensibilité différentes

Elles peuvent contenir des services qui doivent être exposés

Elles peuvent également héberger des dispositifs de sécurité

En général les DMZ sont construites sur un pare-feu assurant le filtrage des zones séparées.

Les flux doivent être initiés des zones les plus sensibles vers les zones les moins sensibles.

Filtrage réseau

WAF - Web Application Firewall

Les pare-feu applicatifs filtrent, inspectent et tracent les flux au niveau des protocoles applicatifs, comme HTTP ou FTP.

WAF

Ils combinent des règles et des signatures.

Les flux chiffrés ne seront pas analysés.

Au-delà du filtrage, ils permettent de détecter et bloquer certaines attaques applicatives, comme les SQLi, DoS, directory traversal, XSS, etc.

https://modsecurity.org/

Exemples: Core Rule Set qui implémentent des détections des vulnérabilités du Top 10 de l’OWASP pour ModSecurity ou règles PCI DSS (Payment Card Industry Data Security Standard)

WAF

Ils sont compliqués à configurer: pour éviter les faux positifs, il faut souvent une compréhension fine de l’application.

On commence souvent par un mode apprentissage, avant de les passer en mode bloquant.

Exemple:

SecRule ARGS|REQUEST_HEADERS “@rx <script>” id:101,msg: ‘XSS Attack’,severity:ERROR,deny,status:404

Filtrage réseau

IDS / IPS

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é.

Il génère des traces (qui peuvent alimenter un SIEM) et des alertes.

Les plus connus sont Snort (www.snort.org) et Suricata (suricata-ids.org)

Placées à des placées à des points clé du réseau. Mais attention à ne pas en faire un SPOF.

IDS / IPS

Méthode de détection :

> Par signatures, par exemple en cherchant certains motifs, des séquences d’octets ou des séries d’instructions connues comme étant malveillantes. Défaut : ne détecte que les attaques connues / Très sensible au polymorphisme des attaques, comme l’insertion de code mort ou les changements d’encodage.

> Par détection d’anomalies, détectées par rapport à ce qui aura été « appris » comme étant « normal ». Défaut : les faux positifs.

IDS / IPS

Les sondes qui savent bloquer un flux sont appelées IPS (Intrusion Prevention System).

Le blocage peut se faire par exemple par reconfiguration d’un pare-feu, ou en bloquant une attaque s’ils sont en coupure.

Pour les esquiver : Fragmentation des paquets, changement des ports par défaut, spoofing / proxyfication de l’adresse source, modifications patterns d’attaque (par exemple modification du payload).

Sur quels flux vont-elles être peu efficaces ?

IDS / IPS

Problème des missed alarms et du bruit qui noie les détections de cas réelles (comme les trames malformées suite à des bugs).

La sécurité ce sont des processus, jamais des produits. Il faut donc mettre en place des processus et une organisation, les produits ne sont que des moyens.

Filtrage des courriels

Les virus (ou malwares) sont un risque connu depuis longtemps, ils arrivent souvent par courriel.

 

Quelle différence entre spam et virus ?

Filtrage des courriels

La majorité des attaques ciblées commencent par des courriels envoyés à des victimes contenant des pièces jointes malveillantes (phishing ou spear phishing). Ces pièces jointes peuvent être des documents Office avec du code VB dans des Macros, ou des documents PDF contenant du Javascript…

Ces pièces jointes peuvent – parfois – être détectées par les passerelles.

Filtrer les courriels entrants est un enjeu important.

Filtrage des courriels

En général les messages sont traités en chaine, chaque étape pouvant bloquer le courriel. Par exemple :

> Identification si SPAM

> Vérification anti-virus / antimalware

> Éventuellement sandboxing des pièces jointes

 

Ne vous faites pas blacklister!

Filtrage des accès web

Dans la plupart des organisations ont été mis en place des proxys web (à l’origine pour résoudre des problèmes de bande passante).

Les proxys web relaient les requêtes des utilisateurs au sein d’un LAN.

Ils sont devenus au fil des années un équipement de sécurité clé.

Filtrage des accès web

Beaucoup d’attaques utilisent les connexions vers internet:

> L’attaque se fait via un site web compromis ou un document téléchargé qui est piégé

> Le proxy web peut servir à récupérer la « charge utile » (payload) d’un malware, récupérée par un dropper.

> Le proxy web sert à l’attaquant pour communiquer avec le poste de travail ou le serveur qu’il contrôle (C2)

 

Comme dans le cas des passerelles de messagerie, filtrer les accès sortants web est essentiel.

Filtrage des accès web

Les méthodes d’analyses peuvent être :

> analyse des protocoles

> analyse du contenu, en particulier recherche de signatures et motifs malveillants

> blocage de certains protocoles, types MIME, de certaines extensions de fichiers, selon une politique de sécurité

> système de réputation et de catégorisation des sites

Filtrage des accès web

Les fichiers chiffrés ne peuvent être analysés, et les sessions TLS doivent être déchiffrées pour pouvoir être inspectées.

 

Ici comme de façon générale en sécurité, souvenez-vous d’une banalité :

il est impossible d'interdire ce que vous devez autoriser. Et donc, sachez accepter ou faire accepter les risques identifiés.

Défense en profondeur

L’idée est de mettre des défenses au cœur du SI, et pas uniquement en périphérie. Cela vise à ralentir ou stopper un attaquant qui aurait percé les défenses périmétriques.

Cloisonnement interne | Antivirus | AV non local | HIPS | VPM | Durcissement | NAC | Chiffrement des données | Sécurisation de flux

Défense en profondeur

> sécuriser le réseau

> sécuriser les hôtes (serveurs, postes de travail)

> sécuriser les applications

> sécuriser les données

Défense en profondeur

L’hypothèse est que les défenses externes peuvent être défaillantes, et qu’il faut que l’attaquant soit confronté à des barrières internes.

En sécurité, il est essentiel de prioriser. Ne cherchez pas à atteindre le risque 0. Concentrez-vous sur les mesures les plus efficaces.

Commencez par des configurations sécurisées, la gestion des droits, avant de penser à utiliser des produits.

Défense en profondeur

Cloisonnement interne

Un réseau interne, un LAN, peut-être « à plat » ou cloisonné.

S’il est « à plat », toute @IP peut être jointe par toute @IP.

Cloisonnemer c'est définir des sous-réseaux différents et filtrer les flux entre eux. Des flux peuvent être interdits, ou certains flux seulement être autorisés :

> Le cloisonnement réseau commence en structurant son réseau.

> Ce n’est que sur la base de cette structure que l’on met en place des règles de filtrage.

Défense en profondeur

Cloisonnement interne

Au niveau des switch on peut définir des VLAN (virtual)

On peut typiquement trouver des VLAN pour services de criticité différente, pour héberger des environnements différents (production, intégration, développement…), etc.

Défense en profondeur

Antivirus

Logiciels, parfois appelés anti-malwares, destinés à détecter, stopper et supprimer les logiciels malveillants (virus, vers, keyloggers, rootkits, ransomwares, chevaux de Troie…).

Les méthodes utilisées par les éditeurs d’AV sont souvent obscures et peu ou pas documentées.

Mais deux grandes familles:

> Détections par signatures

> Méthodes avancées, ou heuristiques

Défense en profondeur

Antivirus

Notion de quarantaine... inspirée d’une pratique très ancienne.

 

De façon générale : ne pensez pas que par déductions et inductions. La pensée par analogie est souvent très fructueuse.

Défense en profondeur

Antivirus

Les AV ne détectent pas tous les malwares. En particulier, les attaques de type « Odays » ne seront pas détectées par la méthode des signatures (une analyse comportementale peut cependant réussir).

De plus, de nombreux attaquants utilisent dans leurs protocoles d’attaque des outils faisant partie d’exceptions des analyses AV (« whitelistés » ; cf. le cas Target).

Les AV embarquent parfois des fonctions de détection comportementales, « HIPS » (cf. plus bas).

Antivirus

Comme pour tous les dispositifs de détection et de blocage, ils introduisent un risque. Lequel ?

Défense en profondeur

Antivirus

Il existe des solutions d'AV non locaux. Par exemple, au niveau d’un proxy web via des requêtes ICAP (Internet Content Adaptation Protocol) vers un serveur d’AV.

Pour tester si un ordinateur ou une infrastructure détecte un virus: fichiers de test EICAR (European Institute for Computer Antivirus Research).

Moteurs d'AV : VirusTotal : https://www.virustotal.com (Attention : si vous soumettez un fichier, les résultats seront accessibles aux abonnés). Il est également possible de soumettre des condensés.

Défense en profondeur

HIPS

Host Intrusion Prevention System (HIPS): surveillance des évènements malveillants sur un ordinateur.

Similaire à un pare-feu, mais agit sur les changements et les processus (au lieu du réseau).

Mal configuré, un HIPS – comme toute solution de sécurité – peut lourdement handicaper l’expérience utilisateur.

Défense en profondeur

VPM (Vulnerability and Patch Management)

Comme toujours en sécurité, c’est un processus...

Celui de la gestion continue des vulnérabilités techniques. Cela contribue grandement au maintien en conditions de sécurité (MCS).

Tous les jours sont publiées des vulnérabilités affectant les OS, les logiciels, les firmware…

VPM (Vulnerability and Patch Management)

Les vulnérabilités sont en général publiées selon une certaine nomenclature, les CVE (Common Vulnerabilty Exposure).

À cette description est associée une estimation de la criticité selon une échelle, le CVSS (Common Vulnerability Scoring System)

Scoring adaptable: https://nvd.nist.gov/cvss/v2-calculator?

Souvent, si les éditeurs ou fabricants publient (disclose) des vulnérabilités, ils publient en même temps un correctif de sécurité qui les corrigent.

VPM (Vulnerability and Patch Management)

Mais d'ailleurs...qu'est-ce qu'une vulnérabilité sur un logiciel?

Soit un bug, soit une erreur de conception, qu’un chercheur en sécurité ou un attaquant parvient à exploiter à des fins malveillantes, soit une erreur de configuration... ou une backdoor (ou porte dérobée).

Exemple, « ShellShock » : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271

VPM (Vulnerability and Patch Management)

La première étape est de s’assurer que l’on va être informé en cas de publication d’une vulnérabilité sur l’un des logiciels que nous utilisons. Par une veille manuelle, ou par exemple en inscrivant ses logiciels à une source d’information spécialisée.

Ex. pour recherche manuelle: http://www.securityfocus.com/bid

Le déploiement des correctifs devrait être le plus automatique possible.

Effectuer des tests de non-régression

Défense en profondeur

Durcissement (hardening)

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.

Des actions de durcissement peuvent s’appliquer aux OS, aux firmwares, aux serveurs web, aux applications, aux bases de données, aux objets connectés, aux systèmes industriels, aux smartphones…

Durcissement

Un processus de durcissement bien maitrisé peut suivre trois grandes étapes :

> Définition d’une politique, papier uniquement

> Déploiement partiel des composants durcis ou des configurations durcies, et observation

> Généralisation, et gestion au quotidien des composants durcis (évolutions, dérogations, etc.)

Durcissement

Le durcissement, c'est aussi à définir des paramètres cryptographiques solides. Quelle longueur de clés ?

www.keylength.com/fr

Un projet existe également visant à définir des configurations crypto « prêtes à l’emploi » pour divers logiciels : https://bettercrypto.org/

Défense en profondeur

Network Access Control (NAC)

Les solutions de NAC permettent de contrôler les accès de ressources à un réseau.

Lorsque la sécurité physique n’est pas suffisante

Certaines mise en oeuvre permettent de conditionner l’accès à un réseau à des contrôles de conformité (présence d’AV à jour, correctifs de sécurité déployés, politiques de sécurité opérationnelles, etc.)

Qu'est-ce ?

Vraiment de la défense en profondeur ??

Défense en profondeur

Chiffrement des données (stockées)

Le chiffrement permet de rendre des données inintelligibles.

En simplifiant, il y a trois sortes de chiffrement :

> Le chiffrement des volumes de stockage (par exemple tout un disque, une base de données)

> Le chiffrement de containers (par exemple une partition, des tables d’une base de données)

> Le chiffrement de fichiers (ou des données avant de les enregistrer en base de données par exemple)

Chiffrement des données (stockées)

Chiffrer les données sur le disque dur permet de les protéger en cas de vol de l’ordinateur par exemple, sans se préoccuper si on a chiffré tel ou tel fichier.

La plupart des framework de développement contiennent des fonctions de chiffrement.

Ne réinventez pas la cryptographie.

Chiffrement des données (stockées)

Quelques solutions:

> Windows intégrée: BitLocker (avec TPM)

> BestCrypt, accompagné de BCWipe

> VeraCrypt

> GnuPG pour ses mails, (strandard OpenPGP)

(interlude)

(interlude)

 

Ayez toujours aussi en tête que la sécurisation doit être homogène : la sécurité est toujours celle du maillon le plus faible

Virtual Private Network (VPN)

Un VPN est une extension d’un réseau privé à travers des réseaux non sûrs, comme internet.

Outre la connexion entre plusieurs réseaux, les solutions de VPN permettent à des utilisateurs de se connecter à un SI de façon distante, comme s’ils étaient localement présents.

Les deux protocoles les plus communément utilisés pour mettre en place des VPN sont IPSec et TLS.

Sécurisation de flux : TLS

Transport Layer Security (TLS) est un protocole de sécurisation au niveau applicatif, successeur de SSL.

C’est le S de HTTPS, typiquement sur le port 443.

Il fonctionne avec des certificats X.509 : au moins un certificat « serveur », mais peut aussi utiliser des certificats « clients ».

Sécurisation de flux : TLS

Ce protocole assure :

> La confidentialité des données transmises

> L’intégrité des données transmises

> L’authentification du serveur, éventuellement du client

Sécurisation de flux : TLS

Une session TLS commence par un handshake...

Aujourd’hui, TLS est utilisé pour sécuriser les liens client / serveur, mais aussi pour établir des sessions « VPN » d’un client vers une passerelle.

Utiliser si possible les versions TLS 1.2 ou 1.3.

Sécurisation de flux : TLS

Une façon d’éviter les attaques Man-in-the-middle (MitM) ou les conséquences d’une compromission d’une AC est le certificate pinning : une étape est ajoutée à la validation d’un certificat serveur, la vérification du condensé de sa clé publique (ou d’un certificat de la chaine).

Pour détecter s’il y a un MitM : https://checkmyhttps.net

Longueurs de clés et conf':

> https://www.keylength.com/fr/

> https://bettercrypto.org/

Sécurisation de flux : IPSec

Internet Protocol Security: permet d’authentifier et de chiffrer les paquets d’une communication IP.

Les principaux éléments:

> Authentication Headers (AH)

> Encapsulating Security Payloads (ESP)

> Security Associations (SA)

IPSec fait partie intégrante de la spécification d’IPv6.

Vu qu’il est « bas » au niveau protocolaire, il permet d’établir des tunnels qui véhiculent tout type de protocoles sur IP.

Politique de sécurité

Une politique de sécurité est un document décrivant les obligations en matière de sécurité.

 

Un principe général peut être qu’il faut écrire ce que l’on fait, et faire ce que l’on écrit.

Elle peut définir :

> Les principes de sécurité

> Des règles précises de sécurité (Ex. politique de mots de passe, obligations en matière de Vulnerability and Patch Management)

> Les méthodes et critères de classification de l’information. Classifiez vos données (publique, interne, retreinte, confidentielle). Identifiez les données et processus sensibles!

> Les obligations en matière de respect de la Loi Informatique et Libertés

> La gouvernance de la sécurité...

L’objectif d’un corpus documentaire devrait toujours d’être compréhensible, cohérent, utilisable et utilisé.

Dans tous les cas, avant de commencer à rédiger des spécifications ou de développer, il faut lire, comprendre et prendre en compte les exigences des politiques de sécurité.

Pour définir une politique de sécurité, définir des priorités et des choix stratégiques, préférer les référentiels concrets et construits sur des constats techniques et factuels comme : https://www.sans.org/critical-security-controls

(plutôt / en complément d'ISO par exemple)

N’oubliez pas : la connaissance des attaques oriente la défense.

Sensibilisation à la sécurité

La seule façon d’atteindre un niveau de sécurité parfait… c’est sans utilisateurs. Mais il y en a!

Les utilisateurs, par leurs erreurs ou parce ce qu’ils sont victimes d’ingénierie sociale, sont souvent une cible de choix pour les attaquants.

Aujourd’hui, l’immense majorité des attaques réussies commencent par un courriel envoyé à quelqu’un qu’on essaie de convaincre de cliquer sur un lien, ou d’ouvrir une pièce jointe. Pas par une tentative d’exploitation d’une Oday sur un pare-feu.

Sensibilisez les utilisateurs à l'hygiène de la sécurité informatique... et soi-même.

S’il y a un message universel à retenir en matière de sensibilisation : « Réfléchissez avant de cliquer ».

Formez-vous.

Partagez avec vos pairs, assistez à des conférences. Sur les méthodes, les vulnérabilités, les incidents… Pas avec n’importe qui, dans des cercles de confiance et faisant attention à la confidentialité. Mais partagez.

Sécurité des accès

Les principes généraux d’une bonne sécurité des accès :

> Une identification, authentification, autorisation et traçabilité solide

> Moindre privilège : donner les privilèges minimums

> Besoin d’en connaitre : ne donner les accès qu’aux personnes en ayant besoin, pour le temps nécessaire, et les retirer ensuite.

> Séparation des rôles : séparation des taches criques entre divers intervenants, afin d’éviter l’assurance et l’accumulation des privilèges, par exemple procédures 4 yeux

La première étape de la sécurité des accès, l’authentification à des ressources informatiques repose sur quatre étapes, distinctes :

> L’identification

> L’authentification

> L’autorisation

> La traçabilité

Le mécanisme d’authentification peut reposer sur trois éléments :

> Ce que je sais

> Ce que je possède

> Ce que je suis

On parle « d’authentification forte » (2FA : Two Factor Authentication) lorsqu’un mécanisme d’authentification met en œuvre deux de ces trois facteurs.

Quelques modèles de contrôle d’accès :

> Discrétionnaire (Discretionary Access Control) : basé sur l’identité ou l’appartenance à des groupes, et capacité du possesseur d’un droit de le transmettre à un autre utilisateur

> Obligatoire : les contrôles d’accès sont imposés par une politique de sécurité, et ne sont pas laissés à la liberté du propriétaire des ressources.

> À base de rôles (Role-Based Access Control) : dans ce cas c’est l’appartenance à un rôle qui détermine les droits d’accès. Les rôles peuvent refléter la structure d’une organisation.

 

Pourquoi « chmod 777 » sur le répertoire d’un serveur web est-il dangereux ?

Quel est le problème avec ces messages en cas d’erreur d’authentification ?

> Login for User foo: invalid password

> Login failed, invalid user ID

> Login failed; account disabled

> Login failed; this user is not active

En cas d’échec d’authentification :

> soit on peut bloquer le compte après un certain nombre de tentatives

> soit on peut introduire une temporisation

Le blocage a l’avantage de couper court à toute tentative de brute-force, mais il peut permettre un déni de service en bloquant un grand nombre de comptes.

Les mots de passe ne sont pas la seule façon de s’authentifier.

Exemple : les clés SSH. Un jeu de bi-clés (sous la forme de fichiers), sert à s’authentifier auprès du serveur et à négocier une clé symétrique de chiffrement (à l’aide de l’algorithme Diffie-Hellman).

 

Quel est l’avantage de ce type d’authentification par rapport à un classique mot de passe ?

Méthodes d’authentification cliente

Authentification HTTP Basic

Le client demande à accéder à une page, le serveur demande une authentification au client (HTTP 401), avec un realm=www.leserveur.org

Le client renvoie un GET avec le nom d’utilisateur et le mot de passe encodé en base64.

Le serveur vérifie, par rapport à une base de comptes quelconque (propre au serveur web, celle du système, celle d’un référentiel distant, etc…

Authentification HTTP Basic

Mécanisme assez faible :

> Authentification en clair

> Peut être rejouée

> Très faible authentification du serveur

> Pas de déconnexion (sauf fermeture du navigateur)

Qu’est-ce qui peut améliorer un peu la sécurité de HTTP Basic ?

Authentification HTTP Digest

Évolution de l’authentification Basic, en mode challenge / response. : le serveur envoie un « aléa », que le client adjoint au mot de passe avant de le condenser (MD5).

Cette fois, le mot de passe n’est pas envoyé.

Mais vulnérable à l’attaque de « l’homme du milieu »

Authentification Microsoft intégrée (IWA)

Repose sur le mécanisme d’authentification Windows, protocole challenge / response.

C’est du Kerberos ou du NTLM via HTTP ou HTTPS, et on trouve ce moyen d’authentification typiquement dans les intranets Microsoft.

Authentification Microsoft intégrée (IWA)

> L’utilisateur s’authentifie à une machine cliente

> Windows vérifie l’authentification auprès d’un contrôleur de domaine

> L’utilisateur veut aller sur un site

> Le serveur web exige une authentification

> Le client envoie le token d’authentification.

Authentification applicative

Formulaire présenté à l’utilisateur, l’application vérifie le nom d’utilisateur / mot de passe (LDAP, base de données).

Il faut véhiculer le flux en HTTPS.

La sécurité dépend de la conception et de développements spécifiques, on peut donc plus facilement y trouver des vulnérabilités de type injections (XSS, SQLi…).

OpenID

Un exemple de mécanisme d’authentification décentralisé, qui permet aux développeurs de ne pas redévelopper leur système d’authentification et aux utilisateurs de s’authentifier à de multiples sites sans se réauthentifier à chaque fois.

OpenID

(https://lwn.net/SubscriberLink/708151/a26c64b1d7ffec65/))

OAuth

C’est un autre mécanisme de délégation de l’authentification à un tiers.

Ce mécanisme a été conçu pour qu’une application puisse connecter ses utilisateurs à d’autres services sans transmettre leurs mots de passe. Souvent utilisé par les réseaux sociaux, Twitter, FB, etc.

Authentification centralisée et SSO

Mécanisme capable de gérer la fonction d’authentification de plusieurs composants (systèmes, applications, etc…).

Les avantages de l’authentification centralisée sont :

> Facilité pour les utilisateurs, qui n’ont pas à retenir ou stocker de nombreux noms d’utilisateurs / mots de passe

> Gains de temps et de couts

> Réduction du risque de compromission des mots de passe

Authentification centralisée et SSO

Les risques de l’authentification, si les mécanismes d’autorisation adéquats ne sont pas en place, c’est un accès démultiplié au SI en cas de compromission d’un compte.

Le Single Sign-On (SSO) est une évolution de l’authentification centralisée: non seulement l’utilisateur n’a plus qu’un mot de passe unique, mais en plus il n’a besoin de le saisir qu’une seule fois sur un système pour accéder ensuite à de multiples plateformes et applications.

Pourquoi ne peut-on pas simplement utiliser les cookies pour faire du SSO entre des sites différents ?

Vous en avez assez des authentifications ??!!

Ce n'est pas encore fini...

Kerberos

Protocole de SSO reposant sur une authentification initiale auprès d’un AS (Authentication Server – qui possède les mots de passe des utilisateurs) qui distribue des Ticket-Granting Ticket (TGT).

Ensuite, le service de Ticket-Granting Service délivre des jetons qui pourront être déchiffrés et authentifiés par les services que l’on voulait atteindre.

Kerberos

Pour donner une analogie :

> Un État délivre des passeports à ses citoyens (c’est l’AS qui donne des TGT)

> Pour aller dans certains pays, on demande un visa. Le consulat qui délivre les visas vérifie l’authenticité du passeport présenté, et délivre le visa - valable uniquement pour un pays, et pour une durée limitée (ce sont les TGS)

Développé dans le monde UNIX, Kerberos a été adopté par Microsoft: il est cœur de son système d’authentification.

Mots de passe

Le mot de passe est un élément « que je connais ».

Une politique de sécurité doit imposer des règles pour leur constitution, et elle doit les rendre suffisamment solides.

Attention cependant aux politiques trop complexes

Mots de passe

Exemple de politique :

> au moins 10 caractères (en 2016). Il ne faudrait plus parler de « mots de passe », mais de « phrases de passe » (pour faciliter la mémorisation)

> au moins une majuscule

> au moins une minuscule

> au moins un caractère spécial (de ponctuation)

> pas plus de deux caractères identiques consécutifs)

Mots de passe

Mots de passe

D’autres règles peuvent être imposées par la politique de sécurité, comme l’interdiction de réutiliser d’anciens mots de passe ou des parties d’entre eux.

Toutes les vérifications de conformité doivent se faire au niveau du serveur.

Ils ne doivent jamais être stockés en base de données ou en dur : ce sont leurs condensés (hash) qui doivent l’être.

Mots de passe

 

Qu’est-ce que l’on perd en stockant les mots de passe de façon dérivée (condensée / hash)?

Mots de passe

 

À quoi servent les CAPTCHA ?

Mots de passe

 

Pourquoi ajouter des « sels » aux mots de passe avant de les condenser (hash) ?

Mots de passe

On casse des mots de passe dans deux circonstances bien différentes :

> en ligne, et alors il y a en général des restrictions : blocage, temporisation, détection des tentatives…

> hors-ligne : mais il faut avoir réussi à récupérer un compte ou une base de compte. L’avantage est alors qu’on dispose de tout son temps et que l’on peut déployer toute la puissance de calcul à disposition.

Méthodes hors ligne: Dictionnaire, Rainbow table, brute-force, brute-force avec masque

Mots de passe: Ex. de Temps max de casse

> hash d'un mot de passe NTLM de 8 caractères avec utilisation d'une Rainbow table: 9 heures

> 10j avec une carte Tesla (éq. carte graphique grand public)

> hash UNIX DES (salé) de 8 car. avec une carte Tesla: +4 ans.

> hash MD5 de 8 caractères: Temps max: 17j avec la Tesla

> hash NTLM de 8 car.: 30s avec la Tesla

> hash NetNTLMv2 de 8 car.: 1 an et 317j avec la Tesla

> hash NetNTLMv2 de 8 car. avec un masque: 6h avec la Tesla

Détection

La prévention c’est l’idéal, la détection est nécessaire

On ne peut se prémunir de toutes les menaces

Mais il faut essayer de mettre en place une sécurité qui permette de détecter les attaques, ou au moins de disposer de données pour analyse a posteriori.

Si on sait ce qui s’est passé au cours d’une attaque, on peut espérer empêcher que cela n’arrive à nouveau.

Détection

La capacité opérationnelle de détection de tentatives d’attaques est essentielle: quelles que soient les mesures de sécurité mises en place, il doit y avoir des vigies.

Cette capacité opérationnelle repose sur des techniques, des processus et une organisation.

Un aspect essentiel, le partage d’informations avec les pairs : ma détection est votre prévention

Traces, détection, contrôles, alertes

Les systèmes, équipements, logiciels et applications génèrent des traces, des logs, des journaux d’évènements.

Les traces sont utiles pour développer des programmes, pour surveiller leur bon fonctionnement, mais aussi pour repérer des problèmes de sécurité.

Souvent, après un incident sécurité on en voit les traces dans les logs.

L’enjeu est de réduire ce temps de détection, si possible jusqu’à pouvoir alerter en temps réel.

Traces, détection, contrôles, alertes

Les alertes sont définies lorsque certaines conditions sont réunies. Par exemple :

> Plus de 10 tentatives d’authentification en erreur en moins de 1 minute

> Connexion SSH ou RDP illégitimes

> Ajouts dans des groupes de comptes à haut privilège (stables usuellement)

> Connexions aux interfaces d’administration hors des horaires de travail

> Détection des WAF ou sondes IDS

Traces, détection, contrôles, alertes

Une fois que l’on dispose des traces et éventuellement d’alertes, le vrai travail commence : les interpréter.

SIEM (Security Information and Event Management)

Les SIEM sont des logiciels qui traitent des traces provenant de diverses sources, afin de détecter des problèmes de sécurité, d’effectuer des contrôles. Ses principales fonctions sont :

> Agrégation de traces provenant de sources différentes

> Fonctions de corrélation

> Génération d’alertes

> Génération de tableaux de bord

> Fonctions de recherche et d’analyse post-mortem

Scanners

Des scans devraient être réalisés régulièrement. Permettent de comparer au fil du temps.

Établissement de listes priorisées des vulnérabilités : vulnérabilités, ou défauts de configuration.

Peut-être couplé avec les journaux d’évènements pour :

> Vérifier que les scans sont bien détectés

> Pouvoir corréler des détections d’attaques avec les vulnérabilités

4 outils typiques : nmap, Nessus, Burp, ZAP.

Tests de sécurité

 

Pouvez-vous citer quelques vulnérabilités ?

Tests de sécurité

L’intérêt des tests de sécurité peut se résumer en deux devises :

> découvrir ses propres faiblesses avant qu’un tiers ne le fasse

> la connaissance des attaques oriente la défense

Les tests d’intrusion vont consister à identifier des vulnérabilités et tenter de les exploiter.

Ils vont non seulement permettre de découvrir des vulnérabilités à corriger, mais ils vont aussi permettre de définir des mesures préventives de sécurité réduisant la probabilité d’exploitation de futures vulnérabilités.

Tests de sécurité

Tests de sécurité

Une méthodologie (simule une vraie attaque):

> Reconnaissance

> Scanning

> Obtention d’accès

> Persistance des accès

> Exploitation

> Couverture des traces

Tests de sécurité

Une méthodologie de pentest va ajouter : une phase initiale de préparation, une phase finale: analyse et reporting.

La qualité d’un test de sécurité dépend essentiellement de la compétence et de l’expérience des analystes.

Tests de sécurité

Phases de pentests applicatifs :

> Reconnaissance

> Recensement

> Découverte

> Exploitation

Méthode itérative et cyclique : dès qu’une vulnérabilité est exploitée, on recommence depuis le début.

Tests de sécurité

Pour la reconnaissance, ça peut commencer par du simple : les recherches « ouvertes » peuvent être très utiles. Par exemple:

> site : domaine.com

> inurl : phpinfo

> intitle : " Admin login "

> link : domain.com

> ext : xls

Plus d’information sur les « Google dorks » : www.exploit-db.com/google-dorks

Tests de sécurité

Exemple de vulnérabilité : les injections SQL : création d’utilisateurs, modifications de contenu, scan de port…

Pour tester : ‘

Que peut-il se passer ?

Tests de sécurité

Des nombreux outils aident à réaliser les tests de sécurité.

Proxy web : Burp…

Scanner : nmap, Nessus, ZAP…

Exploitation : Metasploit…

Distribution Linux : Kali

Réaction

Réaction

Il s’agit des procédures et des plans d’action permettant de gérer les incidents de sécurité comme :

> les infections par des malwares

> les vols de données

> les intrusions (comme les « APT »)

> les dénis de service

> les usurpations d’identité ou d’image

Réaction

 

En cas d’incident majeur, quelle va être la première difficulté pour décider de mettre les équipes de sécurité sur le pont?

Réaction

 

Pour les gens de la sécurité, « incident » est entendu comme malveillance, ou volonté de malveillance.

Les procédures de réaction sont comme les sauvegardes : vous ne les utiliserez pas souvent, mais quand vous en aurez besoin, vous serez content de les avoir.

Réaction

> Les phases de la gestion d’incident :

> Préparation

> Identification

> Endiguement

> Élimination

> Retour à la normale

> Enseignements

Les 7 péchés capitaux de la réaction, priorisés (SANS):

> Absence de signalement ou de demande d’aide

> Notes absentes ou médiocres

> Mauvaise manipulation ou destruction des preuves

> Échec de la restauration à partir des sauvegardes

> Échec de l’endiguement ou de l’élimination

> Prévention de la ré-infection en échec.

> Échec de l’application des enseignements

En synthèse : faites en sorte d’être prêts.

Réaction

Au sein de toute organisation devrait exister une procédure simple et fonctionnelle pour mise en place d’une cellule de crise.

Caractéristiques :

> Pouvoir être convoquée rapidement

> Mettre en contact les dirigeants capables de prendre des décisions et les techniciens le plus qualifiés

Responsabilités :

> Décider d’un plan d’action

> Gérer la communication

Réaction

Remarques importantes :

> Séparation des rôles : les solutions devraient venir des techniciens, pas des dirigeants. Si le mode de décision n’est pas autogestionnaire, ces derniers doivent prendre leurs responsabilités et faires des choix.

> La hiérarchie doit se garder de peser sur les techniciens.

> Entraînement : de telles cellules de crises ne peuvent fonctionner que si l’organisation s’exerce à les convoquer et joue des scénarios en guise d’entraînement (exercices sur table).

Éthique et légalité

Aspects légaux

Il y a des actions légales, et d’autres illégales.

En particulier, l’informatique traite souvent des données personnelles: il existe des lois, décrets et jurisprudences.

En France, la loi fondatrice est la loi n°78-17 du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés.

Aspects légaux

Les cinq principes fondateurs en sont :

> Finalité

> Pertinence des données

> Conservation des données

> Obligation de sécurité

> Respect du droit des personnes

Quiconque met en œuvre des traitements de données personnelles est tenu de le déclarer à la Commission Nationale Informatique et Libertés (CNIL): www.cnil.fr

Aspects légaux

Les activités de tests de sécurité (pentest) doivent également être très encadrées.

Le « maintien frauduleux dans un système de traitement informatique de données » tombe sous le coup de la Loi Godfrain du 5 janvier 1988.

En cas de découverte d’une vulnérabilité majeure, certaines précautions doivent également être prises.

Éthique et légalité

Éthique

Au-delà de la légalité des actions, il est vital de toujours penser ce que l’on fait, pour qui, pour quelle finalité.

Société de plus en plus numérisée, électronique, connectée, digitale, cyber-truc… choisissez le buzzword qui vous plait: avec de grands pouvoirs viennent de grandes responsabilités

Éthique

Les individus peuvent renoncer à formuler des jugements éthiques et moraux sur leurs actions ou celles qui les entourent, se contentant d’obéir aux instructions ou aux procédures.

Ils cessent de penser, démissionnent et ne se voient plus que comme un rouage qui n’a pas son mot à dire.

Éthique

Éthique

Ces renoncements à penser par soi-même peuvent être des facteurs clés dans la commission d’actions immorales (Exemple funeste : Amesys).

 

La fin ne justifie pas les moyens. Les moyens déterminent la fin.

Sécurité des applications

Avant de commencer à développer – après avoir recueilli les besoins des clients – mais avant de commencer à spécifier :

 

Faite une analyse de risques. Identifiez les menaces, les enjeux, les données et les services critiques et déduisez-en des exigences de confidentialité, intégrité et disponibilité.

Plus tard une vulnérabilité est découverte et corrigée, plus elle est couteuse (en risque, en temps, en argent…).

Plus tard une vulnérabilité est découverte et corrigée, plus elle est couteuse (en risque, en temps, en argent…).

Les développeurs sont les acteurs clés de la sécurité des applications.

Sécurité des applications

Le Top 10 de l'OWASP

Document listant les 10 types de vulnérabilités applicatives les critiques et les plus souvent rencontrées.

Basé sur des statistiques de centaines de milliers de vulnérabilités effectivement constatées.

Ce document, qui est un outil de sensibilisation, est destiné aux développeurs, aux architectes de solution, aux décideurs, aux auditeurs…

Sécurité des applications

Le Top 10 de l'OWASP

> A1 - Injection

> A2 - Violation de gestion d’authentification et de session

> A3 - Cross Site Scripting (XSS)

> A4 - Références directes non sécurisées à un objet

> A5 – Mauvaise configuration sécurité

> A6 – Exposition de données sensibles

Sécurité des applications

(interlude)

Que'en pensez-vous?

Le Top 10 de l'OWASP

> A7 – Manque de contrôle d’accès au niveau fonctionnel

Sécurité des applications

Le Top 10 de l'OWASP

> A7 – Manque de contrôle d’accès au niveau fonctionnel

> A8 – Falsification de requête intersite (CSRF – Cross Site Request Forgery)

> A9 - Using components with known vulnerabilities

> A10 – Redirections et renvois non validés

N’en restez pas au Top 10

Ce ne sont « que » les vulnérabilités les plus critiques.

Mais il peut exister bien d’autres problèmes de sécurité que ce Top 10 n’évoque pas.

N’en restez pas au Top 10 (1/2)

> Ne faites pas de vérification sécurité côté client, en particulier de droits d’accès

> Ne laissez pas d’informations sensibles dans les commentaires de votre code public (JS, HTML, etc.)

> Ne mettez pas en ligne en libre accès des applications en test / en développement

> Dédiez des chapitres spécifiques « sécurité » dans les cahiers de recette, en particulier afin de concevoir et dérouler des tests non passants

N’en restez pas au Top 10 (2/2)

> Anonymisez les données confidentielles avant de les passer de la production à des environnements moins sécurisés, par exemple pour des tests

> S’il s’agit d’une application critique avec un haut niveau de sécurité, prévoyez toujours une procédure de débrayage des mesures de sécurité, en cas d’urgence. Il doit être possible de débrayer la sécurité pour faire fonctionner le système

N’en restez pas au Top 10

Sécurité des applications

Utilisez les guides de développement sécurisé de l’OWASP

> https://www.owasp.org/index.php/Guide

> https://www.owasp.org/index.php/Cheat_Sheets

Si votre application est particulièrement sensible, il est possible de réaliser un audit de code, manuel ou à l’aide d’outils (par exemple http://www.sonarqube.org/)

Sécurité des applications

Écrivez ce que vous faites : essayez d’être le plus rigoureux possible. Et si des actions sont amenées à se répéter, définissez un processus formel.

N’oubliez pas :

Le produit hérite de ses processus de production.

Récapitulatif : les grands principes de la sécurité

Politique de sécurité

La sécurité d’un système est celle du maillon le plus faible. Les efforts de sécurisation doivent être homogènes.

Faites des analyses des risques, même minimales, en tenant compte des menaces, identifiez les données et services critiques et déduisez-en des exigences de confidentialité, intégrité et disponibilité.

Classifiez vos données (publique, retreinte, confidentielle). Identifiez les données et processus sensibles.

Récapitulatif : les grands principes de la sécurité

Politique de sécurité

Il est impossible interdire ce que vous devez autoriser. Sachez faire accepter les risques identifiez.

Écrire ce que fait, faire ce que l’on écrit.

Toute solution de sécurité mal utilisée, mal configurée, peut lourdement handicaper l’expérience utilisateur.

Ne pensez pas que par déductions et inductions. La pensée par analogie est souvent très fructueuse.

Récapitulatif : les grands principes de la sécurité

Principes opérationnels

À mesure que la sophistication des usages croit, celle des malveillances aussi.

La connaissance des attaques oriente la défense.

Sachez ce que les attaquants savent, découvrez vos vulnérabilités avant eux.

Commencez par des configurations sécurisées, à la gestion des droits, avant de penser à utiliser des logiciels complexes.

La prévention c’est l’idéal, la détection est nécessaire

Soyez prêts à réagir.

Principes opérationnels

Utilisez des principes simples :

> Besoin d’en connaitre : ne donner les accès qu’aux personnes en ayant besoin, pour le temps nécessaire, et les retirer ensuite.

> Moindre privilège : donner les privilèges minimums

> Séparation des rôles et des droits: séparation des taches criques entre divers intervenants, afin d’éviter l’assurance et l’accumulation des privilèges

> Choisir entre les modèles : « Tout ce qui n’est pas explicitement interdit est autorisé » ou « Tout ce qui n’est pas explicitement autorisé est interdit »

Récapitulatif : les grands principes de la sécurité

Mise en œuvre de la sécurité

Le produit hérite de ses processus de production.

La sécurité ce sont des processus, jamais uniquement des logiciels ou des produits.

En sécurité il est essentiel de prioriser. On ne doit pas chercher le risque 0. Concentrez-vous sur les mesures les plus efficaces.

Plus tard une vulnérabilité est découverte et corrigée, plus sa correction est est couteuse (en risque, en temps, en argent…)

Récapitulatif : les grands principes de la sécurité

Comportement

Formez-vous, partagez avec vos pairs, assistez à des conférences. Sur les méthodes, les vulnérabilités, les incidents… Pas avec n’importe qui, dans des cercles de confiance et faisant attention à la confidentialité.

La sécurité a un cout, en énergie, en temps, en argent, mais aussi en usage et en liberté.

Pensez ce que vous faites en termes éthiques, pour qui, pour quelle finalité.

Avec de grands pouvoirs viennent de grandes responsabilités.

La fin ne justifie pas les moyens. Les moyens déterminent la fin.

Récapitulatif : les grands principes de la sécurité

Comportement

Pensez ce que vous faites en termes éthiques, pour qui, pour quelle finalité.

Avec de grands pouvoirs viennent de grandes responsabilités.

La fin ne justifie pas les moyens. Les moyens déterminent la fin.