La protection de code est omniprésente au sein des programmes propriétaires ou des malwares. Essayons ensemble de découvrir les différentes méthodes utilisées par les attaquants et éditeurs. Cet article aborde la protection de code d'une manière générale en présentant au lecteur les différentes méthodes de protection (anti-désassemblage, obfuscation, packer…), mais également l'application de ces méthodes à différents langages de programmation (C#, PHP, VBScript...), ainsi que l'application de ces techniques au malware Dridex. Pour finir, le système d'exploitation Windows et les technologies web seront mis en avant.
1. Les différentes méthodes de protection
La protection de code peut être introduite de deux points de vue (attaquant, défenseur). En effet, le défenseur souhaitant protéger ses longues journées et nuits de codage ou l'attaquant réalisant un malware et voulant outrepasser des protections de sécurité (antivirus, pare-feu, IDS / IPS, proxy...). L'objectif commun est de bloquer ou du moins rendre difficile l'analyse d'un programme à la rétro-ingénierie que ce soit via une analyse statique ou dynamique.
1.1 Anti-désassemblage
L'anti-désassemblage utilise des portions de code ou de données spécialement conçues en assembleur dans le but de générer un problème de désassemblage lors de l'analyse via un outil tel qu'IDA ou Objdump. L'objectif étant de brouiller le code désassemblé en plaçant de faux opcodes dans le but de dissimuler un code sensible par exemple.
1.2 Anti-debbuging
L'anti-debbogage (anti-debugging en anglais) est une technique...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première