SSTIC 2012 - Compromission d'une application bancaire JavaCard

Compromission d’une application bancaire JavaCard

Par Julien Lancia

L’orateur nous fait un topo sur les mécanismes de sécurité présent dans JavaCard (cf:actes), et quelques contournements qui viennent compromettre l’ensemble du système.

Normalement en JavaCard, les métadonnées liées aux objets viennent contrôler les accès fait par les objets à d’autres éléments pour éviter qu’un objet accède à une information indûment. Cependant, en jouant avec les types natifs pour lesquels il n’y a pas de métadonnées, l’auteur à réussi à lire des données sensibles auquelles il ne devait pas avoir accès. Ainsi en accédant en lecture puis en écriture sur l’ensemble du code, l’auteur a pu ainsi sortir tout le code de la javacard, le reverser et trouver quelles infos doivent être modifiés pour obtenir une yesscard et contourner le contrôle du code PIN.

On à en suite droit à une démo du chargement d’une applet d’attaque qui va venir exploiter la faille liée aux tableaux et grignotter la mémoire pour en extraire le code, puis une écriture sur le jump du switch de vérification du PIN.