Solution de sécurisation d’un réseau d’entreprise

– Session 4

Bilan de la session 3- exercice2


  • Vous avez :

    • déployé sur wserver un code python correspondant à un serveur Web ​

    • déployé sur pc1 un code client correspondant à un client http​

    • analysé les tables de commutation du pont (switch entre pc1 et wserver)​

    • sniffé puis visualisé les communications (paquets http échangés) entre wserver et pc1 grace à wireshark

  • Aucune sécurité particulière pour protéger wserver, pc1, switch et se prémunir d’attaques

Bilan de la session 3 – exercice 3


  • Vous avez : ​

    • Interconnecté plusieurs réseau dont le réseau 100.10.0.0/24 qui contenait pc1 et wserver

    • Configuré les tables de routages de r1 et r2 pour que ces derniers fassent suivre le trafic entre les différents réseaux

  • Aucune sécurité particulière pour protéger wserver, pc1, switch, pc3 et se prémunir d’attaques​

  • Si le réseau 100.10.0.0/24 était celui d'une entreprise et wserver son serveur Web, comment protégeriez-vous les équipements (PCs de l'entreprise, son serveur web) ?

Session 4 - Sécuriser le réseau d’une entreprise

Exercice 1

  • Dans l’intranet de l’entreprise (réseau 100.10.0.0/25), vous allez déployer sur wserver un serveur http (serveur open source Apache) et allez y déployer une page web​

    • Vous allez configurer fw1 et fw2 qui sont deux routeurs ​

    • Vous allez par la suite tenter de protéger l’intranet de l’entreprise : pc1 et aussi et surtout le serveur apache wserver qui est une cible de choix

Session 4 - Sécuriser le réseau d’une entreprise

Exercice 2

  • Dans le sous-réseau 100.10.0.128/25 de l’entreprise vous allez déployer un reverse proxy nginx qui : ​

    • Reçoit les requêtes des clients et les redirige vers le serveur Web (de wserver), puis, retourne la réponse du serveur Web aux clients comme si elle provenait directement de lui-même​

    • wserver ne sera plus visible/directement accessible depuis l’internet où se trouve le client pc3

Session 4 - Sécuriser le réseau d’une entreprise

Exercice 3

fw1 et fw2 sont deux routeurs jouant le rôle de firewall qui ne font pas suivre aveuglement des paquets mais les filtrent ​

Quel est l’intérêt d’avoir deux firewalls ?

Session 4 - Sécuriser le réseau d’une entreprise​

Solution 1

Un seul firewall de niveau 3 applique des règles pour définir quelles sont les communications autorisées en se basant sur :​

  • Le type de connexion, l’origine et/ou la destination de la connexion, le protocole, le port utilisé et l’« historique » de la connexion…

Session 4 - Sécuriser le réseau d’une entreprise

Solution 2

Avec une zone démilitarisée ou DMZ correspondant au réseau 100.10.0.128/25 est entourée par deux firewalls ​

La DMZ est destinée à héberger des serveurs et services accessibles depuis l’internet :

Exemple de serveurs : apache, DNS, reverse proxy, plus généralement service front…​

Les serveurs de la DMZ « peu » critiques sont attaqués alors que les serveurs critiques en backend dans l’intranet sont épargnés​

Session 4 - Sécuriser le réseau d’une entreprise

Session 4 - Sécuriser le réseau d’une entreprise

Session 4 - Sécuriser le réseau d’une entreprise

Pour aller plus loin

Un Virtual Local Area Networks (VLAN) segmente le réseau intranet au niveau 2 pour séparer deux groupes de machines

  • Les PCs des utilisateurs sont séparés des serveurs
  • Les deux groupes sont gérés ici par 2 switchs

Session 4 - Sécuriser le réseau d’une entreprise

Pour aller plus loin

Séparation en VLAN avec une partie des flux acceptée par le firewall Firewall-int

Session 4 - Sécuriser le réseau d’une entreprise

Pour aller plus loin

Séparation en VLAN avec une partie des flux bloquée par le firewall Firewall-int

Session 4 - Sécuriser le réseau d’une entreprise​

Récapitulatifs

Vous configurez deux routeurs fw1 et fw2 jouant le rôle de firewall

  • fw2 en front effectue un préfiltrage
  • proxy joue le rôle de rebond vers le serveur web apache de l’intranet
  • fw1 protège l’intranet

Session 4 - sécuriser le réseau d’une entreprise

Quelques dangers restants:

  • L’espionnage des communications et du contenu http échangé
    • Un man in the middle intercepte et manipule les communications entre 2 parties (par ex. un client http et un site web http) à leur insu
  • La réutilisation des jetons de session http
  • L’échange avec un site imposteur se faisant passer pour wserver

Utiliser un serveur apache https plutôt que http

Session 4 - sécuriser le réseau d’une entreprise

utiliser https plutôt que http

Enjeux :

  • Assurer la confidentialité : garder/ne pas divulger les informations privées (sensibles par ex.), en veillant à ce qu’elles ne soient accessibles qu’aux personnes/entités autorisées

  • Assurer l’intégrité en se prémunissant de modification, d’altération ou de destruction non autorisées tout au long du cycle de vie

    • S’il n’est pas possible de s’en prémunir, se rendre compte lorsque l’intégrité est atteinte
  • Assurer l’authenticité des données/communications/ entités en vérifiant l’identité des entités afin de vérifier qu’elle est bien celui celles qu’elles prétendent être, d’éviter l’usurpation d’identité, et, aussi l’accès non autorisé

Chiffrer pour assurer la confidentialité

  • Le chiffrement est un processus de transformation des données (en clair) pour les rendre illisibles/indéchifrable à toute entité non autorisée

    • Pour chiffrer, on utilise un algorithme de chiffrement et une clé de chiffrement ce qui permet de coder la donnée en clair en un texte chiffré
    • Pour déchiffrer, seule une entité disposant de la clé de déchiffrement peut en utilisant l’algorithme de déchiffrement, convertir le texte chiffré en texte clair
  • Il existe 2 grandes familles de chiffrement:

    • chiffrement symétrique
    • Chiffrement asymétrique

Chiffrement symétrique

  • Le chiffrement symétrique utilise la même clé pour le chiffrement et le déchiffrement de la donnée ; elle est gardée secrète (connue uniquement par le propriétaire)

    • L’expéditeur et le destinataire doivent partager une clé privée qu’ils utilisent tous deux pour chiffer et déchiffrer les données
    • Le chiffrement symétrique est connu pour être généralement rapide et efficace pour traiter de grandes quantités de données à chiffrer
    • Le partage sécurisé de la clé secrète est un enjeu majeur

Chiffrement symétriques - Exemples simples

  • Chiffrement historique de César :
    Clé secrète = un décalage de n caractères

    • Exemple : décalage de 2 caractères : A devient C, B devient D, C devient F, D devient G, …, O devient Q

    • Chiffrement (BONJOUR) = DQPLQWT et Déchiffrement (DQPLQWT) = BONJOUR
      → Avec une clé chiffrement = déplacement de 2 caractères sur la droite et une clé de déchiffrement = déplacement de 2 caractères sur la gauche

  • Chiffrement par masque jetable consiste à appliquer un XOR entre le texte en clair et une clé secrète
    de même longueur que le texte, générée aléatoirement et utilisée une seule fois

    • Chiffrement : applique un XOR entre le texte en clair et la clé secrète

      Texte en clair : 0 1 1 0 1 0
      Clé secrète    : 1 0 0 1 1 0
      ---------------------------
      Texte chiffré  : 1 1 1 1 0 0
      
    • Déchiffrement : applique un XOR entre le texte chiffré et la clé secrète

      Texte chiffré  : 1 1 1 1 0 0
      Clé utilisée   : 1 0 0 1 1 0
      ---------------------------
      Texte en clair : 0 1 1 0 1 0
      

Chiffrement asymétrique

  • La cryptographie asymétrique utilise 2 clés :

    • Clé publique pour chiffrer la donnée ; elle est partagée avec n’importe qui en faisant la demande
    • Clé privée pour déchiffrer la donnée ; elle est gardée secrète (connue uniquement par le propriétaire)
  • Exemple de chiffrement asymétrique :

  • La cryptographie asymétrique est couramment utilisée pour :

    • Échanger des clés secrètes (car le chiffrement asymétrique est coûteux)
    • Pour signer numériquement une donnée, un message

Signature numérique

  • La signature numérique est utile pour vérifier :

    • l’authenticité, l’intégrité et empêcher la répudiation
  • Elle garantit que la donnée n’a pas été modifiée et permet de vérifier l’identité de l’expéditeur/générateur de la donnée, qui ne peut pas la répudier

    • 📄 Le document ou message est haché avec une fonction de hachage pour créer une empreinte (hash) de longueur fixe du document/message

    • 🔐 Le hash est ensuite chiffré à l’aide de la clé privée de l’expéditeur, ce qui génère la signature numérique

Signature numérique - vérification de l’authenticité et de l’intégrité

  • Le destinataire déchiffre la signature à l’aide de la clé publique de l’expéditeur
    et compare le hachage obtenu avec un hachage recalculé des données reçues.
    Si les hachages correspondent, les données sont vérifiées comme authentiques et inchangées.

Signature numérique - Conclusion

  • La clé privée d’Alice est utilisée pour générer une signature.

    • Seule Alice peut générer la signature, car elle est la seule à avoir accès à sa clé privée.
  • La clé publique d’Alice est utilisée par Bob pour vérifier la signature.

    • Toute personne disposant de la clé publique d’Alice, y compris Bob, peut vérifier la signature en l’utilisant.

💡 Question : Comment Alice peut-elle partager avec Bob sa clé publique de manière sécurisée ?

Partage de clée publique

Partage de clé publique - authorité de certification

  • Une Autorité de certification :
    • Est un tiers de confiance (dont la confiance n’est pas remise en cause)
    • Fait partie d’une chaîne de certification (l’ami de mes amis est un ami)
    • Valide un certificat (applique une signature sur le certificat)
    • Un navigateur peut vérifier l’authenticité et l’intégrité d’un certificat
      • Cela permet de vérifier la clé publique d’un site web signé par une
        Autorité de certification

Problème lié au partage des clées - solution adoptée lors du TP de la session 4-https

  • Pas d’autorité de certification (kathara n’est pas connecté a l’Internet) :
    • Le serveur https auto-signe son certificat :
  • L’administrateur a échangé avec le client (via une clé usb = répertoire partagé de kathara) son certificat auto-signé
  • Le client et le serveur s’échangent une clé secrête utilisée par la suite pour chiffrer les communications