SSTIC 2014

 

Symposium sur la sécurité des technologies de l’information et des communications

Quelques notes prises lors des conférences exceptionnelles du SSTIC Edition 2014

Site des organisateurs : http://www.sstic.org

Les actes / slides / vidéos / ppt sont tous accessibles ici  : https://www.sstic.org/2014/actes/   C’est aussi ce qui en fait une conférence de qualité.

 

 

Analyse de la sécurité d’active directory :

1 – utilisation de chemins de contrôle.

Présentation d’un principe qui vise à établir la relation de droits (ace, acl, gpo, passwords, groupes,…) entre les objets d’un AD, en considérant la transitivité des relations, de manière à établir un graphe le plus large possible. Le but étant d’identifier, notamment par rapport à un groupe tel admin du domaine, quels sont les objets qui peuvent être ou sont membres du groupe. Exemple :  Un utilisateur ayant des droits sur des GPO qui s’appliquent à  des groupes dont admins du domaine revient à lier dans le graphe, l’utilisateur à la possibilité d’être admin du domaine.

2 – Analyse de la sécurité d’un AD avec BTA

Le principe : obtenir une copie de l’AD (ntdis.dit) , de manière à en extraire toutes les tables pour les intégrer dans une base type MongoDB. Une fois constituée, cette base peut être interrogée par des Miners  : bout de codes chargés d’effectuer des requêtes sur les tables afin de sortir des éléments utiles pour un audit  ; exemple, tous les SID d’un groupe spécifique, tous les comptes non logués depuis x jours ,….

 

Kerberos contre-attaque :

Brillante démonstration sur les vulnérabilités de Kerberos. La démo portait sur l’implémentation Microsoft dans un AD2012

  • Un outil obtient une copie du ticket Kerberos TGT depuis un poste client Windows, ce ticket est ouvert, modifié (en ajoutant notamment des SID de groupes privilégiés), réinjectés dans le  cache kerberos du poste de travail et immédiatement, l’accès à une ressource (un CD) devient possible. Le CD nous identifie alors comme membre des groupes.
  • Cette injection depuis le poste de travail ne laisse pas de traces dans les logs Windows des serveurs, ne modifie pas en dur l’appartenance aux groupes dans l’AD. La modification du ticket TGT n’est valable que le temps de la session, depuis le poste .

 

Analyse de la sécurité des modems des terminaux mobiles.

  • Mise en place d’un banc de test  radio sur 2G/3G/LTE.
  • Niveau de la 2G : crypto faible, outils openbt dispo
  • Niveau 3G : sécurité plutôt bonne
  • Niveau LTE(4G) : crypto bonne (128/256 bits) mais peu d’études de sécurité.
  • Procédures de découverte des antennes environnantes non sécurisées avec le terminal.
  • Tests sur les syntaxes des messages, déclenchement de corruptions de mémoire. Test sur les protocoles pour contourner les procédures de sécurité du mobile (comme abaissement du niveau de la sécurité).

=> Au final, toutes les marques présentent des failles ; problème car si les marques corrigent sur les mobiles récents,  rarement si mobile > 1 an.

  • Bug/vuln détectée au moment de l’authentification 3G
  • LTE : connexion LTE sans contrôle d’intégrité, permet l’attachement d’un mobile à un faux réseau LTE. Le faux réseau peut en + demander au mobile d’abaisser son niveau de sécurité (vuln sur certains mobiles) à la manière d’un Man In the Middle.

 

Hooker

  • Modèle de sécurité des applications android
  • Exemple avec RATP :
    • Est-ce que les ressources demandées le sont légitimement et que fait l’appli des ces ressouces ?
    • RATP  demande accès à tous les contacts.
  • Analyse statique : androguard
  • Analyse dynamique : solution 1 : une rom spécifique (droid box). Solution2 : modifier l’apk avant qu’elle ne soit installer (api monitor ou fino) Solution 3 : app hooking.
  • Analyse mixte : online scanner
  • Hooker : application qui analyse une application pour rassembler un maximum d’informations sur l’application. Etape 1 : anroguard, étape 2 : analyse dynamique  avec Substrate => injecte code dans process Zygote dnc permet d’hooker les accès aux informations personnelles, ouvrir des sockets, et contrer les fonctions d’anti émulation. Intégration des résultats à Kiana pour interface web, histogramme.

Macroanalyse: automatisation et paralellisation de la micro analyse.

Tests effectués avec 1000 applis du slideme market et 1000 appli du android market.

Sur 1000, 477 demandent des permissions d’accès internet et 404 les utilisent.

Les urls de pub sont les plus sollicitées. Ports 80 en tète puis 443 puis des ports comme 1130, 5122,305,5220

 

Forensics sur iOS

Terminaux souvent peu ou pas sécurisés

Menaces pour l’utilisateur,  l’entreprise, les données.

Framework iphonedata protection en opensource sur v4 ios.

IPhone backup analyser 2

Celebrite ufed (commercial).

Liste d’outils limitées pour les ios v5. Archi de la sécurité d’un iphone : une NAND reliée au processeur via un crypto processeur.. Mécanismes de secure boot, sandbox, signature du code, protection des données users (fichiers) plus mesures complémentaires.

L’analyse passe par une capture physique via vulnérabilité bootrom, boot sur un système alternatif pour monter un sshd et un ramdisk : cela permet de retrouver toutes les versions des fichiers effacés.

Acquisition logique : possible via les services itunes USB du mobile via demande d’appairage puis activation du service de lecture de fichier (AFC) => permet l’accès aux donnes backup, fichiers, media, configuration.

Acquisition logique : nécessite accord utilisateur, permet de récupérer les données mais pas celles effacées.

Le Jailbreak serait une possibilité pour accès complet au terminal :  car permet de désactiver les fonctions de sécurité. (incompatible avec le concept de conservation de preuves).

Utilisation du service apple mobileimagemounter : service utilisé pour monter des images ignées pour développement. Service vulnérable  dans la version 6 Ios.

 

 

Analyse de sécurité des box adsl

  • Nommées aussi IAD (internet acess device).
  • Plusieurs chemins d’attaque déjà présentés , à distance ou en local. 3eme cas présenté : boucle locale entre modem et dslam.
  • Boucle locale constituée de cuivre . Attaque qui consistes à s’insérer dans le circuit cuivre : émuler un dslam qui rediscute avec un modem local qui rediscute avec le dslam original..idem Man In The Middle. Le dslam+ modem reproduit  tiennent dans une boite équivalent PC. La liaison local entre modem et dslam se fait via ethernet =>utilisation possible de wireshark qui permet une capture du trafic : certaines boxes utilisent le http pour la configuration ou la mise à jour de la box..
  • Expérience de ne pas de se reconnecter avec le dslam original, mais avec un serveur qui fait ppp, dns, htttp  pour simuler un dslam le plus complet => on obtient une  box finale avec voyant qui passent au vert.. Les config de box capturées sont repoussées vers la box , après modif du contenu (ouverture ssh, désactivation des mises à jour, ajout de softphone,…). d’autres idées d’exploitation possibles (appels surtaxés, proxy, botnet,…)
  • Contre mesure possibles : https, observation de l’atténuation du canal sur boucle locale.

 

 

Securité des ordivisions

Tests, évaluation effectuée sur 2 modèles de même constructeur.

Ordivision = smart tv.

Présence d’un secure boot. Une prise UART (type jack) qui sert à avoir des informations sur les process, en cours (mode console).. Détection d’une lib UPNP v1.4, donc vulnérable au CVE2012-5956. toujours pas corrigé en 2014. Exploitation possible de la vulnérabilité pour obtenir un shell en root.. Permet de constater que les images de mise à jour sont signés , clé publique différente pour chaque modele de tv.

Découverte d’un service DirerctFB : alternative au serveur X Windows = port TCP ouvert sans filtrage ni authentification (cve existants).

Conséquences de ces vulnérabilités : prise de contrôle des ordivision, des caméra intégrées aux TV, au micro, aux abonnements,…

 

La radio qui venait du froid.

Etude des claviers fil, souris sans fil…

Techniques décortiquées : nrf24L01+. Disponible publiquement, bidirectionnel 2.4 ghz, présent partout dans pleins d’équipements.

Comment écouter les communications.  Différentes solutions :

1 – Rtlsdr = 20$ mais ne capture pas des frequences > à 2 Ghz.

2 – Usrp = 600$ jusque 6 ghz..; trop cher.

3 – HackRF = 300$ mais en précommande seulement (opensource). Jusque 6 Ghz. Et trop cher.

4 – en 210, une solution présentée à CanSecWest 2010 pour 200$.  Methode Keykeriki  permet de démoduler en permanence, le flux d’un nrf24L01+. La puce de démodulation est une A7125,le proc de capture est un ARM à 100 Mhz. … trop cher.

5 – autre solution moins chère : PuceA7125 (3€) + puce nrf2401 (3€) + arduino + pc + analyseur logique contrefait. Code source sur http://s/github.com/cogiceo

6 – puce nrf2401 3€ + un goodfet (40€) + PC. Le goodfet sert d’interface entre pc et puce nrf2401. Cette solution utilise la puce en mode promiscouis à 2Mb/s.

7 –  puce nrf2401 + arduino (10 €) + pc.

Résultat des captures et analyses : Logitech communique en chiffrement AES. Mais Microsoft ? Sécurisé avec un XOR. La clé du XOR est l’adresse de destination. (constaté en 2010).

Démonstration : capture et interception des touches d’un clavier Microsoft de juin2014 à plus de 15 mètres.

 

Attaques USB

  • Etudes de différentes attaques  avec approche par fuzzing
  • Principe USB avec controleur (jusque 127 périphériques) ;  modele maitre esclave : le périphérique ne prend jamais l’initiative d’envoyer des données au maitre.
  • Approche par fuzzing via Qemu (afin de capturer le trafic USB). Avantage = snapshot, accès code source vm avec qemu + Parallélisation possible . Inconvénient = pas possible de virtualiser tous les systèmes., bugs d’implémentations usb selon les virtualisations.
  • Utilisation avec  Facedancer : adapateur USB qui capture le trafic, mais pas de support USB3, limité à 3 endpoints.
  • Outil développé  basé sur le facedancer : l’outil extrait le PCAP capturé,
  • Outil basé sur un opensource UAM: résultat obtenus avec Windows 8.1 = Crash trouvé dans usbstor.sys. Pistes possibles avec la nouvelle ile usb3 développé nouvellement sous windows 8.

 

Bootkit

  • Rootkit = logiciel malveillant. Problème car sous Winx64, signature obligatoire des drivers.. Solution  = compromettre le système de démarrage.
  • Premier rootkit en 2005.
  • Boot process = bios puis mbr puis vbr (volume boot record) puis boot mgr puis winload (kernel minimaliste, options de démarrage, pagination, chargement de clés de registre, ntoskernel, hal.dll et drivers de type service ‘ boot start’.
  • Les premiers bootkit découverts en 2010 (tdl4, turla, gapz, xpaj, cidox,…).
  • 4 type d’infection : mbr, table de partition,ipl (initialisation programme loader) ou ebp.
  • Opensesource : stonedbootkit, vbbootki, dreamboot.
  • Utilisation des hooks pour arriver au chargement dans ntsokernel.exe. Problème car ces binaires sont basés sur des signatures windows. A chaque nouvelle version de windows, trouver de nouvelles signatures , nouveaux offset,…donc complexe.
  • Projet Reboot : PoC qui  prend la main du boot jusqu’au chargement du kernel , jusqu’ à charger un driver non signé. Sans recherche de signature ou de hook.
  • Démonstration : injection d’un driver dans le process de boot, qui modifie la DLL GINA afin qu’elle accepte n’importe quel mot de passe…

 

Test d’intégrité des machines virtuelles

Hypothèse d’avoir une des  VM qui soit malveillantes dans un environnement VMM dans le cloud, cas où des clients concurrents sont hébergés dans le même cloud.

Approche envisagée : installation d’un hyperviseur intermédiaire entre l’hyperviseur et les vms.

Autre approche , utilisation des couches matérielles : utilisation d’une carte PCIe dédiée.

  • Obtention de l’empreinte de l’hyperviseur pour en vérifier l’intérgité.
  • la carte PCIe possède un FCPGA, un port USB et un port Ethernet pour connexion avec une machine distante de confiance.

 

Securité des systèmes Mainframes

  • Architecture similaire depuis 50 ans (comptabilité binaire), notamment sur system zEntreprise.
  • Contient un hyperviseur : processeur ressource manager qui permet d’avoir des partitions ou VM. (zOS, zLinux,zVSE, ZPTF,…)
  • Constitué d’un kernel, de sous systèmes réseau / stockage / E/S. puis couches applications (serveur appli, base de données, sécurité, automatisation, management).

Le contrôle d’accès est gérée par u module RACF  qui s’appuie sur SAF (situé dans le kernel).

Problèmes : mots de passe limité à 8 caractères, non sensible à la casse, basé sur DES , parfois les bases de données de RACF sont accessibles en lecture => contient les mots  de passe des users…

 

Scan de port en masse

Problème : distribution et passage à l’échelle d’un scan individuel.

Pas d’interface web avec les outils  (nmap, zmap, masscan,…)

Objectif: récupérer toutes les infos de niveau 7 (textes, images, clés, etc,…)

Solution : distribution sur plusieurs sondes, plusieurs pays installées comme webservice.

Nmap ne suffit pas : zmap et masscan fonctionnent en mode asynchrone mais nécessitent un cœur de réseau et ne sont pas criptable.

Proposition de scanner sur une liste d’IP générée de manière non contiguë pour éviter les absues.

Idées de pousser des blocs de 4 IP aux services de scans..

Performances : 12 Millions de scan simultanés.

Dev de NODESCAN : moteur asynchrone de niveau 7 , support du python pour scripting. Beta disopnible.

Tests effectués avec plages IP française (environ 90 M dip  ou Espagne (30 M d’IP). Scan Espagne = 1 journée.

Résultat : détection de FTP uniques nombreux = le fournisseur internet, affiche le nom du client dans la bannière (service de la box).

Slides sur quarkslab.com/en-resources#conferences

 

CryptoCoding.

Les bugs crypto  ont des conséquences pires que les bugs de soft, car permettent une révélation de documents perso ou confidentiels.. Ex HeartBleed.

Type de bug : répétition de ligne goto fail (présent dans implémentations Apple).

Les bug crypto sont moins analysés, moins connus, moins d’expert, moins d’outils.

Openssl : supporte une quantité très large de protocoles , sur quasiment tous les systèmes (du Win 16b, CE au Linux, etc…)

Exemples de problèmes dans le code Openssl :

Des if (0), bcp de  variables mal nommées (exemple payload plutôt que longueur payload, les RFC ne correspondent pas à l’ordre du code Openssl. Bcp de commentaires alarmistes (fix me,…).

Openssl priorise la vitesse, la portabilité, les fonctionnalités plutôt souvent best effort, dirty tricks.

Ce qui est moins prioritaire : documentation, security, robustesse, consistance (nommage des variables, cohérence).

Pour développement de la crypto : maitriser les algo de crypto, les bonnes pratiques, software engineer, software optimisation, langage de dev, etc…

Alternatives à openssl possibles mais toutes présentes des failles. l’opensource a un avantage de présenter moins de backdoor, un niveau de confiance significatif.

LibreSSL : fork d’openssl en supprimant toutes les implémentations anciennes mais appuyée sur BSD, donc si portage sur autre OS, libraires autres que BSD qui peuvent présenter des vulnérabilités.

Comment écrire du code crypto secure :

  • 10 règles  (power of ten » + google ou nacl.cr.yp.to/internals.html)
  • Mise en œuvre de règles  ou d’un standard : https://cryptocoding.net => avec des règles simples et des contre exemples.
    • Le secret doit rester secret
    • Comparer les strings à temps constant.
    • Eviter les  potentiels timing leaks.
    • Se méfier des compilateurs intelligents « uiq optimisient » au détriment de la securité.
    • Nettoyer les mémoires  (stacke, dump, fichiers d’hibernation,….).

Evocation de la fonction Random qui es souvent une faiblesse.

  • Exemple de faille sur netscape en 19996
  • Recommandation d’utiliser dev/urandom sous linux.// Cryptgenrandom sous Windows.
  • 12 règles proposées sur le wiki.

 

Proxy PKCS11 filtrant

Echanges via PKCS11 – CAML Crush :

Le projet : permettre un échange de clé public/privée entre 2 indiviidus via une solution sécurisée en proposant des API.

La clé ne sort pas du conteneur sécurisé mais un lien vers cette clé est envoyée au correspondant (un handle).

Le standard est obligatoire pour échanger les clés, mais il existe des faiblesses.

Caml Crush : se propose de se placer en coupure des requêtes PKCS11. Entre une application et un middleware.

 

Martine monte un CERT

93% des entreprises du CAC40 sont pwned.

Décision d’EADS de créer un CERT Airbus : parties de la feuille blanche, communauté fermée (cercles privés, maillist privée,…)

Cert Airbus group : régalien, toutes divisions internes, cert industriel, veille, alertes gov, incidents.

Martine et les APT : (advanced persistent threat => Bataille marketing..

Schéma classique :

1 – waterhole, spear, phishing, mdp.

2 – installation de RAT, découverte de l’environnement,

3 – compromission du DC,

5 – recherche d’info ,

6 exfiltration via HTTP

Constats effectués sur les intrusions ou tentatives :

  • Mode bourrin / site de C&C dans le top 10 des logs/hits des accès internet / apparaitre dans les logs ? /
  • l’humain est au clavier : supporthack niveau 1, 2, 3, logique dans l’attaque/ êtres humains donc qualité et défauts.
  • Pillage organisé via un dir/R puis rar pour s’envoyer le résultat des file server.
  • Recherche d’un pc vulnérable (serveur plutôt que laptop).
  • Ciblage d’un ingénieur, des sys admin.

Découverte d’un incident : rarement en interne, plutôt via des alertes gouvernementales, ou par des concurrents.

Les attaques sont souvent par secteur d’activité

Identifier l’ampleur de l’incident : chantier système, réseau, communication.

Forensic non adapté car 10, 20 , 30, x centaines de  machines compromises. Gros problème de passage à l’échelle.

Projet de dev d’un agent collecteur de marqueurs (md5, mutex, services, processus,…)

Aucun outil open source  pour déploiement massif, failsafe, maitrise, léger.

Selon présentaation, Sondes réseaux comme IDS morts

Solution d’effectuer une collecte de toutes les données, tous les journaux.

Nécessite une transparence totale en équipe. Reporting./ documentation précise sur les actions à mener en cas d’incidents.

23 CERT en France, 8 en France. LA France à la traine ????

Organisme d’accréditation le FIRST.

 

Quarkspwdump

 

Rumpsessions

Inscriptions (450 places) vendues en 8 min

Soumissions =>plus de contraintes sur le volume des sousmissions = volume des actes les plus importants du sstic avec 570 pages

Serveur ARM basse consommation : => base Netgear à moins de 100 €.

Security défenseive => suricata 2.0 branchement facile vers logstah ou splunk. Ou kibana (dashboard). Dev du script pour blocage auto selon conditions. => création de SELKS en iSO (stamus network)

Parsifal => parseur sur githbu (formats decrits : ssl, dns, mrt,  kerbveros. Possibilité ajouter une fonction de decryptage  AES.

SSTICY => boite a outils pour challenge.

Exflitration de données via ultrasons emis et réceptionné par un pc/mboile.

Mind your langage => présentation complète sur le site de l’agence. Toutes les particularités des langages. Sur le site ssi.gouv.fr

Private meeting  avec outlook => analyse des droits sur les rdv marqués privés.  Une propriété privé n’est valable que pour l’affichage sous outlook,  un powershell permet d ‘afficher le rdv sans tag privé. Le WS est dans le MSDN.

Le BGA =>challenge de dumper un BGA sans le dessouder = passage au rayonx  pour repérer les pins de la NAND. , isolation des pistes, soudures en direct sur la carte

 

Arreter le DDOS sur une plateforme d’affiliation :

réponse = blackhole + proxy LB.

Analyse : repèrage dans les logs

réaction : investigation IP = fail (car ip espagnol)

Reaction bis : envoyer un cookies et le traquer. (à chaque fois qu’il fait un get @ip) et affichage d’une pub  fictive pour le tracer. Action par mail du service marketing expliquant que le problème est résolu : cela fait revenir l’attaquant pour tester si son attaque marche toujours => Pseudo trouvé, puis email puis compte client.

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*