SSTIC 2014 - Jour 2
Allez on est reparti !
(Si je dit une connerie, hésitez pas à lâcher un commentaire pour que je corrige ça )
Edit: j’ai regardé, j’ai pas vu grand monde blogguer
JavaCard
Par Guillaume Bouffard Jean-Louis Lanet
Hop, un rappel sur le fonctionnement des JavaCard. Bon en gros, c’est comment depuis du code Java non-privilégié, prendre la main sur la JavaCard elle même. On commence par une bonne vieille escalade de privilèges Java. En suite on profite de cet accès pour dumper la ram de la JavaCard, et on y trouve des surprises. Une table d’adresses, une fonction en code natif, On peut donc se demander si ya pas moyen d’exécuter du code natif sur la carte par ce biais. Il faut donc poser un shellcode dans le code Java, trouver l’adresse mémoire du shellcode, modifier la table d’indirection pour rediriger sur le shellcode et appeler la méthode native. Bon ça c’était les rappels, du coup pour SSTIC 2014, on à droit à l’ensemble des cartes du commerce du moment sur lesquelles les auteur testent leurs attaques… bah en bidouillant un peu ça marche (parfois).
Fuzzing USB
par Fernand Lone Sang et Jordan Bouyat
Le fuzzing usb sur machine virtuelles, c’est bien sympa, mais ça permet pas de jouer avec autre chose qu’un OS, genre des imprimantes, box adsl etc… On à droit à une recap sur le fonctionnement de l’USB, les techniques de fuzzing existante, puis le travail de l’orateur. Du coup ils se sont intéressé au facedancer et à comment ajouter un watchdog pour détecter les crash. Le watchdog fonctionne comme sur les tools codenomicon, il joue une séquence de paquet pour vérifier si la cible répond toujours. Ils ont normalisé en pcap le trafic USB pour pouvoir le rejouer comme il faut en se substituant soit au client, soit au serveur. avec en bouquet final un crash sous windows 8.1 :] ne dit on pas que quand ça plante, c’est parce que c’est fait par un stagiaire 😉 du coup l’orateur freeze en live son PC.
Bootkit
par Samuel Chevet
Bon avant de parler bootkit, faut causer des rootkits contre lesquels de nombreuses techniques de protection existent comme pageguard, la signature des drivers etc. On à un récap de la séquence de boot d’un windows, du bios à winload. Beaucoup de malwares utilisent des techniques type bootkit. Tout les bootkits existants scannent un pattern spécifique pour trouver ou poser un hook permettant en suite le fonctionnement du rootkit. Du coup c’est pas portable d’une version sur l’autre de windows. L’auteur trace donc l’exécution de la séquence de boot avec le mode 8086 du cpu jusqu’a bootmgr. Après en mode protéger, l’auteur utilise des breakpoint hardware pour tracer le passage du mode réel en mode protégé. Puis en jouant sur les ring cpu, l’orateur passe winload en ring 1, et exécute un mini-hyperviseur en ring0 pour contrôler l’exécution de winload. Du coup, pas de pattern matching, pas de hook, pas de modifications, que de la virtu et du debug, du coup ça marche sur plein de versions sans casser la chaine de confiance du secureboot microsoft (bravo !).
Intégrité sur les Hyperviseurs
par Benoît Morgan, Eric Alata et Vincent Nicomette
Bon, comment protéger un hyperviseur face à des attaques matérielles, typiquement la carte réseau compromise ? Comment faire des tests d’intégrité sur cet hyperviseur pour s’assurer qu’il à pas été modifié par un bootkit ou une attaque DMA et cie ?
Pour faire ça, les auteurs utilisent un FPGA sur PCIe pour accéder à la mémoire en DMA et aller contrôler l’intégrité de l’hyperviseur. En se basant sur Ironhide et Milkymist.
Mainframes & Sécurité
par Stéphane Diacquenod
La seule partie immuable dans l’évolution des mainframe, c’est la compatibilité au niveau binaire, maintenue depuis 50 ans. Sinon tout le reste à beaucoup évolué. La virtualisation est aussi au menu depuis très longtemps. z/OS possède deux environements, MVS et OMVS aka USS, un unix tournant sur z/OS. L’intéret d’OMVS, c’est de fournir TCP/IP au mainframe. coté sécurité, les password c’est max 8 caractères, et les caractères spéciaux ça dépend de la locale installée, du coup bah c’est souvent de l’alphanumérique. Et pi pas de sel sur les hash. Un utilisateur lambda va avoir par défaut un accès en lecture à la base et pourra faire tourner un JTR sur les hash (oups!). Coté mémoire c’est zarbi, ya des zones réservés jusqu’a 24 bits: la ligne, avec les évolutions on a des zones supplémentaires jusqu’a 31 bits: la barre (subtile différence). De 31 à 32 bits la zone est pas accessible pour des raisons de compatibilité.
En gros password pourris, crypto en option pas toujours activé, sécurité qui dépend à fond des sysadmins qui doivent contrôler beaucoup beaucoup de choses…
scan de port à l’échelle d’un pays
par @pappy
Les outils de scan sont pas toujours top et suffisent pas quand on veut taper un /8. Quand on fait du scan massif, on veut récupérer tout ce qui est au niveau 7. Un peu comme le taff de google mais sur autre-chose que le web. Bon faut distribuer ça sur plein de machines un peu partout sur l’internet. Pour la perf du scan, le modèle asynchrone c’est pas mal. Pour répartir le taff il faut générer un ensemble d’IP. Comme il faut découper les ranges pour exclure certaines plages et répartir les IP sur tout plein d’agents les auteurs ont codé un tool pour faire le mélange, ça évite les mail abuse@. Après faut digérer les infos au retour etc… c’est pour ça qu’ils ont codé une lib dédiée ici. Pour scanner l’espagne, 30M d’ips il faut 25h.
Cryptocoding
par Jean-Philippe Aumasson
Heartbleed c’est un DoS pour sysadmins. les cryptobug ça fait très très mal, c’est même mortel dans certains pays parceque ça pourris vos clefs privés etc…
Bon on se dit qu’avec les analyzeurs statiques on peut s’en sortir… bah pas forcément 🙁 . Les bugs crypto sont moins bien compris, moins répandus, et il y à peu d’outils pour ça. Les bugs connus, c’est juste la partie émergée de l’iceberg. Il est fort probable que beaucoup de cryptobugs soient présent dans d’autres codes crypto jamais regardés. On blame souvent les dev, mais faut voir le temps qu’ils ont, comment ils sont payés par rapport à la taille du travail. Du coup pour openSSL, les priorités c’est la portabilité, la vitesse mais pas la sécurité ou la robustesse (oups). à l’impossible nul n’est tenu !
Du coup pour coder de la crypto, faut des pratiques de dev qui tiennent compte des problèmes de sécurité, mais aussi des classes d’attaques crypto. D’ou le wiki cryptocoding.net avec des exemples de bonnes et de mauvaise pratiques.
J’me suis endormis sur le café du RU 🙁 du coup il manque un créneau… désolé
Martine monte un cert
Retour d’expérience sur l’analyse d’attaques lors de réponses sur incident. L’attaquant il est humain, et il est plusieurs. On peut distinguer plusieurs niveaux dans l’équipe d’attaque du mec qui tape betement les commandes au pentesteur qui rush l’AD. On observe aussi qu’il cherche des infos particulières, et là, ça dépend de sur qui on tombe. L’attaquant vise souvent les répertoires privés pour topper vos photos, vos divx ou vous mp3. outils de recherche: dir recursif dir /R et listing de tous les partages réseaux. une fois exfiltré, ils se mettent ça sous le coude, et revienent plus tard. souvent ils exporte qu’un tout petit bout. si le petit bout intéresse le commanditaire, il va tout sortir.
la résilience est aussi recherchée par l’attaquant. les laptops, c’est pas terrible 🙁 du coup il va rechercher des serveurs sympa, toujours connectés et jamais utilisés. Ils sont très fort pour faire l’inventaire. L’admin est la cible privilégiée de l’attaquant. password.xls et cie sont très recherchés. Les e-mails sont épluchés par projet à la recherche des ingé du projet pour en suite reconstruire les infos du projet mieux que le chef de projet lui même.
L’alerte viens toujours de l’exterieur et très rarement du SOC/NOC. L’anssi frappe à ta porte et te dit que ça pue chez toi. Les attaquants ont tendance à avoir des près carrés (automobile, avionique, software, administrations…) du coup ça vaut le coup de partager quand on est dans le même business.
Bon la réponse sur incident à supplanté le forensic. le forensic n’est qu’un sous-ensemble de l’IR. Quand vous mangez une apt vous allez pas vous retaper 50 machines à ghoster avec votre pov’ bloqueur d’écriture. Du coup l’approche à coup d’agent présent sur toutes les machines permettant de collecter les informations liés aux marqueurs du malware (IOC). Et il faut que ça aille vite. Il faut un outil failsafe, deployable massivement, sans effet de bord et léger (dur !). Les IDS sont morts mais pas inutiles… Suricata, c’est l’avenir !
La réponse sur incident c’est un travail d’équipe, et la communication c’est super super important. Transparance totale en interne, partage complet de l’information (wiki, dradis, truc du genre ?). Avec templates d’action et éléments d’information à remplir. L’uniformité sauve la vie sur un plateau de 30 à 60 personnes.
En france on à que 8 certs, contre 23 en allemagne oO ». on se demande ou est le Mandiant français de la réponse sur incident T.T, et l’ANSSI bosse sur un référentiel réponse sur incident avec labellisation.
Rump Session
Cette année, les orgas ont sorti l’artillerie pour les rumps… On applaudis, l’orateur se fait shooter sans pitié :]
Bon cette année il y à eu des inscriptions en plus, dépensé en voitures, coke et …. en fait non ;). Les soumissions ça s’est grandement amélioré car la taille minimale imposée était bloquante. Du coup c’était format libre (dur pour décider sur 1 page ou un plan), on a craint pour la qualité des actes, et en fait ils ont jamais été aussi gros !
miasm v2 install party
Miasm, les gens trouvent ça dur à installer. du coup on à droit à un tuto pour installer miasm. Faut télécharger, installer les dépendance, éditer le makefile, ./configure, aller dans elfesteem, python configure.py et zou !
Nas lowcost low consumption
la suite de la rump de l’an dernier: tout les drivers ont été poussés comme il faut pour linux, ya quelques reports de bug pax/grsec pour arm. Netgear à fillé du matos à l’orateur, du coup ya plein de matos netgear supporté :] plus d’infos ICI
sinon ya une nouvelle version du wrt54g avec 2 cesa mais à 250 euros, vachemnet plus cher que le NAS étudié.
lets talk about SELKS
par Eric Leblond.
Bon trop de talk en offensif, mais pas de trucs classe en défensif. du coup dans suricata 2.0 ya des sorties JSON avec des alertes et des évènements. Le tout branché sur kibana et elasticsearch ça fait des trucs cools. Deny on monitoring: je croise un truc qui me plait pas genre SSH en version 2.0 ou je vais bloquer le client SSH.
Selks est une iso live et installable avec tout ce qu’il faut dessus.
parsifal
écriture de parsers en caml.
beaucoup de formats ajoutés, images, proto réseau etc. et dernièrement ils ont joué avec kerberos. Comme ya une partie chiffrée, on à envie de pouvoir le déchiffrer après récupération des clefs. du coup il est possible de décapsuler ça avec parsifal et d’analyser les messages de façon autonome (détection d’anomalie).
ssticy
trucs poisseux en python pour réussir les challenges
par pierre bienaimé (qui à résolu le challenge sstic)
une collection de tricks et de fonctions pour la steg, le web, du parsing d’images, des fonctions de hash pour pouvoir modifier les états internes des fonctions de hash. dans crypto ya des truc classiques. le must c’est le xor déchiffrable à partir d’un bout de clair connu pour gagner du temps. Des fonctions de bruteforce, etc. Bref tout ce qu’il faut pour gagner du temps dans les CTF et les challs. C’est pas open-source du coup parce que c’est vachement mieux de faire ses outils soit même, on comprend mieux ce qu’on fait.
transmission de données par ultrason
exfiltration de la passphrase luks au boot d’un pc par ultrasion via la carte son. du coup la passphrase apparait en ascii art. mais aussi de la modulation permettant d’afficher un nyancat. voir carrément plein de chatons.
code source streamé en ultrason.
l’obfuscaiton dont vous êtes le héro
Un rpg dont vous êtes le héro façon sécu, donc du code openssl obfusqué au niveau llvm. du coup l’orateur pose des questions et en fonction des réponses il vous montre comment se fait l’obfuscation. Avec des constantes opaques et de l’aplatissement de graph.
Mind your languages
par pierre chifflier
Question: j’utilise $LANG, c’est bien pour ce qu’on veut faire ?
bon ya des gens assez fou pour faire du JavaScript dans lequel les égalités entre deux trucs identiques et plein d’effets de bords dégeux. Pareil en php ou en Java… du coup pour implémenter de la crypto c’est l’enfer !
Le langage à de l’importance dans la sécurité ! et NON on ne fera pas de crypto en JavaScript. Les trouvailles sont dispo sur le site de l’ANSSI pour tout les langages.
la sécurité de l’ADSL ailleurs.
@newsoft
En suisse pas moyen d’avoir du téléphone ou un portable si t’a pas de carte de séjour. Il a donc regardé de près son modem adsl swisscom. du coup avec les mdp faible et l’injection de commande dans l’interface d’admin, c’est la fête. Les versions des softs sont antédiluviennes. Ya une commande magic sur le modem avec un warning qui dit « si vous avez appellé magic par erreur sortez d’ici ». les process en root, etc… rien d’original.
Private meeting
Aurélien Bordes
Outlook : fonction de partage de calendrier très pratique. Les droits exchange, c’est compliqué, le calendrier est pas partagé par défaut, mais quand on l’ouvre au partage, on partage TOUT. Du coup ya une fonction rdv privé pour éviter son apparition. EWS permet de requêter exchange avec HTTP, on peut trouver dans les échanges le niveau de sensibilité de l’event dans les propriétés de l’event. Du coup quand on fait la requête, le RDV privé n’est pas privé, et c’est le client de messagerie qui filtre (ou pas). Le tout est documenté dans la MSDN.
alternative to BGA unsoldering.
le BGA c’est chiant à dessouder et donc pour pas l’abimer au dessoudage, ils ont décidé de le dumper soudé. On le passe aux rayons X. On sort les pistes en faisant fondre le vernis, puis on découpe les pistes au laser et si on tremble pas trop on arrive à souder ce qu’il faut pour dumper la flash. Après il suffit de resouder le tout et le composant fonctionne à nouveau.
x86 Anti Decode
@bdcht
Des tricks amusants trouvé en testant des décodeurs x86. Forcément si votre décodeur fait n’importe quoi, votre analyse est mal barrée. Ya plein de trucs bizzares sur les préfixes x86. (cf x86 oddities corkami). Ex sous IDA on peut passer à coté d’un saut, objdump fait nawak. comme Intel avait plus de place pour son jeu d’instruction 0F 58 c’est addps F2 0F 58 c’est addsd mais comme le sens des prefix peut être changé et qu’on peut empiler autant de prefixes qu’on veut ça fout grave la zone. Il faut donc vérifier au niveau du CPU ce qui se passe.
Arrêter le DDOS de bryan à l’aide du service marketing
le ddos ça fait tjs chier, surtout pour une boite en ligne. La découverte de l’attaque, c’est les utilisateurs qui disent que ça marche pas. On fait un blackholing et un cluster de reverse proxy pour survivre. On analyse en suite l’incident. On fini par découvrir un pattern récurrent, on porte plainte, et on investigue l’IP d’origine. C’est un open-proxy et du coup pas moyen de se retourner contre l’hébergeur. Du coup on donne un cookie à bryan et on le traque. On ajoute un pixel custom pour traquer le gars. Comment faire revenir bryan: mail marketing qui dit qu’on sait gérer l’attaque, ce qui incite l’attaquant à recommencer. Du coup via hidemyass, ils ont pu obtenir des info sur l’attaquant. Du coup le mec à un compte sur la boite en question, et donc ils l’ont fermé, du coup plus d’attaques.
Jpeg ou mp4 – un autre polyglotte
analyse de la structure et mélange de la structure Jpg et des marqueurs MP4.
Bypass d’IDS
par synactiv
L’idée c’est d’utiliser le TCP Fast Open pour faciliter la vitesse d’ouverture des handshake TCP pour HTTP histoire que ça se connecte plus vite. En gros, le client demande au serveur TCP de générer un cookie, et là il suffit de pousser le cookie pour éviter d’avoir a placer un push avant d’envoyer de la donnée. Du coup les IDS passent à coté.
REbus
par Philippe Biondi & co.
Un projet de bus de communication pour les outils de Reverse Engineering. Comme ça chaque agent peut travailler sur le(s) fichier en Reverse-Engineering.
Le but c’est de faire du reverse collaboratif en intégrant sur ce bus divers tools de reverse.
La rump suivante est un exemple utilisant ce bus. On trouve beaucoup de malwares connus en ligne, mais quand on tombe sur un malware inconnu, on aimerais bien pouvoir le classer dans une famille (genre tel malware est proche de tel autre). On fait un hash glissant style ssdeep sur les opcode du malware, puis on fait une distance de jaccard. Puis avec graphviz on génère un graph avec les distances entre les malwares.
Ya t’il quelqu’un pour sauver le challenge web100
challenge: déclarer ses impots avant la date limite en déduisant ce qu’on veut déduire genre le pret étudiant. Tout ça pour un jeune actif. Un moteur de recherche permet de topper l’option qui va bien. Quand on regarde de près l’explication, il faut 3 champs spécifiques pour bien faire la déclaration sinon on paye trop d’impots. Du coup comme ils sont pas présents, les auteurs l’ont ajouté manuellement. Du coup à la validation ça génère une anomalie vu qu’il faut renseigner un autre champ en même temps comme dans la notice. En commentaire on place le disclosure des champs ajoutés.
IRMA
Incident Responce and Malware Analysis.
Un virustotal like par quarkslab ou l’on peut intégrer des analyses supplémentaires. dispo sur le github de quarkslab. irc: qb_irma@freenode
Android 0dayz hunting
Il reste des vuln style années 90 dans android. Ex: validation des noms des ASEC: des conteneurs de sécurité android. du coup comme on passe en paramètre un nom, on peut y placer des ../ pour placer le conteneur dans un filesystem sur lesquels on à des droits. Et à partir de là on peut passer root. Un éditeur de solution forensic utilise cette vuln depuis 2 ans.
Les actes du SSTIC en epub
Allez on est reparti !
(Si je dit une connerie, hésitez pas à lâcher un commentaire pour que je corrige ça )
Edit: j’ai regardé, j’ai pas vu grand monde blogguer
JavaCard
Par Guillaume Bouffard Jean-Louis Lanet
Hop, un rappel sur le fonctionnement des JavaCard. Bon en gros, c’est comment depuis du code Java non-privilégié, prendre la main sur la JavaCard elle même. On commence par une bonne vieille escalade de privilèges Java. En suite on profite de cet accès pour dumper la ram de la JavaCard, et on y trouve des surprises. Une table d’adresses, une fonction en code natif, On peut donc se demander si ya pas moyen d’exécuter du code natif sur la carte par ce biais. Il faut donc poser un shellcode dans le code Java, trouver l’adresse mémoire du shellcode, modifier la table d’indirection pour rediriger sur le shellcode et appeler la méthode native. Bon ça c’était les rappels, du coup pour SSTIC 2014, on à droit à l’ensemble des cartes du commerce du moment sur lesquelles les auteur testent leurs attaques… bah en bidouillant un peu ça marche (parfois).
Fuzzing USB
par Fernand Lone Sang et Jordan Bouyat
Le fuzzing usb sur machine virtuelles, c’est bien sympa, mais ça permet pas de jouer avec autre chose qu’un OS, genre des imprimantes, box adsl etc… On à droit à une recap sur le fonctionnement de l’USB, les techniques de fuzzing existante, puis le travail de l’orateur. Du coup ils se sont intéressé au facedancer et à comment ajouter un watchdog pour détecter les crash. Le watchdog fonctionne comme sur les tools codenomicon, il joue une séquence de paquet pour vérifier si la cible répond toujours. Ils ont normalisé en pcap le trafic USB pour pouvoir le rejouer comme il faut en se substituant soit au client, soit au serveur. avec en bouquet final un crash sous windows 8.1 :] ne dit on pas que quand ça plante, c’est parce que c’est fait par un stagiaire 😉 du coup l’orateur freeze en live son PC.
Bootkit
par Samuel Chevet
Bon avant de parler bootkit, faut causer des rootkits contre lesquels de nombreuses techniques de protection existent comme pageguard, la signature des drivers etc. On à un récap de la séquence de boot d’un windows, du bios à winload. Beaucoup de malwares utilisent des techniques type bootkit. Tout les bootkits existants scannent un pattern spécifique pour trouver ou poser un hook permettant en suite le fonctionnement du rootkit. Du coup c’est pas portable d’une version sur l’autre de windows. L’auteur trace donc l’exécution de la séquence de boot avec le mode 8086 du cpu jusqu’a bootmgr. Après en mode protéger, l’auteur utilise des breakpoint hardware pour tracer le passage du mode réel en mode protégé. Puis en jouant sur les ring cpu, l’orateur passe winload en ring 1, et exécute un mini-hyperviseur en ring0 pour contrôler l’exécution de winload. Du coup, pas de pattern matching, pas de hook, pas de modifications, que de la virtu et du debug, du coup ça marche sur plein de versions sans casser la chaine de confiance du secureboot microsoft (bravo !).
Intégrité sur les Hyperviseurs
par Benoît Morgan, Eric Alata et Vincent Nicomette
Bon, comment protéger un hyperviseur face à des attaques matérielles, typiquement la carte réseau compromise ? Comment faire des tests d’intégrité sur cet hyperviseur pour s’assurer qu’il à pas été modifié par un bootkit ou une attaque DMA et cie ?
Pour faire ça, les auteurs utilisent un FPGA sur PCIe pour accéder à la mémoire en DMA et aller contrôler l’intégrité de l’hyperviseur. En se basant sur Ironhide et Milkymist.
Mainframes & Sécurité
par Stéphane Diacquenod
La seule partie immuable dans l’évolution des mainframe, c’est la compatibilité au niveau binaire, maintenue depuis 50 ans. Sinon tout le reste à beaucoup évolué. La virtualisation est aussi au menu depuis très longtemps. z/OS possède deux environements, MVS et OMVS aka USS, un unix tournant sur z/OS. L’intéret d’OMVS, c’est de fournir TCP/IP au mainframe. coté sécurité, les password c’est max 8 caractères, et les caractères spéciaux ça dépend de la locale installée, du coup bah c’est souvent de l’alphanumérique. Et pi pas de sel sur les hash. Un utilisateur lambda va avoir par défaut un accès en lecture à la base et pourra faire tourner un JTR sur les hash (oups!). Coté mémoire c’est zarbi, ya des zones réservés jusqu’a 24 bits: la ligne, avec les évolutions on a des zones supplémentaires jusqu’a 31 bits: la barre (subtile différence). De 31 à 32 bits la zone est pas accessible pour des raisons de compatibilité.
En gros password pourris, crypto en option pas toujours activé, sécurité qui dépend à fond des sysadmins qui doivent contrôler beaucoup beaucoup de choses…
scan de port à l’échelle d’un pays
par @pappy
Les outils de scan sont pas toujours top et suffisent pas quand on veut taper un /8. Quand on fait du scan massif, on veut récupérer tout ce qui est au niveau 7. Un peu comme le taff de google mais sur autre-chose que le web. Bon faut distribuer ça sur plein de machines un peu partout sur l’internet. Pour la perf du scan, le modèle asynchrone c’est pas mal. Pour répartir le taff il faut générer un ensemble d’IP. Comme il faut découper les ranges pour exclure certaines plages et répartir les IP sur tout plein d’agents les auteurs ont codé un tool pour faire le mélange, ça évite les mail abuse@. Après faut digérer les infos au retour etc… c’est pour ça qu’ils ont codé une lib dédiée ici. Pour scanner l’espagne, 30M d’ips il faut 25h.
Cryptocoding
par Jean-Philippe Aumasson
Heartbleed c’est un DoS pour sysadmins. les cryptobug ça fait très très mal, c’est même mortel dans certains pays parceque ça pourris vos clefs privés etc…
Bon on se dit qu’avec les analyzeurs statiques on peut s’en sortir… bah pas forcément 🙁 . Les bugs crypto sont moins bien compris, moins répandus, et il y à peu d’outils pour ça. Les bugs connus, c’est juste la partie émergée de l’iceberg. Il est fort probable que beaucoup de cryptobugs soient présent dans d’autres codes crypto jamais regardés. On blame souvent les dev, mais faut voir le temps qu’ils ont, comment ils sont payés par rapport à la taille du travail. Du coup pour openSSL, les priorités c’est la portabilité, la vitesse mais pas la sécurité ou la robustesse (oups). à l’impossible nul n’est tenu !
Du coup pour coder de la crypto, faut des pratiques de dev qui tiennent compte des problèmes de sécurité, mais aussi des classes d’attaques crypto. D’ou le wiki cryptocoding.net avec des exemples de bonnes et de mauvaise pratiques.
J’me suis endormis sur le café du RU 🙁 du coup il manque un créneau… désolé
Martine monte un cert
Retour d’expérience sur l’analyse d’attaques lors de réponses sur incident. L’attaquant il est humain, et il est plusieurs. On peut distinguer plusieurs niveaux dans l’équipe d’attaque du mec qui tape betement les commandes au pentesteur qui rush l’AD. On observe aussi qu’il cherche des infos particulières, et là, ça dépend de sur qui on tombe. L’attaquant vise souvent les répertoires privés pour topper vos photos, vos divx ou vous mp3. outils de recherche: dir recursif dir /R et listing de tous les partages réseaux. une fois exfiltré, ils se mettent ça sous le coude, et revienent plus tard. souvent ils exporte qu’un tout petit bout. si le petit bout intéresse le commanditaire, il va tout sortir.
la résilience est aussi recherchée par l’attaquant. les laptops, c’est pas terrible 🙁 du coup il va rechercher des serveurs sympa, toujours connectés et jamais utilisés. Ils sont très fort pour faire l’inventaire. L’admin est la cible privilégiée de l’attaquant. password.xls et cie sont très recherchés. Les e-mails sont épluchés par projet à la recherche des ingé du projet pour en suite reconstruire les infos du projet mieux que le chef de projet lui même.
L’alerte viens toujours de l’exterieur et très rarement du SOC/NOC. L’anssi frappe à ta porte et te dit que ça pue chez toi. Les attaquants ont tendance à avoir des près carrés (automobile, avionique, software, administrations…) du coup ça vaut le coup de partager quand on est dans le même business.
Bon la réponse sur incident à supplanté le forensic. le forensic n’est qu’un sous-ensemble de l’IR. Quand vous mangez une apt vous allez pas vous retaper 50 machines à ghoster avec votre pov’ bloqueur d’écriture. Du coup l’approche à coup d’agent présent sur toutes les machines permettant de collecter les informations liés aux marqueurs du malware (IOC). Et il faut que ça aille vite. Il faut un outil failsafe, deployable massivement, sans effet de bord et léger (dur !). Les IDS sont morts mais pas inutiles… Suricata, c’est l’avenir !
La réponse sur incident c’est un travail d’équipe, et la communication c’est super super important. Transparance totale en interne, partage complet de l’information (wiki, dradis, truc du genre ?). Avec templates d’action et éléments d’information à remplir. L’uniformité sauve la vie sur un plateau de 30 à 60 personnes.
En france on à que 8 certs, contre 23 en allemagne oO ». on se demande ou est le Mandiant français de la réponse sur incident T.T, et l’ANSSI bosse sur un référentiel réponse sur incident avec labellisation.
Rump Session
Cette année, les orgas ont sorti l’artillerie pour les rumps… On applaudis, l’orateur se fait shooter sans pitié :]
Bon cette année il y à eu des inscriptions en plus, dépensé en voitures, coke et …. en fait non ;). Les soumissions ça s’est grandement amélioré car la taille minimale imposée était bloquante. Du coup c’était format libre (dur pour décider sur 1 page ou un plan), on a craint pour la qualité des actes, et en fait ils ont jamais été aussi gros !
miasm v2 install party
Miasm, les gens trouvent ça dur à installer. du coup on à droit à un tuto pour installer miasm. Faut télécharger, installer les dépendance, éditer le makefile, ./configure, aller dans elfesteem, python configure.py et zou !
Nas lowcost low consumption
la suite de la rump de l’an dernier: tout les drivers ont été poussés comme il faut pour linux, ya quelques reports de bug pax/grsec pour arm. Netgear à fillé du matos à l’orateur, du coup ya plein de matos netgear supporté :] plus d’infos ICI
sinon ya une nouvelle version du wrt54g avec 2 cesa mais à 250 euros, vachemnet plus cher que le NAS étudié.
lets talk about SELKS
par Eric Leblond.
Bon trop de talk en offensif, mais pas de trucs classe en défensif. du coup dans suricata 2.0 ya des sorties JSON avec des alertes et des évènements. Le tout branché sur kibana et elasticsearch ça fait des trucs cools. Deny on monitoring: je croise un truc qui me plait pas genre SSH en version 2.0 ou je vais bloquer le client SSH.
Selks est une iso live et installable avec tout ce qu’il faut dessus.
parsifal
écriture de parsers en caml.
beaucoup de formats ajoutés, images, proto réseau etc. et dernièrement ils ont joué avec kerberos. Comme ya une partie chiffrée, on à envie de pouvoir le déchiffrer après récupération des clefs. du coup il est possible de décapsuler ça avec parsifal et d’analyser les messages de façon autonome (détection d’anomalie).
ssticy
trucs poisseux en python pour réussir les challenges
par pierre bienaimé (qui à résolu le challenge sstic)
une collection de tricks et de fonctions pour la steg, le web, du parsing d’images, des fonctions de hash pour pouvoir modifier les états internes des fonctions de hash. dans crypto ya des truc classiques. le must c’est le xor déchiffrable à partir d’un bout de clair connu pour gagner du temps. Des fonctions de bruteforce, etc. Bref tout ce qu’il faut pour gagner du temps dans les CTF et les challs. C’est pas open-source du coup parce que c’est vachement mieux de faire ses outils soit même, on comprend mieux ce qu’on fait.
transmission de données par ultrason
exfiltration de la passphrase luks au boot d’un pc par ultrasion via la carte son. du coup la passphrase apparait en ascii art. mais aussi de la modulation permettant d’afficher un nyancat. voir carrément plein de chatons.
code source streamé en ultrason.
l’obfuscaiton dont vous êtes le héro
Un rpg dont vous êtes le héro façon sécu, donc du code openssl obfusqué au niveau llvm. du coup l’orateur pose des questions et en fonction des réponses il vous montre comment se fait l’obfuscation. Avec des constantes opaques et de l’aplatissement de graph.
Mind your languages
par pierre chifflier
Question: j’utilise $LANG, c’est bien pour ce qu’on veut faire ?
bon ya des gens assez fou pour faire du JavaScript dans lequel les égalités entre deux trucs identiques et plein d’effets de bords dégeux. Pareil en php ou en Java… du coup pour implémenter de la crypto c’est l’enfer !
Le langage à de l’importance dans la sécurité ! et NON on ne fera pas de crypto en JavaScript. Les trouvailles sont dispo sur le site de l’ANSSI pour tout les langages.
la sécurité de l’ADSL ailleurs.
@newsoft
En suisse pas moyen d’avoir du téléphone ou un portable si t’a pas de carte de séjour. Il a donc regardé de près son modem adsl swisscom. du coup avec les mdp faible et l’injection de commande dans l’interface d’admin, c’est la fête. Les versions des softs sont antédiluviennes. Ya une commande magic sur le modem avec un warning qui dit « si vous avez appellé magic par erreur sortez d’ici ». les process en root, etc… rien d’original.
Private meeting
Aurélien Bordes
Outlook : fonction de partage de calendrier très pratique. Les droits exchange, c’est compliqué, le calendrier est pas partagé par défaut, mais quand on l’ouvre au partage, on partage TOUT. Du coup ya une fonction rdv privé pour éviter son apparition. EWS permet de requêter exchange avec HTTP, on peut trouver dans les échanges le niveau de sensibilité de l’event dans les propriétés de l’event. Du coup quand on fait la requête, le RDV privé n’est pas privé, et c’est le client de messagerie qui filtre (ou pas). Le tout est documenté dans la MSDN.
alternative to BGA unsoldering.
le BGA c’est chiant à dessouder et donc pour pas l’abimer au dessoudage, ils ont décidé de le dumper soudé. On le passe aux rayons X. On sort les pistes en faisant fondre le vernis, puis on découpe les pistes au laser et si on tremble pas trop on arrive à souder ce qu’il faut pour dumper la flash. Après il suffit de resouder le tout et le composant fonctionne à nouveau.
x86 Anti Decode
@bdcht
Des tricks amusants trouvé en testant des décodeurs x86. Forcément si votre décodeur fait n’importe quoi, votre analyse est mal barrée. Ya plein de trucs bizzares sur les préfixes x86. (cf x86 oddities corkami). Ex sous IDA on peut passer à coté d’un saut, objdump fait nawak. comme Intel avait plus de place pour son jeu d’instruction 0F 58 c’est addps F2 0F 58 c’est addsd mais comme le sens des prefix peut être changé et qu’on peut empiler autant de prefixes qu’on veut ça fout grave la zone. Il faut donc vérifier au niveau du CPU ce qui se passe.
Arrêter le DDOS de bryan à l’aide du service marketing
le ddos ça fait tjs chier, surtout pour une boite en ligne. La découverte de l’attaque, c’est les utilisateurs qui disent que ça marche pas. On fait un blackholing et un cluster de reverse proxy pour survivre. On analyse en suite l’incident. On fini par découvrir un pattern récurrent, on porte plainte, et on investigue l’IP d’origine. C’est un open-proxy et du coup pas moyen de se retourner contre l’hébergeur. Du coup on donne un cookie à bryan et on le traque. On ajoute un pixel custom pour traquer le gars. Comment faire revenir bryan: mail marketing qui dit qu’on sait gérer l’attaque, ce qui incite l’attaquant à recommencer. Du coup via hidemyass, ils ont pu obtenir des info sur l’attaquant. Du coup le mec à un compte sur la boite en question, et donc ils l’ont fermé, du coup plus d’attaques.
Jpeg ou mp4 – un autre polyglotte
analyse de la structure et mélange de la structure Jpg et des marqueurs MP4.
Bypass d’IDS
par synactiv
L’idée c’est d’utiliser le TCP Fast Open pour faciliter la vitesse d’ouverture des handshake TCP pour HTTP histoire que ça se connecte plus vite. En gros, le client demande au serveur TCP de générer un cookie, et là il suffit de pousser le cookie pour éviter d’avoir a placer un push avant d’envoyer de la donnée. Du coup les IDS passent à coté.
REbus
par Philippe Biondi & co.
Un projet de bus de communication pour les outils de Reverse Engineering. Comme ça chaque agent peut travailler sur le(s) fichier en Reverse-Engineering.
Le but c’est de faire du reverse collaboratif en intégrant sur ce bus divers tools de reverse.
La rump suivante est un exemple utilisant ce bus. On trouve beaucoup de malwares connus en ligne, mais quand on tombe sur un malware inconnu, on aimerais bien pouvoir le classer dans une famille (genre tel malware est proche de tel autre). On fait un hash glissant style ssdeep sur les opcode du malware, puis on fait une distance de jaccard. Puis avec graphviz on génère un graph avec les distances entre les malwares.
Ya t’il quelqu’un pour sauver le challenge web100
challenge: déclarer ses impots avant la date limite en déduisant ce qu’on veut déduire genre le pret étudiant. Tout ça pour un jeune actif. Un moteur de recherche permet de topper l’option qui va bien. Quand on regarde de près l’explication, il faut 3 champs spécifiques pour bien faire la déclaration sinon on paye trop d’impots. Du coup comme ils sont pas présents, les auteurs l’ont ajouté manuellement. Du coup à la validation ça génère une anomalie vu qu’il faut renseigner un autre champ en même temps comme dans la notice. En commentaire on place le disclosure des champs ajoutés.
IRMA
Incident Responce and Malware Analysis.
Un virustotal like par quarkslab ou l’on peut intégrer des analyses supplémentaires. dispo sur le github de quarkslab. irc: qb_irma@freenode
Android 0dayz hunting
PDF c’est un peu fatiguant à lire, l’ebook c’est mieux. Du coup l’orateur à regardé comment faire pour transformer les actes en ebook pour les lire dans le metro. Tous les formats ebook sont dérivé de HTML/CSS. Du coup faut partir du LateX. Pour faire du HTML avec latex c’est pas toujours très heureux, ya plein de choses qui marchent pas top. HTLatex c’est encore ce qui marche le mieux, puis on passe calibre. On obtien un epub qui marche pas sur kindle.
Radio sur canapé
Domotique, c’est fun, tu joue avec ta maison avec tout plein de capteurs qui vont sur internet, ce qui permet de savoir si quelqu’un est dans vos toilettes quand t’est pas chez toi. Ya la maison connecté qui tweet… Du coup en utilisant le NRF on peut causer avec la domotique de l’amphi. du coup avec un keykeriki. La crypto est bruteforçable et du coup on peut pousser des commandes ! (c’est du 2^16 comme debian). On à droit à une démo… et en fait c’est une arnaque, un complice est dans la salle à actionner les rideaux.
Exemple de scan massif avec nodescan sur une backdoor de routeur
Envoi d’une chaine arbitraire « mylittleponey » pour ouvrir la backdoor. Masscan + zmap pour trouver les ip avec le port en question. en utilisant du EC2, pour 2,40$ on peut faire les tests. Sinon on peut utiliser des sockets assync avec nodescan pour faire le taff. Du coup on peut scanner un million de machines sur une seule connexion sans louer d’instance EC2.
Annonce NoSuchCon
2ème édition, cloture du CFP le 30 septembre, 100% anglais. CFP sur le site http://www.nosuchcon.org/#cfp
Do not make your own crypto
c’est pas vraiment conseillé de faire sa propre crypto… Une appli qui chiffre les SMS avec un algo de crypto grec. Une appli android. La fonctionnalité est présente dans un anti-virus français. On peut récupérer des infos sur l’état interne de l’encodeur à partir des SMS chiffrés. Quand c’est fait on récupère les clefs correspondant à l’état interne.
firmware.re
ya plein plein de problème avec les soft embarqués, les box etc… est-ce que c’est du bol ou un état des lieux généralisés. L’orateur et ses collegues ont fait un crawler pour collecter des firmwares. Analysé jusqu’a obtenir 1.7M de fichiers. 38 CVE découvertes, 700 000+ images impactés etc…
Par exemple une clef privé diffusée sur internet réutilisé sur un grand nombre de caméras ip de vendeurs différents avec la même clef privée dedans. sans compter les vulnérabilités communes.
Sinon la backdoor sur firmware de disque dur, c’était déjà fait par la NSA par la division ANT.
c’est tout pour aujourd’hui !!!!