C'est la magie des notes, il ne faut pas y faire trop attention. En tout cas je n'ai pas mal pris ton commentaire du tout.
(J'en profite pour placer un commentaire que j'aurais pu mettre ailleurs.)
Tu parles de la "randomization" des adresses mémoires (ASLR) pour empêcher l'exploitation des buffer overflow, mais je voulais insister sur le fait que c'est une technique défensive qui ne se fait pas au même niveau que le sandboxing. La logique de l'ASLR c'est "j'ai un bug, comment rendre difficile de l'exploiter comme une faille de sécurité". Si tout se passe bien le bug n'est pas exploitable, et dans les mauvais cas (ou si l'attaquant est trop malin, genre toboggan et compagnie) on a une exécution de code arbitraire. C'est donc une protection du style "tomber dans le pire cas moins souvent". Au contraire le sandboxing consiste à réduire au maximum les privilèges du processus, de façon à ce qu'en cas d'exploitant (indépendamment de la fréquence de tels événements) les conséquences néfastes soient limitées : c'est une protection du style "faire que le pire cas soit moins grave". Donc pour moi les deux sont complémentaires, mais je pense que la compartementalisation est une technique plus fondamentale et plus efficace, qui devrait être une brique de base de tout système bien conçu, alors que l'ASLR est plutôt un détail d'implémentation efficace en pratique mais ne donnant aucune garantie réelle dans l'absolu.
[^] # Re: Oui, mais
Posté par gasche . En réponse à la dépêche Quelques aspects de la sécurité qui n'ont rien a voir avec le « Sandboxing ». Évalué à 4.
C'est la magie des notes, il ne faut pas y faire trop attention. En tout cas je n'ai pas mal pris ton commentaire du tout.
(J'en profite pour placer un commentaire que j'aurais pu mettre ailleurs.)
Tu parles de la "randomization" des adresses mémoires (ASLR) pour empêcher l'exploitation des buffer overflow, mais je voulais insister sur le fait que c'est une technique défensive qui ne se fait pas au même niveau que le sandboxing. La logique de l'ASLR c'est "j'ai un bug, comment rendre difficile de l'exploiter comme une faille de sécurité". Si tout se passe bien le bug n'est pas exploitable, et dans les mauvais cas (ou si l'attaquant est trop malin, genre toboggan et compagnie) on a une exécution de code arbitraire. C'est donc une protection du style "tomber dans le pire cas moins souvent". Au contraire le sandboxing consiste à réduire au maximum les privilèges du processus, de façon à ce qu'en cas d'exploitant (indépendamment de la fréquence de tels événements) les conséquences néfastes soient limitées : c'est une protection du style "faire que le pire cas soit moins grave". Donc pour moi les deux sont complémentaires, mais je pense que la compartementalisation est une technique plus fondamentale et plus efficace, qui devrait être une brique de base de tout système bien conçu, alors que l'ASLR est plutôt un détail d'implémentation efficace en pratique mais ne donnant aucune garantie réelle dans l'absolu.