Canaux Secrets
L'utilisation de canaux secrets a partagé des
ressources comme chemins de communication. Ceci exige le partage
de l'espace ou le partage du temps.
Un canal secret de stockage emploie un
attribut de la ressource partagée. Un canal secret de
synchronisation emploie un rapport temporel ou passant commande parmi
des accès à une ressource partagée.
Un canal secret de synchronisation est habituellement
défini en termes d'horloge en temps réel ou temporisateur, mais les
rapports temporels n'emploient parfois ni l'un ni l'autre. Une
commande des événements implique un rapport temps-basé qui
n'implique ni une horloge en temps réel ni un temporisateur.
Une deuxième propriété distingue un canal secret au
lequel seulement l'expéditeur et le récepteur ont accès et un canal
secret que d'autres ont accès à aussi bien.
Un canal secret silencieux est un canal
secret qui emploie une ressource disponible à l'expéditeur et au
récepteur seulement. Un canal secret bruyant est un canal
secret qui emploie une ressource disponible aux sujets autres que
l'expéditeur et le récepteur, aussi bien qu'à l'expéditeur et le
récepteur.
La différence entre ces deux types de canaux se situe
dans la nécessité de filtrer dehors l'information étrangère.
N'importe quelle information que le récepteur obtient à partir
d'un canal silencieux vient de l'expéditeur. Cependant, dans un
canal bruyant, l'information de l'expéditeur est mélangée à
l'information sans signification, ou au bruit, d'autres entités en
utilisant la ressource. Un canal secret bruyant exige d'un
protocole de réduire au minimum cette interférence.
Les propriétés principales des canaux secrets sont
existence et largeur de bande. L'existence nous indique qu'il y
a un canal le long dont l'information peut être transmise. La
largeur de bande nous indique comment rapidement l'information peut
être envoyée. L'analyse de canal secret établit les deux
propriétés. Alors on peut éliminer les canaux ou leurs
largeurs de bande peuvent être réduites.
Détection des canaux secrets
Les canaux secrets exigent le partage. La
façon dont la ressource est partagée commande que les sujets peuvent
envoyer et recevoir l'information en utilisant cette ressource
partagée. Les méthodes de détection commencent par cette
observation.
Porras et Kemmerer ont conçu une approche à représenter
les violations de sécurité qui jaillissent de l'application des
arbres de défaut. Ils modèlent l'écoulement d'information par
les ressources partagées avec un arbre. Les chemins de
l'écoulement sont identifiés en cette structure. L'analyste
détermine si chaque écoulement est légitime ou secret.
Un arbre secret d'écoulement est une représentation à
structure arborescente de l'ordre des opérations qui déplacent
l'information d'un processus à l'autre. Il se compose de cinq
types de noeuds.
-
Les symboles de but indiquent les déclarer qui doivent
exister pour que l'information coule. Il y a plusieurs tels
états :
-
Un but de modification est atteint quand un attribut est
modifié.
-
Un but d'identification est atteint quand une modification
d'un attribut est détectée.
-
Un but direct d'identification est atteint quand un sujet
peut détecter la modification d'un attribut en le mettant en
référence directement ou en appelant une fonction qui des retours
il.
-
Un but impliqué d'identification est atteint quand un
sujet peut détecter la modification d'un attribut sans le mettre en
référence directement et sans appeler une fonction qui met en
référence l'attribut directement. Par exemple, le sujet peut
appeler une fonction qui exécute un de deux calculs selon la valeur
de l'attribut en question.
-
Impliquer-par l'intermédiaire du but est atteint quand
l'information est passée d'un attribut à d'autres attributs en
utilisant une opération primitive indiquée (telle qu'un appel de
système).
-
Un but d'reconnaître-nouveau-état est atteint quand un
attribut qui a été modifié quand l'information a été passée en
utilisant l'est indiqué par impliquer-par l'intermédiaire du but.
La valeur n'a pas besoin d'être déterminée, mais le fait que
l'attribut a été modifié doit être déterminé.
-
Un symbole d'opération est un symbole qui représente une
opération primitive. Les symboles d'opération peuvent changer
parmi des systèmes s'ils ont différentes opérations primitives.
-
Un symbole d'échec indique que l'information ne peut pas
être envoyée le long du chemin sur lequel elle se trouve. Il
signifie que le but auquel il est attaché ne peut pas être
rencontré.
-
Et symbole est un but qui est atteint quand toutes les
deux prise suivante pour tous les enfants :
-
Si l'enfant est un but, alors le but est atteint.
-
L'enfant est une opération.
-
Ou symbole est un but qui est atteint quand l'une ou
l'autre des prises suivantes pour tous enfants :
-
Si l'enfant est un but, alors le but est atteint.
-
L'enfant est une opération.
La construction de l'arbre est un processus en trois
étapes. Pour faire les étapes béton, nous présentons un
ensemble simple d'opérations et puis demandons si elles peuvent
créer un canal secret.
EXEMPLE : Considérez un système de fichiers dans
lequel chaque dossier a trois attributs. Les attributs booléens
ont fermé et isopen à clef sont vrais quand le dossier est
verrouillé ou ouvert, respectivement, et est faux autrement. Le
troisième attribut, inuse, est un ensemble qui contient
l'identification de processus de chaque processus qui a le dossier
ouvert. Le read_access(p de fonction, f) est vrai si le
processus p a lu des droites au-dessus du dossier f, et l'empty(s) est
vrai si l'ensemble s n'a aucun membre. Les retours aléatoires
un de fonction de ses arguments choisis au hasard. Les
opérations suivantes sont définies.
(* fermez le dossier s'il n'est pas verrouillé et non
ouvert *) (* indiquez autrement qu'il est fermé à clef par retour de
courrier faux *) procédé Lockfile(f : dossier) :
booléen ; commencez si pas f.locked et
empty(f.inuse) puis f.locked : = rectifiez ;
extrémité ; (* ouvrez le dossier *) procédé
Unlockfile(f : dossier) ; commencez si
f.locked puis f.locked : = faux ; extrémité
; (* dites si le dossier est verrouillé *) fonction
Filelocked(f : dossier) : booléen ; commencez Filelocked : = f.locked ; extrémité ;
(* ouvrez le dossier s'il n'est pas verrouillé et *) (* le
processus a le droit de lire le dossier *) procédé Openfile(f :
dossier) ; commencez si pas f.locked et
read_access(process_id, f) puis (* ajoutez
l'identification de processus à l'inuse réglé *) f.inuse = f.inuse + process_id ; extrémité ;
(* si le processus peut lire le dossier, la parole si *) (* le
dossier est ouvert, autrement renvoient une valeur au hasard *)
fonction Fileopened(f : dossier) : booléen ;
commencez si pas read_access(process_id, f) puis Fileopened : = random(true,
faux) ; Fileopened d'autre : = non
isempty(f.inuse) ; extrémité
Supposant qu'on ne permet pas à des des processus
de communiquer entre eux, le lecteur est invité à essayer de trouver
un canal secret de stockage.
La première étape en construisant un arbre secret
d'écoulement est de déterminer ce qui attribue (si quel) la
référence primitive d'opérations, modifient, et retournent.
EXEMPLE : Les fonctions dans l'exemple précédent
affectent des attributs de dossier dans différentes manières, comme
suit.
| |
Lockfile |
Unlockfile |
Filelocked |
Openfile |
Fileopened |
| référence |
verrouillé, inuse |
verrouillé |
verrouillé |
verrouillé, inuse |
inuse |
| modifiez |
verrouillé |
Ø |
Ø |
inuse |
Ø |
| retour |
Ø |
Ø |
verrouillé |
Ø |
inuse |
Le Ø de symbole signifie qu'aucun attribut n'est
affecté de la façon indiquée.
La deuxième étape commence par le but de plac un canal
secret de stockage qui emploie un certain attribut. L'analyste
construit l'arbre secret d'écoulement. Le type de but commande
la construction, comme suit.
-
Le but le plus élevé exige que l'attribut soit modifié
et que la modification soit identifiée. Par conséquent, il a
un enfant (et symbole), qui a alternativement deux enfants (un symbole
de but de modification et un symbole de but d'identification).
-
Un but de modification exige d'une certaine opération
primitive de modifier l'attribut. Par conséquent, il a un ou
l'enfant, qui ont un symbole d'opération d'enfant par opération pour
toutes les opérations qui modifient l'attribut.
-
Un but d'identification exige qu'un sujet directement
identifient ou impliquent un changement d'un attribut. Il a ou
le symbole en tant que son enfant. Ou symbole a deux enfants, un
un symbole direct de but d'identification et l'autre un symbole
impliqué de but d'identification.
-
Un but direct d'identification exige qu'un accès
d'opération l'attribut. Comme le but de modification, il a un
ou l'enfant, et cet enfant a alternativement un symbole d'opération
d'enfant pour chaque opération qui renvoie l'attribut. Si
aucune opération ne renvoie l'attribut, un symbole d'échec est
joint.
-
Un but impliqué d'identification exige que la
modification soit impliquée sur la base d'un ou plusieurs autres
attributs. Par conséquent, il a un enfant, ou symbole, qui ont
un enfant impliquer-par l'intermédiaire de symbole pour chaque
opération qui met en référence un attribut et qui modifie un
certain attribut (probablement le même qui a été mis en
référence).
-
Impliquer-par l'intermédiaire du but exige que la valeur
de l'attribut soit impliquée par l'intermédiaire d'une certaine
opération et d'une identification du nouvel état de l'attribut
résultant de cette opération. Par conséquent, elle a un
enfant (et symbole), qui a deux enfants (un symbole d'opération
représentant l'opération primitive dessinait l'inférence et un
symbole de but d'reconnaître-nouveau-état).
-
Un but d'reconnaître-nouveau-état exige que la valeur de
l'attribut soit impliquée par l'intermédiaire d'une certaine
opération et d'une identification du nouvel état de l'attribut
résultant de cette opération. Le dernier exige un but
d'identification pour l'attribut. Ainsi, le noeud d'enfant du
symbole de but d'reconnaître-nouveau-état est ou symbole, et pour
chaque attribut permettre l'inférence de la modification de
l'attribut en question, ou le symbole a un enfant de symbole de but
d'identification.
La construction d'arbre finit quand tous les chemins à
travers l'arbre se terminent en symbole d'opération ou symbole
d'échec. Puisque la construction est récursive, l'analyste
peut rencontrer une boucle dans la construction d'arbre. Si ceci
se produit, un paramètre appelé la répétition définit le nombre
de fois que le chemin peut être traversé. Ceci place une
limite supérieure sur la taille de l'arbre.
Le modèle partagé de matrice de ressource et les arbres
secrets d'écoulement jaillissent de l'idée d'examiner les ressources
partagées pour la modification et les opérations de référence, et
tous les deux peuvent être employés à un point quelconque dans le
cycle de vie de développement de logiciel. Un avantage des
arbres secrets d'écoulement au-dessus du modèle de SRM est que
l'ancien identifie des ordres explicites des opérations qui font
découler l'information d'un processus à l'autre. Le dernier
identifie des canaux plutôt que des ordres des opérations.
Dans les comparaisons impliquant les opérations d'accès de
système de fichiers et la cible bloquée d'ADA, la méthode secrète
d'arbre d'écoulement a identifié des ordres des opérations
correspondant aux canaux secrets de stockage trouvés par la méthode
de SRM et la méthode de noninterference, comme une non trouvée par
les autres deux.
Réduction des canaux secrets
Les canaux secrets donnent l'information en
changeant l'utilisation des ressources partagées. Une manière
évidente d'éliminer tous les canaux secrets est d'exiger des
processus d'énoncer de quelles ressources elles ont besoin avant
qu'exécution et fournissent ces ressources de façon que seulement le
processus puisse leur accéder. Ceci inclut le temps
d'exécution, et quand le temps d'exécution indiqué est atteint, le
processus est terminé et les ressources sont libérées. Les
ressources demeurent assignées pour le plein temps d'exécution même
si le processus se termine plus tôt. Autrement, un deuxième
processus pourrait impliquer l'information de la synchronisation du
dégagement des ressources (accès y compris à l'unité centrale de
traitement). Cette stratégie met en application efficacement
l'idée de Lampson de l'isolement total, mais elle est habituellement
impossible dans la pratique.
Une approche alternative est d'obscurcir la quantité de
ressources qu'un processus emploie. Un procédé de réception
ne peut pas déterminer quelle quantité d'utilisation de ressource
est attribuable à l'expéditeur et quelle quantité est attribuable
à l'obscurcissement. Ceci peut être fait de deux manières.
D'abord, les ressources consacrées à chaque processus peuvent
être rendues uniformes. C'est une variante de l'isolement,
parce que chaque processus obtient la même quantité de ressources et
ne peut pas dire si un deuxième processus accède à la ressource en
mesurant la synchronisation ou la quantité de ressources disponibles.
Essentiellement, le système élimine des irrégularités
signicatives dans l'attribution et l'utilisation de ressource.
En second lieu, un système peut injecter l'aspect aléatoire
dans l'attribution et l'utilisation des ressources. Le but est
de faire au canal secret bruyant et de faire dominer le bruit le
canal. Ceci ne ferme pas le canal secret (parce qu'il existe
toujours) mais le rend inutile.
Ces deux techniques affectent l'efficacité.
Assignant des attributions fixes et contraignant l'utilisation
ressources de rebut. La réparation des tranches de temps sur le
système de KVM signifie que l'unité centrale de traitement sera
inutilisée (ou exécutera un processus à vide) quand une autre
machine virtuelle pourrait courir un processus non-à vide.
L'augmentation de la probabilité des arrêts dans le système
bloqué à multiniveaux de base de données avortera quelques
transactions qui commettraient normalement, augmentant le nombre
prévu d'essais à la mise à jour la base de données. Si la
fermeture du canal secret ou de la limitation de la largeur de bande
compense en juste proportion la perte dans l'efficacité est une
décision de politique.
Un dispositif connu sous le nom de pompe est la base de
plusieurs techniques pour défaire les canaux secrets.
c'est un article supplémentaire par Fred Foster
Déni : Notre site Web n'est pas
responsable de l'information contenue par cet article. Cet
article reflète nullement les vues, les avis, les pensées ou la
croyance du personnel d'annuaire d'articles.
Notification de traduction : L'article
"canaux secrets" a été traduit en utilisant un service de traduction
automatisé. Nous faisons des excuses sincèrement pour toutes
les erreurs de traduction qui se sont produites. Merci de
l'arrangement.