Lors de cette conférence, Nicolas Brulez, responsable de la sécurité au sein de la société Sillicon Realms notamment éditeur du logiciel de système de protection Armadillo, est intervenu sur la résolution du troisième niveau de la catégorie Reverse Engeenering du concours, il est le créateur de ce niveau.
L'équipe du site Secuobs.com spécialisée dans la sécurité informatique a réalisé et mis en ligne un enregistrement audio de 30 minutes de cette intervention accompagné d'une interview de 3 pages en format html de Nicolas Brulez et du slide de présentation au même format utilisé lors de la conférence. Vous pourrez y trouver des explications détaillées sur les techniques de protection anti-debug (émulateur, breakpoint, obfuscation), les techniques de cryptographie (rc4, rsa, ripmd128, xor, crc32) employées dans le développement de ce niveau ainsi que la méthodologie pour en effectuer le Reverse Engeenering.
Le Reverse Engeenering est le fait de pouvoir analyser les trames d'éxécution d'un logiciel afin d'en comprendre le fonctionnement sans avoir l'accès préalable à des documentations officielles.
Cet enregistrement est disponible dans plusieurs formats ogg, mp3 et aac.
Vous avez la possibilité d'écouter le stream mp3 directement via les modules quicktime, real ou wmp intégrés dans les pages du site.
Les URLs en http de ces 3 fichiers sont également disponibles afin de les utiliser dans des logiciels comme Mplayer avec un buffer prédéfini.
Pour ceux qui le souhaitent, vous pouvez télécharger les fichiers audio en tar.gz selon le format voulu.
L'attente des participants à ce concours pour ces ressources devrait être assez importante, si vous rencontrez des problèmes de consultation, n'hésitez pas à bookmarker l'URL de l'interview et à y retourner dans les heures creuses.
Aller plus loin
- L'interview de Nicolas Brulez sur secuobs (17 clics)
- Le slide de presentation (11 clics)
- L'interview de Pierre Betouin, organisateur du concours (3 clics)
- Le site du concours (4 clics)
- L'annonce de la conference du 7 mai sur linuxfr (1 clic)
# Ou sont les épreuves ? Les solutions ? Les résultats ?
Posté par rangzen (site web personnel) . Évalué à 3.
Il faut s'inscrire ? Faut trouver la faille ?
C'est secret ?
Une voix dans le haut parleur : les moutons sont priés de passer au vestiaire récupérer la nouvelle LEN. Les retardataires seront poursuivis et condamnés.
[^] # Re: Ou sont les épreuves ? Les solutions ? Les résultats ?
Posté par Denis Montjoie (site web personnel) . Évalué à 3.
les epreuves sont finis. (depuis le 1er mai je crois)
les solutions ont les attents toujours... (a par celui de reverse justement). Mais les solutions du challenge 2003 sont dispo, ca peux donner une idée.
les résultats je les ai pasque je suis inscrit aux concours mais je donne les 10 premiers en cadeau (1967 inscrits)
>Il faut s'inscrire ? Faut trouver la faille ?
trop tard:)
>C'est secret ?
ya eu plusieurs post sur linuxfr:)
voici les resultats:
1 nono2357 12600
2 ghorg0re/3ey 12600
3 naybx 12600
4 dvrasp 12580
5 Satori 12580
6 newsoft_ 12580
7 LostNoobs 11100
8 Mattwood9 10870
9 orgar 10400
10 reuvayrsi 10400
[^] # Re: Ou sont les épreuves ? Les solutions ? Les résultats ?
Posté par oumpa . Évalué à 2.
tous les articles sur le concours sont içi http://www.secuobs.com/sommaires/concours.html(...)
pour les résultats & détails publics des épreuves c'est marqué sur le site du challenge, ça arrive sous peu ...
vu que c'est fait par des étudiants de 3e année, j'imagine qu'ils sont dans les périodes d'exam et qu'il faut jongler entre tout ça pour eux ...
# Bon article mais bonjour les fautes d'orthographe et de grammaire !
Posté par Insider . Évalué à 4.
Petite remarque en passant, la proctection du code c'est bien mais la protection du code _et_ des données, c'est mieux.
Combien de programmes (jeux ?) utilisent le même format de données pour leur version de démo et leur version commerciale ?
Ce qui permet d'échanger les fichiers de données entre les deux versions et généralement de biaiser(1) la protection du code.
(1) Non, ce n'est pas une faute de frappe ;-), c'est ce qui se rapproche le plus, à mon avis, de "bypass" en Anglais.
[^] # Re: Bon article mais bonjour les fautes d'orthographe et de grammaire !
Posté par dvrasp . Évalué à 2.
[^] # Re: Bon article mais bonjour les fautes d'orthographe et de grammaire !
Posté par oumpa . Évalué à 2.
[^] # Re: Bon article mais bonjour les fautes d'orthographe et de grammaire !
Posté par oumpa . Évalué à 3.
[^] # Re: Bon article mais bonjour les fautes d'orthographe et de grammaire !
Posté par Beretta_Vexee . Évalué à 3.
Donc trouve nous une reference autre qu'un jeux basé sur un moteur Id software.
[^] # Re: Bon article mais bonjour les fautes d'orthographe et de grammaire !
Posté par Gart Algar . Évalué à 2.
Donc y'a pas beaucoup de protection, elle est facile à contourner, mais elle existe quand même :)
Mais Id Software est vraiment un cas a part dans le monde du jeu. Ils ont placer sous licence libre (GPL je crois) leurs moteurs de jeux n'ayant plus d'exploitation commerciale. Résultat : des moteurs de jeux libre, compatible avec l'original, et nettement améliorer graphiquement (par Tenebrae pour Quake 1 : http://tenebrae.sourceforge.net/(...) )
# Impressionnant
Posté par Philippe F (site web personnel) . Évalué à 5.
Si on n'est pas cracker soi-meme, c'est d'ailleurs difficile d'etre expert dans ce domaine.
Je note aussi que tout ca est tres tres windows. Je me demande quelle serait la problematique sous Linux. D'un autre cote, il est absolument infaisable aujourd'hui de distribuer un produit grand public pour Linux sous forme binaire [3], donc de la a le securiser, on y est pas encore.
(2): c'est une faute de frappe !
[3]: je sais que certains vont bondir mais c'est une realite. 5 distributions majeures, avec au moins une mise a jour de la distrib tous les ans, ca fait 10 produits binaires a packager (de facon completement differente) par an minimum. Mais c'est sans compter les gentooistes qui vont recompiler leur libc, les linux sur PPC, les distributions mineures, ... La seule facon de distribuer un produit grand public sous linux, c'est de le developper dans un langage byte-code ou interprete (python roxor!)
[^] # Re: Impressionnant
Posté par un_brice (site web personnel) . Évalué à 3.
Ou de faire ce que les devs windows, ainsi que les jeux pour GNU/Linux récents et OO.org font : inclure leurs propres versions des librairies sensibles.
En sachant que la plupart des distros fournissent des binaires de compatiblité pour un truc qui s'appelle la "LSB" (je crois)... ça devrait passer.
La réticence vis à vis des "binaires universels" est surtout une question de culture (et puis c'est peut être moins optimal qu'un système dont chaque binaire à été prévu pour la version actuelle des librairies).
[^] # Re: Impressionnant
Posté par dvrasp . Évalué à 2.
Sinon c'est vrai que la protection des binaires Linux est une question qui sucite mois d'intérêt, vu que les logiciels propriétaires y sont encore plus rares, en comparaison, que les LL sur Windows. Ironiquement, il y a pourtant une forte demande du côté des pirates, qui cherchent à ne pas se faire voler leurs 0-days.
Les techniques sont globalement les mêmes que sur Windows, à l'exceptions de quelques tricks spécifique, probablement, mais qui risquent de poser des problèmes de compatibilité. On peut citer Shiva (http://www.securereality.com.au/(...)).
Et pour en revenir à ta dernière assertion, n'est-il pas possible de fournir des binaires compilés statiquement avec une certaine version de la libc ? Ça ne résoud pas tous les problèmes, bien sûr (kernel, toolkits graphique, perfs, etc.).
Il me semble que les binaires de certains logiciels libres sont fournis sous cette forme (blender ?). Quelqu'un a-t-il de l'expérience sur ce sujet ?
[^] # Re: Impressionnant
Posté par Philippe F (site web personnel) . Évalué à 2.
ldd `which konqueror` | wc -> 40 dependances, loins d'etre triviales (X, fontconfig, pthreads, librender, ....)
Le pire pour des binaires, c'est une distrib style gentoo: etant donne qu'il n'y a pas d'arret dans le temps de la distrib, tous les utilisateurs ont une gentoo differente. C'est aussi le cas si je ne m'abuse des debian instables. Tous les developpeurs n'ont pas necessairement la derniere version du logiciel X. Ou bien ils ont une version plus recente que la version qui etait la quand le logiciel est sorti.
Vraiment, en dehors des langages interpretes/byte-compiles, je pense que la distribution binaire de masse sous Linux est vouee a l'echec. Bien sur, il y a les oracles qui te certifient une version de redhat et c'est tout. Ca va pour un serveur en fait.
[^] # Re: Impressionnant
Posté par oumpa . Évalué à 3.
L'interview reste tout de même très accéssible pour un sujet aussi technique et démystifie un peu les méthodes employées pour ceux qui ne sont pas justement des experts dans ce domaine.
Pour ce qui en est du reste, j'ais remarqué que certains professionnels se contentent juste d'afficher une compatibilité très restreinte pour leurs produits initialement conçus pour windows puis portés sous linux :
- une seule version du kernel pour une seule version d'une seule distribution,
Tu choisis ton système d'exploitation en fonction du soft et non pas le contraire.
# Où trouver le binaire utilisé pour la présentation ?
Posté par Alan_T . Évalué à 0.
[^] # Re: Où trouver le binaire utilisé pour la présentation ?
Posté par Denis Montjoie (site web personnel) . Évalué à 0.
Vous êtes en présence d'un binaire protégé contre le Reverse Engineering. Pour completer ce niveau, vous devrez analyser le système de protection afin d'obtenir le message de félicitations.
De nombreuses techniques Anti Reverse Engineering sont utilisées dans cette protection.
Tous les outils sont autorisés pour compléter le niveau. Pour le valider, il sera nécessaire d'expliquer la démarche utilisée, et de fournir les éléments qui vous ont permis de résoudre le niveau.
Télécharger le binaire http://DMRproject.free.fr/rstack.zip(...)
Commentaire :
- Niveau programmé 100% en Assembleur Win32.
- Fonctionne sur Windows 98, ME, 2000, XP et probablement 2003.
- Ne fonctionne pas sur Win95 et NT4. Virtual PC et Vmware ne peuvent pas être utilisés à cause du code Anti Emulateurs.
Liens
Merci à Nicolas Brulez pour la conception de ce niveau. Vous pourrez notamment le voir lors de la conférence SecuriTech qui aura lieu en mai prochain :
Nicolas Brulez - 0x90[AT]rstack[DOT]org
Chief of Security
The Armadillo Software Protection System
http://www.siliconrealms.com/armadillo.shtml(...)
Indices
La où les choix sont multiples, prenez la longueur 5...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.