L'isolation des processus est un ensemble de technologies matérielles et logicielles différentes conçues pour protéger chaque processus des autres processus du système d'exploitation . Cela se fait en empêchant le processus A d'écrire dans le processus B.
L'isolation des processus peut être mise en œuvre avec un espace d'adressage virtuel , où l'espace d'adressage du processus A est différent de l'espace d'adressage du processus B, empêchant A d'écrire sur B.
La sécurité est plus facile à appliquer en interdisant l'accès à la mémoire interprocessus, contrairement aux architectures moins sécurisées telles que DOS dans lesquelles n'importe quel processus peut écrire dans n'importe quelle mémoire de n'importe quel autre processus.
Communication interprocessus limitée
Dans un système avec isolation des processus, une interaction limitée (contrôlée) entre les processus peut toujours être autorisée via des canaux de communication interprocessus (IPC) tels que la mémoire partagée , les sockets locaux ou les sockets Internet . Dans ce schéma, toute la mémoire du processus est isolée des autres processus, sauf lorsque le processus autorise les entrées provenant de processus collaboratifs.
Les politiques système peuvent interdire l'IPC dans certaines circonstances. Par exemple, dans les systèmes de contrôle d'accès obligatoire , les sujets ayant des niveaux de sensibilité différents peuvent ne pas être autorisés à communiquer entre eux. Les implications en matière de sécurité dans ces circonstances sont vastes et couvrent des applications dans le domaine du cryptage de clés réseau ainsi que des algorithmes de mise en cache distribuée. Les protocoles définis par l'interface tels que l'architecture d'accès au cloud de base et le partage de réseau sont également affectés.
Systèmes d'exploitation
Les systèmes d’exploitation qui prennent en charge l’isolement des processus en fournissant des espaces d’adressage distincts pour chaque processus incluent :
- Systèmes de type Unix tels que Linux , macOS , Solaris et AIX
- Système de gestion de vidéosurveillance
- Windows NT
Navigateurs Web
Internet Explorer 4 utilisait l'isolation des processus afin de permettre aux différentes instances fenêtrées du navigateur d'avoir leurs propres processus. Cependant, au plus fort de la guerre des navigateurs , cette solution a été abandonnée dans les versions suivantes pour concurrencer Netscape Navigator (qui cherchait à se concentrer sur un seul processus pour l'ensemble de la suite Internet). Cette idée de processus par instance ne sera réintroduite qu'une décennie plus tard, lorsque la navigation par onglets est devenue plus courante.
Dans l'architecture multiprocessus de Google Chrome [ et l'Internet Explorer 8 " Loosely Coupled IE (LCIE) " les onglets contenant des pages Web sont contenus dans leurs propres processus semi-séparés au niveau du système d'exploitation, qui sont isolés du processus principal du navigateur afin d'éviter que le crash d'un onglet/d'une page ne fasse planter l'ensemble du navigateur. Cette méthode (connue sous le nom de multiprocessus ou processus par onglet ) est destinée à la fois à gérer la mémoire et le traitement en permettant aux onglets fautifs de planter séparément du navigateur et des autres onglets et à gérer la sécurité.
Navigateurs avec isolation des processus
- Google Chrome
- Internet Explorer 8 et versions ultérieures
- Safari
- Mozilla Firefox (par défaut depuis 57)
- Maxthon
Langages de programmation
Erlang (langage de programmation) fournit un concept similaire dans l'espace utilisateur, en réalisant des processus légers strictement séparés.
Technologies connexes
- La mémoire virtuelle et l’espace d’adressage virtuel permettent l’isolation de l’espace mémoire.
- La polyinstantiation permet des miroirs de ressources partagées, où les modifications apportées par le processus A ne seront pas visibles pour le processus B.