spy Secure by design Profil : Habitué | Bon suite à un topic ayant attrait à la securité, voici un post sans pretention sur les elements de securité les plus communs, et aussi quelques elements de securité destinés aux plus experimentés.
Commençons par un petit lexique:
Code :
- -Equipement Securité
- FW -> Firewall
- IDS -> Intrusion Detection System
- IPS -> Intrusion Prevention System
- HoneyPot/HoneyNet -> Litteralement Pot de Miel, Reseau de Miel, voir explications plus bas.
- SinkHole -> Puits, permet la redirection de traffic vers un bogusnet(voir explication plus loin)
- -Protocoles
- TCP/IP -> Transmission Control protocol/ internet protocol
- ARP -> Address Resolution Protocol
- ICMP -> Internet Control Message Protocol
- IGMP -> Internet Group Management Protocol
- BGP -> Border Gateway Protocol
- iBGP -> Interior Border Gateway Protol
- eBGP -> Exterior Border Gateway Protocol
- Vlan -> Virtual Lan cf rfc 802.1q
- UPNP -> Universal Plug And Play
- DNS -> Domain Name Service
- -Attaques
- DoS -> Denial Of Service
- DDoS -> Distributed DoS
- MITM -> Man in the Middle
- Brute Force -> Attaque par dictionnaire, enumeration de couples login/password
- TCP Replay -> attaque par rejeu
- Side channel -> Canaux caché pour transmission d'informations
- ...
- -Autres
- TTL -> Time To Live, durée de vie d'un paquet. Ce TTL decremente à chaque saut que le paquet effectue. Par exemple lorsqu'un paquet passe par un routeur on soustrait 1 au ttl initial.
|
----------------------------------------------------------------------------------------------------------------------------
1) Equipements de Sécurité
Le firewall.
L'equipement surement le plus connu apres l'anti-virus.
Neanmoins cet équipement n'a pas tjs eu le succès qu'on lui connait maintenant.
En effet cet equipement n'etait pas bcp deployé il y a de cela 10 ans.
Ceci est devenu impensable de nos jours, mais à l'epoque les debits n'etaient pas ce qu'ils sont maintenant, pas autant de pc sur le NET,etc ...
Des etudes récentes ont montrer qu'un PC equipé d'un Windows XP Pro sans service pack fraichement installé et mis sur le net sans firewall, ne tient pas plus de 20s avant d'etre la cible de virus,spyware, j'en passe et des meilleurs.
Depuis son apparition le firewall à bien evidemment evolué, il est devenu statefull(control de l'etat de connection), authentifié (Le premier paquet voulant sortir du perimètre requiert une authentification de la part de l'utilisateur, le FW ouvrant ainsi l'accès au monde exterieur pour une durée donnée), il gere maintenant les priorités de flux(QoS, CBQ), UPNP, etc...
Il existe un gd nombre de firewall, certains etant de vrais passoires d'autres etant bcp plus performant.
Je n'aborderait pas les Firewall pro du genre FW-1 de checkpoint ou encore les PIX de Cisco car il est tres rare d'en rencontrer @home.
A mon avis les meilleurs se situent dans le monde du libre dont voici les 2 plus connus:
Iptables/Ipchains/Netfilter -> GNU/linux -> http://www.netfilter.org
PF= Packet Filet -> *BSD -> http://www.openbsd.org/faq/pf/index.html
Pour ceux qui souhaitent voir/demander des configs de firewall faites votre demande ds ce post
Anti-Virus
L'anti-virus...
Vu la plethore d'anti-virus disponible sur le marché le choix devient tres difficile.
Tout d'abord un petit rappel des differentes methodes utilisées par ces softs pour detecter les virus/vers/trojans:
Tous les anti-virus ou presque fonctionnent selon deux modes:
-Mode Statique
L'av n'est actif que lorsque l'utilisatuer initie une action.
-Mode Dynamique:
L'av est un prog resident qui surveille les faits et gestes du système, du reseau, de l'utilisateur
Technique Anti-Virales:
-Techniques d'analyse de forme
L'objectif de cette technique est d'analyser le contenu d'un fichier hors de tout contexte d'execution.
Malheureusement l'analyse de forme est un problème indecidable.
-Techniques de recherche de signatures
L'objectif de cette technique est d'identifier une suite de bits caractéristique d'un virus donné.
Le pendant de cette technique est qu'elle repose sur une base de signatures complete, mais c'est une utopie de croire qu'une base peut contenir la signature de chaque virus en circulation. D'autre part cette technique ne permet pas de gerer des virus/vers polymorphes. De plus elle repose sur une mise à jour permanente de cette base( Update fait par le user...), et sur le delai de reaction de chaque editeur d'anti-virus face à de nouvelles menaces virales. Le user etant tjs le maillon le plus faible de la chaine de la securité mieux vaut ne pas s'appuyer sur lui pour ce genre de travaux.
-Techniques d'analyse Spectrale
Sous ce nom barbare ce cache en effet une methode de surveillance des instructions executées et d'y rechercher des instructions peu courantes pour des prog classiques mais revelatrices de l'execution d'un code malveillant.
-Techniques d'analyse Heuristique
L'analyse heuristique consiste à utiliser des règles et des strategies en vue d'etudier les propriétés d'un prog. Le but etant de detecter potentiellement virales. Cependant on se retrouve confronter aux memes pbs que pour l'analyse spectrale; problème de fiabilité, generation de fausse alertes.
-Techniques de controle d'intregrité
Cette technique permet de verifier/surveiller la modification des fichiers.
Ces fichiers auront subi au prealable une prise d'empreinte numerique. Toutes modifications d'un fichier modifiera donc cette empreinte.
Voila pour les differentes techniques de detection, les anti-virus modernes utilisent un mix de ces techniques.
Un petit choix d'av performant et efficaces:
Avast -> http://www.avast.com
AVG -> http://www.grisoft.com
F-Secure -> http://f-secure.fr/france
Kapersky -> http://www.Avp.ch
NOD32 -> http://www.nod32.com
Pour plus d'infos je vous invite à lire l'excellent Numero 21 de "misc".
IDS/IPS
IDS/IPS sont des sondes que l'on place sur un reseau dans lequel on veut surveiller les flux qui circulent.
C'est du filtrage applicatif.
L'ids est un equipement passif qui se contente d'ecouter et de logguer les flux qu'il considère suspicieux.
Pour ce faire, il utilise une base d'en tete de paquet tcp, des datagrammes, etc...
Voir Snort + Acid:
http://www.snort.org/docs/setup_gu [...] se_SSL.pdf
Par exemple lors d'une connexion "http://" sur un serveur web les instructions envoyées au server sont assez courantes, il suffit alors de rentrer dans la base de signature la string correspondant a la tentative d'exploitation de la faille Unicode d'un serveur IIS; ensuite tenter cette attaque depuis une machine x, l'ids devrait alors logguer cette attaque.
Cette base recense nombre d'attaques connues pour bcp de protocoles(SMTP, POP, WEB, ...)
Un IDS/IPS tres connu du libre est snort:
http://www.snort.org
L'IPS quant à lui est equipement actif qui controle les access aux machines du reseau. Il fonctionne comme un "firewall" mais au niveau applicatif. Il utilise lui aussi une base de regles de detection.
HoneyPot/HoneyNET
Ou comment mettre un attrape couillons en libre accès.
Bon c'est loin d'etre attrape couillons et cela peut avoir des effets tres dangereux si c'est mal utilisé.
En fait le but de cet equipement est de mettre à disposition sur le net une machine facile à compromettre mais munie d'un système de log performant pour etudier les techniques qu'utilisent les pirates pour s'infiltrer dans un reseau.
Il existe de nombreuse solutions libres ou payantes.
Le challenge consistant, comme je le disais, plus à cacher au maximum à l'attaquant qu'il se trouve dans un pot de miel.
La meilleure solution vous me direz c'est de l'installer dans une machine virtuelle. Certes, mais ce n'est pas si trivial que ça. Dans une virtual machine les peripheriques ne sont que des bridges realisés vers les peripheriques physiques de la machine. Ce genre de chose est decelable par un attaquant, et si c'est le cas l'interet de ce type de solution devient nul.
Le HoneyNet est quant à lui un reseau "complet" destiné lui aussi à etudier le comportement des pirates.
Il simule plusieurs host, des routeurs, des firewall, des machines...
Mais de la meme façon en etudiant de pres les transactions reseau, l'attaquant peut s'apercevoir qu'il se trouve dans un honeynet, en regardant les TTL des paquets par exemple.
Sur le papier le prinicpe est seduisant voir amusant, mais le jeu en vaut il la chandelle?
2) Protocoles et Attaques
Bon avant de commencer un petit rappel s'impose:
Code :
- Je vais utiliser un modele simplifié du modèle ISO, celui-ci ne comporte que 4 niveaux au lieu des 7 definis par la norme.
- Niveau Ancien modèle Nouveau modèle
- Niveau 7 Couche Application Niveau Application
- Niveau 6 Couche Présentation Niveau Présentation
- Niveau 5 Couche Session Niveau Session
- Niveau 4 Couche Transport Niveau Message
- Niveau 3 Couche Réseau Niveau Paquet
- Niveau 2 Couche Liaison Données Niveau Trame
- Niveau 1 Couche Physique Niveau Physique
- ---------------------
- | Niveau Application| Niveau 4
- | (HTTP) (FTP) |
- ---------------------
-
- ---------------------
- | Niveau Transport | Niveau 3
- | (TCP) (UDP) |
- ---------------------
- ---------------------
- | Niveau Paquet | Niveau 2
- | (IPv4) (IPv6) |
- ---------------------
- ---------------------
- | Niveau Trame | Niveau 1
- | (ARP) (802.1x) |
- ---------------------
- Etablissement d'une session TCP
- Ou qu'est ce que le Three Way Handshake?
- Le pc à l'origine d'une demande de connexion TCP envoie un paquet SYN à la machine cible(Synchronisation des numeros de sequence et la taille de la transaction), celle-ci à reception du SYN renvoie un SYN/ACK à la machine source et pour finir l'initiateur de la connexion renvoie un ACK. La session est alors établie.
- ----------- SYN ------> -----------
- | | <----- SYN/ACK | |
- | PC 1 | ACK ------> | PC 2 |
- | | | |
- ----------- -----------
|
Alors voici un petit aperçu des attaques courantes et d'attaques plus anciennes.
Ip Spoofing
Le spoofing IP n'est ni plus ni moins que de l'usurpation d'adresse IP.
Pratique pour tromper un firewall ou disposer des privilèges accordés à une IP donnée.
Ceci se met en pratique en forgeant un paquet et en modifiant l'adresse source du paquet contenu dans l'en tete TCP.
ARP Cache Poisoning
ARP est le protocole qui permet d'associer à une adresse physique donnée(Adresse MAC 00:01:B3:34:E5:12) à une adresse IP w.x.y.z
Les equipements reseaux tel que les switchs, hub, routeur, conservent un table ARP afin d'eviter les requetes ARP broadcast.
Le but de cette attaque est donc de corrompre la table d'un equipement donné, soit en l'innondant de requetes ARP foireuses, soit en forgeant un paquet ARP dans lequel on associe une mac existante sur le reseau à l'ip de la machine attaquante.
Cela permet par exemple de bypasser les securités reseaux basées sur du filtrage par adresse MAC.
Ettercap est un soft tres pratique pour generer du traffic ARP.
DNS Cache Poisoning
Cette attaque reprend les memes principes que l'arp cache poisoning.
Le DNS permettant d'associer à une IP un nom canonique de la forme (exemple.foo.bar)
Le but de ce type d'attaque est de rediriger le traffic d'une cible vers une autre machine.
Admettons que je dispose d'un serveur web ayant pour 1.2.3.4 et pour fqdn(Fully qualified domain name) exemple.foo.bar.
Si un attaquant desire recuperer les password necessaire à l'accès d'une page donnée, il va tout d'abord foirer le cache dns afin de rediriger les requetes faites vers exemple.foo.bar sur une de ces IP (5.6.7.8). Ensuite il peut aisement reproduire une page HTML simulant une authentification, logguer les entrées clavier via un bout de javascript et ensuite renvoyer une erreur HTTP classique (404,403, Etc...).L'utilisateur croira qu'il s'est trompé de password alors qu'en fait l'attaquant dispose maintenant d'un compte valide pour acceder a la vrai page de exemple.foo.bar.
Man in the Middle
Man in the middle... L'homme au milieu...
Cette attaque existe depuis l'avenenemt de l'internet. Elle consiste à se positionner entre deux machines communiquantes.
Très simple à mettre en oeuvre si vous disposez d'un accès physique aux equipements qui composent le reseau.
Au debut du net elle fonctionnait de maniere efficace car il suffisait de spoofer son adresse pour se retrouver sur le meme plan d'adressage que la victime.
Maintenant elle est quasiment impossible à effectuer sur le net.
Cette attaque sert à pouvoir sniffer le traffic entre 2 machines communiquantes pour essayer de decouvrir des password passant en clair ds certains protocoles(FTP, POP, Telnet, etc...)
Dsniff est une suite de petits outils permettant ce genre d'action
SSL + Man in the Middle
SSL + man in the middle, cette attaque a pour but de reussir à recuperer des informations transitants dans un canal SSL.
Pour la mettre en oeuvre il faut reprendre l'attaque DNS cache poisoning afin de rediriger le traffic du site web ciblé vers la machine attaquante + Man in the middle.
En utilisant webmitm, un outil de la suite dsniff, vous generez un certificat ressemblant à celui du site cible, puis generez une page simulant une demande de login/passwd, logguez le tout et le tour est joué
Ping of death
Peut etre la plus vieille attaque connue.
Elle consistait à inonder de requete ICMP une cible avec une taille de tampon tres superieure à la normale.
Sous windows:
ping -t -l 64535 1.2.3.4
Sous Linux/Unix
ping -f -s 64535 1.2.3.4
Le premier deni de service etait né. En effet cette attaque avait pour but de faire ouvrir toutes les sockets d'un equipement, l'empecher ainsi de traiter les requetes valides.
DoS et DDoS
Deni de service et deni de service distribué
Le SYN flood et le ping of death sont des DoS.
Le deni de service consistant à mettre à genoux un service quelqu'il soit, soit en utilisant un flot monstreux de requetes permettant de surcharge la cible, on en exploitant une faille connue d'un service(Buffer OverFlow par ex)
Quelques virus modernes comme Code Red, lançait un nombre impressionant de requetes UDP. Ce qui avait pour effet d'engorger tout ou partie d'un LAN.
Le deni de service distribué suit les memes principes que le DoS sauf qu'il est lancé de plusieurs machines(Bot) differentes mais ayant toutes la meme cible.
Les developpeurs de virus s'attele donc à créer de veritables botnets(reseau de machine corrompue sur lesquelles ils ont un accès -> BackDoor)pour mettre à genou un serveur donné, un reseau donné...
Syn Flood
Le syn flood consiste à envoyer un flots de paquets SYN ininterrompus vers une cible.
Comme je l'expliquais plus haut lors de la reception d'un SYN la machine cible renvoie SYN+ACK.
Partant de ça, il suffit alors de ne jamais renvoyer la commande ACK, et de continuer à inonder la machine cible de SYN.
Une fois toutes les socket occupées, la machine est down.
La majorité des Firewall modernes sont protégés contre cette attaque.
Side Channel
Ou comment dissimuler des informations
Le side channel n'est pas une attaque à proprement parler, mais plutot un moyen de contourner les equipements de filtrage mise en place dans une société.
Toutes les sociétés disposant maintenant au minimum d'un firewall(enfin je l'espere) il devient difficile de pouvoir faire transiter des informations.
Cependant il reste quelques failles dans les configurations de nos firewall. Par exemple il est frequent de voir le prot 53(DNS) ouvert dans la majorité des firewall et ce pour tout un lan. Quoi de plus facile que de faire tourner un serveur FTP sur ce port et ainsi acceder à votre serveur meme si le port 21 est bloqué ou "proxyté"
Le meme principe est applicable sur le HTTP, il existe d'ailleurs quelques softs permettant de mettre en oeuvre cette dissimulation d'information. HTTP Tunnel en est un.
Et encore bien d'autres comme les Attaques par rebond, Firewalking, etc..., que je n'aborderais pas ici.
3) Protection
Le lecteur attentif l'aura surement compris les menaces viennent la plupart du temps de l'interieur...
Pour ce qui concerne les accès externes voir le chapitre concerné(Dark side of the WAN)
Dark side of the LAN
Diviser pour mieux regner
Voici ce que l'on pourrait preconiser pour un reseau d'entreprise. Je parle de reseau d'entreprise car les equipements de Niveau 2 et 3 qui seront utilisées sont relativement couteux.
Cependant il existe des solutions bcp moins cheres notamment à base de machine linux pour realiser la meme architecture.
Cloisonner son reseau
Une des etapes fondamentale de la mise en oeuvre du reseau est d'identifier clairement les zones ouvertes aux utilisateurs, les zones reservées aux admins, et la ou les DMZ.
Pour plus d'infos sur ce qui suit je vous conseille de jeter un coup d'oeil à la RFC traitant du 802.1x et 802.1q
Niveau ARP et Niveau IP(Couches 2 et 3 du modèle ISO)
Maintenant que savez où vous voulez aller(en terme de design d'infra), voici que vous pouveez mettre en oeuvre pour securiser votre future infrastructure.
-Niveau ARP:
Cisco à mis en oeuvre sur ses switchs une technologie appellée VMPS.
Cette technologie permet d'assigner un port à un vlan donné pour une unique adresse MAC.
Tous les switchs Cisco disposent du client VMPS, la partie Serveur n'etant disponible que pour les switchs de type chassis à partir de la serie catalyst 6xxx(je crois ).
Il existe une implementation libre de ce protocole cf:
http://vmps.sourceforge.net/
-Niveau IP:
Pour l'ip je vous conseille d'utiliser des Vlan(802.1Q).
Quel interet?
La possibilité de scinder en plusieurs morceaux votre Lan.
par exemple vous disposez de plusieurs entités ds votre société: Administratif, Develeppement, Finances, Service Info.
Le but du jeu consisteà créer un VLAN par entité ce qui donne donc:
VLAN 1 -> Default reservé
VALN 2 -> Administratif| adressage 192.168.1.0/24 (Notation CIDR equivalente à 192.168.1.0 255.255.255.0)
VLAN 3 -> Developpement| adressage 192.168.2.0/24
VLAN 4 -> Finances| adressage 192.168.3.0/24
VLAN 5 -> Service info| adressage 10.1.2.0/29 (volontairement restreint car peu de machines seront memebres de ce VLAN, uniquement 8 hosts possible)
Il faut bien evidemment un switch de niveau 3 pour gerer le tout(Niveau 3 pour qu'il soit capable de router les paquets de chaque vlan)
Config Switch Niveau 3:
IP VLAN 2 192.168.1.1
IP VLAN 3 192.168.2.1
IP VLAN 4 192.168.3.1
IP VLAN 5 10.1.2.1
Ces ip seront les gateways assignées aux machines dependant de tel ou tel VLAN.
La conf etant maintenant connue, il suffit (tjs au niveau du switch) de monter les trunks(liens specifiques permettant la propagation/communiquation inter-vlan).
Ensuite nous en revenons au firewalling mis en place grace à des ACL. Ce qui vous permettra de securiser/isoler les vlan.
Par exemple aucune machine n'accedera au VLAN finance excepté le memebres de ce vlan et les machines du service info.
Je vous laisse imaginer ce que l'on peut faire de plus pour blinder encore plus la configuration de ce reseau.
Voici pour la partie basique.
Vous pouvez maintenant securiser l'accès aux ports en utilisant le 802.1X
Comment?
En plus de securiser l'accès à un port via VMPS, vous pouvez aussi demander une authentification forte pour ce port.
Par exemple en utilisant un serveur RADIUS, ce qui signifie que l'utilisateur devra rentrer un login/passwd pour autoriser le traffic sur son port et cela pour une durée definie par l'administrateur.
Firewalling
J'ai deja un peu abordé le sujet dans la partie précedente, on va maintenant essayer de l'ettofer.
Voici les methodes que j'utilise pour mettre en place un firewalling efficace(enfin je l'espere)
a) Definition des populations ou comment creer ses ACL:
L'admin est omnipotent -> Donc il accède à tout sans aucune restrictions(ou presque...)
Le user est le maillon faible:
Reprennons l'exemple de mes populations:
Administratif
Developpement
Finances
b) Definition des services utilisés:
L'administratif utilise uniquement HTTP/HTTPS
le developpement utilise en plus de HTTP/HTTPS, le FTP mais aussi l'ISAKMP(VPN)
La Finance utilise aussi HTTP/HTTPS mais a besoin d'un port specifique pour les accès aux données bancaires.
c) Definition de la politique par defaut du firewall:
On bloque tout ce qui n'est pas autorisé et on loggue bien sur.
Nous pouvons donc definir en plus des ACL des groupes de ports associés à chacun de ces services voici comment on va noter le tout.
Code :
- #Definition des ACL:
- Administratif = 192.168.1.0/24
- Developement = 192.168.2.0/24
- Finances = 192.168.3.0/24
- Service_Info = 10.1.2.0/29
- ext_if = IP_publique
- # table contenant les adresses IP assignées au firewall:
- table <firewall> const { self }
- table <trusted> { 10.1.2.0/29, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24, }
- table <NoRoute> { 127.0.0.1/8, 172.16.0.0/12, 192.168.0.0/16, !$administratif, !$finances, !$developpement, !$service_info, 10.0.0.0/8, 255.255.255.255/32}
- # options
- set block-policy return
- set loginterface $ext_if
- set optimization aggressive
- # scrub = normalisation de paquets
- scrub in all
- #Definition des services TCP:
- Administratif_access = { 80, 443}
- Devpt_access = { 80, 443, 21, 500}
- Finances_access = { 80, 443, 36758}
- # Defintion des translations d'adressage.
- nat on $ext_if from $administratif to any -> ($ext_if)
- nat on $ext_if from $developpement to any -> ($ext_if)
- nat on $ext_if from $finances to any -> ($ext_if)
- nat on $ext_if from $service_info to any -> ($ext_if)
- nat on $ext_if from $dmz_net to any -> ($ext_if)
- #Defintion du comportement par defaut, on bloque tout ;)
- block in all
- block out all
- #Traffic loopback
- pass quick on lo0 all
- #antispoof rule
- antispoof quick for $administratif inet
- antispoof quick for $finances inet
- antispoof quick for $developpement inet
- antispoof quick for $service_info inet
- block in log quick on $ext_if inet from <NoRoute> to any
- block in log quick on $ext_if inet from any to <NoRoute>
- #block IPv6
- block quick inet6
- #Anti NMAP Rule
- block in log quick proto tcp flags FUP/WEUAPRSF
- block in log quick proto tcp flags WEUAPRSF/WEUAPRSF
- block in log quick proto tcp flags SRAFU/WEUAPRSF
- block in log quick proto tcp flags /WEUAPRSF
- block in log quick proto tcp flags SR/SR
- block in log quick proto tcp flags SF/SF
- block in log quick on $ext_if os NMAP
- #Outgoing rule
- pass out on $ext_if from $administratif to any port $Administratif_access
- pass out on $ext_if from $finances to any port $finances_access
- pass out on $ext_if from $devpt to any port $devpt_access
- pass out on $ext_if from $service_info to any
|
Voila à quoi pourrais ressembler une conf qui resume ce que je vous ai dit plus haut.
Pour info la syntaxe utilisée est celle de PF -> http://www.openbsd.org/faq/pf/index.html
A cette configuration nous pouvons ajouter:
Authentification du user(Radius, LDAP, Active Directory, Comptes locaux)
Gestion de Flux
Cluster/Load Balancing de firewall pour eviter les DoS, DDoS
Les firewall etant des equipements critiques dans une societe, il convient de les redonder.
NB: Pour ce qui est des machines d'admin d'un reseau, j'utilise une DMZ spécifique, ce qui a pour but de cloisonner encore plus les accès aux machines critiques. Sachant qu'un poste d'admin dispose de droits/accès maximum, il convient à mon avis de les sécuriser au maximum. Tout cela en respectant des règles basiques:
Ne pas utiliser de compte admin pour les taches qui n'en ont pas besoin.
Machine patchée.
Firewall + Anti-Virus.
Restriction des accès à cette machine.
Patch Management
Tout admin qui se respecte a forcement entendu parlé de ça.
En effet, la gestion des mises à jour de sécurité n'est pas triviale sur un reseau conséquent.
Microsoft a releasé sa nouvelle mouture de Software Update Services sous le nom de Windows Update Services.
Cet outil est très pratique pour gerer les mises à jour dans un environnement Windows.
Pour plus d'infos à ce sujet, je renvoie donc vers le site de microsoft:
http://www.microsoft.com/windowsse [...] fault.mspx
il existe des systèmes similaires pour les OS de type UNIX ou Linux.
C'est un point critique de l'administration système car une mauvaise gestion des mises à jour peut remettre en question la politique de securité d'une entreprise.
Proxy
Après avoir pris un peu de temps pour securiser le niveau 2 et 3, il convient de ne pas laisser la porte ouverte aux SideChannel.
L'utilisation d'un proxy peut etre une solution à ce type de problème.
Il existe 2 grands types de proxy:
-Les proxy cache
-Les proxy transparents
Les proxy caches sont mis en oeuvre pour permettre de garder le cache des pages visitées sur une unique machine plutot que tous les clients conservent un cache (souvent enorme) en local.
Lorsqu'une machine cliente veut surfer une requete en faite sur le serveur proxy qui verifie si la page est deja dans son cache, le cas echeant il va va chercher cette page.
Ce type de proxy a pour but de soulager une connexion internet.
Les proxy transparents sont un peu differents, car à la difference d'un proxy cache, aucun paramétrage n'est necessaire sur le poste client.
La config est realisée directement sur le coeur de reseau en utilisant un masquerading de port.
En clair toutes requetes emises à partir d'un client lambda vers le port 80 sera en fait transmise au proxy transparent.
D'autres protocoles peuvent etre "proxyté" de cette façon.
Le ftp, le https, et bien d'autres encore.
Le but inavoué du proxy transparent est de n'avoir qu'une seule et unique porte de sortie pour les protocoles de haut niveau que sont HTTP, HTTPS, FTP, etc ...
En couplant le proxy à des modules d'inspections on peut eviter les encapsulations de trames et encore bien d'autres moyens d'evasion.(Un proxy empechera de fonctionner des softs comme httpTunnel par exemple).
NAP/NAC
Ou comment appliqué le principe de la quarantaine sur un reseau.
NAP -> Network Admission Control
Cisco est (encore) à l'origine de cette technologie(NAC), et Microsoft dans le cadre d'un partenariat a developpé la technologie NAP.
Pour la partie Microsoft je vous renvoie vers un article du labo supinfo(en français )
http://www.laboratoire-microsoft.org/articles/win/NAP/
Voici pour la prtie Cisco (En anglais)
http://www.cisco.com/en/US/netsol/ [...] ckage.html
Et pour les flemmards, une explication succinte du fonctionnement de cette technologie.
Lors de la connexion d'un nouveau device au reseau de l'entreprise, celui-ci est mis dans un Vlan de quarantaine.
Pendant son sejour dans ce Vlan le device, va etre "verifier".
En fait il s'agit de savoir si il comporte bien toutes les maj de securité, un anti-virus, un firewall...
Cette technologie permet donc de garantir l'integrité d'un nouveau device voulant se connecter sur le reseau, les devices ne respectant pas les critères d'admission dans le reseau resteront dans le vlan de quarantaine jusqu'a temps qu'il soit conforme à ces criteres.
Dark Side of the WAN
BGP et sinkhole
Ou comment les FAI essaient de protéger leur réseau et vos fesses des DDoS.
Tout d'abord un rappel ou une explication sur le BGP s'impose.
Reverse Proxy
....
VPN & Remote Access
....
Dark Side of the Wireless
Wep
WEP - Wired Equivalent Privacy
La première norme de sécurité inherente au wifi.
Celle ci est basée sur un algorithme de cryptage RC4, le controle d'integrité est un CRC 32bits sur la trame de données.
Defauts de conception:
1)Tel que normalisé, le WEP statique offre un secret partagé sur 40bits.Dans les années qui ont suivi, l'industrie a étendu la taille des clés à 104bits.Les cryptographes estimant que 128 bits est le minimum recommandé...
2)L'emploi d'IV (initialisation vector) par le WEP.
Par exemple 2 trames partageant le meme IV utilisent presque certainement la meme clé secrete.
3) Changement de clés peu fréquent qui permet aux assaillants de se constituer un "dictionnaire de dechiffrement".
5) Utilisation du CRC pour le controle d'integrité.
Aout 2001 premier article sur les faiblesses du WEP avec proof of concept.
Cette attaque appelée FMS (Fluhrer, Mantin, Shamir) repose sur une faiblesse dans la manière dont RC4 convertit la clé en un flux de bits, un processus d'initialisation du vecteur d'etat RC4.
Fin aout 2001 premier outil permettant d'exploiter cette faiblesse -> Airsnort.
De nombreux ont suivi.
Des clés plus longues ne sont en rien une défense contre ce type d'attaques...
En utilisant FMS il fallait environ 2h pour casser une clé WEP 128bits.
KoRekChopChop est une autre attaque pour laquelle seuleument quelques dizaines de minutes sont nécéssaire pour casser la meme clé.
Ce protocole est considéré comme obsolète et vous ne devez l'utiliser qu'en cas d'absolue nécéssité.
WPA-TKIP
WPA - WiFi Protected Access
TKIP - Temporal key Integrity Protocol
WPA-TKIP est une norme intermediaire basé sur les travaux de l'ieee sur le 802.1i
Elle a été crée dans le but de remedier aux faiblesses du WEP mais aussi permettre une mise à jour en douceur des equipements.
TKIP conserve cependant l'architecture et le fonctionnement de base du WEP.
Principales differences entre WEP et WPA-TKIP:
Hiérarcie de clés et gestion automatique des clés
Au lieu d'une clé maitre unique TKIP utilise des clés maitres.
Creation de clé pour chaque trame
Meme si TKIP conserve le chiffrement RC4 des trames du WEP, il derive (de la clé maitre)une clé RC4 unique pour chaque trame.
Ce processus s'appelle mixage de clé.
Compteur de séquence
En marquant chaque trame avec un numero de sequence, la detection des trames invalides est plus facile, reduisant ainsi les effets des attaques par rejeu.
Nouveau MIC (Message Integrity Check)
Au lieu d'utiliser le CRC32 du WEP, TKIP se base sur algorithme appelé Michael. Un hachage plus robuste facilite la detection des trames forgées.
Contre-mesures sur les échecs du MIC
TKIP a été conçu de manière a supporter le matériel existant.
Cependant Michael peut etre assez facilement compromis dans une attaque active.
C'est pourquoi TKIP inclut des contre-mesures pour limiter les effets d'une attaque active.
L'utilisation la plus courante pour le particulier est WPA-TKIP + PSK (Pre-shared Key).
Cependant des recommendations existent pour eviter une attaque de type "brute force" sur la pre-shared key:
En effet l'annexe H du 802.11i traite de la robustesse de cette clé, elle presente 2,5 bits de sécurité par caractère.
La meilleure défense etant d'utiliser des clés de 256bits, il faut donc générer un pass-phrase de plus de 20 caractères afin d'eviter toutes attaques "brute force"
Il existe bien evidemment d'autres authentifications possibles que nous verrons un peu plus bas, basées sur 802.1X
WPA-CCMP
CCMP (Counter Mode with CBC-MAC protocol)
CCMP est le protocole de sécurité de la couche liasion basé sur AES(Advanced Encryption Standard).
Ce nom provient de l'utilisation sous jacente de l'algorithme de chiffrement par bloc en Counter with CBC-MAC(CCM), cf RFC 3610.
WPA-CCMP est aussi connu sous le nom de WPA2. Cette norme a été construite "from scratch" par l'ieee task force.
La difference majeure entre WPA1 et WPA2 est l'utilisation de l'algorithme AES pour le chiffrement.
Cependant peu d'equipement le supporte à l'heure actuelle.
WEP/WPA/WPA2 et 802.1X
Tout d'abord qu'est ce que le 802.1X?
Pinaillons un petit peu, le X est bien majuscule et non miniscule, car le 802.1X est une norme autonome et non une extension d'une norme existante.
Pour faire simple cette norme a été créee dans le but de sécuriser les reseaux aussi bien filaires que sans fils.
Elle part du principe qu'il vaut mieux authentifier l'utilisateur plutot qu'une machine.
802.1X repose principalement sur EAP (Extensible Authentication Protocol), cf RFC 2284 et maj RFC 3748.
Pour la petite histoire au debut des années 90 est apparu PPP (Point To Point Protocol), il existait a cette époque 2 protocoles pour authentifier les users, chacun necessistant l'emploi d'un numero PPP. Afin de ne pas reserver inutilement des numeros PPP, l'ietf a normalisé EAP.
EAP est une simple encapsulation pouvant se trouver au dessus de n'importe quelle couche de liaison, mais il a été principalement deployé sur des liaisons PPP.
Il existe plusiseurs methodes EAP courantes pour l'authentification 802.1X:
Code :
- - MD5 Challenge -> Authentification de type CHAP dans EAP
- - GTC -> Conçu à l'origine pour une utilisation avec les cartes à jeton comme SecurID de RSA
- - EAP-TLS -> Authentification mutuelle avec certificats numeriques
- - TTLS -> Tunnel TLS; protège les methodes d'authentification faibles par TLS
- - PEAP -> Protected EAP; protège les methodes EAP faibles par un chiffrement TLS
- - EAP-SIM -> Authentification par les cartes SIM (Subscriber Identity Module) des telephones mobiles
- - MSCHAP-V2 -> Authentification par mot de passe chiffré de Microsoft; compatibles avec les domaines Windows
|
J'ai volontairement oublié LEAP (Lightweight EAP) car il est propriétaire (Cisco).
De plus il utilise MS-CHAP-V1 ce qui presente de nombreux problèmes de sécurité et il est sujet aux attaques par dictionnaire; de nombreux exploits sont disponibles pour exploiter ces faiblesses.
Cisco recommande maintenant d'utiliser PEAP ou EAP-FAST.
Ici je ne traiterais que:
1) EAP-TLS
2) PEAP
EAP-TLS est a mon avis le plus sécurisé de tous. Cependant sa mise en oeuvre requiert une authorité de certification racine(CA).
L'authentification de l'utilisateur est faite grace à des certificats SSL.
Ceci etant la gestion d'une CA ne s'improvise pas, et à la longue cela peut devenir fastidieux.
PEAP
Ce type d'authentification est plus facile à mettre en oeuvre que EAP-TLS.
Il necessite aussi l'emploi d'un server Radius et d'une authorité de certification.
Cependant la CA n'est la que pour authentifier la borne et ainsi crypter le traffic dans un tunnel TLS.
Le client s'authentifie en utilisant un login/password.
L'authentification du client peut etre de plusieurs type: MD5, MSCHAP-V2, etc...
To Be Continued
References
Voici quelques références qui m'ont permis d'écrire ce topic en essayant au maximum d'eviter de raconter des conneries
Les Reseaux -> Guy Pujolle - Ouvrage bien connu des etudiants informatique
802.11, Reseaux sans fil 2e edition -> Matthew Gast - Edition O'Reilly
www.cisco.com -> Pour tout ce qui touche au materiel et documentation
www.microsoft.com -> WSUS, NAP, etc...
La revue MISC -> Edition Diamond
La revue HAKIN9 -> www.hakin9.org
Ainsi que plusieurs années de recherches et travail personnel.
J'espère que ce topic pourra servir à certains d'entre vous, il volontairement non-exhaustif, car je n'aurais pas eu assez d'une vie pour tout documenter et exliquer Message édité par spy le 06-04-2006 à 12:15:00 ---------------
"There is a diference between knowing the path and walking the path"
OpenBSD reloaded
MCP Exchange2003
Cisco CCNA
|