Question

J'essaie de comprendre les problèmes de sécurité entre les dépassements de mémoire tampon dans Windows vs Unix.

Si je comprends bien, le débordement de tampon de Windows ne peut pas être mis en œuvre sous Unix car chaque processus dispose de son propre espace mémoire. Cela signifie-t-il que les processus Windows partagent un espace mémoire?

Était-ce utile?

La solution

L'espace mémoire partagé n'est pas la raison de la plupart des exploits de débordement de mémoire tampon. Windows ne dispose pas de mémoire partagée depuis Win 3.0 (ou Windows 3.1 fonctionnant sous 80286). Cela fait donc longtemps, presque 20 ans, depuis la dernière livraison de Windows, qui prenait en charge le modèle de mémoire partagée.

Le dépassement de mémoire tampon permet à l'attaquant de changer de mémoire au cours du processus en cours d'exploitation. Ce faisant, l’attaquant cherche à exécuter une opération système (par exemple, démarrer un processus, charger une bibliothèque dynamique, modifier les droits de certains utilisateurs, etc.) en utilisant le niveau de privilège des processus cibles.

Ceci est possible sur les plates-formes Win *, les plates-formes * nix et bien d’autres. La manière dont le système d'exploitation et l'application en cours d'exploitation gère cette tentative fait la différence. Du côté des applications, une vérification minutieuse de la taille de la mémoire tampon est ce qu’il faut habituellement pour éviter cela. Des technologies telles que ASLR (randomisation de la disposition des espaces d’adresses, qui empêche l’attaquant de deviner l’adresse d’une fonction qu’elle doit appeler pour faire du mal) et DEP (prévention de l’exécution des données, qui l’empêche d’injecter du code exécutable dans vos zones de données), à condition par l'OS, aider énormément. Du côté du système d'exploitation, ne pas exécuter les applications en tant que root / administrateur est peut-être la ligne de défense la plus importante.

Autres conseils

Les processus Windows et Unix ont tous deux une isolation mémoire. Des attaques par dépassement de mémoire tampon peuvent se produire dans les deux environnements.

Peut-être devriez-vous clarifier ce que vous voulez dire par "débordement de tampon dans le piratage Windows". Les dépassements de mémoire tampon ne nécessitent pas nécessairement de modifier le code d'autres processus.

Exemple: La lecture de cin dans un tableau d'octets de taille fixe peut être utilisée pour exécuter du code personnalisé. Si le programme lui-même s’exécute en tant que root, ni Unix ni Windows ne peuvent rien faire pour empêcher le piratage - l’isolation de la mémoire ne servira à rien.

Comme Todd l'a souligné, Windows et Unix sont tous deux capables d'isoler la mémoire (ce qui est très simple comparé à DEP ou ASLR ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top