Séminaire ESEC 2008 : révéler les informations
cachées dans les systèmes d'information
Résumé
Cette introduction présente les multiples sources (ouvertes)
d'information qu'il est facile d'interroger pour dresser
l'environnement d'une cible : entreprise, personnes ou réseau.
Au travers d'un exemple réel, nous montrerons qu'Internet recèle
parfois bien plus de données que ce à quoi on peut penser, Google
n'étant pas, et de loin, l'unique moteur de recherche.
Résumé
Cette intervention illustre la démarche à suivre pour analyser un
logiciel dont on ne sait rien, et être alors en mesure d'en évaluer
l'impact en terme de sécurité. En effet, d'après les plaquettes, les
logiciels fournissent toujours les meilleurs services, se fondent
parfaitement dans l'architecture existante, et prennent en compte la
sécurité.
Nous prendrons comme exemple OneBridge, une solution de mobilité
pour donner accès aux emails et applications de l'entreprise à ses
employés, où qu'ils soient. Nous montrerons comment nous avons
reconstruit le protocole, puis l'avons détourné pour prendre un
contrôle complet du serveur, uniquement en utilisant les
fonctionnalités fournies. Cet exemple montre bien la nécessité d'une
analyse approfondie avant le déploiement de telles applications,
surtout quand elles ont accès à des données sensibles comme
celles contenues dans une messagerie.
Résumé
Pour analyser un logiciel, il est pratiquement toujours nécessaire de
le reverser, c'est-à-dire d'examiner son code binaire, et de
chercher à comprendre son fonctionnement : on parle alors de
rétro-conception (ou reverse engineering). Ainsi, le législateur
a prévu un certain nombre de cas où cette approche est autorisée (par
exemple, pour des motifs d'interopérabilité). Néanmoins, la plupart du
temps, elle est interdite. Cette présentation expliquera la logique
juridique qui accompagne le reverse engineering.
Résumé
Le vol d'un ordinateur portable n'est pas une perte anodine. Bien
souvent, au-delà des documents qu'il contient, on y trouve également
énormément d'information sur le SI d'une
entreprise. En général, il devient alors trivial de pénétrer depuis
n'importe où sur le réseau de la société, pour y rechercher
tranquillement des données sensibles.
Cette intervention montrera tout ce qu'on peut trouver, quand on sait
où et comment chercher, sur un ordinateur portable standard. Pour
cela, le forensics, c'est-à-dire une démarche d'analyse
post-intrusion, s'avère particulièrement efficace. C'est pourquoi il
est important d'évaluer les informations présentes sur les portables,
pas uniquement en terme de documents, mais aussi d'accès au réseau et de gestion de l'identité.
Résumé
Qu'il s'agisse d'évaluer le risque informatique associé à un logiciel,
ou de creuser dans les mécanismes internes d'un système d'exploitation
pour y révéler ce qui est caché, cela passe toujours par une phase de
rétro-conception. Toutefois, l'application la plus évidente en est le
vol de secrets industriels. En effet, il est souvent bien plus simple
d'acheter un logiciel et de le reverser pour comprendre l'avance
technologique d'un concurrent que de cambrioler les bureaux de
ce dernier.
Si cette pratique est indubitablement condamnable, faut-il pour autant
rejeter la technique sur laquelle elle repose ? En réalité, les mêmes
méthodes sont employées pour analyser des codes malicieux (virus, vers
et autres chevaux de Troie) ou des applications. Nous présenterons les
techniques classiques qui fournissent rapidement une idée précise de
ce que fait un logiciel, puis comment on affine alors cette
représentation incomplète en fonction de ce qu'on cherche.
Le packer, la solution contre la rétro-conception ?
Résumé
Un logiciel révèle beaucoup d'informations, en particulier sur la
manière dont il fonctionne. Toute l'intelligence et l'investissement
nécessaires à sa réalisation sont exposés à ceux qui les analyses. Il
est néanmoins possible de retarder, voire d'empêcher, cette étude à
l'aide d'une sur-couche logicielle appelée packer. Il s'agit
d'une sorte d'enveloppe destinée à protéger l'intelligence mise dans
le logiciel sans en empêcher en fonctionnement.
Un packer met en oeuvre un ensemble d'opérations sur un logiciel
qu'on cherche à protéger. Par exemple, il s'agira d'interdire l'accès
au binaire par du chiffrement, ou encore de limiter les fuites
d'informations sur les ressources utilisées par le programme. Cet
exposé illustrera les multiples techniques de protection qui existent.
Tout comme on protège un réseau à l'aide de différents composants
(routeurs, pare-feux, et autres), on verra que l'architecture de cette
protection est cruciale. En effet, chaque mesure prise séparément est
inefficace, alors qu'une combinaison astucieuse se révèle redoutable.