Je m'occupe à la fois de MacOS et de Linux.
Linux efface automatiquement toute mémoire libérée afin d'empêcher la fuite d'informations laissées dans la mémoire libérée, et également pour empêcher les attaques qui recherchent ou s'appuient sur les informations laissées dans la mémoire libérée (par exemple, les attaques de variables non initialisées, les attaques d'utilisation après libération, les attaques de réutilisation, les expositions du contenu de la pile et les expositions du contenu du tas) ( https://www.kernel.org/doc/html/v4.18/security/self-protection.html ). J'aime cette fonctionnalité de Linux, et je me demande si MacOS la possède également.
-
MacOS efface-t-il automatiquement toute la mémoire libérée ?
-
(En supposant que le n°1 est positif) Depuis quelle version de MacOSX, OSX ou MacOS, est-il équipé de cette fonctionnalité d'effacement automatique de la mémoire libérée ?
Lorsque vous répondez, essayez d'indiquer un document officiel d'Apple (soit sur developer.apple.com ou support.apple.com mais PAS sur forum.apple.com) qui étaye votre réponse.
À propos, l'autoprotection du noyau Linux comprend l'"empoisonnement de la mémoire", qui fait plus que l'"effacement de la mémoire". Le "Memory Poisoning" remplit la mémoire libérée avec une signature spéciale afin d'identifier les données de mémoire mauvaises ou corrompues et d'avertir le système lorsque ces mauvaises données sont éventuellement lues ( https://patents.google.com/patent/US20140006879A1/en ).
2 votes
"Linux efface automatiquement toute la mémoire libérée" Non, il ne le fait pas, pas sans un correctif tiers du noyau (et je n'en connais pas un qui soit actuellement maintenu et librement disponible : c'est une partie de Grsecurity ).
0 votes
@Gilles'SO-stopbeingevil', il fait partie de la ligne principale de Linux depuis un certain temps (Kernel Hacking -> Memory Debugging -> Poison pages after freeing), mais en raison de l'impact sur les performances, il n'est pas toujours activé.
0 votes
Veuillez préciser. Qu'entendez-vous par "mémoire libérée" ? Il peut s'agir de la mémoire libérée dans les pools du noyau (première réponse) ou de la mémoire physique libérée dans la liste des mémoires libres (réponse moins populaire). Si c'est la première réponse, je supprimerai ma réponse.