Sommaire
Face à la transformation digitale de notre société et l’augmentation des cybermenaces, la cybersécurité doit être aujourd’hui une priorité pour bon nombre d’organisations. Après plus de 20 années de publications et de retours d’expérience, MISC apporte un vivier d’informations techniques incontournable pour mieux appréhender ce domaine. Précurseur sur ce terrain, MISC a été fondé dès 2002 et s’est peu à peu imposé dans la presse française comme la publication de référence technique en matière de sécurité informatique. Tous les deux mois, ses articles rédigés par des experts du milieu vous permettront de mieux cerner la complexité des systèmes d’information et les problèmes de sécurité qui l’accompagne.
C'est un lieu commun, les téléphones portables sont devenus bien plus que de simples téléphones. Le moindre appareil est maintenant plus puissant que les ordinateurs d'il y a quelques années. Ils sont équipés de plusieurs processeurs, disposent de mémoires hautement performantes, et accessoirement, permettent de passer et recevoir des coups de fil.
Cet article est une introduction aux infrastructures critiques et réseaux industriels communément appelés ICS (Industrial Control Systems). Si vous n'avez jamais entendu parler de ces réseaux, si vous vous êtes toujours demandé en quoi consiste ces réseaux, et surtout pourquoi la question de sécurité en est si importante, cet article est pour vous. Nous ne rentrerons pas trop dans les détails concernant les protocoles, technologies et vulnérabilités dans cet article.
Depuis quelques années, l'exploitation des failles applicatives, en particulier des débordements de tampons, est rendue de plus en plus difficile par les protections mises en place dans les divers systèmes d'exploitation. En particulier, il est de plus en plus rare de pouvoir exécuter des données sur la pile. Dans la première partie de l'article, nous rappelons les techniques de retour dans la libc, permettant de contourner ces protections, en particulier lorsque les arguments des fonctions, ainsi que leur adresse (ASCII Armor), contiennent des octets nuls. Nous voyons dans un second temps comment automatiser la création de shellcodes dans une pile non exécutable, à l'aide d'une preuve de concept en Python qui interface des outils déjà existants, tels que objdump ou ldd. Enfin, nous présentons les évolutions de ces techniques et les progrès actuels dans le domaine du « Return Oriented Programming », dont l'objectif est d'aller plus loin qu'un simple chaînage de fonctions, en proposant par exemple des boucles ou des branchements.