Spelling suggestions: "subject:"atteinte"" "subject:"l’atteinte""
1 |
Obfuscation de données pour la protection de programmes contre l'analyse dynamique / Data obfuscation against dynamic program analysisRiaud, Stéphanie 14 December 2015 (has links)
La rétro-conception est une technique qui consiste à analyser un produit afin d'en extraire un secret. Lorsque le produit ciblé est un programme informatique, le rétro-concepteur peut chercher à extraire un algorithme ou tout élément du code de ce programme. L'obfuscation est une technique de protection qui consiste à modifier le code d'un programme afin de le rendre plus difficile à rétro-concevoir. Nous nous intéressons à l'étude et au développement de techniques d'obfuscation de programmes informatiques. Nous avons développé une nouvelle technique d'obfuscation de code, puis nous avons démontré son efficacité et finalement nous avons implémenté une autre technique de protection ayant pour objectif de renforcer la résilience des techniques de protection anti-rétro conception. Nous avons donc, dans un premier temps, imaginé et implémenté une nouvelle technique d'obfuscation permettant de protéger certains éléments spécifiques contenus dans les programmes implémentés en langage C. En nous appuyant sur un état de l'art détaillé des techniques d'analyses utilisées lors de la rétro-conception de programmes, nous avons établi l'efficacité de cette technique de protection. Dans un second temps, nous avons étayé les éléments précédemment établis, en démontrant de façon empirique que cette mesure de protection peut être appliquée sur des programmes concrets. Nous démontrons qu'elle peut être mise en place sur des codes de haut niveau et rester efficace sur les fichiers exécutables obtenus à partir de ces codes. Nous poussons notre analyse jusqu'à démontrer que lorsque le processus d'obfuscation est réalisé de façon scrupuleuse, le temps d'exécution des programmes protégés reste dans le même ordre de grandeur que celui des programmes non protégés. Dans un troisième temps, nous travaillons en avance de phase en développant des mécanismes de protection ciblés, visant à contrer les outils d'analyse automatique utilisés par les rétro-concepteurs. Leur objectif est de renforcer la robustesse des techniques appliquées à haut niveau en augmentant leur furtivité et en fournissant au rétro-concepteur des résultats erronés. Nos contributions couvrent divers sujets liés à la lutte contre la rétro-conception. Nous avons développé et implémenté de nouvelles techniques de protection de code. Lorsque ces techniques de protection s'appliquent à haut niveau, nous avons mis au point un processus permettant de démontrer qu'elles ne perdent pas en efficacité et que leur coût en terme de temps d'exécution reste acceptable. Pour les techniques de protection plus bas niveau que nous avons développées, nous avons démontré leur efficacité face à des outils d'analyse dynamique de code utilisés lors de la rétro-conception. / Reverse engineering is a technique that consists in analyzing a product in order to extract a secret. When a computer program is targeted, the reverse engineer may seek to extract an algorithm code or any component of this program. Obfuscation is a protection technique aimed to make it more difficult to reverse engineer. We are interested in the study and development of obfuscation techniques to protect computer programs. We have developed a new technique of code obfuscation, then we have demonstrated its effectiveness, and finally we implemented another protection technique with the aim of enhance the resilience of anti-reverse engineering protection techniques. So we, initially, designed and implemented a new obfuscation technique to protect certain specific elements contained in the programs implemented in C language. By relying on dynamic analysis techniques, we have established the effectiveness of this protection technique. Secondly, we have backed up previously established elements, by demonstrating empirically that this protection can be applied to concrete programs. We demonstrate that this protection can be placed on high-level codes and remain effective on executable files obtained from these codes. We demonstrate that when the process of obfuscation is realized in a scrupulous way, the execution time of programs remains in the same order as that of the protected programs. Thirdly, we work on developing targeted protection mechanisms to counter automatic analysis tools used by reverse engineers. Their aim is to enhance the robustness of the techniques applied to high level by increasing their stealth and providing fake results for the reverse engineers. Our contributions cover various topics related to protection against reverse engineering. We have developed and implemented new code protection techniques. When these protection techniques are apply to high level, we have developed a process to demonstrate that they do not lose efficiency and their cost in terms of execution time remains acceptable. For the lowest level protection techniques that we have developed, we have demonstrated their effectiveness face of dynamic code analysis tools used in reverse engineering.
|
2 |
Recherche de vulnérabilités logicielles par combinaison d'analyses de code binaire et de frelatage (Fuzzing) / Software vulnerability research combining fuzz testing and binary code analysisBekrar, Sofia 10 October 2013 (has links)
Le frelatage (ou fuzzing) est l'une des approches les plus efficaces pour la détection de vulnérabilités dans les logiciels de tailles importantes et dont le code source n'est pas disponible. Malgré une utilisation très répandue dans l'industrie, les techniques de frelatage "classique" peuvent avoir des résultats assez limités, et pas toujours probants. Ceci est dû notamment à une faible couverture des programmes testés, ce qui entraîne une augmentation du nombre de faux-négatifs; et un manque de connaissances sur le fonctionnement interne de la cible, ce qui limite la qualité des entrées générées. Nous présentons dans ce travail une approche automatique de recherche de vulnérabilités logicielles par des processus de test combinant analyses avancées de code binaire et frelatage. Cette approche comprend : une technique de minimisation de suite de tests, pour optimiser le rapport entre la quantité de code testé et le temps d'exécution ; une technique d'analyse de couverture optimisée et rapide, pour évaluer l'efficacité du frelatage ; une technique d'analyse statique, pour localiser les séquences de codes potentiellement sensibles par rapport à des patrons de vulnérabilités; une technique dynamique d'analyse de teinte, pour identifier avec précision les zones de l'entrée qui peuvent être à l'origine de déclenchements de vulnérabilités; et finalement une technique évolutionniste de génération de test qui s'appuie sur les résultats des autres analyses, afin d'affiner les critères de décision et d'améliorer la qualité des entrées produites. Cette approche a été mise en œuvre à travers une chaîne d'outils intégrés et évalués sur de nombreuses études de cas fournies par l'entreprise. Les résultats obtenus montrent son efficacité dans la détection automatique de vulnérabilités affectant des applications majeures et sans accès au code source. / Fuzz testing (a.k.a. fuzzing) is one of the most effective approaches for discovering security vulnerabilities in large and closed-source software. Despite their wide use in the software industry, traditional fuzzing techniques suffer from a poor coverage, which results in a large number of false negatives. The other common drawback is the lack of knowledge about the application internals. This limits their ability to generate high quality inputs. Thus such techniques have limited fault detection capabilities. We present an automated smart fuzzing approach which combines advanced binary code analysis techniques. Our approach has five components. A test suite reduction technique, to optimize the ratio between the amount of covered code and the execution time. A fast and optimized code coverage measurement technique, to evaluate the fuzzing effectiveness. A static analysis technique, to locate potentially sensitive sequences of code with respect to vulnerability patterns. An origin-aware dynamic taint analysis technique, to precisely identify the input fields that may trigger potential vulnerabilities. Finally, an evolutionary based test generation technique, to produce relevant inputs. We implemented our approach as an integrated tool chain, and we evaluated it on numerous industrial case studies. The obtained results demonstrate its effectiveness in automatically discovering zero-day vulnerabilities in major closed-source applications. Our approach is relevant to both defensive and offensive security purposes.
|
3 |
Morphologie mathématique et indexation d'images couleur : application à la microscopie en biomédecineAngulo Lopez, Jesus 08 December 2003 (has links) (PDF)
Dans le domaine de l'image numérique en microscopie biomédicale, la couleur constitue une source importante d'information, laquelle combinée avec la géométrie et la morphologie des structures, permet le développement de techniques quantitatives plus performantes et robustes. Et ceci est aussi le cas dans le domaine des applications multimédia, notamment pour l'indexation automatique par le contenu. Néanmoins, la représentation et le traitement des images couleur reste un problème ouvert.<br /><br />Cette thèse se propose d'explorer des méthodes à caractère générique pour la segmentation, le filtrage et l'extraction de caractéristiques des images couleur, en se fondant sur des opérateurs de la morphologie mathématique. D'un point de vue plus pratique, les deux applications spécifiques considérées sont la cytologie quantitative hématologique et la lecture de puces à ADN.<br /><br />Dans un premier temps, nous traitons le problème des espaces couleur. Des résultats mathématiques justifient l'usage des systèmes de coordonnées de type teinte/luminance/saturation. Nous montrons par ailleurs les avantages pratiques de telles représentations lorsqu'on bâtit des histogrammes bidimensionnels teinte/saturation et luminance/saturation pour segmenter les images couleur et pour extraire des reflets, des zones d'ombre et des dégradés sur les images couleur.<br /><br />Ainsi, nous pouvons aborder l'extension de certains opérateurs morphologiques pour le filtrage et la segmentation d'images couleur ou multispectrales, le but principal étant de développer des opérateurs couleur, extension des opérateurs scalaires, qui soient adaptés aux caractéristiques avantageuses des espaces couleur type teinte/luminance/saturation. Notamment le fait d'avoir à notre disposition l'information chromatique et l'information achromatique d'une manière indépendante, ainsi qu'une information comme la saturation qui joue le rôle de poids de contrôle entre les deux, nous permet de proposer quelques façons différentes de filtrer/segmenter conjointement les structures chromatiques et achromatiques d'une image couleur. Un grand nombre d'exemples ont montré l'intérêt de cette approche.<br /><br />Nous montrons ensuite les résultats de différentes études concrètes sur la caractérisation et la classification de la forme, la texture et la couleur des objets d'une image grâce aux opérateurs tels que les granulométries et les histogrammes couleur.<br /><br />Dans la dernière partie, nous abordons deux applications en microscopie biomédicale quantitative. La première application correspond à une plate-forme technologique intégrée pour la segmentation, l'extraction de caractéristiques et la classification de cellules dans des frottis de sang périphérique, dans le cadre d'applications en réseau (téléhématologie). Dans la deuxième application, nous utilisons les opérateurs morphologiques les plus avancés dans une approche automatique très performante pour l'extraction des données des spots de l'image d'une puce à ADN.
|
Page generated in 0.0561 seconds