-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Sicherheitstechnologie für Personal Computer und im Besonderen eine Computervorrichtung, die mit einer virtualisierten Umgebung ausgestattet ist, in der eine virtuelle Maschine in einem Host-Betriebssystem eingerichtet wird und Verfahren zum Unterstützen der Einrichtung einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine für eine Benutzerdatenstation .
-
Stand der Technik
-
In letzter Zeit hat die Verwendung einer virtualisierten Umgebung in einem Personal Computer (PC) Aufmerksamkeit erregt. Gleichzeitig werden Virtualisierungsanwendungen für PCs und Betriebssysteme mit einer standardmäßig installierten virtuellen Umgebung angeboten, und erwartungsgemäß werden die Möglichkeiten für Endbenutzer zur Verwendung einer virtualisierten Umgebung in einem PC zukünftig immer weiter ausgebaut. Im Folgenden wird hier ein Überblick über Virtualisierung in einem PC gegeben.
-
10 zeigt einen PC 200 (reale Maschine), in dem eine sogenannte Host-basierte virtualisierte Umgebung eingerichtet worden ist. Der PC 200 (reale Maschine) ist mit Hardware 202 und einem auf der Hardware 202 installierten Host-Betriebssystem 204 ausgestattet, und verschiedene Anwendungen sind im Host-Betriebssystem 204 installiert. Eine virtuelle Maschine 400 kann als eine im Host-Betriebssystem 204 ausgeführte Anwendung bezeichnet werden. Die virtuelle Maschine 400 ist mit einer allgemeinen Plattform 401 und einem virtuellen Hardware-Bereich 402 ausgestattet. Der virtuelle Hardware-Bereich 402 ist ein Funktionsteil, der Hardware der realen Maschine emuliert (beispielsweise eine Zentraleinheit (CPU), eine Festplatte, ein BIOS, eine Netzwerkkarte (NIC), eine Tastatur und eine Maus), und ein Benutzer kann im virtuellen Hardware-Bereich 402 ein Betriebssystem (Gast-Betriebssystem 404) installieren, das sich vom Host-Betriebssystem 204 unterscheidet.
-
11 zeigt einen Zustand, in dem ein Fensterbildschirm 2000 der virtuellen Maschine 400 auf einer oberen Schicht eines Host-Betriebssystembildschirms 1000 der realen Maschine 200 angezeigt wird. Ein Betriebssystembildschirm des in der virtuellen Maschine installierten Gast-Betriebssystems 404 wird auf dem Fensterbildschirm 2000 der virtuellen Maschine 400 angezeigt. Der Benutzer kann zwei verschiedene Betriebssystemumgebungen gleichzeitig verwenden, indem er zwischen den beiden auf einer Anzeige angezeigten Betriebssystembildschirmen wechselt.
-
Damit eine Anwendung, die nur in einem älteren Betriebssystem funktioniert, im neuesten Host-Betriebssystem ausgeführt werden kann, ist im Allgemeinen die Verwendung einer virtuellen Maschine Voraussetzung. Wenn das Host-Betriebssystem 204 der realen Maschine beispielsweise den Betrieb von Anwendungen D und E nicht unterstützt, kann der Benutzer die Anwendungen D und E verwenden, indem er sie im Gast-Betriebssystem 404 (älteres Betriebssystem) der virtuellen Maschine 400 installiert. Auf einen von der Anwendung D oder E ausgegebenen Befehl hin versucht das Gast-Betriebssystem 404, den virtuellen Hardware-Bereich 402 als reale Hardware zu steuern. Die virtuelle Maschine 400 übersetzt einen vom Gast-Betriebssystem 404 ausgegebenen Hardware-Steuerungsbefehl in ein Format, mit dem die reale Maschine kompatibel ist, und überträgt ihn an das Host-Betriebssystem 204. Infolgedessen wird es möglich, dass die Anwendungen D und E, die nicht mit dem Host-Betriebssystem 204 kompatibel sind, die Hardware 202 der realen Maschine steuern. Zweifellos verbessert die Technik einer Virtualisierung in einem PC den Komfort für Benutzer, wie oben beschrieben wird. Andererseits verursacht die Virtualisierungstechnik jedoch ein lästiges Problem für Administratoren. Dieser Punkt wird im Folgenden beschrieben.
-
In vielen Firmen ist es erforderlich, dass sich in von Angestellten genutzten PCs eine Sicherheitsanwendung befindet, um die Angestellten zum Beachten einer Sicherheitsrichtlinie zu veranlassen. Das offengelegte
Japanische Patentanmeldung Nr. 2007-287078 (
JP2007-287078A ) offenbart ein Programm, das die Notwendigkeit einer persönlichen Datenverwaltung für Daten beurteilt, die von einer Anwendung in Echtzeit ausgegeben werden, und auf der Grundlage eines Ergebnisses der Beurteilung die Verarbeitung durch die Anwendung fortsetzt, abbricht oder ändert. Eine solche Sicherheitsanwendung steuert einen Dateizugriff und einen Netzzugriff durch eine Anwendung, die entsprechend einer Sicherheitsrichtlinie in einem Betriebssystem ausgeführt wird. Wenn die Sicherheitsanwendung jedoch auf eine virtualisierte Umgebung angewendet wird, tritt ein Problem auf, wie im Folgenden gezeigt wird.
-
Zusätzlich ist Dokument
US 2011 / 0 153 853 A1 ein nur Web-Zugriff über ein öffentliches Netzwerk für Anwendungen beschrieben, die auf virtuellen Desktops und einer Mehrzahl von Servern betrieben werden. Daneben ist im Dokument
US 2009 / 0 254 990 A1 ein verteiltes und koordinierendes Sicherheitssystem mit einer Erkennung und Verhinderung von unerlaubten Zugriff auf virtuelle Maschinen in einem virtualisierten Server beschrieben. Schließlich beschreibt das Dokument
US 2004 / 0 239 700 A1 ein UI-getriebenes Zugriffssteuerungssystem und ein entsprechendes Verfahren für Darstellungen von Ergebnissen von Transformationen, die auf Zugriffssteuerungseinstellungen angewendet werden.
-
12 zeigt einen Zustand, in dem ein Sicherheitsagent 500, bei dem es sich um eine Sicherheitsanwendung vom herkömmlichen Typ handelt, in das Host-Betriebssystem einer realen Maschine eingeführt wird, die mit einer virtuellen Maschinenumgebung ausgestattet ist. Der Sicherheitsagent 500 ist so konfiguriert, dass er Folgendes aufweist: einen Zugangskontrollabschnitt (access control section) 502, der Zugriffe im Zusammenhang mit einem festgelegten Prozess oder Objekt auf der Grundlage einer Sicherheitsrichtlinie überwacht, einen Protokollüberwachungsabschnitt (log monitoring section) 504, der ein Überwachungsprotokoll aufzeichnet, und dergleichen. Der Zugangskontrollabschnitt 502 ist ein Funktionsteil, der einen Dateizugriff und einen Netzzugriff durch eine Anwendung auf der Grundlage einer entsprechend der Sicherheitsrichtlinie festgelegten Zugangskontrollliste (access control list) steuert. Wenn in der Sicherheitsrichtlinie festgelegt ist, dass die Verwendung von „Anwendung A“ unzulässig ist, hookt bzw. dockt ein für den Zugangskontrollabschnitt 502 bereitgestelltes API-Hooking-Mittel (API hooking means, bzw. Andockmittel) einen Dateizugriff oder dergleichen für die im Host-Betriebssystem 204 ausgeführte „Anwendung A“ und überträgt einen Fehler an diese zurück.
-
Wird andererseits die Verwendung der virtuellen Maschine 400 von der Sicherheitsrichtlinie zugelassen, wird die Zugangskontrollliste des Zugangskontrollabschnitts 502 so festgelegt, dass ein Dateizugriff und dergleichen von der virtuellen Maschine 400 zulässig sind. Hier tritt ein Problem auf, wenn die „Anwendung A“ im Gast-Betriebssystem 404 der virtuellen Maschine 400 installiert ist. In diesem Fall wird ein Dateizugriff von der „Anwendung A“, der ursprünglich unzulässig sein sollte, vom Zugangskontrollabschnitt 502 gestattet. Der Grund hierfür besteht darin, dass der Zugangskontrollabschnitt 502 nicht zwischen einem Dateizugriff von der im Gast-Betriebssystem 404 ausgeführten „Anwendung A“ und einem Dateizugriff von der „Anwendung D“ oder der „Anwendung E“ unterscheiden kann, und indem er beide als Dateizugriffe von der virtuellen Maschine 400 erkennt (als eine von im Host-Betriebssystem 204 ausgeführten Anwendungen), gestattet er den Zugriff auf der Grundlage der Zugangskontrollliste.
-
Selbstverständlich wird dieses Problem einmal dadurch gelöst, dass derselbe im Host-Betriebssystem 204 installierte Sicherheitsagent 500 auch im Gast-Betriebssystem 404 installiert wird. Leider ist dieses Problem nicht so einfach. Der Grund hierfür ist, dass, selbst wenn ein Administrator den Sicherheitsagenten 500 obligatorisch auf der Seite des Gast-Betriebssystems 404 installiert, ein Benutzer diesen mit seiner eigenen Berechtigung problemlos deinstallieren kann, und der Administrator, der keine Berechtigung in einer virtuellen Maschinenumgebung hat, kann nicht wissen, dass der Sicherheitsagent 500 von der virtuellen Maschine deinstalliert wurde. In der vorliegenden Situation kann der Administrator daher den Benutzer lediglich auffordern, den Sicherheitsagenten einzurichten, wobei alles Weitere der Gewissenhaftigkeit des Benutzers überlassen bleibt. Das heißt, in der vorliegenden Situation ist eine virtuelle Maschinenumgebung eine Blackbox, die ein Administrator nicht verwalten kann. Dies so zu belassen, führt zu steigenden Sicherheitsrisiken.
-
Der im Weiteren beschriebenen Erfindung liegt also die Aufgabe zu Grunde, eine sicherere Verwaltung für Ausführungsumgebungen für eine virtuelle Maschine vorzuschlagen, welche nicht die oben genannten Nachteile aufweist.
-
Zusammenfassung der Erfindung
-
Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsformen sind durch jeweils abhängige Ansprüche beschrieben.
-
Die vorliegende Erfindung wurde also angesichts des Problems in Verfahren nach dem Stand der Technik entwickelt, und ihre Aufgabe ist die Bereitstellung eines Verfahrens zum Einrichten einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine und ein hierfür verwendetes Programm.
-
(Lösung für Probleme)
-
Infolge einer aufmerksamen Überprüfung eines Verfahrens zur Einrichtung einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine stellten sich die Erfinder eine Konfiguration vor, in der nach dem Installieren eines Programms mit einem integrierten Mittel zum selektiven Maskieren eines Fensterbildschirms einer virtuellen Maschine und einer integrierten Sicherheitsfunktion in einem Host-Betriebssystem einer Benutzerdatenstation mit Administratorberechtigung ein Programm für einen Benutzer bereitgestellt wird, in dem eine Sicherheitsfunktion, die der Administrator in die virtuelle Maschine einführen möchte, und ein Mittel zum Freigeben der Maskierung integriert sind, und erzielten diese Erfindung.
-
Das heißt, gemäß der vorliegenden Erfindung wird ein in einem Computer ausführbares Programm bereitgestellt, das einen Computer veranlasst, Folgendes zu realisieren: ein Zugangskontrollmittel zum Steuern des Zugriffs durch eine Anwendung; ein Darstellungsbefehl-Hook-Mittel (rendering instruction hooking means) zum Hooken eines Bildschirmdarstellungsbefehls, wobei das Darstellungsbefehl-Hook-Mittel einen ersten Modus zum selektiven Hooken eines von einer Anwendung der virtuellen Maschine ausgegebenen Bildschirmdarstellungsbefehls und einen zweiten Modus zum Hooken eines von einer Anwendung ausgegebenen Bildschirmdarstellungsbefehls aufweist; ein Verschlüsselungsverarbeitungsmittel (cryptographic processing means) zum Ausführen einer Verschlüsselungsverarbeitung des gehookten Bildschirmdarstellungsbefehls durch ein Verschlüsselungssystem mit allgemeinem Schlüssel; und ein Modusumschaltmittel (mode switching means) zum Umschalten des Betriebsmodus des Darstellungsbefehl-Hook-Mittels. In der vorliegenden Erfindung kann das Modusumschaltmittel ein Mittel aufweisen, um zu beurteilen, ob ein Host-Betriebssystem oder ein Gast-Betriebssystem ein mit dem Programm installiertes Betriebssystem ist, und um das Darstellungsbefehl-Hook-Mittel zum Zeitpunkt eines realen Maschinenmodus, in dem das Betriebssystem das Host-Betriebssystem ist, in den ersten Modus zu versetzen, und zum Zeitpunkt eines virtuellen Maschinenmodus, in dem das Betriebssystem das Gast-Betriebssystem ist, in den zweiten Modus zu versetzen. Außerdem ist eine Konfiguration möglich, die den Computer veranlasst, ein Geheimschlüssel-Verwaltungsmittel zum Verwalten eines geheimen Schlüssels zu realisieren, der für die Verschlüsselungsverarbeitung verwendet wird.
-
In der vorliegenden Erfindung kann das Geheimschlüssel-Verwaltungsmittel Folgendes aufweisen: ein Schlüsselerzeugungsmittel zum Erzeugen eines Zufallsschlüssels als geheimen Schlüssel; und ein Schlüsselübertragungs-/ empfangsmittel zum Ausführen der Übertragung/des Empfangs des Zufallsschlüssels an einen/von einem anderen Prozess, und das Geheimschlüssel-Verwaltungsmittel kann so konfiguriert werden, dass es den Zufallsschlüssel zur Zeit des realen Maschinenmodus an den anderen Prozess überträgt und den Zufallsschlüssel zur Zeit des virtuellen Maschinenmodus von dem anderen Prozess empfängt. Außerdem kann das Schlüsselübertragungs-/ empfangsmittel in der vorliegenden Erfindung so konfiguriert werden, dass es die Übertragung/den Empfang des Zufallsschlüssels über eine benannte Pipe (engl. „named pipe“) oder einen Mechanismus mit gemeinsam genutztem Ordner ausführt.
-
Außerdem wird gemäß der vorliegenden Erfindung ein Verfahren zum Unterstützen der Einrichtung einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine für ein Benutzerterminal bereitgestellt, wobei das Verfahren die folgenden Schritte umfasst: Installieren einer ersten Sicherheitsanwendung in einem Host-Betriebssystem der Benutzerdatenstation mit Administratorberechtigung; und Bereitstellen einer zweiten Sicherheitsanwendung für einen Benutzer der Benutzerdatenstation, wobei die erste Sicherheitsanwendung ein von einem Computer ausführbares Programm ist, das einen Computer veranlasst, Folgendes zu realisieren: ein Zugangskontrollmittel zum Steuern des Zugriffs durch eine Anwendung; ein erstes Darstellungsbefehl-Hook-Mittel zum selektiven Hooken eines Bildschirmdarstellungsbefehls, der von einer Anwendung der virtuellen Maschine ausgegeben wurde; und ein Verschlüsselungsverarbeitungsmittel zum Ausführen einer Verschlüsselungsverarbeitung des Bildschirmdarstellungsbefehls, der vom ersten Darstellungsbefehl-Hook-Mittel gehookt wurde, mit Hilfe eines Verschlüsselungssystems mit allgemeinem Schlüssel; und wobei die zweite Sicherheitsanwendung ein von einem Computer ausführbares Programm ist, das einen Computer veranlasst, Folgendes zu realisieren: ein Zugangskontrollmittel zum Steuern des Zugriffs durch eine Anwendung; ein zweites Darstellungsbefehl-Hook-Mittel zum selektiven Hooken eines von einer Anwendung ausgegebenen Bildschirmdarstellungsbefehls; und ein Verschlüsselungsverarbeitungsmittel zum Ausführen einer Verschlüsselungsverarbeitung des Bildschirmdarstellungsbefehls, der vom zweiten Darstellungsbefehl-Hook-Mittel gehookt wurde, mit Hilfe eines Verschlüsselungssystems mit allgemeinem Schlüssel.
-
Außerdem wird gemäß der vorliegenden Erfindung eine Computervorrichtung bereitgestellt, die mit einer virtualisierten Umgebung ausgestattet ist, in der eine virtuelle Maschine in einem Host-Betriebssystem eingerichtet wird, wobei sich ein erster Sicherheitsagent im Host-Betriebssystem und sich ein zweiter Sicherheitsagent in einem Gast-Betriebssystem der virtuellen Maschine befindet, wobei der erste Sicherheitsagent Folgendes umfasst: einen Zugangskontrollabschnitt zum Steuern des Zugriffs einer Anwendung im Host-Betriebssystem; einen ersten Darstellungsbefehl-Hook-Abschnitt zum selektiven Hooken eines von der virtuellen Maschine ausgegebenen Bildschirmdarstellungsbefehls; und einen Verschlüsselungsverarbeitungs-Abschnitt zum Ausführen einer Verschlüsselungsverarbeitung des Bildschirmdarstellungsbefehls, der vom ersten Darstellungsbefehl-Hook-Abschnitt gehookt wurde, mit Hilfe eines Verschlüsselungssystems mit allgemeinem Schlüssel; und wobei der zweite Sicherheitsagent Folgendes umfasst: einen Zugangskontrollabschnitt zum Steuern des Zugriffs einer Anwendung im Gast-Betriebssystem; einen zweiten Darstellungsbefehl-Hook-Abschnitt zum selektiven Hooken eines Bildschirmdarstellungsbefehls, der von einer Anwendung im Gast-Betriebssystem ausgegeben wurde; und einen Verschlüsselungsverarbeitungs-Abschnitt zum Ausführen einer Verschlüsselungsverarbeitung des Bildschirmdarstellungsbefehls, der vom zweiten Darstellungsbefehl-Hook-Abschnitt gehookt wurde, mit Hilfe eines Verschlüsselungssystems mit allgemeinem Schlüssel.
-
[Vorteilhafte Auswirkung der Erfindung]
-
Wie oben beschrieben wird, werden gemäß der vorliegenden Erfindung ein Verfahren zum Einrichten einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine und ein hierfür verwendetes Programm bereitgestellt.
-
In Ausführungsformen des von einem Computer ausführbaren Programms kann das Modusumschaltmittel ein Mittel zur Beurteilung umfassen, ob ein Host-Betriebssystem oder ein Gast-Betriebssystem ein mit dem Programm installiertes Betriebssystem ist, und kann das Darstellungsbefehl-Hook-Mittel zur Zeit eines realen Maschinenmodus, in dem das Betriebssystem das Host-Betriebssystem ist, in den ersten Modus versetzen, und zum Zeitpunkt eines virtuellen Maschinenmodus, in dem das Betriebssystem das Gast-Betriebssystem sein kann, in den zweiten Modus versetzen.
-
In Ausführungsformen des in einem Computer ausführbaren Programms kann das Programm außerdem einen Computer veranlassen, ein Geheimschlüssel-Verwaltungsmittel zum Verwalten eines geheimen Schlüssels zu realisieren, der für die Verschlüsselungsverarbeitung verwendet wird.
-
Außerdem kann das Geheimschlüssel-Verwaltungsmittel in Ausführungsformen Folgendes umfassen:
- ein Schlüsselerzeugungsmittel zum Erzeugen eines Zufallsschlüssels als geheimen Schlüssel; und
- ein Schlüsselübertragungs-/empfangsmittel zum Ausführen der Übertragung/des Empfangs des Zufallsschlüssels an einen/von einem anderen Prozess.
-
Außerdem kann das Schlüsselübertragungs-/empfangsmittel in Ausführungsformen des von einem Computer ausführbaren Programms den Zufallsschlüssel zum Zeitpunkt des realen Maschinenmodus an den anderen Prozess übertragen und zur Zeit des virtuellen Maschinenmodus den Zufallsschlüssel von dem anderen Prozess empfangen.
-
In Ausführungsformen des von einem Computer ausführbaren Programms kann das Schlüsselübertragungs-/empfangsmittel die Übertragung/den Empfang des Zufallsschlüssels über eine benannte Pipe ausführen.
-
Außerdem kann das Schlüsselübertragungs-/empfangsmittel in Ausführungsformen des von einem Computer ausführbaren Programms die Übertragung/den Empfang des Zufallsschlüssels über einen Mechanismus mit gemeinsam genutzten Ordner ausführen.
-
Außerdem kann das Geheimschlüssel-Verwaltungsmittel in Ausführungsformen des von einem Computer ausführbaren Programms den geheimen Schlüssel auf der Grundlage einer Einstellungseingabe von außerhalb einstellen.
-
In Ausführungsformen des von einem Computer ausführbaren Programms kann das Modusumschaltmittel auf eine Moduseinstellungseingabe von außerhalb hin das Darstellungsbefehl-Hook-Mittel in den ersten Modus oder in den zweiten Modus versetzen.
-
Figurenliste
-
- 1 ist eine funktionelle Darstellung eines Sicherheitsagenten der vorliegenden Ausführungsform;
- 2 ist eine Darstellung, die einen Host-Betriebssystembildschirm zum Zeitpunkt der Installation des Sicherheitsagenten der vorliegenden Ausführungsform zeigt;
- 3 ist eine Darstellung, die einen Zustand zeigt, in dem der Sicherheitsagent der vorliegenden Ausführungsform im Host-Betriebssystem eines PCs installiert wird, in dem eine virtualisierte Umgebung eingerichtet wurde;
- 4 ist eine Darstellung, die einen Fensterbildschirm einer virtuellen Maschine in einem unlesbaren Zustand zeigt;
- 5 ist eine Darstellung, die einen Eigenschaftenbildschirm zum Einstellen eines „Einstellmodus“ („Setup Mode“) zeigt;
- 6 ist eine Darstellung, die einen Zustand zeigt, in dem der Sicherheitsagent der vorliegenden Ausführungsform in den „Einstellmodus“ gesetzt worden ist;
- 7 ist eine Darstellung, die einen Fensterbildschirm der virtuellen Maschine zum Zeitpunkt der Installation des Sicherheitsagenten der vorliegenden Ausführungsform zeigt;
- 8 ist eine Darstellung, die einen Zustand zeigt, in dem der Sicherheitsagent der vorliegenden Ausführungsform sowohl im Host-Betriebssystem als auch in einem Gast-Betriebssystem installiert wird;
- 9 ist eine Darstellung, die einen PC zeigt, in dem der Sicherheitsagent der vorliegenden Ausführungsform installiert ist, wobei eine Konfiguration mit dynamischem Aktualisieren eines geheimen Schlüssels angewandt wird;
- 10 ist eine Darstellung, die einen PC zeigt, in dem eine Host-basierte virtualisierte Umgebung eingerichtet wurde;
- 11 ist eine Darstellung, die einen Zustand zeigt, in dem ein Fensterbildschirm der virtuellen Maschine in einer oberen Schicht eines Host-Betriebssystembildschirms der realen Maschine angezeigt wird;
- 12 ist eine Darstellung, die einen Zustand zeigt, in dem ein Sicherheitsagent herkömmlichen Typs in das Host-Betriebssystem einer realen Maschine eingeführt wurde, die mit einer Umgebung für eine virtuelle Maschine ausgestattet ist; und
- 13 ist eine Darstellung, die einen Zustand zeigt, in dem der Sicherheitsagent herkömmlichen Typs sowohl im Host-Betriebssystem als auch in einem Gast-Betriebssystem installiert worden ist.
-
Beschreibung einer Ausführungsform
-
Gemäß einem Verfahren der vorliegenden Erfindung ist es möglich, eine sicher verwaltete Ausführungsumgebung für eine virtuelle Maschine einzurichten. Es wird vorausgesetzt, dass das Verfahren der vorliegenden Erfindung auf eine Host-basierte virtualisierte Umgebung angewendet werden kann, und eine neuartige Sicherheitsanwendung der vorliegenden Erfindung wird für dessen Realisierung verwendet. Die Sicherheitsanwendung der vorliegenden Erfindung wird als ein Programmprodukt bereitgestellt, wobei vorausgesetzt wird, dass dieses sowohl in einem Host-Betriebssystem einer Benutzerdatenstation als auch in einem Gast-Betriebssystem einer virtuellen Maschine installiert wird. Hier bezieht sich das Programmprodukt auf ein Aufzeichnungsmedium, in dem ein Programm aufgezeichnet wird, und auf eine Form der Bereitstellung durch ein Netz. Das Programmprodukt gemäß der vorliegenden Erfindung realisiert ein im Folgenden beschriebenes Funktionsmittel in einem Personal Computer, indem es im Computer installiert wird.
-
1 zeigt eine funktionelle Darstellung eines Sicherheitsagenten 100, der eine Ausführungsform der Sicherheitsanwendung der vorliegenden Erfindung ist. Der Sicherheitsagent 100 der vorliegenden Erfindung ist so konfiguriert, dass er einen Sicherheitsfunktionsabschnitt 110 und einen Bildschirmmasken-Verarbeitungsabschnitt (screen mask processing section) 120 aufweist. Der Sicherheitsfunktionsabschnitt 110 ist so konfiguriert, dass er mindestens einen Zugangskontrollabschnitt 112 aufweist. Der Zugangskontrollabschnitt 112 ist ein Funktionsteil, der eine obligatorische Zugangskontrolle für einen Dateizugriff und einen Netzzugriff durch eine in einem Betriebssystem ausgeführte Anwendung ausführt, und er beurteilt, ob der Zugriff durch eine Anwendung gemäß einer von einem Administrator festgelegten Sicherheitsrichtlinie gestattet wird oder nicht. Im Besonderen wird der Kontrollinhalt auf der Grundlage einer Zugangskontrollliste (ACL) ermittelt, in der die Sicherheitsrichtlinie eingestellt wird. Neben dem Zugangskontrollabschnitt 112 kann ein notwendiger Funktionsteil, wie zum Beispiel ein Protokollüberwachungsabschnitt, in geeigneter Weise zum Sicherheitsfunktionsabschnitt 110 hinzugefügt werden.
-
Andererseits wird der Bildschirmmasken-Verarbeitungsabschnitt 120 so konfiguriert, dass er einen Darstellungsbefehl-Hook-Abschnitt 122, einen Verschlüsselungsverarbeitungs-Abschnitt 124, einen Geheimschlüssel-Verwaltungsabschnitt 126 und einen Modusumschaltabschnitt 128 aufweist. Der Darstellungsbefehl-Hook-Abschnitt 122 ist ein API-Hooking-Mittel zum Hooken eines Bildschirmdarstellungsbefehls, der von einer in einem Betriebssystem ausgeführten Anwendung an eine GDI (Graphical Device Interface) ausgegeben wurde, und er weist vorzugsweise drei Betriebsmodi auf. Bei den drei Modi handelt es sich um die folgenden: einen ersten Modus zum selektiven Hooken von ausschließlich einem Bildschirmdarstellungsbefehl, der von einer Anwendung der virtuellen Maschine ausgegeben wurde, einen zweiten Modus zum Hooken eines Bildschirmdarstellungsbefehls, der von einer in einem Betriebssystem ausgeführten Anwendung ausgegeben wurde (darunter mit dem Betriebssystem verbundene Programme), und einen dritten Modus, in dem kein Bildschirmdarstellungsbefehl gehookt wird.
-
Der Verschlüsselungsverarbeitungs-Abschnitt 124 ist ein Funktionsteil, der mit Hilfe eines Verschlüsselungssystems mit allgemeinem Schlüssel eine Verschlüsselungsverarbeitung (Verschlüsselung/Entschlüsselung) eines Bildschirmdarstellungsbefehls ausführt, der vom Darstellungsbefehl-Hook-Abschnitt 122 gehookt wurde. In der vorliegenden Ausführungsform kann ein bereits bekanntes Verfahren, beispielsweise Blockverschlüsselung (block cipher) und Stromverschlüsselung (stream cipher) unter Verwendung einer EXKLUSIV-ODER-Operation für jedes Bit, als Verschlüsselungssystem mit allgemeinem Schlüssel verwendet werden.
-
Der Geheimschlüssel-Verwaltungsabschnitt 126 ist ein Funktionsteil, der einen geheimen Schlüssel als Grundlage von Schlüsseldaten verwaltet, die in der vom Verschlüsselungsverarbeitungs-Abschnitt ausgeführten EXKLUSIV-ODER-Operation für jedes Bit (im Folgenden einfach als XOR-Operation bezeichnet) verwendet werden. Wenn eine Blockverschlüsselung angewandt wird, erzeugt der Verschlüsselungsverarbeitungs-Abschnitt 124 einen erweiterten Schlüssel auf der Grundlage des aus dem Geheimschlüssel-Verwaltungsabschnitt 126 gelesenen geheimen Schlüssels und führt eine XOR-Operation unter Verwendung des erweiterten Schlüssels aus. Wenn eine Stromverschlüsselung angewandt wird, erzeugt der Verschlüsselungsverarbeitungs-Abschnitt 124 eine Pseudo-Zufallsfolge (Schlüsselstrom) mit dem aus dem Geheimschlüssel-Verwaltungsabschnitt 126 gelesenen geheimen Schlüssel als Anfangswert und führt eine XOR-Operation unter Verwendung des Schlüsselstroms aus.
-
Bei der vorliegenden Erfindung wird vorausgesetzt, dass zwei im Host-Betriebssystem einer realen Maschine und im Gast-Betriebssystem einer virtuellen Maschine installierte Sicherheitsagenten 100 denselben geheimen Schlüssel (d.h., einen allgemeinen Schlüssel) verwalten. Die einfachste Möglichkeit zum Garantieren der Identität der geheimen Schlüssel zwischen beiden Sicherheitsagenten besteht darin, denselben geheimen Schlüssel für alle Programmprodukte bei deren Herstellung festzulegen. In diesem Fall bleibt der geheime Schlüssel als ein feststehender Wert im Geheimschlüssel-Verwaltungsabschnitt 126. Außerdem kann die vorliegende Erfindung ein zweites Verfahren, in dem ein Administrator und ein Benutzer einen geheimen Schlüssel zum Zeitpunkt der Installation einer Anwendung festlegen, und ein drittes Verfahren anwenden, in dem ein Sicherheitsagent 100 automatisch einen geheimen Schlüssel erzeugt und den anderen Sicherheitsagenten 100 über den geheimen Schlüssel benachrichtigt.
-
Der Sicherheitsagent 100 hat vorzugsweise drei Betriebsmodi. Ein erster Modus ist der „Reale Maschinenmodus“, um den Betrieb des Sicherheitsagenten 100 im Host-Betriebssystem einer realen Maschine zu veranlassen, und ein zweiter Modus ist der „Virtuelle Maschinenmodus“, um den Betrieb des Sicherheitsagenten 100 im Gast-Betriebssystem einer virtuellen Maschine zu veranlassen. Ein dritter Modus ist der „Einstellmodus“ zum Installieren des Sicherheitsagenten 100 im Gast-Betriebssystem der virtuellen Maschine. Der Modusumschaltabschnitt 128 ist ein Funktionsteil, der den Darstellungsbefehl-Hook-Abschnitt 122 und den Zugangskontrollabschnitt 112 betreibt, um diese drei Betriebsmodi zu realisieren, und er wechselt auf einen Befehl von außerhalb hin oder automatisch zwischen den Betriebsmodi. Die Konfiguration des Sicherheitsagenten 100 der vorliegenden Ausführungsform wurde beschrieben. Als Nächstes wird ein Verfahren der vorliegenden Erfindung beschrieben, das unter Verwendung des Sicherheitsagenten 100 realisiert wird, d.h., ein Verfahren zum Bereitstellen einer sicher verwalteten Ausführungsumgebung für eine virtuelle Maschine.
-
Nach der Installation des Sicherheitsagenten 100 der vorliegenden Ausführungsform im PC eines Benutzers stellt ein Administrator im Verfahren der vorliegenden Erfindung einen dem Sicherheitsagenten 100 ähnlichen Sicherheitsagenten 100 für den Benutzer bereit und weist den Benutzer an, diesen in einer virtuellen Maschine zu installieren. In diesem Fall scheint es so, dass der Benutzer der Anweisung des Administrators nicht unbedingt Folge leisten muss, da der Benutzer weiß, dass der Administrator nicht nachvollziehen kann, ob der Sicherheitsagent 100 tatsächlich in der virtuellen Maschine installiert worden ist. Hinsichtlich dieses Punktes schafft das Verfahren der vorliegenden Erfindung eine Situation, in der der Benutzer nicht umhin kann, die Anweisung des Administrators zu befolgen. Der spezifische Inhalt der Situation wird im Folgenden der Reihe nach beschrieben. In der nachstehenden Beschreibung wird in geeigneter Weise auf 1 Bezug genommen.
-
(Schritt 1)
-
Als Erstes installiert der Administrator den Sicherheitsagenten 100 der vorliegenden Ausführungsform im Host-Betriebssystem des Benutzer-PCs. Anschließend werden ein Betriebsmodus und ein geheimer Schlüssel für den Sicherheitsagenten 100 festgelegt. In der vorliegenden Erfindung ist auch eine Konfiguration möglich, in der diese automatisch festgelegt werden. Dieser Punkt wird an späterer Stelle beschrieben. Hier erfolgt eine Beschreibung mit einer beispielhaften Ausführungsform, in welcher der Betriebsmodus und der geheime Schlüssel manuell festgelegt werden.
-
2 zeigt einen Host-Betriebssystembildschirm 1000 zum Zeitpunkt der Ausführung der Installationsvorgänge. Auf dem Host-Betriebssystembildschirm 1000 wird ein Installationsassistent (installation wizard) 1004 angezeigt. Der Administrator wählt den „Realen Maschinenmodus“ auf einem Betriebsmodus-Auswahlbildschirm 1004a des in 2(a) gezeigten Installationsassistenten. Anschließend gibt der Administrator über einen Kennworteinstellungs-Bildschirm 1004b des in 2(b) gezeigten Installationsassistenten ein Kennwort ein. Der ausgewählte „Reale Maschinenmodus“ wird für den Modusumschaltabschnitt 128 des durch die obige Prozedur im Host-Betriebssystem des PC installierten Sicherheitsagenten 100 festgelegt, und das eingegebene Kennwort wird für den Geheimschlüssel-Verwaltungsabschnitt 126 als ein geheimer Schlüssel festgelegt. In der vorliegenden Ausführungsform wird der Sicherheitsagent 100 mit Administratorberechtigung im Host-Betriebssystem installiert, und der Benutzer kann diesen nicht ohne Genehmigung deinstallieren und ist hinsichtlich einer Änderung des Einstellungsinhaltes (Betriebsmodus und Kennwort) eingeschränkt. In der vorliegenden Ausführungsform ist auch eine Konfiguration möglich, in welcher der Betriebsmodus und das Kennwort von einem speziellen Dialogbildschirm anstelle des Installationsassistenten-Bildschirms festgelegt werden. Die vorliegende Erfindung ist nicht auf die spezifischen Konfigurationen beschränkt.
-
Wenn der Sicherheitsagent 100 nur im Host-Betriebssystem des PCs installiert wird, wird eine virtualisierte Umgebung im Wesentlichen deaktiviert. Dieser Punkt wird im Folgenden auf der Grundlage von 3 beschrieben. 3 zeigt einen Zustand, in dem der Sicherheitsagent 100 im Host-Betriebssystem 204 des PCs installiert ist, in dem eine virtualisierte Umgebung eingerichtet ist. Im Fall des in 3 gezeigten Beispiels wird eine Anwendung 400 für eine virtuelle Maschine (im Folgenden als virtuelle Maschine 400 bezeichnet) zusammen mit drei Anwendungen „Anwendung A“, „Anwendung B“ und „Anwendung C“ im Host-Betriebssystem entwickelt. In 3 werden der virtuelle Hardware-Bereich und die allgemeine Plattform der virtuellen Maschine 400 weggelassen (ebenso in den nachstehenden Figuren). Außerdem werden im Gast-Betriebssystem 404 der virtuellen Maschine 400 drei Anwendungen „Anwendung A“, „Anwendung D“ und „Anwendung E“ entwickelt. Hier muss die „Anwendung A“ als eine Anwendung betrachtet werden, deren Verwendung durch eine Sicherheitsrichtlinie untersagt wird.
-
Wie zuvor beschrieben wurde, wird der Modusumschaltabschnitt 128 des Sicherheitsagenten 100 im Host-Betriebssystem 204 in den „Realen Maschinenmodus“ versetzt. In diesem Fall setzt der Modusumschaltabschnitt 128 den Darstellungsbefehl-Hook-Abschnitt 122 in den ersten Modus, d.h., den Modus zum selektiven Hooken von ausschließlich einem Bildschirmdarstellungsbefehl, der von der virtuellen Maschine 400 ausgegeben wurde. In diesem Fall ist ein Verfahren wünschenswert, bei dem in einem Bereich, der von einem die virtuelle Maschine 400 anzeigenden Fenster belegt wird, nur das als Client-Bereich bezeichnete Innere des Fensters gehookt wird und ein Fensterrahmen sowie ein Titelbereich, die als Nicht-Client-Bereiche bezeichnet werden, nicht gehookt werden. Infolgedessen werden Bildschirmdarstellungsbefehle, die von der in der virtuellen Maschine 400 ausgeführten „Anwendung A“, „Anwendung D“ und „Anwendung E“ ausgegeben werden, und Bildschirmdarstellungsbefehle, die von mit dem Gast-Betriebssystem 404 verbundenen Darstellungsanwendungen (zum Darstellen eines Bildschirmhintergrundes oder eines Desktop) ausgegeben werden, durch den Darstellungsbefehl-Hook-Abschnitt 122 gehookt. Daraufhin liest der Verschlüsselungsverarbeitungs-Abschnitt 124 das für den Geheimschlüssel-Verwaltungsabschnitt 126 festgelegte Kennwort (den geheimen Schlüssel) aus und führt eine Verschlüsselung der vom Darstellungsbefehl-Hook-Abschnitt 122 gehookten Bildschirmdarstellungsbefehle in einem Verschlüsselungssystem mit allgemeinem Schlüssel aus.
-
Wenn die verschlüsselten Bildschirmdarstellungsbefehle vom Bildschirmmasken-Verarbeitungsabschnitt 120 an das Host-Betriebssystem 204 übertragen und nach der Verarbeitung durch die GDI und einen nicht gezeigten Videotreiber an eine Anzeigeeinheit ausgegeben werden, wird ein Fensterbildschirm 2000 der virtuellen Maschine 400 in einen unlesbaren Zustand versetzt, wie in 4 gezeigt wird, und der Benutzer kann keinen Arbeitsgang auf dem Bildschirm ausführen. Infolgedessen ist es im Wesentlichen unmöglich, eine der in der virtualisierten Umgebung betriebenen Anwendungen (die unzulässige „Anwendung A“ sowie „Anwendung D“ und „Anwendung E“) zu verwenden.
-
(Schritt 2)
-
Wenn der Benutzer die Installation des Sicherheitsagenten 100 im PC abgeschlossen hat, kündigt der Administrator dem Benutzer an, dass die Maske des Fensterbildschirms freigegeben wird, sobald der Sicherheitsagent 100 in der virtuellen Maschine 400 installiert ist. Anschließend stellt der Administrator für das Gast-Betriebssystem des Benutzers einen Sicherheitsagenten 100 zusammen mit für den Sicherheitsagenten 100 des Host-Betriebssystems 204 festgelegten Kennwortdaten (geheimer Schlüssel) bereit und überlässt alles Weitere dem Benutzer. Wenn eine solche Situation vom Administrator geschaffen wird, bleibt dem Benutzer, der eine virtualisierte Umgebung verwenden möchte, jedoch nichts anderes übrig, als den Sicherheitsagenten 100, dessen Installation vom Administrator gewünscht wird, in der virtuellen Maschine 400 zu installieren.
-
(Schritt 3)
-
Wenn der Benutzer die Ankündigung des Administrators empfängt, installiert er den Sicherheitsagenten 100 in der virtuellen Maschine 400. Es ist jedoch nicht möglich, den Installationsvorgang in dem Zustand auszuführen, in dem der Fensterbildschirm 2000 der virtuellen Maschine 400 maskiert ist. Daher wird der Sicherheitsagent 100 im Host-Betriebssystem 204 in den „Einstellmodus“ versetzt. Für eine Änderung des Einstellungsinhaltes des Sicherheitsagenten 100 im Host-Betriebssystem 204 ist grundsätzlich die Administratorberechtigung erforderlich, wie zuvor beschrieben wurde. In der vorliegenden Ausführungsform wird dem Benutzer jedoch lediglich die Einstellung des „Einstellmodus“ gestattet. In diesem Fall kann der Benutzer einen Eigenschaftenbildschirm 1006 des Sicherheitsagenten 100 aufrufen, wie in 5(a) gezeigt wird, und den „Einstellmodus“ einstellen.
-
6 zeigt einen Zustand, in dem der Sicherheitsagent 100 im Host-Betriebssystem 204 in den „Einstellmodus“ versetzt wurde. Im „Einstellmodus“ versetzt der Modusumschaltabschnitt 128 den Darstellungsbefehl-Hook-Abschnitt 122 in den dritten Modus, d.h., den Modus, in dem Bildschirmdarstellungsbefehle nicht gehookt werden. Infolgedessen passieren von der virtuellen Maschine 400 ausgegebene Bildschirmdarstellungsbefehle den Sicherheitsagenten 100 und werden umgehend an das Host-Betriebssystem 204 übertragen. Daher kehrt der Fensterbildschirm 2000 der virtuellen Maschine 400 in einen normalen Zustand zurück, wie in 5(b) gezeigt wird.
-
Gleichzeitig fordert der Modusumschaltabschnitt 128 den Zugangskontrollabschnitt 112 auf, den Inhalt der Zugangsbeschränkung für die virtuelle Maschine 400 im „Einstellmodus“ zu ändern. Insbesondere fordert der Modusumschaltabschnitt 128 den Zugangskontrollabschnitt 112 auf, alle Dateizugriffe und Netzzugriffe mit Ausnahme von Dateizugriffen auf eine EXE-Datei 210, die das Programm des Sicherheitsagenten 100 enthält, zu untersagen, darunter von der virtuellen Maschine 400 ausgegebene Dateizugriffe. Daraufhin ändert der Zugangskontrollabschnitt 112 eine ACL entsprechend der Anforderung. Unter der oben beschriebenen Einstellungsbedingung ist es dem Benutzer gestattet, über den Fensterbildschirm 2000 auf die EXE-Datei 210 zuzugreifen, die Ausführung des Installationsvorgangs des Sicherheitsagenten 100 wird für den Benutzer möglich.
-
Da von der virtuellen Maschine 400 ausgegebene Bildschirmdarstellungsbefehle übertragen werden, ohne gehookt zu werden, werden im „Einstellmodus“ alle Bildschirme einschließlich Bildschirmen der unzulässigen „Anwendung A“ angezeigt. Aufgrund der Änderung des Kontrollinhaltes durch den Zugangskontrollabschnitt 112 werden jedoch alle Dateizugriffe (mit Ausnahme der EXE-Datei 210) und Netzzugriffe von der virtuellen Maschine 400 gesperrt, und währenddessen wird die „Anwendung A“ blockiert und kann nicht verwendet werden. Das heißt, im „Einstellmodus“ wird der Sicherheitszustand des PCs ordnungsgemäß aufrechterhalten. Es sei jedoch darauf hingewiesen, dass die „Anwendung D“ und die „Anwendung E“, deren Verwendung ursprünglich zugelassen war, in diesem Zustand ebenfalls nicht verwendet werden können.
-
7 zeigt den Fensterbildschirm 2000 der virtuellen Maschine 400 zum Zeitpunkt der Ausführung des Installationsvorgangs. Auf dem Fensterbildschirm 2000 wird ein Installationsassistent 2004 angezeigt. Der Benutzer wählt den „Virtuellen Maschinenmodus“ auf einem Betriebsmodus-Auswahlbildschirm 2004a des in 7(a) gezeigten Installationsassistenten. Anschließend gibt der Benutzer ein vom Administrator bereitgestelltes Kennwort über einen Kennworteinstellungs-Bildschirm 2004b des in 7(b) gezeigten Installationsassistenten ein. Wenn der Installationsvorgang entsprechend dem Installationsassistenten beendet worden ist, ruft der Benutzer erneut den Eigenschaftenbildschirm 1006 des Sicherheitsagenten 100 im Host-Betriebssystem auf und stellt den „Einstellmodus“ zurück. Daraufhin kehrt der Sicherheitsagent 100 im Host-Betriebssystem 204 in den „Realen Maschinenmodus“ zurück. Alternativ ist es auch eine Konfiguration möglich, in der das Host-Betriebssystem 204 die Beendigung der Installation automatisch erkennt und der Sicherheitsagent 100 im Host-Betriebssystem 204 daraufhin in den „Realen Maschinenmodus“ zurückkehrt.
-
8 zeigt einen Zustand, in dem der Sicherheitsagent 100 sowohl im Host-Betriebssystem 204 als auch im Gast-Betriebssystem 404 installiert ist. Um zwischen den beiden Agenten unterscheiden zu können, wird der Sicherheitsagent 100 im Host-Betriebssystem 204 in 8 als ein Sicherheitsagent 100(H) und der Sicherheitsagent 100 im Gast-Betriebssystem als ein Sicherheitsagent 100(G) gezeigt.
-
Durch die in 7(a) gezeigte Einstellung eines Betriebsmodus durch den Benutzer wird der „Virtuelle Maschinenmodus“ für den Sicherheitsagenten 100(G) eingestellt. In diesem Fall versetzt der Modusumschaltabschnitt 128G den Darstellungsbefehl-Hook-Abschnitt 122G in den zweiten Modus, das heißt, den Modus zum Hooken von Bildschirmdarstellungsfehlen, die von Anwendungen in einem Betriebssystem ausgegeben werden. Infolgedessen werden Bildschirmdarstellungsbefehle, die von der in der virtuellen Maschine 400 ausgeführten „Anwendung A“, „Anwendung D“ und „Anwendung E“ ausgegeben werden, und Bildschirmdarstellungsbefehle, die von mit dem Gast-Betriebssystem 404 verbundenen Darstellungsanwendungen ausgegeben werden, durch den Darstellungsbefehl-Hook-Abschnitt 122G gehookt. Daraufhin liest der Verschlüsselungsverarbeitungs-Abschnitt 124G ein für den Geheimschlüssel-Verwaltungsabschnitt 126G festgelegtes Kennwort (geheimer Schlüssel) aus und führt eine Verschlüsselungsverarbeitung (Verschlüsselung) der vom Darstellungsbefehl-Hook-Abschnitt 122G gehookten Bildschirmdarstellungsbefehle im Verschlüsselungssystem mit allgemeinem Schlüssel aus. Es sei darauf hingewiesen, dass durch das in 7(b) gezeigte Festlegen eines Kennwortes durch den Benutzer derselbe geheime Schlüssel, der für den Geheimschlüssel-Verwaltungsabschnitt 126H des Sicherheitsagenten 100(H) festgelegt wurde, für den Geheimschlüssel-Verwaltungsabschnitt 126G festgelegt wird.
-
Die Bildschirmdarstellungsbefehle, die durch eine XOR-Operation vom Bildschirmmasken-Verarbeitungsabschnitt 120G verschlüsselt wurden, werden von der virtuellen Maschine 400 an das Host-Betriebssystem 204 ausgegeben. Zu diesem Zeitpunkt hookt der Darstellungsbefehl-Hook-Abschnitt 122H des im „Realen Maschinenmodus“ betriebenen Sicherheitsagenten 100(H) selektiv die von der virtuellen Maschine 400 ausgegebenen Bildschirmdarstellungsbefehle (verschlüsselte Bildschirmdarstellungsbefehle). Daraufhin liest der Verschlüsselungsverarbeitungs-Abschnitt 124H das für den Geheimschlüssel-Verwaltungsabschnitt 126H festgelegte Kennwort (geheimer Schlüssel) aus und führt eine Verschlüsselungsverarbeitung (Entschlüsselung) der vom Darstellungsbefehl-Hook-Abschnitt 122H gehookten Bildschirmdarstellungsbefehle (verschlüsselte Bildschirmdarstellungsbefehle) im Verschlüsselungssystem mit allgemeinem Schlüssel aus. Das heißt, da die XOR-Operation unter Verwendung derselben Schlüsseldaten zweimal ausgeführt wird, wenn der Sicherheitsagent 100 sowohl im Host-Betriebssystem 204 als auch im Gast-Betriebssystem 404 installiert wird, werden alle in der virtuellen Maschine 400 ausgegebenen Bildschirmdarstellungsbefehle in einem Zustand, in dem sie in unverschlüsselten Text zurückversetzt wurden, an das Host-Betriebssystem 204 übertragen, und infolgedessen werden alle Bildschirme einschließlich der unzulässigen „Anwendung A“ angezeigt.
-
Andererseits arbeitet der Zugangskontrollabschnitt 112G des Sicherheitsagenten 100(G) mit demselben Kontrollinhalt wie der Zugangskontrollabschnitt 112H des Sicherheitsagenten 100(H), und daher sind alle Dateizugriffe und Netzzugriffe von der „Anwendung A“ unzulässig, während Zugriffe von der „Anwendung D“ und der „Anwendung E“ gestattet werden. Das heißt, durch das Einrichten des Sicherheitsagenten 100(G) in der virtuellen Maschine 400 wird die virtuelle Maschine in derselben Sicherheitsumgebung wie die reale Maschine platziert.
-
Wie oben beschrieben wurde, wird dem Benutzer die Verwendung der virtuellen Maschinenumgebung im Austausch für das Installieren des Sicherheitsagenten 100(G) in die virtuelle Maschine 400 (das heißt, das Beachten der vom Administrator festgelegten Sicherheitsrichtlinie) gestattet. Die Konfiguration der vorliegenden Erfindung hält den Benutzer nicht zwangsläufig davon ab, den Sicherheitsagenten 100(G) zu deinstallieren oder eine andere Anwendung für virtuelle Maschinen ohne Genehmigung des Administrators zu installieren. Dies kann jedoch eine im Wesentlichen gleichwertige Auswirkung auf den Benutzer haben, und infolgedessen wird eine sicher verwaltete Ausführungsumgebung für eine virtuelle Maschine eingerichtet.
-
In der oben beschriebenen Ausführungsform wurde ein Aspekt des Umschaltens des Betriebsmodus (Realer Maschinenmodus/Virtueller Maschinenmodus) des Sicherheitsagenten 100 durch einen Benutzerbefehl gezeigt. Es ist jedoch auch eine Konfiguration möglich, in welcher der Sicherheitsagent 100 selbst den Betriebsmodus eigenständig umschaltet. In diesem Fall wird der Modusumschaltabschnitt 128 mit einem Mittel ausgestattet, um auf der Grundlage von aus dem Betriebssystem gelesenen Hardware-Attributen oder BIOS-Daten zu beurteilen, ob das Host-Betriebssystem oder das Gast-Betriebssystem das mit dem Sicherheitsagenten 100 installierte Betriebssystem ist. Wenn entschieden wird, dass das mit dem Sicherheitsagenten 100 installierte Betriebssystem das Host-Betriebssystem ist, versetzt der Modusumschaltabschnitt 128 den Sicherheitsagenten 100 in den „Realen Maschinenmodus“, und wenn entschieden wird, dass das mit dem Sicherheitsagenten 100 installierte Betriebssystem das Gast-Betriebssystem ist, wird der Sicherheitsagent 100 in den „Virtuellen Maschinenmodus“ versetzt.
-
In der oben beschriebenen Ausführungsform wurde eine Konfiguration beschrieben, in der ein geheimer Schlüssel, der von zwei im Host-Betriebssystem einer realen Maschine und im Gast-Betriebssystem einer virtuellen Maschine installierten Sicherheitsagenten 100 gemeinsam genutzt wird, als ein feststehender Schlüssel festgelegt wird. Es ist auch eine Konfiguration möglich, in welcher der geheime Schlüssel dynamisch aktualisiert wird, um zu verhindern, dass geheime Schlüsseldaten gestohlen und von einem böswilligen Programm verwendet werden. Dieser Punkt wird im Folgenden mit Bezugnahme auf 9 beschrieben.
-
9 zeigt den PC 200 (reale Maschine) mit installiertem Sicherheitsagenten 100, der die Konfiguration des dynamischen Aktualisierens des geheimen Schlüssels verwendet. Der Geheimschlüssel-Verwaltungsabschnitt 126 des Sicherheitsagenten 100 ist in der vorliegenden Ausführungsform mit einem Schlüsselerzeugungsabschnitt 125 zum dynamischen Erzeugen eines Zufallsschlüssels und mit einem Schlüsselübertragungs-/empfangsabschnitt 127 zum Ausführen der Übertragung/des Empfangs des Zufallsschlüssels an einen/von einem anderen Prozess ausgestattet. Der Geheimschlüssel-Verwaltungsabschnitt 126 hat in der vorliegenden Ausführungsform zwei Betriebsmodi. Bei den beiden Betriebsmodi handelt es sich um die folgenden: einen ersten Modus zum dynamischen Erzeugen eines Zufallsschlüssels als geheimen Schlüssel und zum Übertragen von diesem an einen anderen Prozess, und einen zweiten Modus zum Empfangen eines Zufallsschlüssels von einem anderen Prozess und zum Festlegen von diesem als geheimen Schlüssel (Aktualisieren eines geheimen Schlüssels mit dem geheimen Schlüssel). Der nicht gezeigte Modusumschaltabschnitt 128 schaltet zwischen den beiden Betriebsmodi des Geheimschlüssel-Verwaltungsabschnitts 126 hin und her. Insbesondere wenn der Sicherheitsagent 100 in den „Realen Maschinenmodus“ versetzt wird, versetzt der Modusumschaltabschnitt 128 seinen Geheimschlüssel-Verwaltungsabschnitt 126 in den ersten Modus, und wenn der Sicherheitsagent 100 in den „Virtuellen Maschinenmodus“ versetzt wird, versetzt er seinen Geheimschlüssel-Verwaltungsabschnitt 126 in den zweiten Modus.
-
In dem in 9 gezeigten Beispiel wird der Geheimschlüssel-Verwaltungsabschnitt 126H des Sicherheitsagenten 100(H) im Host-Betriebssystem 204 im ersten Modus betrieben. Infolgedessen erzeugt der Schlüsselerzeugungsabschnitt 125H dynamisch einen Zufallsschlüssel als geheimen Schlüssel, und der Schlüsselübertragungs-/empfangsabschnitt 127H überträgt den erzeugten geheimen Schlüssel an einen anderen Prozess (das heißt, den Geheimschlüssel-Verwaltungsabschnitt 126G des Sicherheitsagenten 100(G)). Andererseits wird der Geheimschlüssel-Verwaltungsabschnitt 126G des Sicherheitsagenten 100(G) im Gast-Betriebssystem 404 im zweiten Modus betrieben. Infolgedessen empfängt der Schlüsselübertragungs-/empfangsabschnitt 127G des Geheimschlüssel-Verwaltungsabschnitts 126G den Zufallsschlüssel von einem anderen Prozess (das heißt, dem Geheimschlüssel-Verwaltungsabschnitt 126H des Sicherheitsagenten 100(H)) und legt diesen als geheimen Schlüssel fest (aktualisiert einen geheimen Schlüssel mit dem geheimen Schlüssel). Zu diesem Zeitpunkt kann die Interprozesskommunikation zwischen dem Geheimschlüssel-Verwaltungsabschnitt 126H und dem Geheimschlüssel-Verwaltungsabschnitt 126G über eine benannte Pipe 220 ausgeführt werden.
-
Wenn eine virtuelle Maschinenanwendung mit einer Funktion für gemeinsam genutzte Ordner ausgestattet ist, die das Lesen und Schreiben einer bestimmten Datei aus dem Gast-Betriebssystem 404 in das Host-Betriebssystem 204 ermöglicht, ist es auch möglich, eine Datei für einen geheimen Schlüssel in einem gemeinsam genutzten Ordner bereitzustellen und die geheime Datei über die Datei gemeinsam zu nutzen (übertragen/empfangen). Um einen unberechtigten Zugriff auf geheime Schlüsseldaten zu verhindern, ist es wünschenswert, die benannte Pipe und den gemeinsam genutzten Ordner, die zur Übertragung/zum Empfang eines geheimen Schlüssels verwendet werden, in einem sicheren Zustand zu halten, indem geeignete Zugangsbeschränkungen bereitgestellt werden, Übertragungsdaten und Dateien verschlüsselt werden usw.
-
Die vorliegende Erfindung wurde oben mit einer Ausführungsform beschrieben, in der ein Sicherheitsagent zwei umschaltbare Betriebsmodi aufweist, einen „Realen Maschinenmodus“ und einen „Virtuellen Maschinenmodus“. Die vorliegende Erfindung ist jedoch nicht auf die oben beschriebene Ausführungsform beschränkt. Beispielsweise kann das Verfahren der vorliegenden Erfindung durch Vorbereiten einer ersten Sicherheitsanwendung, die standardmäßig im „Realen Maschinenmodus“ betrieben wird, und einer zweiten Sicherheitsanwendung, die standardmäßig im „Virtuellen Maschinenmodus“ betrieben wird, realisiert werden, so dass ein Administrator die zweite Sicherheitsanwendung für einen Benutzer bereitstellt, nachdem die erste Sicherheitsanwendung mit Administratorberechtigung im Host-Betriebssystem einer Benutzerdatenstation installiert wurde.
-
Die obigen Funktionen der vorliegenden Erfindung können durch ein in einer Vorrichtung ausführbares Programm realisiert werden, das in C, objektorientierten Programmiersprachen, wie zum Beispiel C++, C# und Java (R), und dergleichen geschrieben wurde. Das Programm der vorliegenden Ausführungsform kann, in einem von einer Vorrichtung lesbaren Aufzeichnungsmedium, wie zum Beispiel einer Festplatteneinheit, einer CD-ROM, MO, DVD, Diskette, einem EEPROM und einem EPROM gespeichert, verteilt werden oder über ein Netz in einem lesbaren Format an andere Vorrichtungen übertragen werden.
-
Bezugszeichenliste
-
- 100
- Sicherheitsagent
- 110
- Sicherheitsfunktionsabschnitt
- 112
- Zugangskontrollabschnitt
- 120
- Bildschirmmasken-Verarbeitungsabschnitt
- 122
- Darstellungsbefehl-Hook-Abschnitt
- 124
- Verschlüsselungsverarbeitungs-Abschnitt
- 125
- Schlüsselerzeugungsabschnitt
- 126
- Geheimschlüssel-Verwaltungsabschnitt
- 127
- Schlüsselübertragungs-/empfangsabschnitt
- 128
- Modusumschaltabschnitt
- 200
- Reale Maschine
- 202
- Hardware
- 204
- Host-Betriebssystem
- 210
- EXE-Datei
- 220
- Benannte Pipe
- 400
- Virtuelle Maschine
- 401
- Allgemeine Plattform
- 402
- Virtueller Hardware-Bereich
- 404
- Gast-Betriebssystem
- 500
- Sicherheitsagent
- 502
- Zugangskontrollabschnitt
- 504
- Protokollüberwachungsabschnitt
- 1000
- Host-Betriebssystembildschirm
- 1004
- Installationsassistent
- 1006
- Eigenschaftenbildschirm
- 2000
- Fensterbildschirm der virtuellen Maschine
- 2004
- Installationsassistent