Devoteam Netherlands: 3 weeks before Rocketlaunch to Microsoft World Partner Conference in Houston Texas!

Devoteam Netherlands is counting off and there are still 3 weeks to go before Rodney Kemp and Jean-Claude Chan will be rocketlaunched to the annual Microsoft World Partner Conference in Rocketcity Houston, Texas.

So if you are reading Houston, Texas. What is the first thing that pops up into your mind? For those who love NBA Basketball, they will cheer: Houston Rockets!

houston

Houston-Rockets-Logo

Or you might think about : ” Houston, we have a Go!”

0920-Space-Shuttle-endeavour-heading-LA-retire_full_380

nasa-space-center-houston-tx--large-msg-114994752458-2
None of them is unfortunately the case. Nope, we are going to attend the Microsoft World Partner Conference event!!
wpc_2013_logo_06-blue-rgb-

For those who does not know what WPC is? Well, this is the annual Microsoft strategic event of the year and for Microsoft partners it is a must to attend this.

This year, the event will take place from july 7 till Thursday july 11 in Houston, Texas. Over 16.000 partners will be present.

As a Microsoft Partner, Devoteam Netherlands will attend this meeting to gather the latest intel and information on the following topics: Big Data, Cloud, Social Enterprise and Application Lifecycle management. These topics suit best to our services and core business and will certainly help us to develop and optimalize our services as well in the tactical field as in the strategic field. Furthermore, it will certainly help us to help and guide our customers if they are challenged with topics such as big data, cloud, Social Enterprise and ALM.

Steve Ballmer is especially fired-up to talk to partners at WPC this year. He’ll be giving Microsoft’s point of view on the industry, his vision for our opportunities together and a good look at devices and services. This is the chance for Devoteam Netherlands to align with Microsoft’s roadmap for the year.

WPC wouldn’t be WPC without a rousing, fired-up keynote from our Chief Operating Officer, Kevin Turner.

kevin turner

Kevin will deliver his view of the marketing, competitive pressures and our big priorities for the coming year.

I know that his insights into effective strategy will be valuable to our business. WPC is also the chance to hear about developments and insights from key senior leaders of Microsoft:
Tami Reller, CMO and CFO of Windows Satya Nadella,

President of Microsoft’s Server & Tools Kirill Tatarinov,

President of Microsoft Business Solutions.

For those who wants to know how the agenda looks like I have made skydrive links:

http://sdrv.ms/12IYiaW

http://sdrv.ms/12IYneM

During this event, I will try to blog and update you with the latest information. Ofcourse not all information can be shared!

Greetings from Devoteam Netherlands,
Jean-Claude Chan

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

Comments (0)

SSTIC 2013 – Jour 3

Fuzzing intelligent de XSS type 2 filtrés selon Darwin : KameleonFuzz

Fabien Duchène, Sanjay Rawat, Jean-Luc Richier, Roland Groz

Seul Fabien Duchène a présenté l’outil d’analyse de vulnérabilités d’applications Web de type XSS.

Il est composé de deux parties : l’inférence de modèle et la génération automatique d’entrées malveillantes (appelé « fuzzing évolutionniste »).

Conscient de la difficulté des outils disponibles sur le marché à détecter efficacement des vulnérabilités XSS de type 2 (persistant), les auteurs se sont appliqués à développer un outil plus performant. En effet, selon les auteurs, les meilleurs outils détectent 40% des XSS de type 2, la plupart des autres outils, 20% et un tiers n’en détecte aucune. L’outil analyse et détecte également les XSS de type 1 (réfléchi).

La première partie de l’outil apprend de manière automatique un modèle formel du système audité en produisant un automate à état fini étendu.  Ce modèle est appris par des envois successifs d’entrées (requêtes HTTP) et analyse des sorties correspondantes, repérées par d’inférence de teinte.

La deuxième partie de l’outil prend en entrée l’automate généré précédemment par la première partie de l’outil sur lequel les réflexions (retours) potentielles sont annotées. Les valeurs des paramètres fuzzés sont générées grâce à une grammaire d’attaques puis elles évoluent grâce à un algorithme génétique. De multiples traitements sont effectués sur ces entrées  pour leur donner des scores. Les entrées ayant les meilleurs scores seront recombinées par des opérations de mutation et de recombinaison par croisement respectant la grammaire d’attaques. Ce processus prend fin quand les conditions d’arrêt imposées par l’utilisateur sont atteintes (exemple : 4 XSS découverts).

L’outil a été testé sur cinq applications Web  et comparé à quatre scanners XSS du marché. Il se révèle plus performant dans la découverte de XSS que tous les autres outils testés.

Une fois la présentation terminée, l’orateur poursuit par une démonstration de son outil.

Finger printing de navigateurs

Alain Ribault, Erwan Abgrall, Mario Heiderich, Martin Monperrus, Sylvain Gombault, Yves Le Traon

Erwan Abgrall , doctorant à Telecom Bretagne, aborde le finger printing de navigateurs par l’approche des attaques XSS.

Ce finger printing du navigateur présente deux usages :

  • Accès à des informations privées (identifier un utilisateur, collecter des informations sur ses paramètres de configuration…). Cette approche est déjà suivie par le programme Panopticlick de l’EFF, des études sont en cours à l’INRIA. De plus, compte tenu de la faible valeur accordée par les utilisateurs à leurs informations privées, cette piste a été volontairement mise de côté par Erwan Abgrall pour se concentrer uniquement sur la seconde ;
  • Identification du navigateur afin de lancer des attaques ciblées. De fait, le lancement d’une attaque ciblée, par l’esquive des machines d’audit ou antivirales, permet de limiter les capacités de détection de la victime.

Quelques techniques spécifiques à certains navigateurs sont présentées, telles que la détection d’un plugin Fiddler installé dans Google Chrome (fréquemment utilisé par certains analystes pour visualiser la sortie du navigateur), les tests de user-agents en JavaScript ou la compilation conditionnelle sous Internet Explorer via des astuces bien connues des développeurs Web.

Cette revue des techniques utilisées permet de constater que les techniques académiques restent aujourd’hui en avance sur celles effectivement exploitées dans des exploit kits.

On entre dans le vif du sujet après une présentation de quelques techniques académiques.

L’approche retenue pour la méthode de finger printing présentée repose sur des vecteurs XSS dont l’exécution est conditionnée par la capacité du navigateur à comprendre une portion de HTML donnée. Elle présente l’avantage d’être aisément testable depuis un serveur et automatisable, tout en se basant sur des vecteurs XSS disponibles en grandes quantités.

L’exécution de ces vecteurs XSS dans divers contextes, influençant le comportement du navigateur, permet de construire une signature pour chaque navigateur.

L’identification des signatures par arbre de décision a rapidement été abandonnée au profit d’une mesure de distances de Hamming afin de rendre le framework plus résilient face aux mises à jour fréquentes des navigateurs.

Ce framework permet, dans certains cas, de disposer d’un niveau de détail de l’ordre de la sous-version.

Le code est disponible et hébergé sur GitHub.

Duqu contre Duqu

Aurélien Thierry

Aurélien Thierry effectue actuellement une thèse en sécurité informatique à l’INRIA (Institut National de Recherche en Informatique et en Automatique).

Duqu est un ver informatique découvert en 2011 par CrySyS Lab. Il est présumé lié à Stuxnet car il possède des fonctionnalités et du code partagés.

Il fonctionne de la manière suivante : un dropper (ici, un fichier Word) est téléchargé sur la machine cible (par mail le plus souvent), une fois celui-ci lancé il exploite une faille noyau en rapport avec les polices TrueType dans win32K.sys. Cela lui permet d’écrire des fichiers chiffrés sur le disque et d’installer un pilote. Seul le pilote est présent déchiffré sur le disque. Ce pilote vérifie quels modules sont exécutés et déchiffre les DLL correspondantes pour lancer les charges.

Aurélien Thierry développe un outil de détection de malwares, celui-ci serait-t-il capable de détecter la DLL principale de Duqu ou même de déjouer une attaque en temps réel ?

Pour cela, il faudrait surveiller les processus lancés et intercepter la DLL déchiffrée au moment de l’injection. Or il existe un programme qui réalise ce genre d’opérations et c’est précisément le pilote Duqu. L’idée lui est donc venue de réutiliser le pilote à des vues défensives.

Pour cela, il a utilisé IDA et son module de décompilation, effectué l’identification des constantes, des structures Windows et des structures propres au pilote (PEData). Il ne restait plus qu’à trouver les conventions d’appel manquantes et les diverses options de compilation. Une fois le code récupéré, le C++ et l’ASM sont à analyser.

Ce code lui a appris beaucoup d’informations intéressantes: ce pilote est de type réseau, il est lancé avant la HAL (couche d’abstraction matérielle), puis le pilote détecte si l’OS est en mode debug, et une fois actif, il met en place des fonctionnalités de type rootkit en injectant la DLL dans services.exe. Une notification est émise lorsqu’un module est chargé en mémoire.

C’est cette fonctionnalité de notification qui a été réutilisée. Ainsi, une notification sera émise dans le pilote défensif lorsque l’injection aura lieu dans services.exe par le pilote Duqu.

Une démonstration a été faite, les deux pilotes étaient présents sur la machine : le pilote défensif intervient avant le pilote Duqu pour détecter les notifications d’injection et ainsi empêcher l’attaque.

Le TEE, nouvelle ligne de défense dans les mobiles (conférence invitée)

Hervé Sibert

L’orateur est responsable sécurité produits chez ST-Ericsson.

Le Trusted Execution Environment est un environnement de sécurité qui commence à être déployé sur les smartphones, particulièrement sur les processeurs ARM.

Entre 1990 et 2007, les fonctions de sécurité étaient implémentées dans la couche software du téléphone. Depuis 2007, certaines fonctions sensibles font appel à une implémentation hardware de composantes de sécurité (« trusted root », générations de clés cryptographiques…).

Les OS mobiles étant de plus en plus ouverts (sic), les fonctionnalités sensibles sont déportées dans le TEE, bien que leur gestion demeure externe. Le TEE est donc le seul à avoir accès aux fonctionnalités de sécurité de la plateforme.

Le séquencement des fonctions sensibles reste en environnement d’exécution standard alors que les fonctions en elles-mêmes sont déportées vers le TEE.

Les fonctionnalités du TEE sont dédiées à la gestion des fonctions sensibles du code dont l’exécution dans l’OS standard exposerait le système à des attaques. Il gère aussi le contrôle de la sécurité du boot (stockage et canaux sécurisés).

La fonctionnalité principale du TEE correspond à l’isolation du code et des données, la protection des clés sur lesquelles reposent les fonctions de sécurité et l’isolation entre les différentes applications du TEE.

L’initiative Global Platform est à l’origine d’un ensemble de spécifications d’interfaces standards afin d’encourager le développement logiciel en TEE et simplifier la migration.

Le TEE est supporté depuis ARM76 et permet de disposer de deux processeurs virtuels sur un même cœur (un état normal et un mode sécurisé). Un bit NS permet d’identifier et propager la TrustZone vers la cible des accès afin de s’assurer qu’une donnée sécurisée ne soit accessible par un composant REE et inversement.

Un mode moniteur peut être invoqué via Secure Monitor Call afin d’héberger le code nécessaire à la transition d’un mode à l’autre, chaque mode disposant de ses propres instances MMU.

Le TEE nécessite une racine de confiance matérielle. Pour cela, un ROM boot est chargé de faire une initialisation de la plateforme en mode sécurisé en s’exécutant sur la « RAM-on-chip ».

Les méthodes de signature et l’implémentation des fonctionnalités de sécurité dans un environnement isolé et sécurisé sont des fonctionnalités disponibles sur la quasi-totalité des smartphones, mais restent assez peu déployées sur le marché.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/conf_invit1_j3_2013/.

La réponse aux incidents ou quelques recommandations pratiques pour les auteurs de malwares (conférence invitée)

Alexandre Dulaunoy

La dernière conférence du vendredi matin est réalisée par Alexandre Dulaunoy, chercheur sécurité au CIRCL (Computer Incident Response Center Luxembourg), le CERT National du Luxembourg. Sur 2012, ce CERT a traité plus de 10 000 événements de sécurité et réalisé plus de 400 investigations techniques.

La conférence s’articule autour des auteurs de malwares et des bonnes pratiques de développement qu’ils devraient adopter. En effet, comme le signale Alexandre, dans un CERT, on voit de tout : des malwares amusants, originaux ou parfois ennuyeux à analyser. À force, on les compare et l’envie vient d’effectuer des recommandations pour les auteurs de malwares.

Un logiciel malveillant reste un logiciel, il y a tout naturellement une tendance qui se dessine pour leurs auteurs : créer de nouvelles fonctionnalités.

La première préconisation est donc « Keep it Simple ! ». Comme dans tout, les premières réalisations ressemblent à du bricolage puis on avance, on épure afin de rendre l’outil plus propre. C’est aussi valable pour les produits de piratage, les skimmers en sont de parfaits exemples.

Pour commencer, Alexandre présente les différentes méthodes pour signer son code. Il existe plus de 600 autorités et plusieurs méthodes sont à la disposition des auteurs de malwares pour signer leur code :

  • Voler la partie privée du certificat et émettre de faux certificats valables ;
  • Acheter un certificat volé ;
  • Faire une demande de signature.

Par ailleurs, le dernier cas est possible si la création de votre logiciel malveillant à des intérêts économiques ou politiques, ou encore si l’autorité ne fait pas de vérifications poussées.

Une autre option consiste à utiliser des failles dans des binaires déjà signés : une application signée charge un programme normal qui charge ensuite le malware. Il existe environ 900 DLL permettant cela sous Windows.

Plusieurs préconisations au niveau des usages du réseau par un malware :

  • Évitez de mettre des mots de passe et des clés par défaut, cela compliquera la tâche des équipes de recherche ;
  • Utilisez le port 53 (DNS) pour exfiltrer de l’information. C’est une bonne idée, cependant, si les paquets émis ne ressemblent pas à du DNS, ils sont visibles dans les logs (cas de sshd library rootkit) ;
  • Si vous utilisez HTTP, évitez que ce soit le client qui envoie une page HTML au serveur (Fakem RAT) ;
  • Ajoutez de la latence entre les requêtes afin que ce soit crédible ;
  • Comme il a été signalé par Nicolas Brulez lors de son retour sur Red October, évitez de faire une faute de frappe lors de l’enregistrement du nom de domaine de votre botnet ;
  • Lorsque vous enregistrez le domaine, préférez une adresse email anonyme plutôt que votre adresse personnelle ;
  • Utilisez des user-agents crédibles ;
  • N’utilisez pas l’adresse IP de votre connexion personnelle (cas d’URL utilisée pour exfiltrer de l’information : http://<IP>:1001/c.php?botnet=<victim_name>).

Au niveau de l’utilisation sur le système, il est judicieux de préférer un stockage en mémoire plutôt que sur le disque. L’utilisation de logins par défaut est bien évidemment à bannir.

Il peut aussi être intéressant de détecter si le malware se lance au sein d’une machine virtuelle, comme par exemple en regardant s’il y a des actions de la souris, du clavier, en tentant d’imprimer une page de test ou en analysant le nombre d’événements dans Word.

Le conférencier termine par un peu de publicité pour la conférence Hack.lu, vous trouverez plus d’informations sur cette conférence sur ce site : http://2013.hack.lu.

Présentation courtes

Détection comportementale de malwares P2P par analyse réseau

Xiao Han

Cette présentation de Xiao Han d’Orange Labs, traite de la détection comportementale des malwares peer-to-peer par analyse réseau.

Plusieurs malwares récents basent leurs communications sur des protocoles peer-to-peer. On notera entre autres ZeroAccess sur Kademlia ou Storm sur Overnet.

Ces communications sont difficiles à détecter puisqu’elles dépendent d’une architecture décentralisée (il est donc impossible de bloquer un nom de domaine de C&C). De plus, le trafic étant souvent chiffré, il est impossible d’établir des signatures de détection.

Ces constatations mènent à une approche comportementale de la détection.

Ainsi, une méthode automatisée est utilisée pour générer les footprints des communications sur un ensemble d’éléments caractérisant le trafic P2P (nombreux échecs de connexion vers des nœuds non connectés, absence de requête DNS avant l’établissement de la connexion…).

Cette méthode a permis, sur divers échantillons de malwares P2P, de les détecter avec un taux de faux positifs de 0.14%.

L’apprentissage automatique des profils à détecter est une implémentation du modèle Support Vector Machine qui a permis, via l’analyse de la périodicité des flux, du nombre de paquets envoyés et d’autres composantes, d’aboutir à un taux de détection de 97.2% sur les échantillons de malwares étudiés.

Le point de blocage majeur semble résider dans la capacité de séparer les flux P2P licites et illicites. Ceux-ci faisant partie des flux à risque devant être identifiés et monitorés en entreprise, la viabilité de l’approche ne semble pas remise en cause.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/2013_short_han/.

Attestation distante d’intégrité sous Android

Dimitri Kirchner

Pour cette deuxième présentation courte, Dimitri Kirchner aborde le sujet de l’informatique de confiance par l’attestation distante d’intégrité sous Android.

Après avoir laissé son ordinateur dans sa chambre d’hôtel lors d’un séjour et suite au passage d’une « Evil Maid », Dimitri d’interroge sur la possibilité d’utiliser son smartphone, toujours dans sa poche, comme racine de confiance lui permettant de savoir si des actions malveillantes ont été commises sur sa machine.

Le processus se déroule en trois étapes :

  • L’utilisateur connecte son smartphone à l’ordinateur ;
  • Le smartphone vérifie l’intégrité de l’ordinateur ;
  • L’utilisateur décide de poursuivre ou pas, le démarrage de sa machine.

Cette vérification repose sur l’utilisation de la puce TPM de sa machine qui sert à certaines fonctions cryptographiques, au stockage sécurisé ainsi qu’à la vérification de la chaîne de démarrage de la machine.

L’analyse de conformité se déroule en deux phases :

  • Phase amont, au déploiement, obtention de la signature de la chaine de démarrage considérée comme intègre et récupération de la clé publique de la puce TPM permettant de s’assurer que les données transmises ne soient pas forgées ;
  • Phase de vérification, à l’utilisation, le téléphone demande à vérifier l’intégrité de l’ordinateur, l’ordinateur renvoie la valeur de sa chaîne PCR chiffrée vers le téléphone.

L’implémentation retenue se base sur OpenPTS, fondée sur un vérifieur en Java, aisément portable vers Android, et un transfert des données via SSH, utilisable via la connexion USB entre le téléphone et l’ordinateur.

Le code de ce PoC devrait être bientôt disponible sur GitHub.

Le rôle des hébergeurs dans la détection de sites web compromis

Davide Canali

Davide Canali d’Eurecom, conclut ce cycle de présentations courtes en étudiant le rôle des hébergeurs dans la détection de sites Web compromis.

Les hébergements mutualisés servent aujourd’hui majoritairement à des utilisateurs qui ne sont pas sensibilisés aux problématiques de sécurité (particuliers et petites entreprises) ou à des power-users n’ayant de toute façon ni contrôle, ni visibilité sur la configuration. En résulte une grande surface d’attaque potentielle, face à laquelle les hébergeurs devraient jouer un rôle plus important dans l’assistance à leurs clients en cas d’attaques.

Plusieurs abonnements à des fournisseurs d’hébergements mutualisés ont donc été souscrits afin d’étudier leur capacité à détecter et à répondre à une faille de sécurité.

Sur ces hébergements, ont été installées diverses applications volontairement vulnérables afin de réaliser différents scénarios d’intrusion.

La première phase a consisté à compromettre de manière répétée des applications Web hébergées et à attendre une réaction de la part des hébergeurs (soit durant 25 jours).

Une deuxième phase, de 5 jours cette fois-ci, a consisté à déposer des plaintes auprès du fournisseur de service (certaines plaintes valides, d’autres inventées).

Ces tests ont concerné un total de 22 hébergeurs, 12 de niveau mondial, 10 régionaux, répartis dans le monde entier.

Les résultats sont inquiétants puisque si les hébergeurs font leur possible pour dissuader les inscriptions frauduleuses, peu de mesures sont prises pour garantir la sécurité des services hébergés.

De fait, un seul hébergeur sur les 22 a détecté un cas de compromission, 17 jours après sa première occurrence et n’en a informé l’utilisateur que par le biais de son interface d’administration.

La moitié des hébergeurs n’a simplement pas répondu aux plaintes et ceux qui l’ont fait semblent, pour la majorité, l’avoir fait rapidement (en moins d’une journée).

Pire, certaines plaintes ont été traitées sans vérification puisque des plaintes fictives ont par la suite été reprochées au client du service.

Chez les hébergeurs testés dans cette étude, rien ne semble être fait pour détecter des signes évidents de compromission et les plaintes des utilisateurs (du service d’hébergement ou de l’application Web) sont traitées, au mieux, de façon expéditive et inadaptée.

Conférence de clôture : faire face aux cyber-menaces => détecter (les attaques) et former (des experts en SSI) – conférence invitée

Ludovic Mé

Ludovic Mé est enseignant-chercheur à Supélec, il a une expérience de plus de 20 ans de recherche dans le domaine de la sécurité informatique et plus particulièrement dans la détection d’intrusion.

Il se base sur le Livre blanc sur la défense et sécurité nationale 2013 pour introduire son propos.

Le constat est que les cyber-attaques constituent des menaces majeures à forte probabilité. Une fois ce constat posé, il devient évident qu’il faut faire quelque chose. En effet, toutes les organisations, gouvernementales comme privées, subissent des attaques informatiques sur une base quotidienne. Aujourd’hui, ces attaques semblent avoir comme objectif la prise d’empreintes et la récupération d’informations afin de les exploiter ultérieurement. Des attaques de grandes envergures se préparent donc.

Même s’il ne faut pas être alarmiste, il convient tout de même d’être capable de se protéger contre ces attaques, tout comme pour des attaques armées. Cette protection repose sur une forte capacité de détection des attaques et d’identification de leurs auteurs.

Le Livre blanc suggère donc la mise en place d’une « posture robuste et résiliente de détection », ce que l’orateur comprend comme une volonté d’être capable, au niveau national et/ou européen, de produire de manière autonome des dispositifs de détection. À sa connaissance, c’est la première fois que l’on met les systèmes de détection au même niveau que la cryptographie.

Il mentionne également d’autres points importants du Livre blanc tels que la capacité de réponse, la sensibilisation/formation, les moyens opérationnels (standards industriels, audit, réserve opérationnelle spécialisé, etc.), la riposte (point hautement sensible) et la capacité offensive.

Au vu de l’importance de tous ces items, Ludovic Mé souhaite s’attarder sur deux points qu’il connaît très bien : la détection et la formation.

La détection

Aujourd’hui, la détection est réalisée de manière ultra-classique : on capte, on analyse et on envoie des alertes.  Certains positionnent éventuellement des mécanismes de corrélations, et enfin essaient de réagir (patchs, corrections, etc.).

Les IDS (Intrusion Detection System) émettent des alertes évaluées suivant deux propriétés :

  • Leur fiabilité : pas de faux négatifs ;
  • Leur pertinence : pas de faux positifs.

Dans la réalité, l’idéal ne semble pas atteignable. Les faux négatifs et positifs sont incontournables, même dans le cas de systèmes comportementaux. Cependant, comment peut-on faire pour s’en rapprocher ?

L’administrateur de sécurité n’est pas vraiment intéressé par ces taux, ce qu’il veut savoir c’est la probabilité que l’alerte qu’il reçoit soit vraie. Pour ce faire, il faudrait améliorer les taux de faux positifs.

Or malgré les améliorations apportées aux outils de type pattern matching, Snort (http://www.snort.org) par exemple, ceux-ci ne suffisent pas. Ils vont dans le bon sens, mais il n’en reste pas moins que nous n’avons pas vu baisser le nombre de vulnérabilités et que le trafic va être de plus en plus chiffré.

L’orateur met en avant deux manières, non exclusives, d’envisager les choses :

- Soit on considère que l’on a fait ce que l’on pouvait. Ce n’est pas idéal et cela va requérir beaucoup de travail en aval, car malgré la mise en place de systèmes de corrélation :

  • Il n’y a pas de base de scénarios commune,
  • Il y a une masse énorme de données,
  • Il y a peu d’administrateurs,
  • Il y a un manque d’outils de visualisation.

Il précise qu’il faut faire de la corrélation mais que cela n’est pas suffisant.

- Soit on produit de meilleures alertes :

  • Améliorer l’analyse par les NIDS,
  • Développer une offre HIDS, OS et applicatif (il me semblait que certains outils existaient déjà…),
  • Prendre en compte la politique de sécurité (HIDS et NIDS)*,
  • Apporter des capacités de diagnostic aux IDS comportementaux,
  • S’inspirer des techniques de la sûreté de fonctionnement*,
  • Offrir un contrôle des taux de faux positifs et négatifs,
  • Développer des environnements de tests d’IDS.

*Points les plus importants, selon lui.

Il faut donc qu’un HIDS soit paramétré suivant une politique de flux d’information.

Considérons une entité à surveiller, avec des entrées et des sorties. Il y a des entrées de certains types comme des sorties de certains types. On définit une politique qui établit quels sont les flux autorisés en entrée et en sortie et on surveille le composant en question afin de lever une alerte le cas échéant.

À Supélec, Ludovic Mé travaille autour de l’outil Blare (http://blare-ids.org). Son objectif est d’avoir un IDS au niveau OS qui ne soit pas de type pattern matching et qui connaisse la politique de sécurité (en l’occurrence la politique de flux).

Une autre idée serait d’avoir des logiciels auto-testables. C’est-à-dire qu’un logiciel devrait pouvoir à tout moment s’autotester afin de savoir s’il se comporte et/ou produit ce qu’on attend de lui.

Pour conclure sur les considérations en termes de détection, Ludovic Mé insiste sur le fait que les IDS ne sont pas forcement basés sur des signatures. Il y a une multitude d’autres mécanismes à tester et à explorer.

Enfin, il ajoute qu’il regrette grandement que la communauté sécurité, y compris celle du SSTIC, ne se focalise pas davantage sur la défense plutôt que sur les attaques.

La formation

Il en vient à la deuxième partie de son propos concernant la formation.

Il attire notre attention sur la différence de niveau des connaissances requises. Ainsi, il est nécessaire de sensibiliser le grand public, les professionnels et les ingénieurs de tout type (même les PME ou l’artisanat), alors qu’il s’agit de véritables formations pour les informaticiens et, bien sûr, pour les experts SSI (masters en doctorats). Ces sensibilisations/formations doivent prendre en compte la pluridisciplinarité de la sécurité : logique, physique et organisationnelle.

Il donne des exemples de nombreux pays dans le monde où des cours d’informatique sont donnés dès le plus jeune âge, ce qui est loin d’être le cas en France. Il note cependant que quelques progrès sont faits : une spécialité informatique a été inaugurée pour les terminales S en 2012 et le programme des classes préparatoires scientifiques inclut désormais l’apprentissage du langage Python, mais est-ce assez ?

Enfin, pour les experts, il préconise l’apprentissage d’une base très large et très solide sur l’ensemble des domaines de l’informatique pour la Licence, puis sur tous les aspects de la sécurité (de la cryptographie à la politique de sécurité, mais aussi les métiers) au niveau M1/2.

Il serait également nécessaire d’y inclure les méthodes offensives bien qu’il y ait une organisation à mettre en place à ce sujet (contrôle, audit, éthique, etc.) car ceci est illégal à l’heure actuelle.

Il conclut la partie formation en insistant sur le fait que former les experts SSI, c’est former les informaticiens de manière générale.

Enfin, il rappelle que si ces deux points sont extrêmement importants, il n’en faut pas moins traiter tout le reste.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/conf_cloture_2013/.

Propos recueillis par: Geoffrey Bertoli, Antoine Cervoise, Brice Duprieux, Yannick Fournel, Julien Vallet et relu par Isabelle Feetz.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes)
Loading ... Loading ...

,

Comments (0)

SSTIC 2013 – Jour 2

DreamBoot et UEFI

S. Kaczmarek

S. Kaczmarek est employé chez QuarksLAB, il s‘est intéressé à l’UEFI (Unified Extensible Firmware Interface), un composant logiciel s’interposant entre le matériel et le système d’exploitation. Il a pour vocation de remplacer le BIOS.

Avant de se lancer dans sa présentation, l’orateur a laissé la parole, pour une courte présentation de l’UEFI, à Pierre Chifflier qui a mené parallèlement, et sans que S. Kaczmarek ne le sache, le même type de recherche.

Finalement, leurs deux présentations sont complètement différentes : l’un présentant un développement (bootkit) permettant d’obtenir les permissions SYSTEM sur un Windows 8 (x86 et x64) à partir d’une ISO bootable dont les travaux sont ici présentés, l’autre à partir d’un composant se logeant dans la carte graphique et permettant également d’obtenir les droits SYSTEM sur Windows 8.

L’UEFI est assez différent du BIOS vieillissant qu’il remplace. En effet, c’est quasiment un véritable système d’exploitation, doté de fonctionnalités telles qu’un Secure Boot, de la cryptographie, une gestion de disques durs supérieurs à 2,2To, un interpréteur Python, un serveur Web pour faire du diagnostic et bien d’autres fonctions encore…

Le bootkit présenté opère une succession d’étapes ayant pour but final d’obtenir les permissions de niveau SYSTEM.

Il s’accorche (hook) au chargeur de démarrage UEFI (bootmgfw.efi) dans le but de patcher le chargeur du noyau en mémoire (winload.efi) avant son exécution. Après plusieurs opérations, s’en suit une corruption du noyau ainsi que la désactivation de plusieurs protections, comme PatchGuard et le bit NX.

Le noyau ainsi modifié va alors patcher lsass.exe pour permettre l’authentification d’un utilisateur sans mot de passe sur Windows avec les mêmes droits que l’utilisateur courant préconfiguré sur le système. À ce stade Windows est lancé, la page de demande de mot de passe est affichée et l’utilisateur courant peut se loguer sans mot de passe.

Vient la phase où le bootkit va récupérer le token d’un processus ayant les permissions de niveau SYSTEM et attendre qu’un processus cmd.exe soit lancé pour placer ce token sur le processus. Il en résulte l’obtention de permissions de niveau SYSTEM par le processus dès qu’il est lancé par l’utilisateur. L’utilisateur est alors administrateur sur l’ordinateur depuis le shell cmd.exe.

Ce genre d’attaque existait déjà avant l’UEFI et Windows 8 mais l’implémentation est ici assez différente. Ceci est dû aux spécificités et nouveautés mises en place par ces systèmes. Si le développement n’a pas été aisé, l’utilisation de cet outil est très simple.

Par conséquent, il est recommandé de désactiver le démarrage sur média externe (clé USB, DVD…), de définir un mot de passe UEFI et de chiffrer son disque dur.

UEFI et bootkits PCI : le danger vient d’en bas

Pierre Chifflier

Pierre Chifflier travaille actuellement à l’ANSSI. En parallèle, il est « Core Developper » sur le projet Debian et participe au maintien de Grub2.

L’objectif de la conférence est d’expliquer les étapes de la création d’un bootkit sur une architecture avec un UEFI.

Pour commencer, Pierre explique les plus gros défauts des bootkits « classiques » : ils sont soit temporaires et ne permettent pas de garder une emprise durable sur une machine, soit permanents et impliquent de modifier le système de fichiers, ce qui les rend détectables.

Ensuite, il commence la présentation de ses choix techniques pour la réalisation de sa preuve de concept. Il a choisi de placer sa charge malveillante dans la ROM d’extension d’une carte graphique PCI qui, bien que supposée être en lecture seule, est accessible en écriture. Cette ROM peut être flashée sans avoir à manipuler l’électronique… sauf en cas d’erreur, la machine se mettra alors à biper et refusera de démarrer. Il faudra alors flasher la puce matériellement.

En effet, lors du chargement des drivers, l’UEFI charge cette ROM, mais pour des raisons de compatibilité entre les cartes graphiques et les BIOS, l’UEFI est capable de charger plusieurs drivers en parallèle. Ce mode de compatibilité permet donc de ne pas avoir à s’attaquer aux drivers, il suffit de placer un second driver à la suite.

Cependant, la puce ayant 64k de mémoire, dont 40k sont déjà utilisés par le vrai driver, la charge devra tenir dans 24k.

Les étapes suivantes sont une succession de phases qui font penser à la pose de breakpoints. Il faut d’abord patcher la fonction « ExitBootServices » appelée à la fin de l’exécution de Grub2, pour placer un breakpoint matériel au début de l’exécution du kernel.

Puis, arrivé à ce breakpoint, il faut placer le suivant après la décompression du kernel. Ce dernier breakpoint permet la mise en place de l’élévation de privilèges dans l’appel système fork. Cet appel système n’est en fait plus utilisé au profit de clone.

Une fois sur le système, il suffit de créer un petit programme en C qui utilise la méthode « syscall » pour faire appel à « fork ».

Pour pouvoir se protéger contre de telles attaques, les méthodes classiques, comme les antivirus et grsec, sont totalement inefficaces. Les méthodes plus avancées, comme l’utilisation de TPM, peuvent être contournées comme l’ont montré J. Butterworth, C. Kallenberg et X. Kovah à la NoSuchCon. Enfin, la Secure Boot pourrait supprimer le problème mais rendrait obsolète tous les anciens matériels.

Finalement, une des meilleures protections serait peut-être que les constructeurs produisent des ROM qui soient uniquement accessibles en lecture, conformément aux spécifications.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/uefi_et_bootkits_pci/.

Programmation d’un noyau sécurisé en Ada

Arnault Michelizza

Arnault Michelizza travaille à l’ANSSI. Il a développé par le passé un micronoyau, développé en C qu’il a appelé « Pépin ». Depuis qu’il est à l’ANSSI, il a été sensibilisé à la sécurité et s’est intéressé au développement d’un noyau sécurisé. C’est le résultat de ses recherches et du développement associé qu’il présente ici.

Lors de la conférence, l’orateur est revenu brièvement sur les différents mécanismes de protection existant sur les noyaux modernes : PAX, ASLR, Canaris, bits SMAP, bit SMEP… Il a également montré les différents types de vulnérabilités qui ont touché récemment les noyaux et en a conclu que 80% de ces vulnérabilités entrainaient des dépassements de tampon (buffer/integer overflow) ou des déréférencements de pointeurs.

Dans sa recherche pour trouver la meilleure manière de concevoir un noyau sécurisé, il a fait deux constats :

  • Comme le nombre de bugs augmente proportionnellement au nombre de lignes de code, l’utilisation d’un micronoyau est préférable pour réduire la surface d’attaque. De plus, dans un micronoyau, les drivers ont leur propre espace d’adressage ce qui réduit l’impact de la découverte d’une vulnérabilité ;
  • Un langage de programmation ne permettant pas de débordement de tampon ou d’utilisation de pointeur, celui-ci serait privilégié. L’Ada, bien qu’inconnu de l’orateur au moment du choix du langage, a été sélectionné car il répond à ces prérequis, il est encore maintenu et il permet de faire du code bas niveau. Ainsi, Arnault a notamment éliminé Java, C, OCaml entre autres, pour ne plus retenir qu’un langage : l’Ada.

L’Ada est peu utilisé, il a été développé par des militaires, il est souvent employé dans des domaines où la vie de l’être humain est en jeu. Arnault a mis 6 mois pour le maîtriser et assure que ces six mois d’investissement seront rapidement rentabilisés tant il est facile de debugger et de retrouver où se produisent les erreurs des programmes en Ada.

Actuellement, son noyau en Ada est plutôt au stade de preuve de concept. En effet, même s’il fonctionne parfaitement, son créateur n’y voit qu’un domaine d’application  très localisé (firmware, UEFI…) car quasiment aucun driver n’est développé pour, ce qui le rend inutilisable sur un poste de travail.

Comparé à un micronoyau développé en C, le sien a seulement 60% de cycle d’horloge supplémentaire.

Arnault n’a pas eu le temps de faire une démonstration de son noyau lors de la conférence mais il a profité des rumps sessions pour en faire une avec un driver (stack TCP/IP) qui affiche les paquets ICMP reçus et cela a fonctionné sans problème.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/programmation_d_un_noyau_securise_en_ada/.

La Couleur du Net (conférence invitée)

Laurent Chemla

Laurent Chemla est un des cofondateurs du célèbre registraire et hébergeur français, Gandi. Il est également l’auteur du livre Confessions d’un voleur : Internet, la liberté confisquée (Éditions Denoël, 2002) et connu pour ses prises de position et de parole en faveur de la neutralité d’Internet.

Il est invité par le SSTIC pour nous parler d’un sujet tout autre que la sécurité, mais un sujet qui lui tient aussi à cœur : Internet dans notre société.

Il commence la présentation en nous annonçant qu’il nous a menti.

Il le dit et le répète, haut et fort, à coup de photographies de de Gaulle (cf « Je vous ai compris »). En effet, pendant des années il s’est attelé à expliquer lors de conférences diverses et variées (par exemple, au Sénat) qu’Internet était un outil comme un autre ne nécessitant pas de régulation particulière. Il préconisait une régulation de l’usage plutôt que de l’outil, se servant de l’analogie autoroute/cambrioleur (On ne sanctionne pas une autoroute parce qu’elle est utilisé par un cambrioleur).

Poussant son raisonnement à l‘extrême, il nous annonce donc qu’Internet est bien la cause du terrorisme, de la grippe A, des photos de chatons, de la guerre, etc. . On s’en doutait…

Il prétend donc avoir menti car bien qu’un outil, en soi, ne doive pas être régulé, on ne peut considérer Internet uniquement du point de vue technique, son influence sociale importe également. Or il remarque que dans les débats ayant lieu depuis plusieurs années, les différents protagonistes ne veulent en réalité pas réguler la même chose, ce qui développe un sentiment de frustration de part et d’autre. Il y aurait donc la neutralité technique et la neutralité sociale d’Internet.

Par la suite, il donne l’exemple de Free qui est un assez bon acteur neutre techniquement alors que sur les aspects sociaux, ce n’est pas le cas (filtrage du port 25, filtrage de la pub, peering Google/YouTube). Cependant, chacune des atteintes à la neutralité dite sociale a eu un impact médiatique bien différent. Le filtrage du port 25 a eu très peu de répercussion alors que non seulement les médias mais aussi l’état se préoccupent du blocage de la publicité et du peering Google/YouTube.

En clair, il a été beaucoup question de vouloir protéger la neutralité dans ces débats alors qu’il s’agit, de la part des médias et de l’état, plutôt d’un acte protectionniste envers l’écosystème de la publicité ainsi que la société de manière générale.

Il nous dit donc que défendre la neutralité technique d’Internet ne serait pertinent qu’à la marge, l’objectif réel des partisans de cette neutralité n’étant pas tant la pérennité de l’outil Internet mais la garantie qu’il continue à changer  notre société dans le bon sens. En d’autres termes, il s’agirait d’une lutte entre les personnes déjà au pouvoir et le reste de la population qui n’a jamais eu les outils des puissants pour s’exprimer, ce qu’un Internet « neutre » leur permettrait.

Il pointe aussi le fait qu’Internet engendre la disparition d’un certain nombre d’éléments tels que :

  • Les intermédiaires dans le commerce des biens matériels, dans l’industrie culturelle, dans le journalisme, dans l’économie et en politique ; cette « désintermédiarisation » menant soit à une totale décentralisation, soit à une hypercentralisation. Il cite notamment l’invention  du feu ou de l’imprimerie, ou plus récemment Bitcoin comme exemples d’inventions/révolutions qui dérangent le pouvoir en place (les états et la banque, plus particulièrement pour Bitcoin) ;
  • Les frontières dans l’application des lois nationales, dans la fiscalité « numérique », dans la diffusion de l’industrie des loisirs et dans la diffusion de la culture en général, allant même jusqu’à nous dire que la mondialisation mène à une dictature libérale planétaire ou à l’utopie libertaire, en est pour exemple la réponse de Twitter face à  une plainte  de l’UEJF (Union des Étudiants Juifs de France) pour injures raciales et diffamation, rétorquant qu’en tant qu’entreprise américaine, il ne répond pas du droit français ;
  • Les supports physiques et la numérisation permettent l’abondance pour le plus grand nombre ou l’accumulation des richesses pour quelques-uns. Il n’y a aujourd’hui quasiment plus de logiciels en boite, la musique et les films se consomment de plus en plus de manière numérique. Tout ceci résulte d’une évolution du support, les produits en eux-mêmes existent toujours. Le summum de la numérisation étant l’impression 3D qui pourrait nous permettre demain de tout numériser et d’imprimer à volonté.

Tous ces points mènent à une perte de valeur globale des biens qui laisse entrevoir deux futurs différents. Le premier dans lequel tout le monde devient très, très riche : il est possible d’imprimer, via des imprimantes 3D, sa propre nourriture, sa propre maison, etc… et le deuxième dans lequel une majeure partie de la population est pauvre tandis que quelques personnes s’enrichissent grâce aux DRM et aux copyrights.

Laurent Chemla trouve donc amusant que depuis des années, on entende les mêmes dires : Internet est une révolution qui ira dans le bon sens alors qu’en même temps on dit vouloir préserver une neutralité qui n’a jamais existé. Tous les soi-disant défenseurs ne veulent pas pérenniser Internet, mais veulent pérenniser les changements induits par la création et l’existence d’Internet.

Pour conclure, Laurent Chemla nous dit qu’à défaut de neutralité, Internet devrait être transparent à tous les niveaux (blog, Twitter, donnée publiques, etc.). Il est assez favorable à ce que l’on perde toute vie privée, que l’on perde certains éléments de la vie passée (comme les intermédiaires susmentionnés), mais qu’en échange nous bénéficions d’une distribution massive du pouvoir de se surveiller les uns les autres. La solution de 1984, de George Orwell (1949) serait donc dans The Shockwave Rider de John Brunner (1975).

Présentations courtes

Hack Android/Samsung, à l’attaque du noyau

Étienne Comet

Étienne Comet est consultant en sécurité informatique chez Lexfo.

Il existe beaucoup de moyens pour attaquer un smartphone Android à distance. Cependant, l’accès obtenu reste assez restreint. Pour aller plus loin, il est donc nécessaire d’élever ses privilèges. C’est pour cela que l’on s’intéresse à l’attaque du noyau.

Le noyau Android est basé sur un noyau Linux, avec de nombreux patchs supplémentaires. On retrouve donc toutes les failles du noyau Linux, mais la surface d’attaque est étendue : comme indiqué précédemment il y a beaucoup de patchs en plus. Ainsi, le noyau est compilé avec des options peu auditées, Android tourne sous ARM (failles potentielles spécifiques à ARM comme le CVE-2011-1759).

Si on se concentre ensuite sur un téléphone spécifique, le constructeur ajoute des périphériques, des applications, ce qui élargit d’autant plus les possibilités de compromissions. Le noyau est donc un vecteur d’attaques prometteur.

Ensuite, l’orateur revient sur les différentes techniques de debug, avec ou sans les droits « root », notamment via KGTP (Linux Kernel debugger and tracer, http://code.google.com/p/kgtp/), un projet naissant.

L’intervention se termine par la présentation de deux bugs exploitables : un 0day et un second qui a été corrigé depuis sa découverte.  L’exploitation des failles prend la forme d’une application Android, donc en Java. Pour exploiter du code natif, il est nécessaire d’utiliser JNI qui permet d’utiliser du code natif dans une classe Java.

Compromission d’un environnement VOIP Cisco

Deuxième présentation courte de la journée, réalisée par un autre chercheur de Lexfo.

La présentation tourne autour du retour d’un audit sur environnement VOIP Cisco. L’orateur revient sur le schéma d’architecture classique VOIP Cisco. De nombreuses conférences ont présenté des vulnérabilités au sein de VOIP Cisco mais aucune n’a ciblé le call manager.

L’orateur revient sur le détail d’un audit en trois grandes phases :

  • Black box : récupérer les credentials administrateur ;
  • White box : obtenir une exécution de code ;
  • Audit du système : élever ses privilèges vers « root ».

Il détaille les six vulnérabilités (des 0 day non remontés à l’éditeur) permettant la compromission du call manager et effectue une démonstration. Il n’est pas prévu de remonter ces failles à l’éditeur, point qui a d’ailleurs fait débat auprès des participants du SSTIC.

Observatoire de la résilience de l’Internet français

Guillaume Valadon

La dernière présentation courte de la journée est effectuée par Guillaume Valadon (ANSSI).

Comme il existe des bonnes pratiques de développement, il existe également des bonnes pratiques au niveau du réseau. L’un des objectifs de l’Observatoire de la résilience de l’Internet français est de vérifier que les acteurs Internet respectent ces préconisations. L’application de ces préconisations permettra d’assurer la résilience de l’Internet français.

Il existe plusieurs définitions de la résilience, dans notre cas de figure,  on utilise celle issue du Livre blanc de la défense nationale de 2008 : « Capacité de fonctionner pendant un incident et de revenir à l’état nominal ».

Cependant, il n’est pas possible de tester si Internet est robuste car trop grand, trop gros et trop fragile. L’Observatoire, en plus d’émettre des préconisations, effectue une vaste opération de surveillance et d’analyse.

L’orateur revient rapidement sur quelques notions de BGP (Border Gateway Protocol) et présente les risques liés à de mauvaises utilisations du protocole. Cependant, il existe peu d’AS qui, s’ils tombaient, casseraient l’Internet français.

Ensuite, Guillaume nous présente le cas du DNS. Le constat effectué par l’Observatoire, est que, sur les zones gérées par l’AFNIC, quasiment tout le monde utilise plus d’un serveur DNS pour sa zone. Cependant, 80% des zones sont chez un unique AS. De plus, le DNS permet d’analyser le taux de pénétration d’IPV6 (soit environ 10%).

Pour conclure, l’orateur rappelle quelques bonnes pratiques : déployer IPV6, répartir les DNS faisant autorité au sein de différents opérateurs, etc. Pratiques que l’on retrouve dans l’état des lieux 2011 disponible sur le site de l’Observatoire (http://www.ssi.gouv.fr/observatoire/).

De plus, le rapport 2012 sera disponible d’ici la fin du mois et un guide des bonnes pratiques BGP sera disponible en septembre 2013.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/resilience_internet/.

Sécurité des applications Android constructeurs et réalisation de backdoors sans permission

André Moulu

André est actuellement en alternance chez QuarksLAB, il est spécialisé dans la recherche de vulnérabilités sur Android.

Il a choisi Android car c’est actuellement le système leader sur le marché. Sa sécurité est souvent mise en cause par des annonces sur des malwares. Il rappelle que ces malwares sont téléchargés par les utilisateurs sur des markets alternatifs et que le système Android est correctement sécurisé. Cependant, il nuance ses propos et montrera ultérieurement que les surcouches du constructeur dégradent également cette sécurité apparente.

Il a donc décidé de s’attaquer à ces surcouches. Il prend comme téléphone cible un Samsung Galaxy S3 (car il s’est vendu à 50 millions d’exemplaires pour le moment) mais ses recherches sont finalement communes pour tous les téléphones possédant une surcouche Samsung (S2/S4/Notes). Les vulnérabilités exposées permettent de plus de s’attaquer à un utilisateur au courant des problématiques de sécurité et vérifiant les permissions des applications qu’il installe.

Généralités sur Android

Le système Android est un système d’exploitation Mobile détenu par Google, développé en C et en Java. Il utilise sa propre machine virtuelle Java (Dalvik) qui est une machine à registre, contrairement à la JVM classique. Les applications installées sont des fichiers .apk, mais ceux-ci ne sont finalement que des fichiers .zip contenant les fichiers d’applications. Parmi les fichiers présents dans .apk on peut notamment citer :

  • AndroidManifest.xml : c’est un fichier de configuration de l’application qui contient les demandes de permissions, les composants ainsi que le SDK cible ;
  • Classes.dex : qui contient le code exécutable (bytecode) ;
  • Les bibliothèques de fonctions natives en .so.

Description d’une application

Les applications sont composées de :

  • Activity : c’est l’interface graphique, chaque Activity correspondant à un écran de l’application ;
  • Broadcast Receiver : permet de récupérer les événements extérieurs, comme l’insertion d’une carte SD ou la perte de la connexion Internet ;
  • Content Provider : permet à l’application de communiquer avec les bases de données ou la liste des contacts ;
  • Services : qui permettent à l’application de rester en mémoire et, par exemple, de récupérer les mails en fond de tâches.

La dernière notion importante est l’Intent : c’est la source de communication sous Android, il peut être inter-composants ou inter-applications. Par exemple, c’est un l’Intent qui demande l’ouverture du navigateur lorsque l’on souhaite ouvrir une page Web. L’Intent communique avec des composants. Par défaut, ces composants ne sont pas accessibles depuis l’extérieur de l’application, sauf si ceux-ci sont déclarés explicitement comme exportables dans l’AndroidManifest.xml. Il est aussi possible d’exporter un composant tout en le protégeant par une permission.

Modèle de sécurité sur Android

Il existe 2 types de sécurité implémentés dans Android.

1)      Sécurité par cloisonnement

Le système attribut un UID à chaque application. Cela permet d’avoir les processus isolés en mémoire et les systèmes de fichiers des applications ne sont accessibles que par elles-mêmes.

Il y a un cas particulier : deux applications peuvent partager le même UID, pour cela il faut le déclarer dans l’AndroidManifest, il faut également que les applications soit signées avec le même certificat.

2)      Sécurité par moindres privilèges

Par défaut une application ne possède aucun privilège, le développeur doit demander explicitement toutes les permissions de l’application dans l’AndroidManifest. Les permissions sont affectées à chaque UID. Par conséquent, les permissions sont cumulées pour toutes les applications qui partagent le même UID.

Réalisation d’une backdoor

L’idée est de réaliser une exploitation de vulnérabilité sur les applications constructeur qu’un simple utilisateur ne peut pas désinstaller. L’exploitation de la vulnérabilité se fait donc en user land.

André Moulu a donc listé les applications constructeur présentes dans /system/app et /system/framework. 216 Fichiers .apk sont présents correspondant à 500Mo d’applications (contre 91 fichiers pour un téléphone Nexus « nu »), à cela il indique que certains opérateurs ajoutent une surcouche eux aussi, étendant d’autant plus la surface d’attaque.

Des contraintes entrent en jeu ; en effet, le nombre conséquent d’applications oblige l’automatisation de la recherche d’applications potentiellement vulnérables, puis la rétro-conception dans le but de trouver des permissions pouvant être détournées de leur usage premier.

Pour cela, il a développé plusieurs modules Androguard :

  • ASA manifest : analyse le manifeste et indique les éléments accessibles ou non et sous quelles conditions ;
  • ASA Database : analyse et enregistre les informations des applications dans une MongoDB ;
  • ASA Diff : développement en cours.

Son objectif est maintenant clair : avoir un maximum de permissions depuis sa backdoor !

Accès à la carte SD

Historiquement, toutes les applications avaient accès en lecture et en écriture à la carte SD. Depuis, seul l’accès en lecture est toléré par le système, uniquement dans un souci de rétrocompatibilité. Si dans le manifeste le SDK cible est inférieur ou égal à 3, alors le système autorise les accès en écriture à la carte SD.

De nombreuses autres permissions ont été détournées, comme l’envoi de SMS, sans en faire la demande explicite, en exploitant des vulnérabilités dans ui.MMS.BGSender.apk. Il suffit de lui envoyer un Intent le forçant à envoyer un SMS.

Une élévation de privilèges est aussi possible en utilisant une vulnérabilité trouvée dans une application partageant son UID avec l’utilisateur « system », une fois ce niveau de privilèges atteint.

Forwading de SMS

L’application DSMLawmo.apk reçoit un Intent à l’arrivée d’un SMS, dans le cas où le SMS n’aurait pas déjà été reçu il n’y a pas longtemps (afin d’éviter le SPAM). Ensuite, l’application transfère le SMS au numéro présent dans la base de données. Ce numéro n’est pas renseigné par défaut. Simplement, après  avoir obtenu les droits système, il est possible de modifier cette base. Ainsi, on ajoute son numéro dans la base de données et il est possible de transférer les SMS de la victime de manière tout à fait transparente.

Pour cela, les antivirus sont inefficaces.

Conclusion

La surface d’attaque augmente avec chaque nouveau terminal. En effet, la surcouche constructeur est de plus en plus grande, mais les innovations qu’Android met en place, notamment SELinux, permettent petit à petit de résoudre ce problème. Il est aussi possible de se protéger en achetant des téléphones « nus », sans surcouche constructeur.

Les slides sont disponibles sur la page de la conférence : https://www.sstic.org/2013/presentation/securite_applications_android_constructeurs_et_realisation_de_backdoors_sans_permission/.

Limites des tables rainbow et comment les dépasser en utilisant des méthodes probabilistes optimisées

Cédric Tissieres, Philippe Oechslin, Pierre Lestringant

Concrétisation de la mission de stage de Pierre Lestringant au sein de Objectif Sécurité, société suisse, notamment éditrice d’Ophcrack, cette conférence débute par une rapide présentation du principe de fonctionnement des tables rainbow et de leurs applications.

L’objectif est donc d’effectuer la majorité, voire l’intégralité, des calculs en amont de la phase de cassage, tout en gardant un rapport performant entre la durée d’exécution et le taux de réussite.

Suite à la démocratisation des calculs sur GPU, l’intérêt des tables rainbow peut sembler plus limité dans un contexte où les délais d’accès au contenu des tables rainbow tend à représenter une plus grosse contrainte que l’exhaustivité d’une attaque par brute force.

Par conséquent, il devient nécessaire de procéder à des optimisations sur les tables rainbow par le biais de fonctions déterministes : la détection de patterns et les chaînes de Markov.

La détection de patterns consiste à identifier les comportements habituels des utilisateurs lors de la définition de leur mot de passe : alternance de casse, remplacement de caractères par des équivalents numériques, ajout de ponctuation…

Ainsi, avec l’application d’un algorithme de sac à dos (approche heuristique de l’algorithme glouton), il devient possible de trier par ordre de fréquence d’occurrence les différents patterns.

Une fois cette étude probabiliste réalisée, on connaît donc, pour chaque bloc, sa probabilité et l’impact qu’elle aura sur la taille des tables rainbow.

Suite à des tests effectués sur des bases de données « leakées » dernièrement, il a été constaté qu’une réduction de taille des tables rainbow par un facteur 10 000 (sur les mots de passe de 9 caractères) engendre une simple réduction de 4% de la probabilité de cassage de la chaîne (de ~99% à ~95%).

Les chaînes de Markov permettent de considérer qu’un utilisateur définit un mot de passe proche de sa langue maternelle. De fait, on peut raisonnablement considérer qu’un caractère sera influencé par les deux caractères le précédant (chaîne de Markov d’ordre 2).

La phase d’optimisation des recherches correspond à une implémentation de la méthode Alias. Elle permet d’assimiler la sélection des patterns au tirage d’un dé biaisé dont chaque face représente un pattern, pondéré par sa probabilité d’occurrence.

Cette méthode Alias permet d’optimiser le découpage des espaces de résultats et de limiter le nombre de cycles nécessaires à la recherche. Elle présente aussi l’avantage de ne pas pouvoir réduire les performances de la recherche, même en cas de sets inadaptés à cette méthode.

Ces optimisations permettent donc d’améliorer la viabilité des tables rainbow face à la parallélisation des calculs apportée par les GPU. De plus, de nombreuses fonctions de réduction des hash étant incluses dans les calculs des tables rainbow, la génération de celles-ci peut, à son tour, bénéficier des améliorations apportées par les capacités de calcul des GPU .

Rumps

1. Des Trucs en Stock Sur SSTIC – L’équipe du SSTIC

  • Rapide rappel informatif sur le social event.
  • Finance : tout va bien, les tarifs ont légèrement baissé cette année.
  • Il est à noter que 75% du budget part dans l’alimentation (buffet tout au long des confs, social event, etc.) ;
  • Soumissions : L’équipe invite tout le monde à soumettre des papiers pour l’année prochaine ;
  • Inscriptions :
    • 1ère vague : 150 places vendues en 4 minutes et 41 secondes,
    • 2ème vague : 130 places vendues en 12 minutes,
    • 3/4/5ème vagues : 96 places vendues en 50 minutes ;
    • Il y avait un système qui bannissait pendant 20 minutes les personnes rafraîchissant la page plus de 40 fois par seconde. Une personne a été bannie 1 seconde après l’ouverture… :s

2. MGCP, un protocole VOIP oublié –  Sn0rkY

MGCP est un protocole utilisé dans beaucoup d’infrastructures VOIP, mais très souvent oublié. Il utilise de l’UDP sans authentification, il est possible de modifier une connexion à la volée, de scanner toutes les grandes classes d’adresses. Interroger des « Endpoint » est également relativement aisé.

Sn0rkY a donc créé des scripts pour récupérer plus facilement des informations. Il peut également rediriger le flux pour un appel sortant et se positionner en écoute au milieu de flux (type Man in the Middle). Une attaque de ce type est faisable depuis Internet car beaucoup de gateways opérateurs sont ouvertes sur Internet. Le MGCP est donc à bannir.

3. Quel est l’OS de Kim Jong-un? – Pierre Capillon

Pierre Capillon est l’auteur de java-0day.com, une page qui donne le nombre de jours depuis le dernier 0day Java.

Il donne des statistiques des accès à sa page. Il y a beaucoup de hits provenant d’Oracle, mais également des IP d’APT1, de .gouv.fr, de Syrie, d’Iran, de Cuba, du Pentagone, de whitehouse.gov, etc.

Il a également eu un hit d’une IP nord-coréenne, et proclame : « L’IP de la Corée du Nord vous l’avez !! ». Kim Jung-un surferait donc avec un MAC pas du tout à jour. Il finit sa rump avec un silde spoil du dernier épisode de Game of Thrones, le 9 de la saison 3.

4. La sécurité est un ______ (complétez la phrase) – Nicolas Ruff

Il nous livre ses trouvailles lors d’un audit sur une appliance dont l’applicatif a été réalisé en PHP :

  • Possibilité de contourner l’authentification dans l’URL (login=admin&password []=) ;
  • SHA-1 en commentaire dans le code ;
  • exec.php à la racine ;
  • Clé privée disponible dans l’arborescence de l’application ;
  • « La question n’est pas combien de secondes il faut pour passer « root », mais avec combien de méthodes différentes » ;
  • Il y a un compte « root » disponible pour communiquer vers l’éditeur, une backdoor en somme ;
  • Etc.

Et cela fait plusieurs années que le produit est certifié CSPN par l’ANSSI ! Toutes ces failles ont été remontées à l’éditeur.

5. Another perspective to IP-Darkspace Analysis – Alexandre Dulaunoy

C’est un sujet dont on parle depuis quelque temps. Il y a beaucoup de chercheurs, mais les résultats ne sont pas très intéressants. Quant à l’orateur, il a choisi de se focaliser sur les erreurs de frappes. Par exemple, 193.168.1.x au lieu de 192.168.1.X. Il a donc réussi à obtenir l’une de ces IP que l’on concocterait en faisant une erreur de frappe de ce genre et a pu récupérer plein d’informations provenant d’équipements différents (imprimantes, PC, serveurs, etc…) qui cherchaient à se connecter à une adresse légitime.

6. L’histoire d’un bug vieux de 20 ans – Florian Ledoux

Présentation de la détection et l’exploitation d’une faille vieille de 20 ans permettant une élévation de privilèges sur les plateformes Windows NT à Windows 8. Cette faille est publique et n’a toujours pas été patchée.

7. Cloud iso 14001 – Low-Power ARM-based grsec-enabled server – Arnaud Ebalard

L’orateur explique son cheminement, le choix matériel ainsi que la mise en place d’un mini serveur de stockage à la maison. Les informations détaillées sont disponibles ici : natisbad.org.

8. WTF avec Suricata – Éric Leblond

WTF : Word Terminator Flow

Création de règles Suricata/Netfilter pour éviter le transfert de fichiers Word :

9. Rump Pub!

  • Botconf à Nantes, les 5 et 6 décembre 2013 ;
  • GreHAck à Grenoble, le 15 novembre 2013 ;
  • OWASP EU Tour 2013 à Sophia Antipolis, le 24 juin 2013.

10. Raspberry Spy – Antoine Cervoise (Devoteam)

Présentation d’une petite machine d’interception de paquets réseau basée sur le modèle du keylogger physique.

Objectif : coûter moins de 50$, donc basé sur un Raspberry Pi avec, notamment l’ajout d’un deuxième port Ethernet (via USB). Fonctionne très bien, relativement discret, il a été posé en environnement de bureau pendant 2 semaines sans être vu.

Limites : alimentation en USB (machine cible ou secteur), ne supporte pas la PoE, batterie possible mais 3 heures maximum, pour le moment.

Les slides sont disponibles sur le site perso d’Antoine : http://www.antoine-cervoise.fr/wp-content/uploads/2013/06/SSTIC-2013-Raspberry-Spy-Rump-A.-Cervoise.pdf.

11. me@your.home – how to succeed in your robbery 2.0 – Deux stagiaires de QuarksLab

Géolocalisation via Twitter et autres, pour savoir si vous êtes à distance de votre logement et donc si votre appartement ou maison est sans protection.

12. IOC – Ivan Fontarensky

Présentation d’un outil  de classification des attaques, comme celui utilisé par Mandiant.

13. Démo de la présentation du noyau Ada ayant eu lieu le matin même – Arnauld Michelizza

L’orateur montre un exemple de retour console lorsqu’il y a une erreur dans le code. Il corrige cette erreur sous nos yeux, il n’y a alors plus d’erreur lors de l’exécution. Il « ping » la machine pour prouver que ça fonctionne.

14. Stack overflow vs stack-based buffer overflow – Aurélien Francillon

L’orateur explique la différence entre les deux et donne un exemple en Ada.

15. Analyse d’AD – Philippe Biondi

L’orateur présente un outil qu’il a créé pour analyser des AD. Il scan l’AD, ou la forêt d’AD, enregistre les informations (fichier ntds.dit) dans une base de donnée (mongodb), puis utilise des « miners » pour analyser les informations récupérées.

Son outil offre la possibilité de faire des analyses différentielles entre deux versions d’un même AD (une propre et une autre contenant une backdoor, par exemple).

Les rapports peuvent être exportés en dump live, REST ou CSV (via zip).

16. PandaOCR – Romain Leonard (Devoteam)

Présentation d’un outil d’OCR en Python pour capter les PIN de sites bancaires, donc sur des images minimalistes. Il a ensuite agrémenté son outil pour les CAPTCHA utilisant des polices rares. Le projet est disponible sur github : https://github.com/Plopi42/PandaOCR.

17. Hack my CCTP – Anonyme (capuche, lunettes et hélium)

Présentation humoristique sur la rédaction de réponse à un appel d’offres, ou comment faire jouer les chiffres en sa faveur.

Vidéo disponible ici : http://www.dailymotion.com/video/x10opn8_hack-my-cctp_fun

18. RW2 – XXX

Le RW2 est le format RAW utilisé par les appareils Panasonic. Il permet de corriger plus facilement les images et donc d’obtenir de bons résultats sans investir dans un reflex. Il y a plein d’outils sur Windows et MAC pour traiter ce format, mais rien sur Linux et Panasonic ne fournit de documentation permettant de créer son propre outil. L’orateur a tenté de « reverser » les outils existant, mais cela s’avère extrêmement complexe.

Il n’a donc pas réussi à créer un outil de traitement de RW2 sous Linux et cherche d’ailleurs des personnes souhaitant participer à son projet.

19. PhotoRec – Récupération de données – Christophe Grenier

Présentation de PhotoRec, un outil sous licence GPL et multiplateforme, permettant la récupération après suppression de photos ou tout autre type de fichiers. La grande nouveauté étant un mode graphique venant d’être ajouté à l’outil qui jusque là n’était disponible qu’en CLI. Le site du projet : http://www.cgsecurity.org/wiki/PhotoRec.

20. Je choisis l’option offensive ou pourquoi il ne faut pas s’auto-intoxiquer –  Florent Chaveau

Rapide prise de parole par le FSSI du Ministère de la Défense : « Est-ce que vous préférez être surveillé par votre État démocratique ou par une multinationale américaine ? ». Il précise que l’État n’a pas l’intention d’acheter de 0day, mais qu’il recrute activement !

21. TNS Hijack – Un employé de chez Synacktiv

Présentation d’une attaque de type Man In The Middle sur un TNS Oracle. Par défaut, Oracle ne met pas de protection sur sa couche transport.

Objectif de l’attaque : SQLi arbitraire, sans perturber le client, sans crasher.

Difficultés : pas de documentation, pas d’outil, pas de structure claire de type TLV, etc.

Résultat : hijacking du flux TNS, injection à la volée de requêtes SQL arbitraires.

Évolutions : interception de commandes, récupération de mots de passe, code propre.

L’orateur nous fait une démonstration pour conclure.

Propos recueillis par: Geoffrey Bertoli, Antoine Cervoise, Brice Duprieux, Yannick Fournel, Romain Léonard, Julien Vallet et relu par Isabelle Feetz.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes)
Loading ... Loading ...

,

Comments (0)

SSTIC 2013 – Jour 1

Propos recueillis par: Geoffrey Bertoli, Antoine Cervoise, Grégory Charbonneau, Romain Léonard, relu par Isabelle Feetz.

Après quelques heure de route et une courte nuit de sommeil, c’est sous un ciel bleu et un soleil de plomb que nous avons assisté à la onzième éditoin du Symposium sur la Sécurité des Technologies de l’Information et des Communications 2013 ou SSTIC.

info : les actes seront disponibles sous peu à l’adresse https://www.sstic.org/2013/actes/. Le support des présentations peut être trouvés sur le site du SSTIC pour chaque conférence.

Innovation en crypto symétrique

Par John Daemen

L’orateur a créé de nombreux algorithmes de chiffrement, comme il sera souligné ultérieurement.

John a commencé la présentation par la description de la fonction de DES : c’est une fonction f appliquée plusieurs fois à une partie du texte à chiffrer. Cette fonction f est composée de XOR et SBOX.

Ensuite, il présente le challenge AES :
Une des meilleures solutions proposées est l’algorithme Blowfish, d’après lui cet algorithme a beaucoup de potentiel. En effet, la diffusion est bonne, mais il utilise 4 S-Box différentes pour 4 parties différentes du plaintext.
Cet algorithme a été cryptanalysé en 1994 car les clés utilisées dans les S-Box étaient trop faibles. Il s’est donc demandé s’il pouvait l’améliorer. Il a donc créé un algorithme utilisant une seule S-Box répliquée 4 fois mais utilisant une clé plus forte optimisant ainsi la non linéarité, en série avec la SBOX il a mis une « Linear mixing layer » améliorant par la même occasion la diffusion de l’algorithme. Cet algorithme ainsi optimisé, nommé Rijndael, est devenu AES.

Malgré tout, les attaques bicliques de 2011 ont permis de réduire le temps de cassage de la clé par 4 environ.
L’orateur est ensuite revenu sur la manière dont il avait crée SHA-3. Contrairement aux autres algorithmes de hashage, SHA-3 n’utilise pas de « Cipher Block » mais uniquement des permutations. Son algorithme est robuste et utilise très peu de ressources, ce qui était une des demandes des organisateurs du concours SHA-3.

Il a fini par rappeler les 3 principes importants pour créer un bon algorithme de chiffrement :
- Il vaut mieux repartir de zéro plutôt que de faire des patchs de l’existant (AES n’est pas un dérivé de DES) ;
- La simplicité est primordiale : en effet, dans AES il n’y a qu’une seule S-Box, l’algorithme de hashage utilisant des permutations est lui aussi plus simple ;
- Il vaut mieux se concentrer sur le résultat que sur la publication : le résultat n’en sera que meilleur.

Mise à plat de graphes de flot de contrôle et exécution symbolique

Par Eloi Vanderbeken

L’orateur travaille comme chercheur en sécurité chez Oppida. Le sujet de la présentation est la récupération d’un Graphe de Flot de Contrôle (CFG), d’un binaire obfusqué (ou obscurci/brouillé), afin de le rendre lisible par un humain.

Il existe deux catégories d’obscurcissement :

  • Des méthodes « bas niveau », qui sont réalisables après la compilation, comme l’insertion de code mort ou le chiffrement du contenu ;
  • Des méthodes « haut niveau », qui nécessitent des informations contextuelles, comme l’état des variables globales ou le CFG, et qui sont réalisées lors de la compilation. Parmi ces méthodes, on compte la mise à plat des CFG : c’est ce type d’obscurcissement qui sera traité lors de cette présentation.

Qu’est ce que la mise à plat d’un graphe de flot de contrôle ?
C’est le fait de modifier un CFG de manière à ce qu’à chaque changement de bloc, on repasse par un gestionnaire, comme on peut le voir sur le schéma suivant :

sstic_flowgraph

Ainsi, un humain aura du mal à savoir quel bloc sera exécuté et dans quelles conditions. Pour cela Il devra avoir un accès à la valeur de chaque registre à chaque moment de l’exécution.

L’idée est donc de recréer un CFG lisible. Compte tenu de cette contrainte, il existe trois approches envisageables :

  • Analyse dynamique avec suivi d’exécution ;
  • Analyse dynamique avec suivi de données ;
  • Analyse statique.

La première méthode permet une reconstruction facile d’un CFG en récupérant la trace d’exécution. Cependant, l’analyse ne peut être exhaustive car il y a toujours une possibilité d’oublier des traces.

Pour la seconde méthode, il faut à présent s’attacher à la transformation des données, l’idée n’étant pas de regarder les étapes de l’exécution mais de tracer les variables et leur modification.

Dans ce cas, les problèmes résultent du fait qu’on ne puisse récupérer la structure du code initial et que les expressions mathématiques de description des variables peuvent s’avérer lourdes et complexes.

La troisième méthode est celle qui a été choisie par Eloi, elle s’appuie sur une abstraction des variables et une exécution symbolique du programme. Ici, l’avantage est que l’exécution symbolique permet de récupérer l’intégralité du CFG, y compris la structure du code. En revanche, il faut faire attention aux abstractions choisies afin de ne pas induire des calculs lourds et complexes.

L’orateur présente tout d’abord comment réaliser une exécution symbolique. On exécute le code symboliquement de manière à obtenir une trace statique (celle-ci peut contenir plusieurs traces dynamiques, notamment si le code possède des conditions). On récupère ensuite le contexte symbolique correspondant aux valeurs probables de chaque variable. Ensuite, on utilise un solveur d’équation basé sur Z3 (un solveur d’équation développé par Microsoft) afin de pouvoir résoudre toutes les conditions de saut. Pour finir, on optimise la trace statique en supprimant les blocs vides et les conditions jamais atteintes.

Une démonstration a été faite en fin de présentation simplifiant notablement un CFG pourtant très complexe.

Slides dispo : https://www.sstic.org/2013/presentation/execution_symbolique_et_CFG_flattening/

Polyglottes binaires et implications

Par Ange Albertini

Ange Albertini travaille actuellement chez Avira dans une division d’ingénierie inversée. Il a déjà participé à de nombreuses conférences et challenges. Il est également connu pour des nombreuses publications traitant également d’ingénierie inversée.

La présentation, dynamique et ludique, ponctuée de démo, est axée sur l’étude de fichiers binaires dits « polyglottes ». Il s’agit de fichiers qui peuvent être interprétés différemment en fonction du programme qui les lit.

L’orateur nous explique donc les vulnérabilités de certains de ces types de fichiers :

  • Pour le format PE de Windows, le fichier doit commencer par MZ et doit contenir à l’offset 0×3C du fichier l’adresse de la suite du PE ;
  • Pour le format PDF, l’interprétation démarre au marqueur %PDF qui doit être placé dans les 1024 premiers octets ;
  • Pour le format HTML, l’interprétation débute avec la balise qui peut se trouver n’importe où dans le fichier ;
  • Pour les ZIP ou les JAR, il peut être placé n’importe où.

En partant de ces données, il est possible de créer un fichier qui aura un comportement différent en fonction de l’interpréteur.
De plus, pour un PDF donné, on peut obtenir un comportement différent sur Adobe Acrobat Reader, sur Chrome ou Sumatra.

Ces comportements pourraient, par exemple, permettre de créer un fichier qui, au choix :
- Masquera un PDF malveillant à un antivirus qui le prendra, par exemple, pour un exécutable légitime ;
- Permettra l’upload d’une image sur un site Web qui pourra ensuite être exécutée en tant qu’Applet Java malveillante.

Pour conclure, les éditeurs de logiciel et les antivirus doivent refuser l’exécution de fichiers mal formés.

Recompilation dynamique de codes binaires hostiles

Par Sébastien Josse

Sébastien Josse est un chercheur en sécurité actuellement employé dans la section Maîtrise de l’Information d’un laboratoire de recherche de la DGA.

La problématique de cette conférence réside dans la constante progression des méthodes qu’utilisent les créateurs de malware pour protéger leur code contre les antivirus, mais aussi contre l’ingénierie inversée. Malheureusement, les outils d’analyse, aussi bien statique que dynamique, ne jouent plus à armes égales avec ces méthodes de protection.

D’un côté, l’analyse statique se trouve limitée par des techniques d’obscurcissement de plus en plus perfectionnées comme l’aplatissement de graphes de flot, déjà présenté à l’avant-dernière conférence par Eloi Vanderbéken.
D’un autre côté, l’analyse dynamique est vite repérée par la présence des interruptions nécessaires aux break-points.

L’approche de Sébastien propose de descendre d’une couche système pour se placer au niveau de l’hyperviseur.
Pour ce faire, il a développé l’outil VxStripper. Celui-ci s’insère dans la fonction de réécriture de QEMU et génère un langage compatible avec LLVM.
Cet outillage lui permet d’abord de « dépacker » le binaire, puis, après une seconde passe, de simplifier le code de sortie pour obtenir un code au plus proche du code d’origine.

Pour finir, l’outil est d’ores et déjà fonctionnel et la démonstration montre qu’il est efficace sur un binaire simple. Apparemment, l’outil n’est certes pas encore disponible, mais sa diffusion est prévue : seule la date officielle manque.

Présentations courtes

nftable par Éric Leblond

Après avoir fondé EdenWall Technologies, Éric Leblond est actuellement développeur principal chez Open Information Security Foundation. Il est responsable du port du pare-feu d’Open Office vers LibreOffice =).

À l’heure actuelle, l’ajout de règle est “pourri” en termes de performance, selon l’orateur. IPSET a été introduit et permet de gérer des ensembles de manière très efficace. On peut définir une liste d’IP afin de gérer le tout de manière plus dynamique, ce qui reste à voir selon l’orateur.

Les défauts de IPtables sont principalement la présence de code similaire pour de nombreux modules Netfilter et le fait que certaines fonctionnalités sont impossibles à mettre en place (port source == port destination).

Par conséquent, un nouveau système de filtrage a été développé et présenté en 2008 (nftable) en vue de remplacer les IPtables et l’infrastructure de filtrage. Cependant, aucun changement dans les hooks, le suivi des connexions ainsi que les helpers n’est prévu.

Le langage sera basé sur une grammaire et accessible depuis une bibliothèque. De plus, la communication utilise Netlink ce qui permet de réaliser des modifications atomiques et un système de notification. Il y a donc une séparation distincte entre l’espace utilisateur et l’espace noyau.

Nftables fonctionne en mode fichier, en ligne de commande et en mode client (CLI). La gestion des ensembles anonymes ou nommés, mais : “Ça c’est trop simple, on va faire un truc encore mieux”.

Il est possible de faire du mapping anonyme et nommé, c’est-à-dire de “droper tout ce qui provient de ce réseau, sauf cette adresse IP précise”, le tout en une seule ligne.

Il est à souligner qu’il existe une bibliothèque de compatibilité avec IPtables (IPtables-Nftables) pour “ne pas perdre tout le monde”.

Disponibilité fin 2013 à l’adresse suivante http://www.netfilter.org. Le support de présentation est disponible à l’adresse suivante https://www.sstic.org/media/SSTIC2013/SSTIC-actes/nftable/SSTIC2013-Slides-nftable-leblond.pdf


Présentation courte

Parsifal, ou comment écrire rapidement des parseurs robustes et efficaces
Olivier Levillain, ANSSI

Olivier Levillain est chef du laboratoire sécurité des réseaux et protocoles au sein de la sous-direction expertise de l’Agence nationale de la sécurité des systèmes d’information (ANSSI). Ses travaux actuels portent sur la sécurité des navigateurs, mais ses centre d’intérêts couvrent également la sécurité des systèmes, les vulnérabilités liées au matériel ou encore les langages de programmation.

Pour étudier un format ou un protocole, le mieux est de l’implémenter. Cependant, de petits détails au sein des protocoles peuvent être gênants.

Wireshark, Scapy et Hachoir connaissent déjà de nombreux protocoles et sont facilement utilisables, mais deux d’entre eux sont limités au réseau. De plus, « Le Python, c’est lent ».

Plusieurs outils ont été codés en Python dans le lab. mais ils sont considérés comme lents à l’exécution donc ils sont passés à C++, plus rapide, mais ils restent trop verbeux et pénibles à mettre au point.
Un outil en OCaml a donc été développé avec un préprocesseur nommé Parsifal.

La plaquette de Parsifal est la suivante :

  • Efficacité du code produit ;
  • Robustesse ;
  • Adaptation à l’écriture incrémentale de parseurs flexibles.

Parsifal permet également d’extraire les objets décrits en plus de pouvoir les parser (client DNS en 200 lignes).

L’orateur donne un exemple concret avec la structure d’une image PNG. Il déclare simplement la structure d’une image PNG (avec la taille, le Chunk Type, la data et le CRC) et il obtient un code permettant de parser l’objet et de l’extraire.
Cet exemple est agrémenté de démo pour prouver le peu de code demandé à l’utilisateur.

Les formats implémentés sont : X509, SSL/TLS, PE, Kerberos, TAR, DNS, PNG, PCAP ; ceux qui ne sont pas implémentés : Base64, Zlib, etc.

La v0.1 est publiée sur GitHub, la documentation reste à consolider.

Compromission d’un terminal sécurisé via l’interface carte à puce

Par Guillaume Vinet

L’utilisation d’une carte à puce est considérée comme l’équivalent d’un coffre-fort numérique à faible coût. Cependant, l’authentification nécessite la saisie d’un code PIN sur le clavier du PC, ce qui n’est pas sécurisé, comme montré au CCC 2010. Un terminal bancaire a donc été créé, avec branchement en USB sur le PC.

La saisie du code PIN est confinée dans le terminal, à l’exception des échanges avec la carte, c’est-à-dire que le code PIN ne transite pas par le PC.

Diverses attaques de terminal sont à exploiter : attaque physique, rayon électromagnétique ou démontage et analyse de la mémoire après saisie du code PIN.
L’orateur s’est penché sur l’attaque par l’interface de carte à puce car elle est rapide, non destructive, peu détectable et rarement prise en compte.

Ainsi, on pourrait débrancher le terminal en le gardant sous tension et le brancher au PC d’analyse, mais cela s’avère un peu encombrant.

L’orateur a donc visé le protocole ISO 7816-3 en utilisant l’Answer To Reset (ATR) ce qui permet de récupérer des octets historiques.
Les actions suivantes sont également possibles :

  • Envoi d’un ATR => 2 octets => accès illégal en lecture ;
  • Envoi d’un ATR => 33 octets => accès illégal en écriture.

Le matériel disponible pour la mise en place de l’attaque :

  • Java Card : dont la couche transport est bas niveau (APDU étendue) ;
  • Fun Card, prussian card, Basic Card : programmables mais via un lecteur de cartes à puce ;
  • Émulateur physique de cartes à puce : problème de coût et de prise en main.

L’orateur a donc acheté un Arduino peu coûteux, rapidement pris en main, avec connexion USB, contrôle via Python et contrôle de la carte, ce qui lui a permis de réaliser des attaques par fuzzing.

Via un ATR mal formaté, il a pu trouver 4 failles avec possibilité de récupérer une partie de la réponse précédente.

Par attaque sur les octets de procédure T0, il a pu extraire le code du firmware du microcontrôleur. Il a également pu extraire la totalité de la XRAM, également grâce à une faille dans la bibliothèque du microcontrôleur qui est normalement sensée empêcher les débordements de tampon.

L’orateur conclut par une démo en live où il lit les dernières réponses et dump le firmware.

Attaques applicatives via périphériques USB modifies infection virale et fuites

Benoît Badrignans est employé chez SECLAB FR. C’est en travaillant sur le développement de périphériques USB et en constatant que le moindre problème de conception dans le périphérique entraînait un plantage de la machine que l’idée de modifier des périphériques USB lui est venue.

Dans le cadre de SI critique, les problématiques liées à l’USB sont fréquentes (cas de Stuxnet). Cela a permis une prise de conscience du risque et la mise en place de préconisations associées. Cependant, ces préconisations se concentrent sur la protection de périphériques USB classiques avec un contenu malveillant.

Les recommandations traditionnelles sont :

  • Éviter l’USB ;
  • Utiliser un sas de décontamination ;
  • Désactiver l’autorun ;
  • Utiliser un antivirus à jour ;
  • Interdire certains périphériques via le descripteur,
  • Etc.

La présentation débute par un rappel du modèle de fonctionnement de l’USB. Comme indiqué sur la capture ci-dessous, il existe plusieurs méthodes pour compromettre un système via un périphérique USB classique (virus sur une clé USB, driver malveillant, etc.)

sstic_2013_surface_attaque_avec_usb_classique_1

Par exemple, modifier un périphérique USB en changeant le descripteur, permet d’autoriser un périphérique qui serait normalement interdit.

On peut aussi écouter les informations qui passent sur le hub USB sur lequel est branché notre périphérique modifié.

Il est également possible de contourner le sas de décontamination en modifiant la table de partition. Si on peut simuler un clavier, on peut donc se faire passer pour la personne derrière le clavier.

sstic_surface_attaque_avec_usb_modifiee

Pour réaliser son périphérique modifié, il y a plusieurs options :

- Acheter directement un contrôleur USB ;

- Modifier un téléphone portable (des couches d’Android permettent de faire passer un téléphone pour un clavier) ;

- Utiliser des outils de pentest prêts à l’emploi (Facedancer USB pour Fuzzing) ;

- Acheter directement une clé USB piégée.

La surface d’attaque s’avère donc supérieure à une clé USB classique !

La première démonstration se base sur le scénario ayant l’objectif suivant : voler un fichier spécifique sur un système. Le système hôte effectue un filtrage sur le descripteur USB, l’utilisateur courant n’est pas « root » et la clé USB est montée en lecture seule.

Premier contournement : on peut facilement changer le descripteur USB (besoin d’ingénierie sociale pour déterminer les descripteurs autorisés).

Notre clé dispose de deux espaces de stockage : un premier accessible depuis l’OS (donc uniquement en lecture, que l’on nommera système A) et un second caché sur la clé, qui n’est pas directement accessible (que l’on nommera système B). La clé dispose aussi d’un microcontrôleur qui lui permet d’agit sur la mémoire de masse cachée. Comme il n’est pas possible de copier directement le fichier sur le stockage A, celle-ci accède en lecture au fichier cible. Le dispositif USB lit octet par octet le contenu de la clé, à chaque octet lu, un accès en lecture est fait sur un fichier spécifique du système A. Le microcontrôleur interprète alors ces accès en lecture et écrit les octets lus (donc ceux du fichier cible) et les écrits dans un fichier présent sur le système B, donc caché.

Le second scénario est le suivant : infecter une machine cible, n’ayant pas d’antivirus. L’attaquant ne peut entrer directement sur le SI, ne connaît pas le système cible (Linux/Windows/Mac), l’autorun est désactivé et le SI dispose d’un sas de contamination.

Pour contourner le sas de décontamination, il suffit d’attendre un certains nombre de connexions (physiques) pour exécuter la charge virale.

Pour connaître l’OS, on analyse le comportement du système lorsque l’on branche le périphérique (est-ce que le système commence par lire ou écrire sur l’équipement ? où ? etc).

Une fois l’équipement branché, l’OS détecté, il suffit de déposer un logiciel malveillant en simulant des entrées clavier.

Quelles sont donc les contre-mesures ?

Pour commencer les recommandations habituelles sont à appliquer (DLP, désactiver l’autorun, etc).

Ensuite, plusieurs options existent, comme par exemple Qubes OS qui permet de déléguer à une VM de faible niveau l’USB (ou encore le réseau). Cependant, ce type de système nécessite de former les utilisateurs et impose certaines contraintes.

La proposition de l’orateur constitue une protection matérielle qui consiste à mettre un matériel de filtrage USB en rupture entre les périphériques et le contrôleur USB de la machine. Dans le cas de support amovible USB, le contenu de la clé est dupliqué sur l’équipement, la lecture des fichiers ne se fait donc plus sur le périphérique mais sur l’équipement de filtrage. Il est aussi possible de mettre en place des règles de filtrage au niveau du clavier (interdire des combinaisons de touches, détecter des saisies de touches trop rapides pour être effectuées par un humain).

En conclusion, la surface d’attaque fournie par l’USB est grande, même sans entrer dans les couches basses, et il est difficile de contrer cela au niveau logiciel. Par ailleurs, cela ne se limite pas à l’USB, on peut envisager la fuite d’information via PS/2 ou le câble audio.

Pour obtenir plus d’informations sur la présentation, l’article et les slides sont disponibles à cette adresse : https://www.sstic.org/2013/presentation/Attaques_applicatives_via_peripheriques_USB_modifies_infection_virale_et_fuites_d_informations/.

Red October

Par Nicolas Brulez

L’orateur commence par un petit rappel des différentes attaques récentes :
- 2009 : Opération Aurora ;
- 2010 : Stuxnet ;
- 2012 : Flame ;
- 2013 : Red October.

Le nom « Red October » a été choisi car l’attaque est potentiellement d’origine russe. Il s’agit d’une campagne de cyber-espionnage ayant eu lieu de mai 2007 à janvier 2013.

Les informations obtenues par le malware étaient réutilisées pour s’introduire dans d’autres systèmes. Une soixantaine de noms de domaine ont été achetés pour des modules Nokia, iPhone, Windows mobile, pour Cisco et disques amovibles, outre les postes de travail.

Le scénario de l’attaque est le suivant :
- Infection initiale ;
- Par mail (boite mail anonyme ou boite « pownée ») phishing avec document piégé (Word et Excel). Il n’y avait aucun 0day (CVE 2009-1329, à CVE 2012-0158). Les exploits utilisés ont été récupérés de Chine, en changeant le payload ;
- Le dropper extrait et exécute 3 fichiers sur la machine victime. Le fichier chiffré en RC4 et Zlib est une backdoor s’injectant en mémoire qui communique avec le C&C de manière chiffrée, après un test sur microsoft.com ;
- Des modules complémentaires sont déployés (password, persistent, mobile, exfiltration, disque amovible, etc.). Une fois la connexion faite, les modules sont chargés « hors ligne » (sur le disque) et « en ligne » (en mémoire) : 34 modules, 9 groupes et plus de 100 fichiers.

Les noms de domaine ont été enregistrés par les équipes de Kaspersky pour faire des statistiques puisque les pirates ne les ont pas renouvelés.
Avec leur serveur (KSN), ils ont pu voir que la Suisse, le Kazakhstan et la Grèce étaient les pays les plus ciblés.
La plupart des mails qui ont servi à l’enregistrement des noms de domaine sont en « .ru ». Les équipes de Kaspersky ont pu avoir accès à un serveur de proxy qui redirigeait les flux vers les serveurs réels (le port 40080 des serveurs de contrôle est ouvert).

L’originalité des modules pour mobiles : Nokia, IPhone et Windows Mobile
Le module utilise l’API du développeur, l’ID du téléphone, la version du firmware, les contacts, les journaux d’appels, le calendrier, etc.
Sur Windows mobile, le module va infecter le téléphone en plus de récupérer des informations. Une fois infecté, il se connecte par le C&C pour compléter l’infection et va modifier le téléphone pour lancer des applications non signées.

L’orateur conclut par le fait qu’aucune démo n’est disponible car « de toute façon, ça ne marche pas, je suis à l’arrache comme toujours ! ». Aucun support de présentation n’est disponible.


(L’)Embarqué entre Confiance et Défiance
Par Aurélien Francillon

La dernière conférence de la journée est présentée par Aurélien Francillon, chercheur chez Eurocom, rattaché à l’institut Mines-Télécom. La présentation est un patchwork de différentes recherches qu’il a effectuées sur l’informatique embarquée.

Pourquoi ce titre ?
Il commence par expliquer pourquoi il a choisi ce titre et pourquoi il s’est tourné vers l’embarqué.
Au départ, hormis les cartes à puce, étudier des attaques ciblées sur les systèmes embarqués était assez souvent tiré par les cheveux. Cet aspect a pas mal changé ces derniers temps. C’est aussi sa curiosité à l’égard de ces systèmes et le fait qu’ils sont plus petits, donc moins complexes, soumis à peu de sécurité qui l’ont poussé à se demander « Peut-on faire confiance à ces boites noires ? » et à s’orienter vers l’étude de l’embarqué.
Pour commencer, il illustre sa présentation en parlant d’AVR. Ce microcontrôleur est basé sur une architecture Harvard (http://fr.wikipedia.org/wiki/Architecture_Harvard), aussi utilisée dans les smartcard : les données mémoire et programme y sont indépendantes. Ce type d’architecture induit qu’il n’est pas possible d’effectuer des injections de code classiques. Cependant, en utilisant le ROP (Return Oriented Programming, http://fr.wikipedia.org/wiki/Return-oriented_programming), il est possible d’exécuter du code déjà présent en mémoire programme (des gadgets). Si l’on est en présence d’un jeu de gadgets « Turing complet », il est possible d’effectuer des injections. Un système basé sur une architecture Harvard ne protège donc pas des injections de code.

Comment faire confiance à un système embarqué ?
Pour répondre à cette question, l’orateur utilise l’exemple duHTC G1. Ce téléphone utilise deux processeurs : un ARM9 pour le baseband (le code du baseband représente environ 20 Mo de code binaire) et un ARM11 pour la gestion d’Android. L’orateur présente la séquence de Secure Boot du téléphone. Ce modèle de sécurité est basé sur une signature des différents binaires. C’est en analysant la ROM utilisée pour le baseband que l’on découvre que les certificats utilisés pour vérifier la signature sont en dur dans le code. On est en présence de deux certificats, un certificat « commercial » et un certificat « gouvernemental ». Chaque certificat correspond à un mode de fonctionnement. Les premières questions qui peuvent venir à l’esprit sont :
- Pour quel gouvernement ?
- Y-a-t-il un certificat par gouvernement ?
- Est-ce une backdoor ?

Les réponses aux deux premières questions ne sont pas données ici. Cependant, on peut affirmer qu’il ne s’agit pas réellement d’une backdoor car on a besoin d’un accès physique au téléphone. Par contre, un gouvernement peut quand même reprogrammer le baseband pour ses propres téléphones. Pour cela, il faut pouvoir modifier l’image (micronoyau OKL4). Des versions antérieures sont disponibles en open source. Il est également possible d’utiliser OKL4 comme hyperviseur (un PoC permettant de lancer le noyau Linux dans le baseband a d’ailleurs été effectué lors des recherches).

Après cet exemple, il nous est rappelé que les systèmes embarqués sont partout.
Un ordinateur est d’ailleurs une combinaison de systèmes embarqués. Par exemple, un disque dur en est un. Un papier à venir va présenter la possibilité de déposer une backdoor au sein d’un disque dur (le PoC est notamment réalisable car il n’y a pas de vérification de la signature du firmware dans le disque dur). À suivre donc !

Comment font-ils pour faire cela de manière sécurisée ?
Ici, les systèmes de clés sans contact pour les automobiles sont pris comme exemples. Dans le modèle vendu par les constructeurs, si on se trouve à proximité de notre voiture (moins de deux mètres) avec la clé, sans contact, la voiture se déverrouille et il est possible de la démarrer en appuyant sur un simple bouton. Aurélien a donc réalisé la même expérience sur plusieurs voitures (10 modèles de 8 constructeurs). L’expérience consiste à créer un relai (par câble ou sans fil) permettant de prolonger la portée de la clé. Le résultat est qu’il est possible d’ouvrir et démarrer la voiture à une centaine de mètres.

Peut-on faire confiance à ces systèmes ?
Plusieurs concepts permettent de contrôler ces systèmes : le premier présenté consiste à vérifier le code avec un autre code, contournable notamment grâce au ROP. La seconde méthode consiste à vérifier le système au démarrage, méthode ne protégeant pas contre une compromission après le lancement du système.
La dernière méthode est la méthode Secure and Minimal Architecture for (Establishing a Dynamic) Root of Trust (SMART), méthode présentée dans le document : http://www.eurecom.fr/fr/publication/3536/detail/smart-secure-and-minimal-architecture-for-establishing-a-dynamic-root-of-trust)

Pourquoi faire un système sécurisé ?
Pour terminer la présentation, on peut se poser la question : pourquoi sécuriser ces systèmes ? En effet, du coté constructeur la question peut se poser. Cela coûte plus cher, c’est plus complexe à réaliser et cela ne fait pas nécessairement vendre davantage ou plus vite.

En conclusion de ce patchwork, l’orateur tient à rappeler qu’il est important de rester curieux et de se poser des questions lorsque l’on se retrouve face à des boîtes noires.

Au moment où ces lignes sont écrites, la présentation n’est pas disponible sur Internet. Elle le sera sûrement par la suite à l’adresse : https://www.sstic.org/2013/presentation/conf_invit2_j1_2013/

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes)
Loading ... Loading ...

,

Comments (0)

Hooray for the crisis on behalf of CEO of devoteam Group

Our CEO of Devoteam Group in France, published the following article

Hooray for the crisis!
By Stanislas de Bentzmann, co-CEO and co-founder of Devoteam
Facing the current crisis, most companies have to ask themselves the right questions. The traditional responses no longer suffice to find growth, so is it not now time to embrace the future? Our patterns of consumption have changed and in consequence we must reduce our structural costs. So it seems that the return to competitiveness can only happen through a real break, a paradigm shift. What if digitization finally becomes the hope of salvation for a weakened industrial sector? What if economy of scale rhymes with technological innovation?
In the digital economy, new business models transform all the traditional paradigms of our businesses. We buy and pay our products with our smartphone, we talk about them on social networks, and the e-reputation of the products are created at the same time. All sectors of society are affected, from politics to the economy, over culture and leisure. Mobility, cloud, social networking and Big Data will fundamentally change the environment of the company: they offer or impose new ways to sell, recruit, communicate and produce. What company now recruits without social networks (Linkedin, Viadeo, Xing)? What company does not now have a large, simple and effective communication on the web? What company can still afford to sell without providing a digital distribution channel or digital information?
Our world is connected and it transforms the way we work. Inside and outside the company, our practices exert an irresistible pressure: the consumption cycles shorten and become more flexible. Companies must innovate if they want to regain competitiveness and survive. The CIO shall not be a “Chief Information Officer” but the “Chief Digital Integrator.” The “CDI” shall exploit the immense amount of data exchanged on social networks to guide the marketing strategy, offer mobile services to support the user experience of the customer, and make available anywhere and anytime the information and the service provided by the company.
However, we must recognise that companies are still cautious to embark on their necessary transformation. Only those who are subject to a particularly strong pressure have migrated to the cloud, rethinking their working methods and business models.
Now it is time to move from traditional IT to IT in the 21st century! Yesterday’s IT was reactive and focused on its own effectiveness. Being technological in nature, it was geared towards serving known needs and did nothing but adapt. Instead, the new IT is open on how it can be used. Innovative, it is ahead of the business needs and suggests solutions. It no longer follows the trend, it sets the trend. Agile and flexible, it is open and connected to the world. It is also a source of savings for those companies that wish to win 1-2 points of profitability by migrating to the cloud, according to the first observed effects.
There are still many “Digital Americas” to discover for explorers who want to believe that another model already exists. And the companies that today are emerging as leaders in their market are those that have made innovation their corporate culture. All their employees are encouraged to be creative, whatever their field of activity. But to get to this stage remains difficult. Unable, for structural reasons, to align rapidly with growing business needs, traditional CIOs today are doomed to no longer satisfy the business managers. These have already begun to deal directly with external suppliers to meet their requirements. They cheerfully bypass the CIO and soon will eliminate the CIO budget while looking elsewhere for more flexibility for themselves and their employees. The sales people of cloud services have understood this trend: it is to the business managers that they are now offering their services. The parallel information system that thus will emerge, the “shadow IT”, represents a significant business risk. Indeed, if not the CIO, who else could guarantee the security and integrity of the data?

The second risk is losing competitiveness by staying with outdated models. Change is no longer an option, it is a condition of survival.
The race for technology to meet the business challenges is ending. We have arrived at the end of a model. It is only by restating the question and thinking in terms of business models and practices that IT will be able to find its place in the chain of value creation.
By switching to this new model, companies and especially SMEs can regain profitability and tackle the global market.

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

Comments (0)

SQL Server 2014, Trial evaluation end of June 2013

I am thrilled! Yesterday at TechEd, Microsoft announced that somewhere in 2014 the new SQL Server version will be released. WOW! So soon? We are working with the 2012 versions like a year, year and a half? But trust me, the 2014 release will have some real neat things! They announced that somewhere around the upcomming Build Event (right here) the trial version of SQL Server 2014 will be released. If you want to know what is in it, look at this link : http://www.microsoft.com/en-us/sqlserver/sql-server-2014.aspx. A small recap of what you can read in those papers is right here!

“Hekaton”

One of the coolest things, if you ask me, is the part that goes by the codename “Hekaton”. This is an in-memory database where you can get a performance boost of about 10 to 50 times.  The company Bwin did a very succesfull implementation. For that succes story look at this video on youtube : http://www.youtube.com/watch?v=nO200qJ_i-Y. As you can see in that movie they got from 15.000 request/sec to 250.000 request/sec. That’s like.. WOW! And that all thanks to some real nice optimizations. T-SQL code for example, is compiled to native machine code, which is quite faster to execute. Hotspots in your data are loaded into  fast memory optimized structures. It is also highly scalable where some locks and latched do NOT exist anymore. That’s a little against the grain for me, but for a solution like this you must leave those things out for performance reasons.

If you want to know more about hekaton, look right here : http://research.microsoft.com/en-us/news/features/hekaton-122012.aspx

More hybrid functionality towards Azure

A lot of things are introduced towards the cloud solution, Microsofts Azure.

  • In SQL Server 2012 we have got the AlwaysOn functionality, which was quite cool if you are used to the old school 2005/2008 mirroring functionality. In SQL Server 2014 you are able to use a secondary replica in a Azure VM! With that in mind, think about reporting capabilities, HA-DR, etc, etc.
  • Deployment to the cloud should be easier now.
  • Cloud storage. Use the clouds storage solution on-premise. So your data and/or log files will reside on the Azure storage, while your RDBMS is on-premise. That’s real cool, but then i still think about io latencies. We have to wait for the trial versions to know exactly what this means.
  • Backup scenario’s to the cloud. You can backup and restore directly into a Windows Azure Blob

Performance

Besides the above mentioned “Hekaton”, there are a lot of performance related new things.

  • Improvement of the Buffer pool. More and more servers are given SSD’s instead of the spindles. Since these storage devices can handle a lot more IOPS, it is quite evident that memory pressure shouldn’t be an issue. With the improvement of the Buffer Pool we are save now.
  • Parallel bulk loading of data. With the improvement of the SELECT INTO command we now can insert data parallel. Finally!
  • Improvements to the cardinality estimator and statistics.

Conclusion

Well, as you can see, a lot of new things are coming our way somewhere soon. As soon as the trials are available we will know a lot more. But only the performance boosts, Hekaton, new/improved BI functionality and of course more cloud is making me really looking towards the end of June for the first preview.

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

Comments (0)

SQL Server 2014, Trial versies eind juni 2013

Ik verheug me er nu al op! Gisteren heeft Microsoft op de TechEd aangekondigd dat ergens in 2014 de nieuwe SQL Server versie gereleased zal gaan worden. Wauw! Zo snel? We werken amper 1 tot 1,5 jaar met SQL Server 2012? Maar geloof me, de 2014 release zal een aantal echte gave dingen gaan bevatten. Er is aangekondigd dat ergens rond de aan het aankomende Build event (http://www.buildwindows.com/) de trial versies van SQL Server 2014 zullen worden gereleased. Als je wilt weten wat er allemaal aan zit te komen kan je snel kijken op http://www.microsoft.com/en-us/sqlserver/sql-server-2014.aspx. Hieronder heb ik alvast een korte samenvatting gemaakt.

Hekaton

Eén van de meest gave dingen is, als je het mij vraagt, het gedeelte dat onder the codenaam “Hekaton” zal worden gereleased. Dit is een in-memory database waar je performance boosts kan krijgen van 10 tot 50 keer! Het bedrijf BWin heeft hier al een zeer succesvolle implementatie van gedaan, terwijl het product nog niet eens verder is vrijgegeven. Een succes verhaal is dan ook op YouTube te vinden (http://www.youtube.com/watch?v=nO200qJ_i-Y). In dit korte filmpje zien we dat zij van 15.000 database-transacties per seconde naar 250.000 database-transacties per seconde gaan. Dat is iets als WAUW. En dat dankzij een aantal zeer vernuftige optimalisaties in SQL Server. De T-SQL code wordt bijvoorbeeld compileert naar native machine code, wat natuurlijk veel sneller uit te voeren is. Hotspots in je data worden “automatisch” ingeladen in snelle geoptimaliseerde geheugenblokken. En daarnaast is het ook nog eens erg schaalbaar, omdat een aantal locking en latching methodieken zijn verdwenen in dit stuk. Dat valt bij mij nog een beetje zwaar, maar voor een oplossing als dit ben je bijna genoodzaakt om deze methodieken los te laten vanwege o.a. performance en schaalbaarheid.

Wil je meer weten op hekaton, dan vind  je op de volgende link een (technisch) verhaal : http://research.microsoft.com/en-us/news/features/hekaton-122012.aspx

Meer hybride funtionaliteit richting Azure

Er zijn een aantal zaken geïntroduceerd richting een betere koppeling met de Microsofts cloud oplossing, Azure:

  • In SQL Server 2012 hebben we de AlwaysOn functionaliteit mogen verwelkomen. Als je met mirroring omgevingen op de 2005 en 2008 (R2) releases hebt gewerkt, dan was dit al erg revolutionair. In SQL Server 2014 heb je zelfs de mogelijkheid om een IaaS oplossing aan je AlwaysOn te koppelen in de vorm van een Virtual Machine. Je secundaire omgeving draait dan in de cloud en bied meteen goede oplossingen voor rapportages, High Availability en Disaster Recovery, en noem maar op.
  • Het deployen naar de cloud zal nu eenvoudiger gaan
  • Cloud storage. Gebruik je storage oplossing in de cloud voor je on-premisse omgeving. Hiermee kan je je data en/of log bestanden op je Azure storage draaien, waar je RDBMS nog steeds on-premisse draait. Erg mooi natuurlijk, persoonlijk ben ik nog een beetje huiverig voor de eventuele latencies. We zullen moeten wachten tot de trial versies om te kijken wat dit nu echt gaan betekenen
  • Back-up scenario’s naar de cloud. Je kan nu direct back-uppen en restoren naar een Windows Azure Blob storage.

Performance

Naast het hierboven genoemde “Hekaton”, is er op performance vlak ook weer aardig wat nieuws.

  • Verbeterde Buffer Pool. Steeds meer servers worden tegenwoordig uitgerust met SSD in plaats van ouderwetse schijven. Gezien deze storage oplossingen vele malen hogere IOPS (Input Output Per Seconde, een fictieve eenheid die de snelheid van een schijf aangeeft) aan kan, is het evident dat met een kleine aanpassing in de Buffer Pool niet alles meer in geheugen gedaan hoeft te worden, waarmee we zaken als “Memory Pressure” minder snel zullen hebben
  • Parallel bulk data verwerken. Met een verbeterde versie van het “SELECT INTO” commando kunnen we nu EINDELIJK data parallel gaan inladen in ons systeem
  • Verbeteringen in de SQL Server optimizer. De “cardinality estimator” en data statistieken zijn weer verbeterd.

Conclusie

Zoals je kan zien komen er heel wat nieuwe dingen onze kant op. Zodra de trials beschikbaar zijn zullen we dan ook heel wat dingen meer gaan weten. Met alleen al de performance “boosts”, Hekaton, een aantal vernieuwde BI functionaliteiten en natuurlijk de betere koppeling naar Azure, laat mij al verheugen op eind Juni als de eerste versies te downloaden zijn.

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

Comments (0)

.NET Bootcamp @Devoteam Netherlands

In het kader van het omscholen van Oracle developers naar .NET, hebben Michel de Wit en Hildo van Es een zeer boeiende .NET cursus in elkaar gedraaid. Op het moment van schrijven heb ik vijf van de zes .NET sessies achter de kiezen.

Elke woensdagavond krijgen Son, Richard, Ron en ondergetekende in een drieënhalf uur durende sessie, allerhande praktijkvoorbeelden uit de .NET wereld voorgeschoteld. Het zijn stevige (luister)sessies, waarin elke week een thema behandeld wordt. Aan de hand van de theorie en leuke demo’s worden de onderwerpen uitgediept. Een greep uit de onderwerpen die reeds de revue gepasseerd zijn: Design Patterns, Web Services, drie lagen architectuur, Entity Framework, WPF, MVVM Pattern en database interactie. Na elke sessie wordt de cursist naar huis gestuurd met een opdracht die thuis in Visual Studio (C#) uitgewerkt moet worden. Om de resultaten te bespreken en te beoordelen wordt er gebruik gemaakt van Team Foundation Server.

Wat mij persoonlijk erg aanspreekt aan de cursus, is het doel waarmee deze opgezet is. Na het volgen van de cursus is het niet zo dat je alle ins en outs van .NET kent. Het gaat erom dat je er mee bezig bent, de meest voorkomende praktijksituaties gezien hebt en ook ziet waarom je iets op een bepaalde manier oplost. In het overbrengen daarvan zijn Hildo en Michel erg goed geslaagd. Niet alleen het niveau, maar ook het tempo van de cursus is erg hoog. Maar als ik zo naar mijzelf kijk (Oracle developer zonder OO kennis) kan ik zeggen dat ik nog steeds aangehaakt (en enthousiast) ben. De concepten en het waarom je iets op een bepaalde manier toepast, heb ik na al die sessies redelijk helder op mijn netvlies staan.

Nog één sessie te gaan. Ik ben benieuwd wat we in deze laatste sessie nog meer aan C# geweld voorgeschoteld krijgen…

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

Comments (0)

NoSuchCon – Jour 3

Keynote #3

Dimitri Alperovitch

La dernière journée de conférence commence par une keynote de Dimitri Alperovitch dans une salle bien moins fournie que les jours précédents (sans doute suite à la NoSuchParty du jeudi soir). Dimitri est un des fondateurs de CrowdStrike Inc.  Auparavant, il travaillait chez McAfee dans la recherche de code malveillant. Il a notamment développé des techniques de détection de spam, de malware ou d’intrusion. Vous pourrez lire bien plus d’informations sur sa page personnelle.

La keynote s’est concentrée sur les différentes attaques informatiques modernes, des attaques plus  massives et plus destructrices. Le travail effectué par la communauté sécurité est important mais reste en retard par rapport aux attaquants.

Les attaquants ont des profils et des motivations qui varient. Si certains tentent d’attaquer votre compagnie et se retrouvent face à une impasse, ils iront voir ailleurs. Par contre, si c’est votre compagnie qui les intéresse, ils chercheront un moyen d’entrer, que ce soit directement chez vous ou bien en passant par l’un de vos partenaires.

D’autre part, il existe de grandes différences entre les moyens à mettre en œuvre pour se défendre et ceux nécessaires pour attaquer. En effet, il est complexe d’imaginer des défenses pour des attaques qui n’existent pas encore, tandis qu’il est simple d’inventer des attaques pour des défenses que l’on connait. De la même façon, un attaquant sait ce qu’il veut obtenir. Un défenseur, lui, ne sait même pas si les protections qu’il met en œuvre le protégeront.

Nous, la communauté travaillant dans la sécurité des Systèmes d’Information, devons continuer à avancer tout en faisant preuve d’imagination car de nouvelles menaces impliquent de nouvelles défenses.

Crashdmp-ster Diving the Windows 8 Crash Dump Stack

Aaron LeMasters

Aaron LeMasters est un chercheur en sécurité senior chez CrowdStrike Inc. Avant cela, Aaron a travaillé chez Mandiant, société au sein de laquelle il a mis en place des méthodes de reverse-engineering de rootkit. Il est aussi le coauteur de « Hacking Exposed: Malware and Rootkits » (October 2009, McGraw-Hill). Bloggeur sur son temps libre, il a participé à de nombreuses conférences sécurité comme la BlackHat. Son dernier projet, http://crashd.mp, est un site dédié au partage d’informations sur le mécanisme de crash dump de Windows.

Le crash dump de Windows est l’un des mécanismes les moins documentés. Celui-ci est utilisé par Windows pour l’hibernation, le fast boot de Windows 8 et les crashs système. La présentation d’Aaron dévoile un abus dans la pile du driver crashdump.sys. Comme l’orateur nous le rappelle, les techniques utilisées ne sont pas nouvelles et ceci ne constitue pas une vulnérabilité.

Aaron nous explique que ce mécanisme permet un accès en lecture et écriture à la mémoire de masse lorsque des bugs apparaissent ou lorsque le système se prépare à hiberner. La présentation commence avec quelques rappels des précédentes recherches puis se poursuit par une présentation de crashdmp.sys et des filtres de crash dump.

L’objectif de crashdmp.sys est de conserver l’état de la machine en cas de crash ou bien d’hibernation. Les filtres quant à eux, permettent de modifier les requêtes en lecture et écriture effectuées via le crash I/O path. L’idée ici est d’abuser de la fonctionnalité de journalisation apparue dans Windows 8, afin d’accéder à des informations protégées. Ce type d’abus n’est cependant possible que lors d’une hibernation ou d’un crash Windows, les fonctions en question n’étant utilisées qu’à ce moment-là.

Pour finir, la présentation se termine par une démo utilisant les sources du Boston CTF challenge. La présentation est disponible ici.

Exploiting Hardcore Pool Corruptions in Microsoft Windows Kernel

Nikita Tarakanov

Nikita Tarakanov est un chercheur en sécurité informatique spécialisé dans l’exploitation des vulnérabilités du noyau Windows, sujet sur lequel il a déjà publié quelques articles.

Nikita parle dans un premier temps de la difficulté croissante d’attaquer les applications du fait de l’utilisation de sandbox. Toutefois, les vulnérabilités du noyau Microsoft étant principalement des manipulations de mémoire, l’attaque du noyau via les sandbox est envisageable.

Des techniques d’exploitation du Heap (ou tas du noyau) ont été mises en œuvre, notamment par Tarjei Mandt, sur Windows 7. Ces techniques sont basées sur la modification des tailles de blocs dans le tas. Cependant, elles ne sont plus efficaces sur Windows 8.

Nikita propose une technique plus complexe consistant à modifier l’entête de l’objet puis à procéder à un appel système pour déclencher l’attaque. La démonstration de ladite technique n’ayant pas fonctionné lors de la présentation, il conclut la conférence en précisant que cette technique d’attaque n’est pas fiable à 100%.

La présentation est disponible ici.

XML Out-Of-Band Exploitation

Yunusov Timur, Alexey Osipov

Timur Yunusov et Alexey Osipov sont les deux orateurs de cette présentation. Timur Yunusov est chercheur en sécurité des applications Web et l’auteur de nombreuses recherches autour de ce domaine, incluant brute force of PHPSESSID, classée dans les 10 meilleures techniques de hacking en 2012 par WhiteHat Security. Il est également pentester professionnel et a été développeur à l’International forum on practical security « Positive Hack Days ».

Quant à Alexey Osipov, il est chercheur en mécanismes de prévention d’attaque et a développé plusieurs outils de sécurité et Proof of Concept. Il a également pris la parole dans de nombreuses conférences, notamment à la DEFCON de Russie. Il est membre de l’équipe « SCADA StrangeLove ».

Leur présentation concerne une fonctionnalité avancée de la spécification XML : les « entités XML », et les risques qu’elle peut induire.

Plusieurs sortes d’entités XML existent. Les plus connues sont les entités prédéfinies telles que « &amp; », « &lt », ou encore « % ». Typiquement, les entités XML sont utiles pour définir des « raccourcis » ou des variables qui réfèrent à des chaînes de caractères ou des caractères spéciaux.

Plus généralement, Tiur et Alexey rappellent que des entités XML peuvent être déclarées de manière interne (dans le DTD courant) ou externe (définies dans un document externe). Celles qui intéressent cette présentation sont bien évidemment les externes (XML eXternal Entities / XXE). En effet, elles peuvent constituer un risque en termes de sécurité. Elles peuvent tout particulièrement permettre de :

  • Lire un fichier local ;
  • Effectuer des requêtes sur Internet ;
  • Effectuer des scans de ports internes/externes ;
  • Exécuter du code, dans une moindre mesure ;
  • Réaliser un déni de service.

Pour illustrer ces concepts, il est possible d’utiliser des exemples, une entité XML interne pourrait être déclarée comme suit :

<!ENTITY writers “Timur & Alexey”>

<!ENTITY copyright “Copyright NSC.”>

<author>&writers;&copyright;</author>

Une entité XML externe, quant à elle, pourrait être déclarée comme suit :

<!ENTITY writers SYSTEM “http://www.w3schools.com/entities.dtd”>

<!ENTITY copyright SYSTEM “http://www.w3schools.com/entities.dtd”>

<author>&writers;&copyright;</author>

Ce dernier exemple permet d’avoir un aperçu du risque que peut représenter l’appel à un document externe. Les techniques d’attaques typiques sont :

  • XXE à base d’erreur (DTD ou validation de schéma) ;
  • Brute force de valeurs XSD, à l’aveugle.

Pour de plus amples détails, je vous recommande vivement de consulter les slides de la présentation, très intéressante. Enfin, il peut être intéressant de suivre le compte Twitter de Timur Yunusov.

Revisiting MAC OS X Kernel Rootkits

Pedro Vilaca aka fG!

Pedro Vilaca a suivi une formation d’économiste, il est titulaire d’un MBA (Master of Business Administration). Après avoir travaillé dans le milieu bancaire, il est maintenant chercheur en sécurité pour la société COSEINC. Il a notamment écrit un article dans MISC sur les rootkits pour MAC OSX.

Sa conférence porte sur les kernel rootkits sous MAC OSX, elle est basée sur 2 idées très simples qu’il va développer.

Les hypothèses nécessaires à ce type d’exploitation sont :

  • L’utilisateur doit déjà être « root », soit avoir les droits maximaux sur le système ;
  • La cible est l’OS : Mountain Lion 10.8.2 64 bits ;
  • L’attaquant doit savoir développer des extensions kernel.

Une rapide revue de l’état de l’art montre que peu de recherches ont été faites sur ce sujet. En effet, rien n’a été publié depuis les exploits sur Leopard, on remarquera seulement des rootkits « Made In Italy » en cours d’exploitation mais dont les recherches ne sont pas rendues publiques.

Quels sont les problèmes récurrents du développement de rootkits?

#Problème 1

Afin de développer un rootkit, un utilisateur a besoin des symboles noyau (ou « kernel symbols »), or ceux-ci ne sont pas exportés, certains étant disponibles mais pas suffisamment pour un rootkit stable.

La récupération de ces symboles est possible depuis certaines extensions noyau mais seulement dans la version Lion et Mountain Lion de l’OS.

#IDEE 1

Les symboles sont récupérables directement en lisant l’image du noyau dans le système de fichiers. Malgré le fait qu’un mythe existe concernant la difficulté de lire le système de fichiers, cette solution possède l’intérêt de rester exploitable malgré l’utilisation de l’ASLR.

Comment procéder ?

Grâce à l’utilisation de VFS (Virtual File System), il est possible de lire le mach_kernel (micronoyau de l’OS).

#Problème 2

Beaucoup de fonctions intéressantes dans le développement d’un kernel sont statiques et ne sont pas récupérables via ces symboles. Faire une recherche hexadécimale ne semble pas être une solution viable.

#IDEE 2

Il suffit  d’intégrer un désassembleur directement dans le rootkit. Pedro Vilaca utilise pour sa part diStorm qui fonctionne à merveille. De plus, cette solution est très performante. En effet, la décompilation du noyau dure une seconde sur un processeur moderne.

Ensuite, une fois le rootkit développé, Pedro Vilaca a fait une démonstration des principales fonctions qu’il pouvait implémenter :

  • Lancer des processus en mode « userland », directement depuis le rootkit, en cachant ce processus à l’utilisateur ;
  • Être totalement indétectable par le système ;
  • Utiliser la machine cible dans un botnet.

La présentation est disponible ici.

Exploiting Game Engines For Fun and Profit

Donato Ferrante, Luigi Auriemma

Luigi Auriemma et Donato Ferrante sont les fondateurs de ReVuln qui fait de la recherche de vulnérabilités, du consulting et des tests d’intrusion. Au sein de l’entreprise, les orateurs réalisent de la recherche  sécurité.

Pourquoi cibler des jeux ?

Parce que la surface d’attaque est vaste! En effet, certains moteurs de jeu sont vendus avec des licences spécifiques aux organisations militaires ou au FBI par exemple. Toutes sortes de personnes jouent une fois de retour à la maison. Même les directeurs de grandes entreprises peuvent être des joueurs pendant leur temps libre. Cela peut s’avérer être une bonne façon d’exploiter leur entreprise.

Un moteur de jeu est un ensemble de composants logiciels qui effectuent les calculs de géométrie et de physique utilisés dans les jeux vidéo. L’ensemble forme un simulateur en temps réel souple qui reproduit les caractéristiques des mondes imaginaires dans lesquels se déroulent les jeux. Le but visé par un moteur de jeu est de permettre à une équipe de développement de se concentrer sur le contenu et le déroulement du jeu plutôt que sur la résolution de problèmes informatiques. C’est en quelque sorte le noyau d’un jeu.

Ainsi, un même moteur de jeu peut être partagé entre plusieurs jeux. Par conséquent, la même vulnérabilité peut être réutilisée et offrir un gain de temps et d’argent à un attaquant.

Les moteurs de jeu peuvent être corrompus selon cinq angles d’attaque :

  • Au niveau des paquets fragmentés : les jeux sont basés sur le protocole UDP, mais ils essaient de mettre en place un réseau TCP over UDP. Lorsque la fragmentation se produit, le moteur doit reconstruire le paquet d’origine. Ce processus est effectué dans la mémoire. Qu’en est-il en essayant de placer la charge utile d’un paquet dans une autre zone de mémoire ?
  • Au niveau de la compression, plus précisément au niveau de la structure des numéros d’index : les numéros d’index constituent une manière particulière de représenter les nombres, ils permettent de transmettre et de sauvegarder les nombres en utilisant un minimum de bits. En effet, pour un nombre en 32 bits signé, le premier bit permet de déterminer le signe et le dernier bit permet de vérifier si une nouvelle séquence de bits suit ou non (1 bit de signe, 6 bits de valeur, 1 bit de suite). Cependant, si on inverse le premier et le dernier bit d’un nombre cela aboutit le plus souvent à un « integer overflow ».
  • Au niveau des protocoles de jeu, grâce aux Opcodes (Opération Codes – Code d’opération) : les Opcodes sont des parties d’une instruction de langage machine qui spécifient l’opération à effectuer. Pour chaque moteur de jeu, donc chaque protocole, un set d’Opcodes est utilisé. La base d’Opcode est fournie par le moteur de jeu et une table de fonctions basées sur cette table d’Opcode est utilisée par les développeurs et fournie  par le moteur de jeu. Ainsi, pour chaque jeu, la table de fonctions (table du protocole) sera différente alors que la table d’Opcode est pour un moteur de jeu constant. Dans ce cas, afin de déterminer la table d’Opcode d’un moteur de jeu, il faudra récupérer dans tous les jeux utilisant le même moteur de jeu la table de protocole qui apparaît en mémoire seulement au lancement du jeu.
  • Grâce à la personnalisation : les moteurs de jeu proposent de plus en plus la possibilité de personnaliser les jeux. En effet, des options telles que la création d’animations, de modèles, de son ou de création de carte par les joueurs sont de plus en plus fréquentes. L’option permettant de créer soi-même une carte est très intéressante. En effet, il est possible de compromettre le moteur de jeu via des formats de binaire complexe (fuzzing) ou des routines d’analyse complexes (IDA). Le plus intéressant est le fait que les cartes soient automatiquement téléchargées par le serveur.

Les moteurs de jeu peuvent aussi être utilisés pour personnaliser les arguments des lignes de commande, permettant ainsi d’établir un exploit local. Cependant, grâce à des plateformes telles que Steam et Origin, ces exploits locaux peuvent être réalisés à distance.

La commande « Devmode » est prévue pour être utilisée pour débuguer / tester / jouer avec les personnalisations. La commande « Loading » permet de télécharger arbitrairement des fichiers en mémoire ou dans le système de victimes. La commande « Logging » permet d’écrire des fichiers de personnalisation sur le système d’une victime.

Via les serveurs maîtres : ils contiennent toutes les données des jeux, telles que des informations sur les serveurs, les hébergeurs et parfois,  des informations sur les joueurs. Ces serveurs sont accessibles en ligne afin que les joueurs puissent rejoindre une partie par exemple, ce qui devient très intéressant pour un attaquant. En effet, à partir du serveur maître, il est possible de connaître toutes les adresses IP des autres serveurs et, par ce biais, de les compromettre.

Après la théorie, les présentateurs ont effectué quelques démonstrations en direct. La présentation est disponible à l’adresse suivante : http://www.nosuchcon.org/talks/D3_05_Ferrante_Auriemma_Exploiting_Game_Engines.pdf.

Any Input is a Program

Sergey Bratus

Sergey Bratus est professeur assistant de recherche au sein du département des sciences de l’informatique à l’université de Dartmouth. Il présente un travail réalisé par ses étudiants.

Un format d’entrée suffisamment complexe peut devenir un bytecode pour une sorte de machine virtuelle dans le logiciel qui gère cela. Dans de nombreuses techniques de programmation d’exploits classiques, les entrées quelles qu’elles soient, s’exécutent sur un analyseur, quel qu’il soit.

Deux exemples sont présentés de programmation de « Turing-complete » avec des types de données qui ne sont pratiquement jamais utilisées dans ce but :

  • Les entêtes ELF au format binaire avec uniquement de la relocalisation bien formée et des entrées de symboles dynamiques (par l’exécution de la liaison) ;
  • La mémoire x86 et les tables de descripteurs d’interruption (par l’unité centrale de traitement de la page de gestion des erreurs et la logique de commutation de contexte, sans aucune instruction envoyée avec succès).

Si ces formats de données peuvent cacher un calcul « Turing-complete », que dire de tous les autres, plus complexes ? Comment un format peut se prêter à être un équivalent d’un jeu d’instructions? Est-ce que la recherche de “drôles de machines” aide à la conception de systèmes fiables?

Singularités ELF

L’orateur montre comment construire une machine de Turing sur les délocalisations et les symboles du format binaire ELF. D’autres aspects du format peuvent être tout aussi « tordus ». D’un point de vue de linguistique théorique, le format ELF est très sensible au contexte : beaucoup de métadonnées sont stockées de manière redondante et des évènements intéressants peuvent se produire lorsque les métadonnées sont incompatibles. En outre, il est possible que ces dépendances soient l’une des raisons de la manipulation difficile des binaires.

L’orateur a mis au point une technique d’exécution via le MMU où tous les mécanismes de gestion des pages « fault » n’utilisent qu’une seule instruction de type « Turing-complete ».

La présentation est disponible ici.

Killing RATs, the Arsenic Framework

Robinson Delaugerre, Adrien Chevalier

C’est à Adrien Chevalier (@00_ach) et Robinson Delaugerre (@Rob_OEM) que revient la responsabilité de clore ces trois journées de conférence. Ils sont consultants sécurité chez Conix Security et travaillent sur la réponse à incidents ainsi que sur l’analyse inforensique.

Le sujet est d’actualité : les Remote Access Tools.

L’approche qui en est faite s’ouvre sur les aspects inforensiques et la relative incapacité actuelle à récupérer les traces de ces infections, voire à les détecter. Le constat est simple : les attaquants sont présents depuis suffisamment longtemps sur les systèmes pour parfois mieux les connaître que les administrateurs eux-mêmes.

Les processus d’attaque sont donc complexes et varient d’une attaque à l’autre. La capacité à les détecter, identifier les assets compromis et cerner le périmètre d’une compromission repose sur la capacité à détecter les actions des attaquants en quasi temps réel.

L’approche retenue du framework Arsenic segmente les attaques en trois piliers majeurs : l’analyse réseau, l’inforensique sur les machines infectées et le reverse-engineering. Cette conception en trois piliers trouve son écho dans un traitement de trois éléments : les signatures de trafic réseau, l’analyse des hôtes compromis et l’analyse profonde du trafic réseau.

Les signatures de trafic réseau permettent d’utiliser des règles Snort pour la détection des patterns. Une approche comportementale est envisageable mais ne semble pas être utilisable aujourd’hui. L’analyse comportementale de la machine sur laquelle le framework est déployé permet d’identifier les patterns utilisés en mémoire, de détecter les modifications apportées au registre ou encore certains motifs révélateurs dans les fichiers (analyse effectuée en sandbox). L’étude du trafic réseau permet de déchiffrer le trafic émis et reçu par l’attaquant, fournissant une visibilité complète sur ses actions.

La démonstration effectuée consiste donc à utiliser ce framework sur une machine infectée par Poison Ivy (version ancienne de RAT toujours utilisée).

Le framework est fonctionnel, la détection quasi instantanée, l’ensemble des connexions déchiffrées et analysées en temps réel. La capacité d’Arsenic à se propager dépendra principalement de la communauté qui pourra se mettre en place autour de l’outil, principalement pour la partie signatures et création de modules. Les travaux entrepris semblent clairement aller dans cette direction afin de tout faire pour améliorer l’exploitabilité de l’outil.

Le code n’est pas encore disponible mais gageons que ce sera bientôt le cas (@ArsenicRats pour infos).

La présentation est disponible ici.

Auteurs du billet : Antoine Cervoise, Romain Leonard, Myriam Goupil, Jean Lacassagne, Geoffrey Bertoli, Sarah Bébon-Aubert, Yannick Fournel, relu par Isabelle Feetz.

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

, ,

Comments (0)

NoSuchCon – Jour 2

Keynote #2*

Thomas Lim

Thomas Lim est le fondateur et PDG de COSEINC, société d’expertise en sécurité informatique basée à Singapour. Il est également connu pour la création de la conférence de sécurité SyScan.

Thomas ouvre la seconde journée de la NoSuchCon en nous ramenant dans le passé avec un récapitulatif de l’histoire de la Chine et ses échecs. Cette introduction vise à poser le contexte politique de la Chine et comprendre l’intérêt que ce pays porte à la cyberattaque et la cyberdéfense, deux sujets suscitant l’intérêt des gouvernements du monde entier et traités lors du colloque sur la cyberdéfense au sénat ce 16 mai 2013.

Thomas Lim explique que les raisons de l’effort chinois pour exceller en termes de hacking peuvent se diviser en 3 catégories : politique, économique et militaire.

Politique d’abord pour lutter contre la volonté d’indépendance taïwanaise mais aussi par peur de la concurrence et de l’invasion japonaises. Le hacking permet ainsi au gouvernement chinois de garder un œil sur le contexte politique des pays environnants, ce qui rejoint la thématique économique. En effet, la Chine basant son modèle économique sur l’export, il devient impératif de surveiller le marché et l’éventuelle concurrence. Enfin, la maîtrise de la sécurité informatique s’inscrit dans le domaine militaire en appui au PLA, force militaire du parti communiste chinois.

Pour conclure, la présentation de Thomas Lim a permis, sur un ton humoristique, de mieux comprendre l’intérêt de la Chine pour la maîtrise de la cyberdéfense, suite au traumatisme, peut-être, de ses échecs passés.

« The Great Wall is the most useless piece of military hardware ever built » – Thomas Lim, NSC 2013.

BIOS Chronomancy

John Butterworth, Corey Kallenberg, Xeno Kovah[IFZ1]

Les différents auteurs sont chercheurs en sécurité au MITRE. John Butterworth et Corey Kallenberg sont spécialisés, en autres, dans le développement bas niveau et s’intéressent actuellement à la sécurité de l’UEFI au sein du BIOS. Xeno Kovah, spécialiste du noyau Windows est aussi le fondateur de http://opensecuritytraining.info, un site permettant des formations gratuites de sécurité informatique.

L’introduction de la présentation est axée sur le fait que toutes les sécurités du BIOS sont stockées dans son firmware et que ce dernier peut être mis à mal. La présentation se poursuit ensuite par une explication des terminologies suivantes : Trusted Platform Module (TPM), Platform Configuration Registers (PCR), Trusted Boot et Static Root of Trust for Measurement (SRTM).

L’acquisition de la ROM du BIOS est ensuite présentée, les méthodes proposées par les orateurs sont les suivantes :

  1. Lecture via les logiciels constructeurs;
  2. Lecture dans la puce du BIOS via des logiciels tiers ;
  3. Lecture physique de la puce BIOS.

L’analyse est ensuite assez complexe. L’orateur présente, par exemple, une analyse du BIOS d’un Dell Latitude E6400 connecté à un débugueur Arium CPU ainsi que le principal point de faiblesse du BIOS : la Platform Configuration Registers (PCR).

L’orateur détaille ensuite les conséquences d’une faible implémentation de la PCR pouvant modifier la majorité du BIOS E6400, sans modifier les données de la PCR. Il enchaîne ensuite sur la problématique principale de cette présentation, à savoir ce qu’implique le fait de pouvoir modifier n’importe quelle partie du BIOS, et ce sans limite.

La première démonstration débute par la vidéo du BIOS d’un DELL E6400 sans modification. L’orateur lance ensuite un exécutable qui modifie l’écran d’accueil. Un autre logo apparaît donc en lieu et place du logo du constructeur (DELL).

Après un bref redémarrage, l’exécutable est à nouveau lancé, puis un malware est injecté dans le BIOS de façon complètement transparente pour l’utilisateur.

La deuxième démonstration présente le malware « the flea ». On update le BIOS, le malware persiste. La technique consiste à modifier le nouveau BIOS pour lui réinjecter le malware déjà présent.

Les contre-mesures proposées par l’orateur sont les suivantes :

  • Nonce/Pseudorandom Number(PRN) ;
  • Read own data ;
  • Read own instruction and data pointers ;
  • Do all the above in millions of loop iterations.

L’orateur présente également des exemples de codes qui vérifient le checksum dont un qui prend en compte l’évolution en fonction du temps. Pour conclure, l’outil Copernic développé par les orateurs est présenté : il permet de lire le BIOS. Ils finissent la conférence en invitant d’autres chercheurs à creuser le sujet.

La présentation est disponible ici.

Who’d have thought they’d meet in the middle? ‘ARM Exploitation’ meets « Hardware Exploitation » Sharable memoirs from a very surprising last year

Stephen A. Ridley

Stephen A. Ridley a plus de dix ans d’expérience en matière de sécurité logicielle et en reverse engineering. Il est à la tête d’une petite équipe de chercheurs chez Accipiter Research où il dirige le développement des périphériques embarqués de sécurité.

Après une petite blague sur les Irlandais, Stephen A. Ridley nous présente brièvement son collaborateur (absent), Stephen C. Lawler, chercheur spécialisé dans l’exploitation kernel et logicielle qui s’est peu à peu tourné vers l’exploitation matérielle, notamment sur ce qui a trait à l’architecture ARM. Au sein de leur société, ils ont été amenés à donner beaucoup de formations pratiques sur l’exploitation et le reverse sur une plateforme ARM.

L’orateur nous explique que sa présentation parle de hacking matériel pour des hackers logiciels, car il utilise des failles matérielles pour comprendre, espionner ou modifier ce qui se passe au niveau logiciel. Un des axes d’attaque principal est la communication entre chaque microcontrôleur qui utilise très souvent des protocoles de communication standards comme le protocole « serial » des vieux ports série. On retrouve ce type de protocole un peu partout, notamment dans les équipements d’un réseau : modem, routeur, …

Il nous présente en détail son travail sur un modem filaire intégrant un serveur HTTP équipé d’une puce ARM Broadcom. La carte mère du modem présente 4 PIN en série qui permettent le débuggage du PC. Après fuzzing, les 2 collaborateurs arrivent à faire planter le serveur HTTP intégré. Comment étudier et exploiter ce bug ? Et surtout, avec quels outils ?

La présentation s’est alors orientée vers le sujet suivant : quels matériels/logiciels utiliser pour faire du reverse sur ARM ?

Les deux collaborateurs ont d’abord émulé ARM avec QEMU, mais au bout d’un certain temps, l’émulation ne leur suffisait plus. Ils ont donc cherché une architecture ARM idéale pour le développement, les téléphones portables n’incorporant pas les outils de développement nécessaires. Les Raspberry Pi, ARMini, … leur posèrent des problèmes de firmware, gênant la création d’une distribution Linux répondant parfaitement à leur besoin.

Après des mois de recherche, ils se sont finalement mis d’accord sur la plateforme Gumstix. Après une longue période de tests, ils ont créé leur ROM : une distribution Linux adaptée spécifiquement à leur usage, contenant tous leurs exploits et outils nécessaires à leurs travaux.

Ils ont ensuite développé une bibliothèque standard CROP (programmation orientée reverse) avec des fonctions permettant de contourner certaines protections matérielles comme le XN (protection contre l’exécution de certaines plages mémoire). Puis, pour améliorer la rapidité du développement des exploits, ils ont développé des classes Python simplifiant l’usage de leur « libc ».

La présentation s’est ensuite tournée vers la fabrication de diverses interfaces hardware permettant le débugage de la prise IPhone au port USB, en passant par la prise d’alimentation de n’importe quels périphériques. Ceci permet de remonter des informations sur les communications et d’étudier des vecteurs d’attaques logicielles.

Enfin, en dernière partie, l’orateur a parlé du projet Osprey ayant pour but la création d’un périphérique spécialisé dans la sécurité et l’exploitation matérielle. Le projet comprend évidemment le développement d’un firmware adapté ainsi que d’un logiciel pour PC communiquant avec ce dernier.

Le produit est censé répondre aux critères suivants :

  • Communiquant par RF (ZigBee, …) ;
  • Contenant une EEPROM et un emplacement Micro SD ;
  • Programmable, sans recourir à l’assembleur ;
  • Avec une faible consommation et un coût moindre (probablement quelques centaines de dollars US) ;
  • Avec une interface série afin de le relier à un PC ;
  • Avec une carte mère qui doit être conçue de façon extensible, de manière à pouvoir recevoir d’éventuelles cartes « filles » additionnelles.

Après avoir promu efficacement son projet, il conclut la présentation en soulignant que l’exploitation ARM est plus simple que l’on ne le pense et qu’il y a beaucoup de failles d’ores et déjà trouvées et à trouver dans les usages que l’on en fait. Pour finir, on n’en est qu’aux prémices de l’ère des architectures « Post PC ». Par ailleurs, il remarque que les matériels spécialisés pour la sécurité, comme Osprey, faciliteraient encore les exploits ARM…

On notera qu’à la question sur la diffusion des codes mentionnés lors de la présentation, et surtout celle des codes d’Osprey, Stephen a répondu qu’il ne comptait pas les diffuser gratuitement, mais plutôt les revendre.

Les slides sont disponibles ici.

Advanced Heap Manipulation in Windows 8

Zhenhua (Éric) Liu

Éric est un chercheur en sécurité chez Fortinet, au Canada. Il se concentre essentiellement sur l’étude des mécanismes de protection des systèmes d’exploitation afin d’y trouver des vulnérabilités et des façons de les exploiter.

Avec l’arrivée de Windows 8, de nombreuses méthodes de corruption de mémoire sont devenues inopérantes, notamment grâce à des corrections apportées au noyau de Windows 7 (amélioration de l’ASLR, tests d’intégrité du noyau…) mais aussi grâce à de nouvelles protections permettant de diminuer davantage le déterminisme (guard pages par exemple).

Pourquoi s’intéresser alors aux techniques permettant de manipuler le tas ? Éric justifie ce choix en citant Ben Hawkes : « Application Specific data attacking are the future », à savoir : pouvoir manipuler le tas. Le but recherché sera le dépassement de tampon sur le tas avec les données visées situées juste après, le tout sans provoquer le lancement du LFH (Low-Fragmentation Heap).

La première étape consiste à maîtriser le placement en mémoire d’un objet précis, en plaçant ce dernier juste derrière le tampon vulnérable. Cela est possible grâce à l’utilisation de FreeLists au niveau du noyau et dans le tas. En effet, les métadonnées des FreeLists sont vulnérables aux attaques et on peut prédire l’endroit où sera alloué le prochain bloc de mémoire. Il est donc possible de maîtriser la fragmentation du tas afin d’avoir deux blocs adjacents, dont la taille respective est égale à celle du tampon vulnérable et celle des données que l’on veut corrompre. Le débordement de tampon permettra alors de directement modifier l’objet en mémoire.

Il est possible de réutiliser cette méthode afin de modifier des données dans la mémoire du noyau (car les FreeLists y sont utilisées) en jouant sur l’allocation de nouvelles pages. En effet, si la recherche d’un bloc de mémoire libre échoue, une nouvelle page sera allouée possédant une taille, codée en dur, de 4096 octets. En forçant l’allocation d’une nouvelle page, on peut facilement la fragmenter de façon à obtenir deux blocs ayant les tailles désirées.

Pour finir, Éric présente un exemple d’attaque visant à modifier les données du _HEAP_USERDATA_HEADER en utilisant les méthodes vues précédemment, les principales difficultés étant la présence du LFH et des guard pages.

De nombreuses améliorations ont été réalisées depuis Windows 7 rendant inutiles la plupart des méthodes d’exploitation classiques. Cependant, d’anciens algorithmes encore utilisés (ici, les FreeLists) nuisent à la sécurité du système d’exploitation.

La présentation est disponible ici.

A hesitation step into the blackbox Heuristic based Web-Application Reverse-engineering

Fabien Duchêne, Sanjay Rawat, Jean-Luc Richier, Roland Groz

Fabien Duchêne est doctorant (Ph.D) au Laboratoire d’Informatique de Grenoble (LIG). Il a fondé la GreHack, une conférence en sécurité informatique à Grenoble. Sanjay Rawat est un chercheur postdoc à VERIMAG, basé à l’Université Joseph Fourier, également à Grenoble. Jean-Luc Richier est chargé de recherche au CNRS et membre du Laboratoire d’Informatique de Grenoble. Roland Groz est enseignant-chercheur et membre du Laboratoire d’Informatique de Grenoble.
Note : Seul Fabien Duchêne est présent lors de la NSC.

Fabien commence par souligner le fait que le reverse engineering a été effectué en blackbox, contrairement au classique reverse engineering qui sous-entend une étude en greybox.

Faire le reverse engineering d’une application Web permet de récupérer des informations sur le site et de les utiliser pour trouver des vulnérabilités et automatiser la génération d’exploit(s).

Par la suite, il dresse l’état de l’art du reverse engineering sur des Web appli et indique que sa contribution et celle de ses collègues consistent à des améliorations heuristiques de recherches existantes.

La méthodologie est la suivante : il crée un arbre de données (un modèle, trié par champ et par balise) à partir du contenu de la page Web (DOM). Il cherche ensuite à détecter les changements d’états dans l’arbre généré en regénérant le modèle de page récupérée après la validation d’un formulaire (suite à un POST/GET). Pour identifier la requête changeant d’état, un système de points a été créé (heuristique).

L’étude est agrémentée d’arbres et de graphes en couleur permettant de détecter si ce changement d’état a déjà eu lieu. Cet outil sera disponible en guise de POC (H-WAR) en Python et utilisera le DOM généré par Chrome pour analyser la sortie.

L’orateur poursuit avec une comparaison entre Wget, Wapiti, w3af, Skipfish et leur outil, H-WAR qui arrive en 1ère place dans la couverture du code par rapport aux autres.

Son outil s’en sort également bien dans l’évolution de la couverture (nombre de requêtes). En effet, H-WAR ne semble pas effectuer de trop nombreuses requêtes, contrairement à certains outils.

Son POC peut-il servir à des pentesters ? Globalement oui, selon lui, cela faciliterait la détection des injections (LFI, XSS, etc.) et il permettrait également d’effectuer plus rapidement le test d’intrusion.

Il conclut en expliquant qu’il est possible de coupler la sortie de H-WAR à H-FUZZ qui se chargerait du fuzzing. Testé sur Gruyère, un site intentionnellement vulnérable fourni par Google, le couple H-WAR + HFUZZ s’avère plus efficace que H-WAR + w3af.

Les slides de présentation ne sont pas disponibles, suite à une demande directe de l’orateur

Corroding Immobilizer Cryptography

Karsten Nohl

Karsten est un cryptographe et chercheur en sécurité travaillant chez Security Research Labs. Son activité consiste principalement à tester les mécanismes de sécurité des systèmes propriétaires.

Sa présentation porte sur les « immobilizers », des systèmes anti-démarrage pour voiture, matérialisés par une puce présente au sein des clés de voiture. Ces puces jouent le rôle de token dans le processus défi-réponse entre le contrôleur de la voiture et la clé. Introduit à la fin des années 1990, ce système aurait permis de réduire le nombre de vols de voitures aux États-Unis.

Le marché est dominé par trois technologies : DST 40 (Texas Instruments), Hitag 2 (Philips, NXP) et Megamos (EM Micro).  Malgré leur position dominante, ces technologies sont vulnérables à des attaques comme le brute force (smart ou non), la cryptanalyse ou la duplication. Les protections de ces mécanismes sont souvent insuffisantes et sont de plus en plus exploitées. Pour illustrer cela, Karsten explique que les Smartphones, réputés peu sécurisés, possèdent de meilleures protections que les contrôleurs des voitures.

Le niveau global de sécurité des voitures est faible, les technologies les plus répandues souffrent de défauts de conception et ne respectent pas les bonnes pratiques établies depuis plusieurs années. De plus, les fabricants ajoutent toujours plus de fonctionnalités qui ont besoin d’être protégées (Remote Assistance, WiFi…) alors que celles-ci reposent souvent sur le contrôleur de la voiture, réputé peu fiable.

Karsten conclut en prédisant une forte augmentation du hack de voiture étant donné leur faible niveau de protection et leur surface d’attaque très large. Il conseille aux fabricants de garder les voitures simples au niveau technologique ou d’investir afin d’améliorer la conception de leurs systèmes.

La présentation est disponible ici.

Taint Nobody Got Time for Crash Analysis

Richard Johnson & pa_kt

Richard Johnson est un spécialiste en sécurité américain qui a passé de nombreuses années à travailler sur l’analyse de vulnérabilités logicielles. Il est actuellement directeur de l’équipe de recherche de vulnérabilités chez Sourcefire. Il intervient avec un orateur Polonais surnommé PA_KT (« Packet »), annoncé simplement comme un collaborateur du projet.

Cette présentation porte sur des outils permettant d’automatiser l’analyse des bugs logiciels pour en faire ressortir les éventuelles failles de sécurité. Dans un premier temps, ils ont recherché un outil permettant d’extraire les éléments utiles de la masse d’informations récupérées lors de l’exécution du programme. D’après les orateurs, parmi les outils existants, il n’y a rien d’assez bien automatisé pour pouvoir être utilisé efficacement. Ils ont donc créé un outil basé sur BAP (Binary Analysis Platorm) permettant de tracer les points (notamment les entrées/sorties) précédemment sélectionnés lors de l’exécution.

Une fois les données extraites, vient l’étape du « Trace Slicing » consistant à créer des arbres entre les dépendances présentes entre les variables. Cela permet de déterminer quelles variables influencent quelles autres.

Ensuite, vient l’étape de la « symbolic execution » qui consiste à exécuter des instructions, sans utiliser de valeurs concrètes pour les variables. On a donc, à la place des sorties standards, une formule correspondant à la valeur de sortie en fonction des variables d’entrée. La solution des formules est ensuite calculée à l’aide d’un « SMT solver ».  Ceci permet, dans l’arbre créé au « Trace Slicing », d’exclure les branches dans lesquelles il n’y a plus rien d’influencé par les entrées qui nous intéressent.

Une fois cette procédure effectuée, les feuilles de l’arbre restantes représentent les actions exécutées par le programme qui ont été injectées par nos entrées malveillantes : cela met donc en évidence les failles.

Après un rapide retour sur la fiabilité de cette méthode, qui nous est décrite comme étant très souvent efficace tout en contenant cependant quelques faux positifs, les orateurs ont conclu sur le fait que la valeur d’un bug est directement liée à notre capacité à l’analyser et que, par conséquent, ce type d’outils avait de l’avenir…

On notera que cette présentation était censée être accompagnée de plusieurs démonstrations de l’outil permettant de mieux comprendre son fonctionnement mais un défaut d’adaptateur VGA en a empêché le déroulement.

La présentation est disponible ici.

Transporting evil code into the Business: Attacks on SAP TMS

Juan Perez-Etchegoyen

Juan Perez-Etchegoyen est directeur de la technologie chez Onapsis. Il est responsable des équipes de Recherche et Développement. Il a également participé activement à la coordination et à la recherche de vulnérabilités de sécurité critiques dans les applications ERP et infrastructures telles que SAP ou Oracle. Juan possède une vaste expérience dans le domaine de la sécurité de l’information, l’implication dans une grande recherche, les tests d’intrusion, l’évaluation de la vulnérabilité et les projets de mise en œuvre en matière de sécurité, entre autres.

Après un rappel de SAP et de son utilisation dans les entreprises (les plus grandes compagnies dans le monde l’utilisent), l’orateur présente les risques en cas de compromission d’un SAP, à savoir : espionnage, sabotage et fraude. Globalement, en cas de compromission d’un SAP, une perte d’argent pour la société compromise est immédiatement remarquée. 95% des SAP audités peuvent être compromis sans avoir à en connaître les credentials. Transport Management System (TMS) n’est pas installé par défaut. Utilisé par/pour le business, il doit être customisé pour chaque business en particulier. Toutes les informations sont dans des bases de données, le but est donc de prendre la main sur la DB.

Les systèmes SAP sont généralement interconnectés entre les différentes équipes (DEV, PRD et QA). Les connecteurs créés sont connectés à tous les systèmes dans le même domaine de transport (full-mesh).

Rapport à l’authentification (TMS authentification), il s’avère que l’utilisateur standard (TMSADM) est de type SYSTEM par défaut avec un password par défaut « PASSWORD ». Les nouveaux standards préconisent « $1Pawd2& ». L’utilisateur « Admin » possède un certain de nombre d’autorisations par défaut qui autorisent le debug, l’accès au système de fichiers, etc.

Les contre-mesures consistent à changer le mot de passe standard pour chaque système (PRD, QA et DEV), ne pas configurer de droits inutiles et risqués pour des utilisateurs qui n’en ont pas besoin et enfin implémenter les recommandations de SAP relatives à la sécurité.

Un espace d’échange de données implémenté par des répertoires partagés SMB ou NFS (le plus souvent) est utilisé par les systèmes SAP : Common Transport Directory (CTD). Sur la production (PRD), le CTD est souvent hors scope car il est généralement « sécurisé ». Sur la plateforme de développement (DEV), le CTD n’est généralement pas considéré comme contenant des données sensibles, par conséquent, les contrôles d’accès sont plus souples et les fonctionnalités de sécurité sont rarement mises en place. Un attaquant a donc plus de chance d’exploiter les applications SAP.

DEV et QA sont généralement de bons pivots car ils sont liés PRD et partagent les mêmes mots de passe. La contre-mesure préconisée est de sécuriser tous les systèmes SAP comme s’ils étaient en production.

Les requêtes de transport représentent les données qui passent d’un système SAP à un autre. Toutes les requêtes de transport sont stockées dans le CTD dans deux fichiers : « data » et « cofile », ce dernier contenant les journaux d’activités des requêtes de transport.

Les requêtes de transport ne sont pas chiffrées, mais compressées. L’entête est en clair, la date, l’utilisateur et la version sont disponibles. Le reste est sous forme de code binaire. Une fois décompressé, il s’avère que le protocole est du texte brut. Il est à noter qu’un checksum (CRC32) est présent. Il est donc possible de générer des transports malveillants qui peuvent être passés de système SAP en système SAP contenant du code malveillant : création d’utilisateurs, backdoor ou autres.

Les contre-mesures préconisées par l’orateur sont d’analyser toutes les requêtes de transport avant qu’elles ne soient importées dans le système PRD. Il est évident que mettre en place un tel système est relativement lourd et complexe.

Un binaire utilisable en ligne de commande, appelé TP, peut également être appelé en remote via la passerelle. Si les contrôles d’accès ne sont pas mis en place, il est possible d’importer n’importe quel transport de requêtes en production. Les contre-mesures consistent à sécuriser la passerelle SAP en n’autorisant que des systèmes sûrs afin de démarrer des serveurs tels que le serveur TP. Il est à noter que depuis peu, la passerelle est sécurisée par défaut.

L’orateur souligne le fait qu’il est possible de journaliser les changements de table, les exécutions de transports, les commandes TP, ce qui faciliterait les analyses en cas d’intrusion.

Il conclut en récapitulant les risques encourus si le SAP n’est pas sécurisé. Il recommande à nouveau de sécuriser tous les systèmes SAP comme s’ils étaient tous destinés à la production, de mettre à jour toutes les solutions SAP et d’appliquer les notes de sécurité rédigées par SAP.

On regrettera que les démonstrations n’aient pas pu être présentées suite à des problèmes techniques. Cependant, l’orateur a présenté avec brio les vulnérabilités ainsi que les recommandations associées.

La présentation est disponible ici.

Auteurs du billet : Myriam Goupil, Antoine Cervoise, Pierre Le Calvez, Yann Gascuel, Alexis Grancher, Grégory Charbonneau, relu par Isabelle Feetz.

1 Star2 Stars3 Stars4 Stars5 Stars (0 vote)
Loading ... Loading ...

, ,

Comments (0)

Le Groupe Devoteam | Devoteam International | Devoteam Jobs | Devoteam Consulting
| Devoteam Opérations | Devoteam Solutions | Devoteam Blog | Devoteam Finance

Devoteam Blog, specialist talk point : Welcome !

Authorize

Lost Password

Register

Please contact the administrator.