7-8 Novembre – Conférences

Keynotes

Keynote 1 : Gestion opérationnelle de la sécurité logicielle sur la plateforme Facebook par Alok Menghrajani

Présentation qui portera sur l’aspect opérationnel de la gestion de la sécurité logicielle chez Facebook.

Keynote 2 : From Pay-TV to cyber security par Olivier Brique

Nous parcourrons l’historique sécuritaire du Groupe Kudelski dans le domaine de la Pay-TV, avec quelques exemples d’attaques survenues et les contre-mesures mises en œuvre. Puis nous verrons comment les solutions et compétences développées peuvent s’appliquer à une palette plus large d’applications, au-delà de la sécurisation de contenus audio-visuels.

Conférences

C_1 – OWASP Top 10 Mobile, risques et solutions par Sébastien Gioria
Langue : Fr

Présentation du projet autour des risques mobile de l’OWASP. Cette présentation s’attellera à présenter des risques génériques sur les différentes plateformes (IOS, Android, Windows, RIM, …) et n’est en aucun cas une présentation focus sur une plateforme.

C_2 – Node.js Security – Old vulnerabilities in new dresses par Sven Vetsch
Tech Track
Langue : En

New technologies are a good thing as they drive innovation. Especially in the web world, innovation is what lead to todays popularity of Sites like Google, Twitter and Facebook. Regarding security, new technologies also come with the possibility to avoid known security issues already in the design of a technology or for example a new programming language. Unfortunately most of the time, security is not a main focus and therefor also known faults are done over and over again. In addition to this, new technologies also tend to invent new vulnerability classes or at least open new ways to exploit known security issues.
In this talk I’ll take as a practical example the Node (Node.js) project which allows server side non-blocking JavaScript development. It’s great to have the same language for the frontend as for the backend as it makes things much easier to connect and also the frontend and backend developers can better understand each others work. Many people still think about JavaScript as static *.js files somewhere in a web accessible directory which is not security relevant as it’s static. This is simply not the case. In the past there where already a lot of reported security problems in JavaScript so the question is: Will those problems also affect Node? I will answer this and more questions during the talk but be assured, we’ll end up with a reverse shell ;)

C_3 – Initiation à la sécurité des Web Services par Sylvain Maret
Langue : Fr

Avec l’expansion des services en lignes via le cloud ou tout simplement l’interconnexion des SI, le besoin d’exposer des services vers l’extérieur est croissant. Les WebServices sont une solution
maintenant éprouvée depuis longtemps pour répondre à ce besoin.
Que l’on utilise SOAP ou REST un problème se pose toujours : comment faire pour sécuriser l’accès à mon SI alors que j’en ouvre une porte en exposant mon métier ? Cette conférence tentera de répondre à ces questions en présentant des cas concrets d’implémentation.

C_4 – OAUTH : un protocole d’autorisation qui authentifie ? par Maxime Feroul
Tech Track
Langue : Fr

“Sign-in using your facebook, google, linked-in or twitter account…”
Porté notamment par les grands acteurs des réseaux sociaux, Oauth est devenu un standard difficilement contournable dans le paysage de la fédération d’identité.
Authentifier c’est s’assurer qu’une entité est bien celle qu’elle prétend être. Oauth, quant à lui, se définit comme un “framework” d’autorisation permettant à des applications d’accéder aux données d’un utilisateur en lui demandant sa permission.
Pourtant un usage important (Sign-in) semble être l’authentification…

Simple question de sémantique ? Ou réelle subtilité, qui mal comprise, pourrait nous conduire à de mauvaises implémentations ?

En ayant a cœur de répondre à cette question, cette présentation propose de regarder “sous le capot” de ce protocole. De Oauth 1.0 a Oauth 2.0 comment est-ce que cela fonctionne ? est-ce vrai qu’un token d’accès Oauth peut être réutilisé pour “usurper une identité” ? Et par rapport à SAML & OpenId : est-ce différent ou complémentaire ?

C_5 – Sécurité des applications web, analyse technique vs. analyse contextuelle par Matthieu Estrade
Langue : Fr

La sécurité informatique et en particulier la sécurité des applications web est un sujet abordé le plus souvent par l’expertise technique.
Cette expertise requise pour gérer au quotidien les menaces web est assez élevée et est souvent dispersée au sein de l’entreprise.
Cependant, il existe au quotidien énormément de domaines dans lesquels la sécurité et l’analyse des risques ne repose pas sur cette expertise mais sur une analyse contextuelle.
Nous verrons comment ce genre d’analyse peut s’adapter, via de nouveaux moteurs de détections d’intrusions, aux applications web et peut permettre d’analyser et comprendre une menace sans se baser sur des éléments techniques.

C_6 – Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
Langue : Fr

Vous hébergez des applications Web et votre défense se limite à un coupe-feu réseau. Cependant, une grande partie des attaques sont menées directement via le protocole HTTP et l’utilisation d’un coupe-feu traditionnel s’avère inutile.

Le coupe-feu applicatif Web (Web Application Firewall, WAF) se veut une solution à cette problématique. La présentation, basée sur mon expérience des dernières années, fait le point sur les diverses utilités de cette technologie :
Les choix d’implémentations. Les diverses modes de fonctionnements. L’importance et le choix des types de règles à implémenter. Rapports et collection des alertes. Méthodologie de développement de règles. Bonus: Contournement de règles et exceptions.

Le logiciel Open Source ModSecurity sera utilisé comme exemple ainsi que les règles OWASP CRS. D’autres règles conçues pour la présentation seront aussi présentées dans le but de démontrer une utilisation sur mesure du WAF.

C_7 – Cybercrime to Information Warfare & “Cyberwar”: a hacker’s perspective par Raoul Chiesa et Ioan Landry
Langue : En

This presentation will analyze the Information Warfare scenarios, technical and legal backgrounds, highlighting as well the importance of the terminologies and bringing to the audience real-life examples and known incidents. The last part of the talk will focus on two theorical case studies and on one, very special, theorical case study.

C_8 – Analyse de la sécurité Dropbox par Nicolas Ruff / Florian Ledoux
Tech Track
Langue : Fr

Dropbox is an online file storage service with at least 50 million users as of October 2011 (source: Forbes). Company market value is estimated over $4 billion. Dropbox is now widely used by mobile workforces for sharing corporate data, as Dropbox started to provide a commercial “team” edition for storing up to 1TB of data “in the Cloud”.

Dropbox is a mash-up of several Cloud services (including Amazon Storage), therefore Dropbox “externals” are relatively well-known.

In this paper, we plan to expose Dropbox software internals, protocols, and even worse: security issues. Several alerts were raised in year 2011 (as related on Bruce Schneier’s blog), but nobody really took care to look “under the hood” as deep as we did.

Dropbox users, as well as the forensics community, will benefit from this analysis.

C_9 – Contourner les conditions d’utilisation et l’API du service Twitter par Nicolas Seriot
Tech Track
Langue : Fr

Twitter a décidé qu’à partir de mars 2013 les requêtes à ses services web devraient être dûment signées, se réservant ainsi la possibilité de refuser l’accès aux applications qui ne respectent pas ses nouvelles conditions d’utilisation, particulièrement restrictives.

Si cette décision peut trouver des justifications commerciales, elle est techniquement discutable. Nous montrerons comment un client Twitter peut tromper ou contourner l’authentification OAuth. Ce client peut alors s’affranchir des conditions d’utilisation, supprimer la publicité et afficher les messages à sa guise sans que Twitter n’y puisse rien.

C_10 – Un outil d’intrusion sur le poste de travail du développeur: quelles opportunités? par Vitor Meireles
Langue : Fr

L’objectif de la présentation est de faire découvrir aux développeurs l’utilisation basique d’un proxy intrusif afin de les inciter à en utiliser lors de leurs phases de développement et de vérification. Les équipes sécurité seront également. Les aspects suivants avec exemples seront entre autres abordés:

- Pourquoi est-ce que le développeur est l’utilisateur cible de ZAP?
- Pourquoi est-ce qu’un développeur effectuerait lui-même certains tests et quels sont les désavantages de les effectuer soit-même?
- Les fonctionnalités et possibilités de base (interception, modification, etc).
- Possibilités plus avancées (p.ex: automatisation des tests) seront abordées avec explication et illustration.
- Pourquoi est-ce que les développeurs et leurs équipes sécurité s’orienteraient vers ZAP plutôt qu’un autre proxy?

Afin de permettre aux développeurs mais également aux équipes de sécurité de comprendre dans quelle optique ZAP peut leur apporter une valeur ajoutée dans leurs domaines respectifs.

C_11 – Obfuscator, ou comment durcir un code source ou un binaire contre le reverse-engineering par Pascal Junod / Jean-Roland Schuler
Tech Track
Langue : Fr

Le projet Obfuscator, mené conjointement par des équipes de l’HEIG-VD et de l’EIA-FR, vise à explorer des techniques de durcissement de logiciel, sous forme de code source ou d’exécutable, contre le reverse-engineering. Le but de cette présentation est de décrire les résultats obtenus. Cet exposé sera structurée en plusieurs parties:
- Rapide présentation de la problématique de la sécurité du logiciel par rapport au reverse-engineering;
- Description de quelques techniques d’obfuscation implémentées sous forme de “passes” pour le compilateur LLVM (substitution de code, injection de branchements factices, applatissement de code, …), et présentation des résultats obtenus ainsi que des difficultés rencontrées.
- Présentation de quelques techniques d’obfuscation de binaires pour processeurs ARM. Méthodes d’insertions de code dans un fichier binaire au format ELF. Présentation de méthodes d’obfuscation sur processeur ARM avec leurs particularités d’implémentation.

C_12 – Opa: sécurité et utilisation sécurisée d’un framework Javascript pour entreprises par Alok Menghrajani
Tech Track
Langue : Fr

Opa fait partie de la nouvelle génération de plates-formes libres de développement d’applications web, basées sur Javascript. Spécialement conçues pour répondre aux besoins des entreprises, Opa se démarque entre autres par une prise en charge intégrée de la sécurité de l’application.
Cette session aura pour objectif de parcourir les différentes fonctions offertes par Opa et leur bénéfice pour l’entreprise.

C_13 – APIs Mobile et Cloud : challenges sécuritaires et éléments de réponse par Philippe Leothaud

Langue : Fr

Aujourd’hui, de plus en plus d’entreprises veulent tirer parti de l’informatique mobile, des réseaux sociaux, et du cloud computing afin de générer de nouveaux revenus, d’interagir avec leurs clients et partenaires existants, tout en réduisant les coûts.

Pour cela, les différentes organisations veulent pouvoir exposer leurs services existants, souvent critiques, et étendre leur infrastructure informatique en mettant en place des APIs REST/JSON, de façon à rendre plus agile leur SI, gage d’adaptation rapide et peu coûteuse à l’évolution actuelle et future de l’IT.

Si dans le contexte actuel de réduction des coûts d’exploitation et d’accélération de la réduction du Time To Market cette volonté est compréhensible, ces changements de paradigme, SOAP vers REST, “on premise” vers “in the cloud”, ne vont pas sans poser quelques problèmes en termes de sécurité (au sens large).

Nous verrons ici quels sont ces problèmes, et quels éléments de réponse techniques (OAuth, API Keys, etc.) et organisationnels (mise en place d’API Servers, p. ex.) nous pouvons apporter pour aller vers ces technologies sans sacrifier la sécurité.

C_14 – Mimikatz par Benjamin Delpy
Tech Track
Langue : Fr

Présentation de l’outil mimikatz et des techniques utilisées pour récupérer des données d’authentifications Windows (mots de passe, hashes, certificats, …)
– Faiblesse des gestionnaires de sécurités TsPkg, WDigest, LiveSSP, Kerberos, MSV1_0, …
– Secrets d’authentification Windows
– CryptoAPI et CNG

C_15 – Le développement d’applications sécurisées avec Android par Johan Leuenberger
Tech Track
Langue : Fr

Les plateformes mobiles prolifèrent et sont maintenant utilisées pour accéder à toutes sortes de données, dont certaines assez sensibles (par exemple bancaires). Les Smartphones deviennent logiquement une cible pour les “hackers”.

La plateforme Android largement majoritaire, n’a pas été initialement conçue en mettant en avant la sécurité, ce que Google tente peu à peu de corriger. Les menaces sur le système Android sont nombreuses.

En particulier, les applications développées en Java puis ensuite distribuées sous forme de bytecode offrent peu de résistance au “reverse engineering” et les solutions d’obfuscation (comme Proguard) restent limitées.
Dans le même temps, la publication d’applications sur le Google Play Store n’est pas soumise à validation comme par exemple dans l’Apple Store. Les applications mal intentionnées ne sont retirées qu’après coup. Dans ce contexte, les hackers peuvent alors tranquillement étudier le comportement interne d’une application, la copier, lui injecter du code malicieux, la republier puis attendre qu’elle opère jusqu’à ce qu’elle soit retirée.

Si les mécanismes de sécurité Android sont encore incomplets, l’ouverture de la plateforme offre, en revanche, de nouvelles possibilités très intéressantes. En utilisant judicieusement ces dernières, il devient possible de diminuer drastiquement la surface d’attaque, notamment dans le contexte de la menace précitée.

La présentation décrira et illustrera la liste de mesures que nous avons mises en oeuvre pour protéger notre application d’authentification forte. Nous montrerons dans notre exposé comment obtenir une application unique pour chaque utilisateur et comment la lier fortement au hardware de manière à rendre la copie et la modification fortement improbables. Les techniques que nous présenterons sont innovantes et encore peu utilisées… mis à part par certains malwares avancés.

C_16 – Theory vs Practice in implementing Software Security related activities par Simon Blanchet
Langue : Fr

This talk will discuss some key Software Security related activities and highlight some challenges in implementing them in real life (theory vs practice). Some of the topics covered:

- Application Security vs Software Security
- Project-driven vs Application-driven approaches
- From IT Security to Information Security to Software Security (evolution in our field)
- Coping with the demand / prioritization
- OpenSAMM / BSIMM / Security Touchpoints
- Post pentesting
- IT stakeholders (Project Managers, Developers, …) vs Software Security Specialists

C_17 – Hash-flooding DoS reloaded: attacks and defenses par Jean-Philippe Aumasson / Martin Boßlet
Tech Track
Langue : Fr

At 28c3, Klink and Waelde demonstrated that a number of technologies (PHP, .NET, Ruby, Java, etc.) remained vulnerable to the decade-old hash-flooding DoS attacks. These attacks work by enforcing worst-case insert time in hash tables by sending many inputs hashing to the same value (a “multicollision”). Many vendors fixed the issue by replacing the weak deterministic hash function with stronger and randomized hash functions. In this presentation, we will show examples of such stronger randomized hash functions that fail to protect against hash-flooding, by presenting “universal multicollision” attacks based on differential cryptanalysis techniques. We will present demos showing how to exploit these attacks to DoS a Ruby on Rails application, as well as the latest Java OpenJDK; two technologies that chose to “fix” hash-flooding by using the MurmurHash hash functions. Finally, we will describe a reliable fix to hash-flooding with the SipHash family of pseudorandom functions: SipHash provides the adequate cryptographic strength to mitigate hash-flooding, yet is competitive in performance with the non-cryptographic hashes.

C_18 – Audit d’applications iOS par Julien Bachmann
Tech Track
Langue : Fr
La sécurité des applications mobiles devient de jour en jour un point plus préoccupant et ce n’est pas une idée sortie d’un Magic Quadrant Gartner, mais bien une réalité que nous pouvons voir lors de nos missions.

Cette présentation a pour but de partager notre expérience sur le sujet des audits d’applications iOS. La première partie va consister en une revue rapide de l’architecture des terminaux iOS: processeurs ARM, simulateur et les modèles de distributions des applications. Bien entendu, comme il faut savoir quoi chercher avant d’étudier la façon de le faire, nous allons passer en revue les vulnérabilités impactant ce type d’applications.

Suite à cette introduction, l’environnement à utiliser va être présenté. En effet, pour beaucoup, les plateformes OSX et iOS restent une boite noire et on peut se poser des questions telles que “puis-je utiliser le simulateur?” et “est-ce que Apple distribue des outils permettant de m’aider?”. En utilisant ces outils nous allons voir comment procéder à une récolte d’informations sur l’application, c’est à dire ses fichiers companions, les bundles, etc. Nous expliquerons également comment extraire les informations stockées dans le KeyChain, le magasin de secrets d’iOS.

L’analyse de l’application elle-même ainsi que ses échanges avec des web-services sera ensuite abordée. Nous verrons comment procéder à une analyse statique et dynamique et tenterons de répondre aux questions telles que “comment extraire les définitions des classes?” et “mais où sont les xrefs?!”. La présentation finira sur une méthode d’instrumentation de processus, à l’aide d’un debugger ou du hooking de méthodes Objective-C, permettant de contourner des cas spécifiques comme celui où les communications ne peuvent pas être interceptées dû à une couche de chiffrement supplémentaire.

C_19 – Sécurité des infrastructures critiques: risque systémique chez les Télécom par Franck Franchin

Ces deux dernières années ont été riches d’évènements qui ont marqué les esprits sur la sécurité des infrastructures critiques : malwares Stuxnet, Duqu ou Flame, pannes géantes chez Orange et chez O2, nombreuses attaques sur les systèmes logiciels de pilotage des réseaux de distribution d’eau aux Etats-unis, etc…

Que ces défaillances aient pour origine des actions malveillantes ou des bogues informatiques, le risque d’une panne systémique s’accroît avec la complexité des systèmes mis en oeuvre, leur charge opérationnelle mais aussi la baisse de leur ‘bio-diversité’, en particulier logicielle. En effet, dans la plupart des industries dites ‘critiques’, les fournisseurs de systèmes ont vécu des phases de consolidation depuis une vingtaine d’années, ce qui a abouti à un marché dominé dans chaque secteur par une poignée d’acteurs. Ces solutions, fournies plus ou moins sous forme de boîtes noires, mêlent de bric et de broc applications métiers propriétaires, couches logicielles plus ou moins standardisées (message queueing, transactionnel synchrone ou asynchrone, web applicatif, RDBMS), systèmes d’exploitation standard, boîtes noires ou grises et siliconware. La notion de système n’est présente qu’au niveau fonctionnel. La sécurité applicative a donc rarement été prise en compte lors de la conception globale de ce système. Elle est implémentée sous forme d’îlots ou de couches, sans réelle politique de sécurité globale ni vision cohérente ou transverse. Par exemple, les applications ne s’authentifient presque jamais entre elles et s’échangent des messages dont l’origine, le format et le contenu sont rarement vérifiés. Certains fournisseurs confondent sécurité et résilience et proposent une ‘simple’ haute disponibilité très élevée grâce à la redondance. Une base de données compromise par injection SQL restera probablement compromise lors de sa restauration. Une sonde, même applicative, ne pourra que difficilement détecter une attaque par injection de messages “métiers” malformés.

Aujourd’hui, la plupart des failles de sécurité proviennent de composants applicatifs compromis ou défaillants qui génèrent eux-mêmes des informations entraînant par effet domino (ou papillon ?!) la défaillance d’autres composants logiciels. Les pannes récentes chez les opérateurs de télécoms montrent qu’il est nécessaire d’évaluer avec justesse les SFPs (Single Point of Failure) et de mettre en place des procédures spécifiques pour éviter toute panne systémique.

La présentation sera bâtie sur l’analyse de plusieurs exemples de pannes systémiques (HLR, DNS, signalisation, etc.)

C_20 – La gestion des risques humains en entreprise par Stéphane Koch

On peut arriver à sécuriser des “systèmes” avec une certaine efficacité, en définissant des règles et en gérant un certains nombre de paramètres techniques, mais il n’en va pas de même avec l’humain… La gestion du facteur humain dans les risques qu’il induit au niveau de la sécurité des systèmes d’information, et respectivement de la protection du patrimoine informationnel et réputationnel de l’entreprise, est généralement sous-estimé… Et de plus en plus difficile à gérer dans le contexte économique et social actuel.

La relation entre un employeur et un employé est similaire à une histoire de couple. On peut dire que “métaphoriquement” un employé est “pacsé” avec son entreprise. Lorsque l’un se sent trahi, il y a des chances qu’il trahisse à son tour. Prenez l’affaire des employés de banque dénoncés par leurs employeurs. Il y a des risques qu’ils livrent leur banque en retour. Surtout quand l’actualité démontre que cette “trahison” peut être des plus profitables… On peut verrouiller la technique, mais pas l’humain. Une étude de KPMG sur la question, démontrait que, suite à un audit réalisé auprès d’experts en informatique, 66% d’entre eux pourraient travailler pour le côté obscur de la force s’ils s’estimaient mal considérés ou pensaient qu’ils allaient se faire licencier.

Il est donc primordial de se poser la question de savoir comment intégrer le facteur humain dans la sécurisation des données. Comment est-ce qu’on sécurise l’humain? Tant à l’intérieur qu’à l’extérieur de l’entreprise.. La gestion de la relation de confiance entre l’employé et son employeur, de même que la sensibilisation des employés à ce type de risque est devenu un élément central.

Contact et informations supplémentaires
Pour toute information supplémentaire concernant le Forum, merci de contacter directement le team d’organisation à l’adresse: 2012@appsec-forum.ch