Isolement


  Share  
|


Processus d'isolat de systèmes de deux manières. Dans le premier, le processus est présenté avec un environnement qui semble être un ordinateur fonctionnant seulement que processus ou ces processus à isoler. Dans l'en second lieu, on fournit un environnement dans lequel des actions de processus sont analysées pour déterminer si elles fuient l'information. Le premier type d'environnement empêche le processus d'accéder au système informatique fondamental et tous les processus ou les ressources qui ne sont pas une partie de cet environnement. Le deuxième type d'environnement n'émule pas un ordinateur. Il change simplement l'interface entre l'ordinateur existant et le process(es).

Machines Virtuelles

Le premier type d'environnement s'appelle une machine virtuelle.

Une machine virtuelle est un programme qui simule le matériel du système informatique de a (probablement abstrait).

Une machine virtuelle emploie un logiciel d'exploitation spécial appelé un moniteur virtuel de machine pour fournir une machine virtuelle sur laquelle les logiciels d'exploitation conventionnels peuvent fonctionner

L'avantage primaire d'une machine virtuelle est celui les logiciels d'exploitation existants n'a pas besoin d'être modifié. Ils fonctionnent sur le moniteur virtuel de machine. Le moniteur virtuel de machine impose la politique désirée de sécurité. C'est transparent à l'utilisateur. Le moniteur virtuel de machine fonctionne comme grain de sécurité.

En termes de politique, le moniteur virtuel de machine a affaire avec des sujets (les sujets étant les machines virtuelles). Même si une machine virtuelle court des centaines de processus, le moniteur virtuel de machine sait seulement la machine virtuelle. Ainsi, elle peut appliquer des contrôles de sécurité à ses sujets, et ces commandes s'appliquent aux processus que ces sujets courent. Ceci satisfait la règle de l'emprisonnement transitif.

EXEMPLE : Le KVM/370 était une version sécurité-augmentée du moniteur virtuel de machine d'IBM VM/370. Ce système a fourni les machines virtuelles pour ses utilisateurs, et un de ses buts était d'empêcher des communications entre les machines virtuelles de différentes classes de sécurité, ainsi les utilisateurs dans différentes classes de sécurité pourraient employer le système en même temps. Comme VM/370, il a fourni aux machines virtuelles des minidisks et a permis à des systèmes de partager quelques secteurs de disque. À la différence de VM/370, il a employé une politique de sécurité pour négocier l'accès aux secteurs partagés du disque pour limiter des communications entre les systèmes.


EXEMPLE : Karger et collègues à la Digital Equipment Corporation Ont développé un moniteur virtuel de machine (VMM) pour le DEC VAX. Le moniteur est un grain de sécurité et peut exploiter le VMS ou le logiciel d'exploitation d'Ultrix. Les courses VMM sur le matériel indigène de VAX et est appelées toutes les fois que la machine virtuelle exécute une instruction privilégiée. Sa structure est typique des machines virtuelles conçues pour fournir la sécurité.

Le VAX a quatre niveaux de privilège : utilisateur, surveillant, directeur, et modes de grain. Afin de fournir une machine virtuelle compatible, les machines virtuelles doivent également avoir quatre niveaux de privilège. Cependant, le mode de grain permet à un processus d'accéder à des instructions privilégiées sur le matériel de VAX directement. On permet seulement Au le VMM de faire ceci. Les machines virtuelles ne peuvent pas accéder au mode de grain. La solution est de fournir des modes virtuels. Ces modes sont utilisateur de VM (correspondant au mode d'utilisateur), mode de surveillant de VM, et directeur de VM et des modes de grain de VM (les deux le mode réellement exécutif).

Les sujets VMM sont des utilisateurs et des machines virtuelles. VMM a un système de fichiers de base et plat pour son usage personnel et des cloisons l'espace disque restant parmi les machines virtuelles. Ces machines peuvent employer n'importe quelle structure de dossier qu'elles désirent, et chaque machine virtuelle a son propre ensemble de systèmes de fichiers. Chaque sujet et objet fait former une étiquette à multiniveaux de sécurité et d'intégrité, et les niveaux de sécurité et d'intégrité une classe d'accès. Deux entités ont la même classe d'accès si et seulement si leur sécurité et des étiquettes d'intégrité sont identique, et une entité domine des autres si et seulement si les classes de sécurité et d'intégrité dominent.

Un composant intégral du VMM est un mécanisme apurant. Ce mécanisme enregistre des actions pour l'analyse postérieure.


Puisque les machines virtuelles fournissent la même interface pour la communication avec d'autres machines virtuelles que les ordinateurs fournissent, ces canaux de communication peuvent être commandés ou ont divisé. Comme cité précédemment, si un centre serveur simple court les machines virtuelles multiples, ces machines virtuelles partagent les ressources physiques en centre serveur sur lequel elles fonctionnent. (elles peuvent également partager les ressources logiques, selon la façon dont le grain virtualizing est mis en application.) Ceci fournit une terre fertile pour les canaux secrets.

Sandboxes

Un sandbox de cour de jeu fournit un environnement sûr pour des enfants pour rester dedans. Si les enfants laissent le sandbox sans surveillance, ils peuvent faire des choses qu'ils ne sont pas censés faire. Le sandbox d'ordinateur est semblable. Il fournit un environnement sûr pour des programmes pour s'exécuter dedans. Si les programmes "partent" du sandbox, ils peuvent faire les choses qu'ils ne sont pas censé pour faire. Les deux types de sandboxes limitent les actions de leurs occupants.

Un sandbox est un environnement dans lequel les actions d'un processus sont s'accorder restreint à une politique de sécurité.

Les systèmes peuvent imposer des restrictions de deux manières. D'abord, le sandbox peut limiter l'environnement d'exécution comme nécessaire. Ceci est habituellement fait en ajoutant les mécanismes devérification de frais supplémentaires aux bibliothèques ou au grain. Le programme lui-même n'est pas modifié. Par exemple, le grain VMM discuté plus tôt est un sandbox parce qu'il contraint les accès des logiciels d'exploitation (non modifiés) qui fonctionnent là-dessus. La machine virtuelle de Java est un sandbox parce que son directeur de sécurité limite l'accès des programmes téléchargés aux ressources de système comme dictées par une politique de sécurité.

EXEMPLE : Le grain opérationnel du mur à l'épreuve du feu de Sidewinder emploie le type application pour confiner des processus. C'est un exemple d'un sandbox établi dans un grain, et il a la propriété que le sandbox est défini par le fournisseur. On ne le prévoit pas pour être changé à l'emplacement. Une telle conception est typique pour un système clés en main, qui est l'utilisation prévue pour un mur à l'épreuve du feu de Sidewinder.

La machine virtuelle de Java, en laquelle a téléchargé des applet sont exécutées, sont un autre exemple d'un sandbox. Le sandbox limite l'ensemble de dossiers aux lesquels l'applet peut accéder et des centres serveurs auxquels l'applet peut se relier. D'autres mécanismes de sécurité augmentent le sandbox.

DTE, le type mécanisme d'application pour DTEL, est un exemple dans lequel les modifications de grain permettent à des interfaces gestionnaire de configurer leurs propres sandboxes. Le grain impose les contraintes.


La deuxième méthode d'application est de modifier le programme (ou le processus) à exécuter. Les programmes de mise au point dynamiques et quelques profileurs emploient cette technique en ajoutant des paliers au code et, quand le piège se produit, en analysant l'état du processus courant. Un variable, connu en tant qu'analyse de panne de logiciel, ajoute les instructions qui exécutent des contrôles d'accès mémoire ou autre vérifie pendant que le programme fonctionne, ainsi n'importe quelle tentative de violer la politique de sécurité cause une erreur.

EXEMPLE : Janus met en application un sandbox. C'est un environnement d'exécution dans lequel des appels de système sont emprisonnés et vérifiés. Les utilisateurs l'exécutent pour limiter les objets et les modes de l'accès de l'untrusted le programme. Janus se compose d'un cadre, qui fait la vérification d'exécution, et des modules, qui déterminent quels accès doivent être laissés.

Janus lit d'abord un dossier de configuration. Ce dossier lui demande pour charger certains modules. Avec le module l'identification est une liste de contraintes. Le dossier suivant de configuration d'exemple définit les Statistiques financière internationale de variable d'environnement pour l'enfant et limite l'accès de l'enfant au système de fichiers. L'enfant ne peut accéder à aucun dossiers excepté ceux qui sont appelés ci-dessous. L'enfant peut lire ou écrire à n'importe quel dossier dans le système de fichiers de /usr excepté ceux dans le /usr/lib et les annuaires de /usr/local/lib (qui sont lus seulement) et dans /usr/bin (lu et s'exécuter). L'enfant peut lire n'importe quel dossier dans l'annuaire de /lib et peut lire et exécuter n'importe quel dossier dans les annuaires de /sbin et de /bin. Dans le dossier de configuration ci-dessous, le premier mot dans chaque ligne d'instruction est le nom du module et les autres mots sont les arguments passés aux modules ("#" commence un commentaire).

# module de base de base
# définissez le putenv IFS="\t\n" 
PATH=/sbin:/bin:/usr/bin TZ=PST8PDT de variables d'environnement de 
sous-processus
# niez l'accès à tout à moins que les dossiers 
sous le chemin de /usr nient lu, écrivent * le chemin laissent 
indiqué, écrivent /usr/* # permettent au sous-processus de lire des 
dossiers dans des annuaires de bibliothèque # nécessaire pour le 
chemin dynamique de chargement laissent lisent /lib/* /usr/lib/* 
/usr/local/lib/* # nécessaire ainsi l'enfant peut exécuter des 
programmes que le chemin permettent indiqué, l'exec /sbin/* /bin/* 
/usr/bin/*

Chaque module contraint des appels de système. Le cadre utilise les modules pour établir une liste liée pour chaque appel surveillé de système. La liste définit des actions permises et rejetées. Une fois que cette liste a été construite, le cadre de Janus appelle le programme de telle manière que tous les appels surveillés de système soient emprisonnés.

Quand le programme exécute un appel surveillé de système, les pièges de programme et le cadre de Janus est appelés. Il a accès aux arguments fournis à l'appel de sysem. Il valide qu'on permet l'appel de système, avec ces paramètres spécifiques. Si on ne permet pas l'appel de système, le cadre place l'environnement de l'enfant de sorte que l'appel de système semble avoir échoué. Si on permet l'appel de système, le cadre renvoie la commande à l'enfant, qui passe alternativement la main au grain. Sur le retour, la commande va au cadre, qui met à jour n'importe quel état interne et renvoie les résultats à l'enfant.

Une utilisation d'exemple serait dans le courrier de MIME de lecture. On pourrait avoir placé le programme de lecture de courrier pour passer la main à un moteur d'affichage de post-scriptum. Quelques tels moteurs ont un mécanisme pour exécuter des commandes au niveau système incluses dans le dossier de post-scriptum. Par conséquent, un attaquant a pu mettre une commande de suppression de dossier dans le dossier de post-scriptum. Le destinataire courrait le moteur d'affichage pour lire le dossier, et une partie d'elle des dossiers serait supprimée. Cependant, l'utilisateur (ou l'interface gestionnaire) peut installer le dossier de configuration de Janus rejettent l'exécution de tous les sous-programmes. La commande incluse sera détectée (à l'appel de système pour l'exécuter) et alors rejetée.


Comme un moniteur virtuel de machine, un sandbox fait partie de la base de calcul de confiance. Si le sandbox échoue, il assure moins de protection qu'on l'est censé pour fournir. Par conséquent, assurer que le sandbox met en application correctement une politique désirée de sécurité est critique à la sécurité du système.

c'est un article supplémentaire par Fred Foster


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions