Verdeckte Kanäle
Gebrauch der verdeckten Kanäle teilte Betriebsmittel als Wege der Kommunikation. Dieses erfordert das Teilen des Raumes oder das Teilen der Zeit.
Eine verborgene TIMING-Führung wird normalerweise in einem Realzeittaktgeber oder einem Timer ausgedrückt definiert, aber zeitliche Verhältnisse verwenden manchmal keine. Eine Einrichtung von Fällen deutet ein Zeit-gegründetes Verhältnis an, das weder einen Realzeittaktgeber noch einen Timer miteinbezieht. Eine zweite Eigenschaft unterscheidet zwischen einem verdeckten Kanal, dem nur der Absender und der Empfänger Zugang haben zu und einem verdeckten Kanal, dem andere Zugang zu außerdem haben.
Der Unterschied zwischen diesen zwei Arten der Führungen liegt in der Notwendigkeit, äußere Informationen heraus zu filtern. Alle mögliche Informationen, die der Empfänger von einer geräuschlosen Führung einholt, kommen vom Absender. Jedoch in einer lauten Führung, werden die Informationen des Absenders mit bedeutungslosen Informationen oder Geräuschen, von anderen Wesen mit dem Hilfsmittel gemischt. Ein lauter verdeckter Kanal erfordert ein Protokoll, diese Störung herabzusetzen. Die Schlüsseleigenschaften der verdeckten Kanäle sind Bestehen und Bandbreite. Bestehen erklärt uns, daß es eine Führung gibt, entlang der Informationen übertragen werden können. Bandbreite erklärt uns, wie schnell Informationen gesendet werden können. Analyse des verdeckten Kanals stellt beide Eigenschaften her. Dann können die Führungen beseitigt werden, oder ihre Bandbreite kann verringert werden. Abfragung der verdeckten KanäleVerdeckte Kanäle erfordern das Teilen. Die Weise, in der das Hilfsmittel geteilt wird, steuert, dem Themen Informationen mit diesem geteilten Hilfsmittel senden und erhalten können. Abfragung Methoden fangen mit dieser Beobachtung an. Porras und Kemmerer haben eine Annäherung zum Darstellen der Sicherheit Verletzungen geplant, die der Anwendung der Fehlerbäume entspringen. Sie modellieren den Fluß der Informationen durch geteilte Betriebsmittel mit einem Baum. Die Wege des Flusses werden in dieser Struktur gekennzeichnet. Der Analytiker stellt fest, ob jeder Fluß gesetzmaßig oder verborgen ist. Ein verborgener Flußbaum ist eine Baumstrukturdarstellung der Reihenfolge der Betriebe, die Informationen von einem Prozeß auf andere verschieben. Er besteht aus fünf Arten Nullpunkte.
Den Baum zu konstruieren ist ein dreistufiger Prozeß. Um die Schritte Beton zu bilden, stellen wir einen einfachen Satz Betriebe dar und fragen dann ob sie einen verdeckten Kanal verursachen können. BEISPIEL: Betrachten Sie ein Dateisystem, in dem jede Akte drei Attribute hat. Die Booleschen Attribute verriegelten sich und isopen sind zutreffend, wenn die Akte verschlossen oder, beziehungsweise geöffnet ist, und anders falsch ist. Das dritte Attribut, inuse, ist ein Satz, der den Prozeß Identifikation jedes Prozesses enthält, der die geöffnete Akte hat. Das Funktion read_access(p, f) ist zutreffend, wenn Prozeß p Rechte über Akte f gelesen hat, und empty(s) ist zutreffend, wenn Satz s keine Mitglieder hat. Die Funktion gelegentliche Rückkehr eine seiner Argumente zufällig gewählt. Die folgenden Betriebe werden definiert. (* verriegeln Sie die Akte, wenn sie nicht verschlossen und nicht geöffnet ist *) (* zeigen Sie anders an, daß sie verriegelt wird, indem man falsch zurückgeht *) Verfahren Lockfile(f: Akte): Boolesch; fangen Sie an, wenn nicht f.locked und empty(f.inuse) dann f.locked: = richten Sie aus; Ende; (* entriegeln Sie die Akte *) Verfahren Unlockfile(f: Akte); fangen Sie an, wenn f.locked dann f.locked: = falsch; Ende; (* sagen Sie, ob die Akte verschlossen ist *) Funktion Filelocked(f: Akte): Boolesch; fangen Sie Filelocked: = an f.locked; Ende; (* öffnen Sie die Akte, wenn sie nicht und verschlossen ist *) (* Prozeß hat das Recht, die Akte zu lesen *) Verfahren Openfile(f: Akte); fangen Sie wenn nicht f.locked und read_access(process_id, f ) dann an (* fügen Sie den Prozeß Identifikation dem eingestellten inuse hinzu *) f.inuse = f.inuse + process_id; Ende; (* wenn der Prozeß die Akte lesen kann, bringen Sagen, wenn ist die *) (* Akte geöffnet, andernfalls einen Wert zufällig *) zurück, Funktion Fileopened(f: Akte): Boolesch; fangen Sie an, wenn nicht read_access(process_id, f ) dann Fileopened: = random(true, falsch); sonst Fileopened: = nicht isempty(f.inuse); Ende Annehmend, daß Prozesse nicht miteinander werden verständigen lassen, wird der Leser eingeladen zu versuchen, eine verborgene Speicherführung zu finden. Der erste Schritt, wenn er einen verborgenen Flußbaum konstruiert, ist, festzustellen was (falls vorhanden) den ursprünglichen Betriebe Hinweis zuschreibt, ändern und zurückgehen. BEISPIEL: Die Funktionen im vorhergehenden Beispiel beeinflussen Akte Attribute in den unterschiedlichen Weisen, wie folgt.
Das Symbol Ø bedeutet, daß kein Attribut in der spezifizierten Weise beeinflußt wird. Der zweite Schritt fängt mit dem Ziel des Errichtens einer verborgenen Speicherführung an, die irgendein Attribut verwendet. Der Analytiker konstruiert den verborgenen Flußbaum. Die Art des Ziels steuert den Aufbau, wie folgt.
Baumaufbau beendet, wenn alle Wege durch den Baum entweder in einem Betrieb Symbol oder in einem Ausfallsymbol beenden. Weil der Aufbau rekursiv ist, kann der Analytiker eine Schleife im Baumaufbau antreffen. Wenn dieses geschieht, definiert ein Parameter, der Wiederholung genannt wird, die Zahl Zeiten, die der Weg überquert werden kann. Dieses setzt ein oberes Limit auf die Größe des Baums. Das geteilte Hilfsmittelmatrixmodell und verborgenen die Flußbäume entspringen der Idee des Überprüfens der geteilten Betriebsmittel für Änderung und Bezugsoperationen, und beide können an irgendeinem Punkt innerhalb des Software-Entwicklung Lebenszyklus verwendet werden. Ein Vorteil der verborgenen Flußbäume über dem SRM Modell ist, daß das ehemalige ausdrückliche Reihenfolgen der Betriebe kennzeichnet, die Informationen veranlassen, von einem Prozeß zu fließen zu anderen. Das letzte kennzeichnet Führungen anstatt Reihenfolgen von Betrieben. In den Vergleichen, die Dateisystem-Zugang Betriebe und das sichere Ada Ziel mit einbeziehen, kennzeichnete die verborgene Flußbaummethode Reihenfolgen der Betriebe, die den verborgenen Speicherführungen entsprechen, die durch die SRM Methode und die noninterference Methode, sowie eine gefunden wurden, die nicht durch die anderen zwei gefunden wurde. Mitigation der verdeckten KanäleVerdeckte Kanäle übermitteln Informationen, indem sie den Gebrauch von geteilten Betriebsmitteln verändern. Eine offensichtliche Weise, alle verdeckten Kanäle zu beseitigen soll Prozesse erfordern, anzugeben, welche Betriebsmittel sie bevor Durchführung benötigen und diese Betriebsmittel liefern, derart daß nur der Prozeß sie zugänglich machen kann. Dieses schließt Laufzeit ein und wenn die angegebene Laufzeit erreicht wird, wird der Prozeß beendet und die Betriebsmittel werden freigegeben. Die Betriebsmittel bleiben während der vollen Laufzeit zugeteilt, selbst wenn der Prozeß früh beendet. Andernfalls könnte ein zweiter Prozeß Informationen vom TIMING der Freigabe der Betriebsmittel schließen (einschließlich Zugang zur CPU). Diese Strategie führt effektiv Idee Lampsons der Gesamtlokalisierung ein, aber sie ist normalerweise in der Praxis unausführbar. Eine alternative Annäherung soll die Menge der Betriebsmittel undeutlich machen, die ein Prozeß benutzt. Ein empfangender Prozeß kann nicht feststellen, welche Menge Hilfsmittelverbrauch dem Absender zuzuschreibend ist und welche Menge der Verdunkelung zuzuschreibend ist. Dieses kann in zwei Möglichkeiten getan werden. Zuerst können die Betriebsmittel, die jedem Prozeß gewidmet werden, konstant gebildet werden. Dieses ist eine Variante der Lokalisierung, weil jeder Prozeß die gleiche Menge der Betriebsmittel erhält und nicht erklären kann, ob ein zweiter Prozeß das Hilfsmittel zugänglich macht, indem er das TIMING oder die Menge der vorhandenen Betriebsmittel mißt. Im wesentlichen beseitigt das System sinnvolle Unregelmäßigkeiten in der Betriebsmittelzuweisung und dem Gebrauch. Zweitens kann ein System Zufallscharakter in die Verteilung und in den Gebrauch von Betriebsmitteln einspritzen. Das Ziel ist, den verdeckten Kanal ein lautes zu bilden und die Geräusche die Führung beherrschen zu lassen. Dieses schließt nicht den verdeckten Kanal (weil es noch besteht), aber macht ihn unbrauchbar. Beide diese Techniken beeinflussen Leistungsfähigkeit. Örtlich festgelegte Verteilungen zuweisen und Gebrauch begrenzend überschüssige Betriebsmittel. Die Zeitscheiben auf dem KVM System zu reparieren bedeutet, daß die CPU unbenutzt ist (oder führt einen untätigen Prozeß) durch, als eine andere virtuelle Maschine einen nicht-untätigen Prozeß laufen lassen könnte. Die Erhöhung der Wahrscheinlichkeit der Abbrüche im sicheren Datenbankmehrebenensystem bricht einige Verhandlungen, die normalerweise festlegen würden ab und erhöht die erwartete Zahl Versuchen auf Update die Datenbank. Ob das Schließen des verdeckten Kanals oder das Begrenzen der Bandbreite ausreichend für den Verlust in der Leistungsfähigkeit ausgleicht, ist eine Politikentscheidung. Eine Vorrichtung, die als eine Pumpe bekannt ist, ist die Grundlage einiger Techniken für das Besiegen der verdeckten Kanäle. dieses ist ein Artikel, der von Fred Foster hinzugefügt
wird
|
|||||||||||||||||||||||||||
|