Gebrauch der verdeckten Kanäle teilte Betriebsmittel als Wege der Kommunikation. Dieses erfordert das Teilen des Raumes oder das Teilen der Zeit.
Eine verborgene Speicherführung verwendet ein Attribut des geteilten Hilfsmittels. Eine verborgene TIMING-Führung verwendet ein zeitliches oder bestellenverhältnis unter Zugängen zu einem geteilten Hilfsmittel.
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.
Ein geräuschloser verdeckter Kanal ist ein verdeckter Kanal, der ein Hilfsmittel benutzt, das für nur den Absender und den Empfänger vorhanden ist. Ein lauter verdeckter Kanal ist ein verdeckter Kanal, der ein Hilfsmittel benutzt, das für Themen anders als den Absender und den Empfänger, sowie für den Absender und den Empfänger vorhanden ist.
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.
Verdeckte 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.
Zielsymbole spezifizieren Zustände, die zu der Information bestehen müssen, um zu fließen. Es gibt einige solche Zustände:
Ein Änderung Ziel wird erreicht, wenn ein Attribut geändert wird.
Ein Anerkennung Ziel wird erreicht, wenn eine Änderung eines Attributes ermittelt wird.
Ein direktes Anerkennung Ziel wird erreicht, wenn ein Thema die Änderung eines Attributes ermitteln kann, indem es direkt es bezieht oder eine Funktion benennt, die Rückkehr es.
Ein geschlossenes Anerkennung Ziel wird erreicht, wenn ein Thema die Änderung eines Attributes ermitteln kann, ohne es direkt zu beziehen und ohne eine Funktion zu benennen, die das Attribut direkt bezieht. Z.B. kann das Thema eine Funktion benennen, die ein von zwei Berechnung abhängig von dem Wert des Attributes in der Frage durchführt.
Schließen-über Ziel wird erreicht, wenn Informationen von einem Attribut zu anderen Attributen mit einem spezifizierten ursprünglichen Betrieb geführt werden (wie einem System Anruf).
Ein Erkennen-neuzustand Ziel wird erreicht, wenn ein Attribut, das geändert wurde, als Informationen mit ihm geführt wurden, durch schließen-über Ziel spezifiziert wird. Der Wert braucht nicht festgestellt zu werden, aber die Tatsache, daß das Attribut geändert worden ist, muß festgestellt werden.
Ein Betrieb Symbol ist ein Symbol, das einen ursprünglichen Betrieb darstellt. Die Betrieb Symbole können unter Systemen schwanken, wenn sie unterschiedliche ursprüngliche Betriebe haben.
Ein Ausfallsymbol zeigt an, daß Informationen nicht entlang den Weg gesendet werden können, auf dem sie liegt. Es bedeutet, daß das Ziel, zu dem es angebracht wird, nicht getroffen werden kann.
Und Symbol ist ein Ziel, das erreicht wird, wenn beide des folgenden Einflußes für alle Kinder:
Wenn das Kind ein Ziel ist, dann wird das Ziel erreicht.
Das Kind ist ein Betrieb.
Oder Symbol ist ein Ziel, das erreicht wird, wenn irgendein der folgenden Einflüsse für irgendwelche Kinder:
Wenn das Kind ein Ziel ist, dann wird das Ziel erreicht.
Das Kind ist ein Betrieb.
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.
| Lockfile | Unlockfile | Filelocked | Openfile | Fileopened | |
| Hinweis | verschlossen, inuse | verschlossen | verschlossen | verschlossen, inuse | inuse |
| ändern Sie | verschlossen | Ø | Ø | inuse | Ø |
| Rückkehr | Ø | Ø | verschlossen | Ø | inuse |
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.
Das oberste Ziel erfordert, daß das Attribut geändert wird und daß die Änderung erkannt wird. Folglich hat es ein Kind (und Symbol), das der Reihe nach zwei Kinder hat (ein Änderung Zielsymbol und ein Anerkennung Zielsymbol).
Ein Änderung Ziel erfordert irgendeinen ursprünglichen Betrieb, das Attribut zu ändern. Folglich hat es ein oder Kind, die ein Kindbetrieb Symbol pro Betrieb für alle Betriebe hat, die das Attribut ändern.
Ein Anerkennung Ziel erfordert, daß ein Thema entweder direkt eine Änderung in einem Attribut erkennen oder schließen. Es hat oder Symbol als sein Kind. Oder Symbol hat zwei Kinder, eins ein direktes Anerkennung Zielsymbol und das andere ein geschlossenes Anerkennung Zielsymbol.
Ein direktes Anerkennung Ziel erfordert daß ein Betrieb Zugang das Attribut. Wie das Änderung Ziel hat es ein oder Kind, und dieses Kind hat der Reihe nach ein Kindbetrieb Symbol für jeden Betrieb, der das Attribut zurückbringt. Wenn kein Betrieb das Attribut zurückbringt, wird ein Ausfallsymbol angebracht.
Ein geschlossenes Anerkennung Ziel erfordert, daß die Änderung auf der Grundlage von eine oder mehr andere Attribute geschlossen wird. Folglich hat es ein Kind, oder Symbol, die ein Kind schließen-über Symbol für jeden Betrieb hat, der ein Attribut bezieht und der irgendein Attribut ändert (vielleicht das gleiche, das bezogen wurde).
Schließen-über Ziel erfordert, daß der Wert des Attributes über irgendeinen Betrieb und eine Anerkennung des neuen Zustandes des Attributes geschlossen wird, resultierend aus diesem Betrieb. Folglich hat er ein Kind (und Symbol), das zwei Kinder hat (ein Betrieb Symbol, das den ursprünglichen Betrieb darstellt, verwendete, die Folgerung und ein Erkennen-neuzustand Zielsymbol zu zeichnen).
Ein Erkennen-neuzustand Ziel erfordert, daß der Wert des Attributes über irgendeinen Betrieb und eine Anerkennung des neuen Zustandes des Attributes geschlossen wird, resultierend aus diesem Betrieb. Das letzte erfordert ein Anerkennung Ziel für das Attribut. So ist der Kindnullpunkt des Erkennen-neuzustand Zielsymbols oder Symbol, und für jedes Attribut hat das Ermöglichen der Folgerung der Änderung des Attributes in der Frage, oder im Symbol ein Anerkennung Ziel-Symbolkind.
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.
Verdeckte 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.
Online: 562 users browsing the articles directory
|
|