Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya...

32
Recherche de Recherche de vulnérabilités en vulnérabilités en environnement Windows environnement Windows 32 bits et divulgation 32 bits et divulgation responsable responsable Kostya Kortchinsky Kostya Kortchinsky Responsable du CERT Responsable du CERT RENATER RENATER kostya.kortchinsky@renat kostya.kortchinsky@renat

Transcript of Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya...

Page 1: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Recherche de vulnérabilités Recherche de vulnérabilités en environnement Windows en environnement Windows

32 bits et divulgation 32 bits et divulgation responsableresponsable

Recherche de vulnérabilités Recherche de vulnérabilités en environnement Windows en environnement Windows

32 bits et divulgation 32 bits et divulgation responsableresponsable

Kostya KortchinskyKostya KortchinskyResponsable du CERT Responsable du CERT [email protected]@renater.frfr

Page 2: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

« 0days »« 0days »

DéfinitionDéfinitionVulnérabilité pour laquelle il n’existe pas de Vulnérabilité pour laquelle il n’existe pas de correctifcorrectif

Outil d’exploitation (« exploit ») d’une telle Outil d’exploitation (« exploit ») d’une telle vulnérabilitévulnérabilité

ChiffresChiffresUne Une vingtainevingtaine de « bons » 0days en circulation de « bons » 0days en circulation dans les milieux alternatifsdans les milieux alternatifs

Une valeur financière tournant autour de Une valeur financière tournant autour de 30003000 dollars et pouvant atteindre beaucoup plus !dollars et pouvant atteindre beaucoup plus !

Un temps de recherche d’une Un temps de recherche d’une dizainedizaine de jours pour de jours pour trouver une faille exploitable dans Windowstrouver une faille exploitable dans Windows

Page 3: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

HistoriqueHistorique

Vulnérabilités précédemment découvertesVulnérabilités précédemment découvertesMS04-042MS04-042 : : Vulnerability in DHCP Could Allow Remote Code Vulnerability in DHCP Could Allow Remote Code Execution and Denial of ServiceExecution and Denial of Service

Logging Vulnerability - CAN-2004-0899Logging Vulnerability - CAN-2004-0899DHCP Request Vulnerability - CAN-2004-0900DHCP Request Vulnerability - CAN-2004-0900

MS04-045MS04-045 : Vulnerability in WINS Could Allow Remote Code : Vulnerability in WINS Could Allow Remote Code ExecutionExecution

Name Validation Vulnerability - CAN-2004-0567Name Validation Vulnerability - CAN-2004-0567Association Context Vulnerability - CAN-2004-1080Association Context Vulnerability - CAN-2004-1080

MS05-010MS05-010 : : Vulnerability in the License Logging Service Could Vulnerability in the License Logging Service Could Allow Code ExecutionAllow Code Execution

License Logging Service Vulnerability - CAN-2005-0050License Logging Service Vulnerability - CAN-2005-0050

MS05-017MS05-017 : : Vulnerability in Message Queuing Could Allow Code Vulnerability in Message Queuing Could Allow Code ExecutionExecution

Message Queuing Vulnerability - CAN-2005-0059Message Queuing Vulnerability - CAN-2005-0059

Plusieurs à venir prochainement …Plusieurs à venir prochainement …

Page 5: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

MS04-045 : WINS (2/2)MS04-045 : WINS (2/2)(Vie privée)(Vie privée)

Premières rumeurs d’une vulnérabilité WINS, analyse du binaire Premières rumeurs d’une vulnérabilité WINS, analyse du binaire dans la fouléedans la foulée

Fin mai 2004Fin mai 2004

Soumissions des vulnérabilités au Soumissions des vulnérabilités au MSRCMSRCName Validation Vulnerability (CAN-2004-0567) : Name Validation Vulnerability (CAN-2004-0567) : 9 juin 20049 juin 2004

Toujours pas d’exploit public à ce jourToujours pas d’exploit public à ce jour

Context Association Vulnerability (CAN-2004-1080) : Context Association Vulnerability (CAN-2004-1080) : 16 juin 200416 juin 2004

Implémentation d’un exploit fiableImplémentation d’un exploit fiableFin juin 2004Fin juin 2004

Publication du correctifPublication du correctif14 décembre 200414 décembre 2004

Durée de vie du 0dayDurée de vie du 0day

6 mois 6 mois (c’est le minimum)(c’est le minimum)

Page 6: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

IntroductionIntroduction

Trouver un Trouver un 0day0day est l’objectif de bon nombre de est l’objectif de bon nombre de chercheurs en sécuritéchercheurs en sécurité

Et de pirates aussi …Et de pirates aussi …

Comment ?Comment ?En l’achetant, en l’échangeantEn l’achetant, en l’échangeantEn le capturantEn le capturant

Pots de miel (j’attends toujours)Pots de miel (j’attends toujours)Investigations « forensiques »Investigations « forensiques »

En le découvrant (En le découvrant ( Objet de la suite de la présentationObjet de la suite de la présentation))

Pourquoi ?Pourquoi ?Pour s’introduire dans un système à jourPour s’introduire dans un système à jourPour la renommée, la publicitéPour la renommée, la publicité

En le publiant (de façon responsable, ou pas)En le publiant (de façon responsable, ou pas)

Pour le bien de l’humanité ?Pour le bien de l’humanité ?

Page 7: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Trousse à outilsTrousse à outils

DésassembleurDésassembleurL’indispensable L’indispensable IDAIDA Pro Pro de Datarescue (et son SDK) de Datarescue (et son SDK)

DébogueurDébogueurIDA Pro ou OllyDbg pour le IDA Pro ou OllyDbg pour le ring3ring3

SoftIce ou SoftIce ou WinDbgWinDbg pour le pour le ring0ring0

Analyseur réseauAnalyseur réseauEtherealEthereal et ses nombreux dissecteurs de protocoles et ses nombreux dissecteurs de protocoles

Outil de virtualisation de systèmesOutil de virtualisation de systèmesVMwareVMware Workstation pour un réseau de test complet Workstation pour un réseau de test complet

Aide à l’analyseAide à l’analyseSymbolesSymboles de déboguage Microsoft de déboguage Microsoft

Le Le PlatformPlatform SDK SDK Windows de Microsoft Windows de Microsoft

Page 8: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

MéthodesMéthodes

FuzzingFuzzing

Analyse statiqueAnalyse statique

Analyse différentielleAnalyse différentielle

Trace d’exécutionTrace d’exécution

Analyse d’exécutionAnalyse d’exécution

Page 9: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Fuzzing (1/3)Fuzzing (1/3)

Soumission de Soumission de requêtesrequêtes et de et de paramètresparamètres illégitimesillégitimes à une application afin d’en étudier à une application afin d’en étudier le comportement dans une situationle comportement dans une situation non non prévueprévue par ses concepteurs par ses concepteurs

Le procédé peut être Le procédé peut être manuelmanuel ou ou complètement complètement automatiséautomatisé

Les moyens incluentLes moyens incluentL’utilisation de clients ou d’API existantsL’utilisation de clients ou d’API existants

Le re-jeu de paquets capturés et modifiésLe re-jeu de paquets capturés et modifiés

L’implémentation de clients personnalisésL’implémentation de clients personnalisés

Page 10: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Fuzzing (2/3)Fuzzing (2/3)

Clients et API existantsClients et API existantsProbable rejet ou modification des entrées Probable rejet ou modification des entrées invalidesinvalides

Moyen simple de capturer, analyser et construire Moyen simple de capturer, analyser et construire des requêtesdes requêtes

Peu ou pas de connaissances du protocole requisesPeu ou pas de connaissances du protocole requises

Clients personnalisésClients personnalisésA partir de trames légitimesA partir de trames légitimes

A partir de « frameworks »A partir de « frameworks »SPIKESPIKE par David Aitel, en C par David Aitel, en C

IOActiveIOActive PeachPeach par Michael Eddington, en Python par Michael Eddington, en Python

Connaissances du protocole nécessairesConnaissances du protocole nécessaires

Page 11: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Fuzzing (3/3)Fuzzing (3/3)

Application possible aux formats de fichiersApplication possible aux formats de fichiersModification de champs d’un fichier existantModification de champs d’un fichier existant

Génération de fichiers invalidesGénération de fichiers invalides

Ce qu’il faut surveillerCe qu’il faut surveillerCrash de l’applicationCrash de l’application

Déni de service, exécution de code arbitraire ?Déni de service, exécution de code arbitraire ?

Fuite d’informationFuite d’informationNécessite un analyseur réseauNécessite un analyseur réseau

Génération d’exceptionsGénération d’exceptionsNécessite un débogueurNécessite un débogueur

Page 12: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse statique (1/4)Analyse statique (1/4)

DésassemblageDésassemblage et et auditaudit du code d’un binaire, afin d’y du code d’un binaire, afin d’y rechercherrechercher

Les appels à des fonctions potentiellement vulnérablesLes appels à des fonctions potentiellement vulnérables

Les agencements de code à risquesLes agencements de code à risques

Ne nécessite Ne nécessite paspas nécessairement l’exécution du nécessairement l’exécution du binairebinaire

Couvre la Couvre la totalitétotalité des fonctionnalités, connues ou non des fonctionnalités, connues ou non

Possibilité d’Possibilité d’automatiserautomatiser une partie de la recherche une partie de la recherche

La majorité du travail reste manuelleLa majorité du travail reste manuelleCompétences nécessaires très pointuesCompétences nécessaires très pointues

Page 13: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse statique (2/4)Analyse statique (2/4)

Fonctions Fonctions potentiellementpotentiellement vulnérables vulnérables (exemples)(exemples)

strcpy, wcscpy (strcpy, wcscpy (MS03-001MS03-001 : Locator Service) : Locator Service)strcat, wcscat (strcat, wcscat (MS05-010MS05-010 : License Logging Service) : License Logging Service)sprintf, swprintf (sprintf, swprintf (MS05-017MS05-017 : MSMQ) : MSMQ)vsprintf, vswprintf (vsprintf, vswprintf (MS04-011MS04-011 : LSASS) : LSASS)memcpy, wmemcpy (memcpy, wmemcpy (MS04-045MS04-045 : WINS) : WINS)lstrcpyA, lstrcpyW (lstrcpyA, lstrcpyW (MS04-022MS04-022 : Task Scheduler) : Task Scheduler)CharToOemA (CharToOemA (MS04-034MS04-034 : Compressed Folders) : Compressed Folders)

Vulnérabilités de typeVulnérabilités de typeDébordement de tamponDébordement de tamponFormatage de chaîne de caractèresFormatage de chaîne de caractères

Page 14: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

MS04-044 : ZipFldrMS04-044 : ZipFldr

DétailsDétailsL’attaquant contrôle les données en L’attaquant contrôle les données en arg_0arg_0

La fonction La fonction CharToOemACharToOemA ne vérifie pas la taille des buffers ne vérifie pas la taille des buffers

Le buffer destination fait Le buffer destination fait 264264 octets, est situé dans la pile octets, est situé dans la pile

La prise de contrôle de EIP est immédiateLa prise de contrôle de EIP est immédiate

Page 15: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

MS04-010 : LlsSrvMS04-010 : LlsSrv

DétailsDétailsL’attaquant contrôle le contenu de L’attaquant contrôle le contenu de arg_0arg_0 et et arg_4arg_4

Les buffers destinations des fonctions Les buffers destinations des fonctions lstrcpyWlstrcpyW et et lstrcatWlstrcatW font 1024 octets, sont situés dans la section data du binairefont 1024 octets, sont situés dans la section data du binaire

Le débordement ne permet pas la prise de contrôle directe Le débordement ne permet pas la prise de contrôle directe du flux d’exécution, mais une ruse supplémentaire, oui du flux d’exécution, mais une ruse supplémentaire, oui

Page 16: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

MS05-017 : MqSvcMS05-017 : MqSvc

DétailsDétailsL’attaquant contrôle la chaîne de caractères en L’attaquant contrôle la chaîne de caractères en arg_0arg_0

Le buffer destination de la fonction Le buffer destination de la fonction swprintfswprintf fait 300 octets, fait 300 octets, est situé dans la pileest situé dans la pile

L’alignement du buffer dépend de la longueur du nom L’alignement du buffer dépend de la longueur du nom NETBIOS de la machine hébergeant le serviceNETBIOS de la machine hébergeant le service

Page 17: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse statique (3/4)Analyse statique (3/4)

Fonctions de « parsing » spécifiquesFonctions de « parsing » spécifiquesCopies de chaînes de caractères personnaliséesCopies de chaînes de caractères personnalisées

MS03-036 : MsgSvcMS03-036 : MsgSvc

Vulnérabilités plus pointuesVulnérabilités plus pointuesDébordement d’entiers et « wraps »Débordement d’entiers et « wraps »

A surveiller : LocalAlloc, GlobalAlloc, RtlAllocateHeapA surveiller : LocalAlloc, GlobalAlloc, RtlAllocateHeap

« Off-by-one »« Off-by-one »

Conversion de signes, comparaisons signées ou Conversion de signes, comparaisons signées ou nonnon

Vulnérabilités combinées complexesVulnérabilités combinées complexesMS05-010 : LlsSrvMS05-010 : LlsSrv

Page 18: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

MS03-036 : MsgSvcMS03-036 : MsgSvc

DétailsDétailsL’attaquant contrôle le buffer source, dans lequel tout L’attaquant contrôle le buffer source, dans lequel tout caractère caractère 0x140x14 est remplacé par deux caractères est remplacé par deux caractères 0xd0xd et et 0xa0xa

Le buffer destination n’est cependant pas d’une taille Le buffer destination n’est cependant pas d’une taille suffisantesuffisante

Cela résulte en un débordement sur le tasCela résulte en un débordement sur le tas

Page 19: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse statique (4/4)Analyse statique (4/4)

Une automatisation partielle du procédé est Une automatisation partielle du procédé est possible grâce à des plugins IDApossible grâce à des plugins IDA

Tentative d’évaluation de la Tentative d’évaluation de la longueurlongueur des des paramètres des fonctions sensiblesparamètres des fonctions sensiblesDétermination de la taille des allocations mémoireDétermination de la taille des allocations mémoireDétection des boucles de copie personnaliséeDétection des boucles de copie personnaliséeLocalisation de Localisation de bouclesboucles dans le code dans le code

La méthode a ses limitationsLa méthode a ses limitationsQualité du désassemblageQualité du désassemblageAppels dynamiques à des fonctions en C++ ou Appels dynamiques à des fonctions en C++ ou DelphiDelphiComplexité des structures et formats de donnéesComplexité des structures et formats de données

IDLIDL

Page 20: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse différentielle (1/3)Analyse différentielle (1/3)

Identification d’une vulnérabilité suite à la publication Identification d’une vulnérabilité suite à la publication d’un correctifd’un correctif

Les détails d’une vulnérabilité corrigée peuvent ne pas être Les détails d’une vulnérabilité corrigée peuvent ne pas être communiquéscommuniqués

MS05-017 : MqSvcMS05-017 : MqSvc

Un éditeur peut être tenté de corriger des failles Un éditeur peut être tenté de corriger des failles silencieusementsilencieusement

MS04-007 : ASN.1 (Kill Bill)MS04-007 : ASN.1 (Kill Bill)

Une comparaison Une comparaison manuellemanuelle serait un travail serait un travail titanesquetitanesque

Automatisation de l’analyse et Automatisation de l’analyse et visualisationvisualisation des des différences grâce à des différences grâce à des graphesgraphes

BinDiff de Sabre SecurityBinDiff de Sabre Security

Page 21: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse différentielle (2/3)Analyse différentielle (2/3)

Diffiepar Kostya Kortchinsky

Page 22: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse différentielle (3/3)Analyse différentielle (3/3)

DiffieDiffiePlugin pour Plugin pour IDAIDA Pro 4.8 pour processeur « MetaPC » Pro 4.8 pour processeur « MetaPC »Analyse différentielle de deux binairesAnalyse différentielle de deux binaires

Analyse de fonctions par Analyse de fonctions par blocsblocsGénération de signatures type Génération de signatures type CRC32CRC32 pour chaque bloc et pour chaque bloc et pour chaque fonctionpour chaque fonctionMise en correspondance des fonctions des deux binairesMise en correspondance des fonctions des deux binairesMise en évidence des fonctions modifiéesMise en évidence des fonctions modifiéesVisualisation des différences grâce aux Visualisation des différences grâce aux graphesgraphes des des fonctionsfonctions

Algorithme de mise en correspondanceAlgorithme de mise en correspondanceNom des fonctionsNom des fonctionsSignaturesSignaturesPosition dans le binairePosition dans le binaireArbre d’appels aux fonctionsArbre d’appels aux fonctions

Page 23: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Trace d’exécutionTrace d’exécution

Surveiller les appels à des fonctions potentiellement Surveiller les appels à des fonctions potentiellement vulnérables au cours de l’exécution d’un binairevulnérables au cours de l’exécution d’un binaire

Moyen rapide mais superficiel de savoir ce qu’il se Moyen rapide mais superficiel de savoir ce qu’il se trametrame

Déterminer l’emplacement en mémoire des différents Déterminer l’emplacement en mémoire des différents paramètresparamètres

Pile, tas, section du binaire ?Pile, tas, section du binaire ?

Évaluer la possibilité d’influer sur ces derniersÉvaluer la possibilité d’influer sur ces derniers

Utilisation de (dum(b)ug) Utilisation de (dum(b)ug) ltraceltracePersonnalisation des fonctions à surveillerPersonnalisation des fonctions à surveiller

Possibilité d’inspecter les paramètres avant et après l’appelPossibilité d’inspecter les paramètres avant et après l’appel

Résolution des emplacements des buffers en mémoireRésolution des emplacements des buffers en mémoire

Page 24: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse d’exécution (1/2)Analyse d’exécution (1/2)

Attacher un débogueur à un binaire en cours Attacher un débogueur à un binaire en cours d’exécution afin d’observer son fonctionnement d’exécution afin d’observer son fonctionnement

Suivi de l’exécution du binaire en fonction du Suivi de l’exécution du binaire en fonction du codecode ou ou des des donnéesdonnées

Mettre des points d’arrêt sur les fonctions à surveillerMettre des points d’arrêt sur les fonctions à surveillerVérifier les argumentsVérifier les arguments

Suivre les modifications apportées aux données dès leur Suivre les modifications apportées aux données dès leur réception par l’application auditéeréception par l’application auditée

Trouver une vulnérabilité dans le traitement apportéTrouver une vulnérabilité dans le traitement apporté

Indispensable à l’implémentation d’un exploit fiableIndispensable à l’implémentation d’un exploit fiableExaminer l’état des registres, de la mémoireExaminer l’état des registres, de la mémoire

Travail manuel et laborieuxTravail manuel et laborieux

Page 25: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Analyse d’exécution (2/2)Analyse d’exécution (2/2)

EIP = 0x43434343,c’est mauvais signe …

Page 26: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Ring 0Ring 0

Le mode noyau de Windows est un domaine encore Le mode noyau de Windows est un domaine encore peu explorépeu exploré

Il recèle pourtant bien des trésorsIl recèle pourtant bien des trésorsVulnérabilités du noyauVulnérabilités du noyau

Vulnérabilités des drivers systèmesVulnérabilités des drivers systèmesMS05-011 : MrxSmbMS05-011 : MrxSmb

AntivirusAntivirus et pare-feu fonctionnent généralement et pare-feu fonctionnent généralement grâce à des drivers systèmesgrâce à des drivers systèmes

Débogage Ring 0 possible avec WinDbg et VMwareDébogage Ring 0 possible avec WinDbg et VMware

L’audit des drivers de matériels laisse entrevoir des L’audit des drivers de matériels laisse entrevoir des possibilités séduisantespossibilités séduisantes

Page 27: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

« Disclosure »« Disclosure »

Il existe plusieurs façons de divulguer des Il existe plusieurs façons de divulguer des failles, aux conséquences variablesfailles, aux conséquences variables

Vulnerability Sharing ClubsVulnerability Sharing ClubsClubs privés aux frais d’adhésion relativement chers dans Clubs privés aux frais d’adhésion relativement chers dans lesquels circulent des informations concernant les lesquels circulent des informations concernant les derniers « 0days »derniers « 0days »

Responsible disclosureResponsible disclosurePrincipe de divulgation responsable qui consiste à ne Principe de divulgation responsable qui consiste à ne transmettre l’information qu’au seul éditeur ou transmettre l’information qu’au seul éditeur ou constructeur, jusqu’à la mise à disposition du correctifconstructeur, jusqu’à la mise à disposition du correctif

Full disclosureFull disclosurePublication sans restrictions des détails concernant la Publication sans restrictions des détails concernant la vulnérabilité, que l’éditeur soit au courant, ou pasvulnérabilité, que l’éditeur soit au courant, ou pas

Page 28: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Microsoft Security Response Microsoft Security Response Center (MSRC)Center (MSRC)

Il s’agit du service de Microsoft chargé de la Il s’agit du service de Microsoft chargé de la gestion et de la résolution des vulnérabilités gestion et de la résolution des vulnérabilités et incidents de sécuritéet incidents de sécurité

Réception et tri des rapports de vulnérabilitéRéception et tri des rapports de vulnérabilitéDéveloppement et test des correctifsDéveloppement et test des correctifsCréation des bulletins de sécuritéCréation des bulletins de sécuritéPublication et envoi des avisPublication et envoi des avis

Le MSRC est joignable à l’adresseLe MSRC est joignable à l’adresse

[email protected]@microsoft.comUne première réponse arrive généralement Une première réponse arrive généralement dans les dans les 2 ou 32 ou 3 jours ouvrables suivant jours ouvrables suivant l’envoi du rapportl’envoi du rapport

Page 29: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

ConclusionConclusion

Il existe de nombreux moyens d’auditer des Il existe de nombreux moyens d’auditer des binaires Windows 32 bitsbinaires Windows 32 bits

Pour des résultats Pour des résultats superficielssuperficiels, mais , mais rapidesrapides, il , il faudra préférer des méthodes faudra préférer des méthodes automatiséesautomatiséesPour une analyse en Pour une analyse en profondeurprofondeur, des méthodes , des méthodes manuellesmanuelles devront être appliquées devront être appliquées

Les 0days ne sont pas un mytheLes 0days ne sont pas un mytheLa fenêtre de vulnérabilité est de l’ordre de La fenêtre de vulnérabilité est de l’ordre de plusieurs moisplusieurs moisIl ne faut pas se fier qu’aux Il ne faut pas se fier qu’aux correctifscorrectifs, il est alors , il est alors déjà déjà trop tardtrop tardLes Les IDSIDS n’y peuvent pas grand-chose n’y peuvent pas grand-chose

Le moyen le plus simple pour s’en procurer Le moyen le plus simple pour s’en procurer est encore de les trouver soi-mêmeest encore de les trouver soi-même

Page 30: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

LittératureLittérature

Dave Aitel – 0daysDave Aitel – 0daysHow hacking really worksHow hacking really works

Dave Aitel – TC0Dave Aitel – TC0Microsoft Windows, a lower Total Cost of OwnershipMicrosoft Windows, a lower Total Cost of Ownership

FX – BugsFX – BugsVulnerability finding methods in Windows 32 environments Vulnerability finding methods in Windows 32 environments comparedcompared

Ben Nagi – Zero DayBen Nagi – Zero DayVulnerability Research, Disclosure and EthicsVulnerability Research, Disclosure and Ethics

Barnaby Jack – Remote Windows Kernel ExploitationBarnaby Jack – Remote Windows Kernel ExploitationStep into the Ring 0Step into the Ring 0

Page 31: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Questions ?Questions ?Questions ?Questions ?

Remerciements :Remerciements :Dave, Halvar, Gera, Security Labs, Dave, Halvar, Gera, Security Labs,

Team Rstack, Sécurité.org, MicrosoftTeam Rstack, Sécurité.org, Microsoft

Page 32: Recherche de vulnérabilités en environnement Windows 32 bits et divulgation responsable Kostya Kortchinsky Responsable du CERT RENATER kostya.kortchinsky@renater.fr.

Microsoft FranceMicrosoft France18, avenue du Québec18, avenue du Québec

91 957 Courtaboeuf Cedex91 957 Courtaboeuf Cedex

www.microsoft.com/france

0 825 827 8290 825 827 829

[email protected]@microsoft.com