-
Die
vorliegende Erfindung betrifft ein Verfahren zum Verteilen eines
Software-Pakets oder -Updates über
ein Kommunikationsnetz. Ferner betrifft die Erfindung ein Kommunikationsnetz,
ein Server-System, ein Client-System und Computersoftware-Produkte.
-
Aufgrund
der Komplexität
von Rechnersystemen und (Tele-)Kommunikationssystemen sowie in Anbetracht
von neu in Erscheinung tretenden Verfahren und Entwicklungen bei
Einbruchssystemen ist es unbedingt erforderlich, die Rechner- und
Kommunikationssysteme auf dem neuesten Stand zu halten, d.h., die
Software in ihrer neuesten Version einzusetzen.
-
Es
gibt viele Verfahren, um softwaregesteuerte Systeme auf dem neuesten
Stand zu halten, z.B. manuelle oder automatische Korrektur (Patching), Neuinstallationen
oder Updates. Insbesondere für
Virenschutzmittel werden auf kontinuierlicher Basis Viren-Pattern
und Behandlungen eingesetzt, um es einem solchen softwaregesteuerten
System zu ermöglichen,
Infizierungen zu erkennen und die entsprechende Behandlung anzuwenden.
-
Systeme
und Verfahren zum Verteilen von Software (Anwendungen und Daten)
an viele Clients in einem Netz sind bekannt. Üblicherweise sind Server zum
Verteilen und Installieren der Software-Updates und Clients, welche diese
Software-Updates benutzen, vorhanden. Es gibt bereits viele Varianten von
Update-(Transfer-)Protokollen.
Eine Variante besteht darin, dass der Server die Software des Clients kontinuierlich
aktualisiert. Bei einer anderen Variante ist der Client aktiver
und fordert, z.B. ereignisgesteuert, Software-Updates an.
-
Die
US-Patentanmeldung Nr. 6,123,737 beschreibt ein Update-(Transfer-)Protokoll
zum Verteilen und Installieren eines Software-Pakets durch Auslöser (Triggers),
die an Server gesendet werden. Daraufhin erstellen die Server ein
Benachrichtigungspaket (Notification Package) für einen Client. Die Benachrichtigung
weist den Server an, automatisch ein Software-Paket über eine
Kommunikationsschnittstelle in den Client-Rechner einzuspeichern.
-
Es
sind noch effizientere Verfahren zum Verteilen von Software bekannt.
-
Ein
solches Verfahren, bei dem Installationen an den Client weitergeleitet
werden, ist aus der offengelegten Internationalen Patentanmeldung
Nr. WO 02/29551 A2 bekannt. Im US-Patent Nr. 6,052,721 wird ein
anderes Update-Modell bei Bankautomaten angewendet.
-
Ein
System mit selbstaktualisierenden Clients, das durch eine Update-Prozedur
unter Verwendung einer Netzverbindung zu einem unterstützenden
Server realisiert ist, ist aus der US-Patentanmeldung Nr. 6,067,351
bekannt.
-
Ein
Beispiel einer sich selbstständig
verteilenden Software ist ein Wurm, z.B. ein Code-Red-Virus. Dieser
Virus war einer der ersten aus einer Familie von sich selbständig weiterverbreitenden
bösartigen
Codes, welche Netzwerksysteme angreifen. Der Code-Red-Wurm ist ein
selbstreproduzierender bösartiger
Code, der mehrere Server angreift. Ein Wurmangriff läuft wie
folgt ab.
-
Der
Virus versucht, mit einem willkürlich
ausgewählten
Host in Verbindung zu treten, in der Annahme, dass ein Web-Server
gefunden wird. Nach erfolgreicher Verbindungsaufnahme sendet der
angreifende Host eine speziell erstellte HTTP-Holanweisung (GET
request) an das Opfer, um zu versuchen, einen Pufferüberlauf
in einem Indizierungsdienst anzugreifen. Aufgrund der selbständigen Weiterverbreitung
des Wurms erfolgt der gleiche Angriff (HTTP GET request) auf jeden
der willkürlich
ausgewählten
Hosts.
-
Je
nach der Konfiguration des Hosts, der diese Anweisung erhält, sind
die Auswirkungen unterschiedlich. Ist z.B. der Angriff erfolgreich,
beginnt der Wurm, auf dem Opfer-Host
abzulaufen. Neben einer möglichen
Verunstaltung der Web-Site können
infizierte Systeme infolge der Scanning-Aktivität des Wurms einen Leistungsrückgang erleiden.
Dieser Leistungsrückgang
kann recht erheblich sein, da ein Wurm eine Maschine mehrmals gleichzeitig
infizieren kann. Bei Systemen und Netzen, die von anderen infizierten
Hosts gescannt werden, kann es zu Verweigerung von Rechenleistung
kommen. Weiterhin ist zu beachten, dass der Red-Code-Wurm zwar scheinbar lediglich
Web-Seiten in infizierten Systemen unkenntlich macht und andere
Systeme angreift, doch die Angreifbarkeit des Indexing-Dienstes
kann dazu benutzt werden, einen beliebigen Code im lokalen Systemsicherheitskontext
auszuführen.
Diese Privilegebene gibt einem Angreifer praktisch die vollständige Kontrolle über das
Opfersystem.
-
In
Anbetracht des exponentiellen Verteilungsverhaltens solcher Vireninfektionen
und der sich fortpflanzenden (Netz-)Funktionsstörungen besteht ein Bedarf für schnelle
und effiziente Abhilfe.
-
Diese
Aufgabe wird durch ein Verfahren zum Verteilen eines Antiviren-Software-Pakets
oder -Updates in einem Kommunikationsnetz mit einem Server-System
und mindestens zwei Client-Systemen gelöst, welches Verfahren folgende
Schritte umfasst:
- – Verteilen des Software-Pakets
oder -Updates über
das Kommunikationssystem an den mindestens einen Client der mindestens
zwei Client-Systeme durch das Server-System und
- – (rekursives)
Verteilen des Software-Pakets oder Updates über das Kommunikationssystem
an ein weiteres Client-System durch den mindestens einen Client
der mindestens zwei Client-Systeme (bis das weitere Client-System
aktualisiert ist).
-
Die
Aufgabe wird ferner gelöst
durch ein Kommunikationsnetz, das Virenschutzmittel zum Verteilen
eines Antiviren-Software-Pakets oder -Updates, ein Server-System
und mindestens ein Client-System umfasst, wobei das Server-System
Verteilmittel zum Verteilen eines Software-Pakets oder -Updates
an das mindestens eine Client-System umfasst und wobei das mindestens
eine Client-System Installationsmittel zum Installieren des Software-Pakets
oder -Updates in dem mindestens einen Client-System sowie Verteilmittel
zum Verteilen des Software-Pakets oder -Updates an ein weiteres
Client-System umfasst.
-
Dementsprechend
wird die Aufgabe unter anderem gelöst durch ein Server-System
für ein Kommunikationsnetz
mit mindestens einem Client-System, wobei das Server-System Verteilmittel zum
Verteilen eines Software-Pakets oder -Updates an das mindestens
eine Client-System und das mindestens eine Client-System Installationsmittel
zum Installieren des Software-Pakets oder -Updates in dem mindestens
einen Client-System umfassen und wobei das Server-System ferner
Steuermittel umfasst zum Steuern des mindestens einen Clients in der
Weise, dass er das Software-Paket oder -Update an ein weiteres Client-System
verteilt.
-
Ferner
wird die Aufgabe gelöst
durch ein Client-System für
ein Kommunikationsnetz mit einem Server-System, wobei das Server-System
Verteilmittel zum Verteilen eines Software-Pakets oder -Updates
an das Client-System umfasst und wobei das Client-System Installationsmittel zum
Installieren des Software-Pakets oder -Updates in dem Client-System
sowie Verteilmittel zum Verteilen des Software-Pakets oder -Updates
an ein weiteres Client-System
umfasst.
-
Die
Aufgabe wird gelöst
durch ein Computersoftware-Produkt,
welches ein über
ein Kommunikationsnetz an ein Client-System zu verteilendes Antiviren-Software-Paket
oder -Update realisiert und Programmiermittel, welche Deployment-Mittel
implementieren, sowie Container-Mittel zum (rekursiven) Verteilen
des Software-Pakets oder -Updates über ein Kommunikationssystem
an ein weiteres Client-System umfasst.
-
Weiterhin
wird die Aufgabe gelöst
durch ein Computersoftware-Produkt zum Verteilen eines Software-Pakets oder -Updates über ein
Kommunikationsnetz gemäß dem oben
beschriebenen Verfahren.
-
Mit
anderen Worten: Ein Patch- oder Update-Deployment-Pattern selbst wirkt
wie ein Virus und infiziert alle Systeme, die nicht mit dem Verfahren
geimpft sind, das die Impfung verhindern soll. Nachdem das System
infiziert ist, wird es gezwungen, den Abhilfevirus zu verteilen.
In einem nachfolgenden Schritt korrigiert der Virus das System so, dass
z.B. Viren, die dieses Zugriffsverfahren und die Abhilfemaßnahme selbst
verwenden, ein geheiltes System nicht wieder infizieren können.
-
Die
Wirkung dieser Prozedur besteht darin, dass alle Systeme, die nicht
geheilt sind, mithelfen, den Abhilfevirus zu verteilen. Dies führt zu einer
sehr schnellen Verteilung der erforderlichen Patches (Korrekturprogramme).
-
Somit
liegt ein Vorteil der vorliegenden Erfindung darin, dass sie eine
schnelle und effektive Verteilung von Software-Patches und -Updates
in einem Kommunikationsnetz ermöglicht.
-
Ein
anderer Vorteil der vorliegenden Erfindung liegt in der erhöhten Sicherheit
und Zuverlässigkeit.
-
Ein
weiterer Vorteil der vorliegenden Erfindung liegt in der unbemerkten
(„silent") Installation von
Patches, welche die Update- und Patch-Qualität verbessern, wodurch die Anforderungen
an Aktivitäten
von Systembetreibern indirekt verringert werden.
-
Ein
weiterer Vorteil der vorliegenden Erfindung besteht darin, dass
sie ein Verfahren mit einem erweiterten Deployment-Pattern angibt,
das sogar mit Würmern
und Leistungsrückgängen von
Kommunikationsnetzen fertig wird.
-
Diese
und viele andere Aufgaben und Vorteile der vorliegenden Erfindung
sind für
den Durchschnittsfachmann bei Betrachtung der beigefügten Zeichnungen
und aus der nachfolgenden Beschreibung ersichtlich.
-
1 ist
eine schematische Darstellung eines bekannten Deployment-Patterns
eines Updates.
-
2 ist
eine schematische Darstellung eines Verfahrens zum Verteilen eines
Software-Pakets oder -Updates über
ein Kommunikationsnetz gemäß der Erfindung.
-
3 ist
eine schematische Darstellung eines Deployment-Patterns eines durch
das erfindungsgemäße Verfahren
erzwungenen Updates.
-
1 zeigt
ein Server-System S und eine Menge von Client-Systemen C1, C2, ...,
C9. Jedes Client-System ist über
eine Netzverbindung NC1, NC2, ..., NC9 mit dem Server-System S verbunden. Das
Server-System S und ein Client-System Ci kommunizieren über die
Netzverbindung NCi mittels eines Update-Transfer-Protokolls UTP.
-
Somit
kann unter Verwendung des Update-Transfer-Protokolls UTP der Server S die Software
des Client-Systems
Ci aktualisieren oder das Client-System Ci kann seine Software aktualisieren, indem
es das entsprechende Software-Paket oder -Update identifiziert,
vom Server-System
S herunterlädt
und im Client-System Ci installiert.
-
Es
sind neun Client-Systeme C1, C2, ..., C9 gezeigt. Wenn ein neues
Update entsteht, muss das Server-System S neun Updates verarbeiten,
eines für
jedes Client-System C1, C2, ..., C9, um alle Client-Systeme C1,
C2, ..., C9 zu aktualisieren. Dies erfordert etwa das Neunfache
der Zeit, die für
ein Update benötigt
wird. Allgemein haben n Client-Updates eine zeitliche Komplexität von O(n).
-
2 veranschaulicht
die Schritte des erfindungsgemäßen Verteilungsverfahrens
und wo, d.h., an welchem Standort, diese Schritte durchzuführen sind.
Die Figur zeigt einen Server-System-Standort S', einen Netzverbindungsstandort NCi' und einen Client-System-Standort Ci'. Ferner sind Update-Prozessphasen
gezeigt, und zwar: ein neues Software-Paket steht zur Verfügung, P1;
eine Einkapselung in einer Viren-Shell, P2; eine Verteilungsphase,
P3; eine Infizierungsphase, P4; eine Installation des Software-Pakets,
P5; und eine weitere Verteilungsphase, P6.
-
Das
neue Software-Paket steht am Server-System-Standort S' zur Verfügung, P1,
und initiiert den Prozess. Dort, am Server-System-Standort S', wird das neue Software-Paket
durch Einkapselung in einer Viren-Shell, P2, zu einem Virus. Das
Ergebnis wird über
den Netzverbindungsstandort NCi' verteilt
und während
der Verteilungsphase P3 am Client-System-Standort Ci' empfangen. Der Client-System-Standort Ci' wird während der
Infizierungsphase P4 infiziert, und die eingekapselte Software wird
während
der Installation des Software-Pakets, P5, installiert. Dann wird
der Virus in der weiteren Verteilungsphase P6 über eine weitere Netzverbindung
NCj' weiterverteilt.
-
Mit
anderen Worten: Verteile und installiere Updates durch Erzeugen
eines Deployment-Mittel und Container-Mittel für das Software-Paket umfassenden
Virus, Verteilen des Virus über
das Kommunikationsnetz durch ein Server-System, Infizieren des mindestens
einen Client-Systems,
Zwingen des Client-Systems, das Software-Paket weiter zu installieren,
und Verteilen des Virus über
das Kommunikationsnetz, um weitere Client-Systeme zu infizieren.
-
Der
Client selbst kann die Deployment-Mittel aufweisen, um Update-Informationen
zu verbreiten. Ein erweitertes Update-Transfer-Protokoll kann es
einem Client-System ermöglichen,
Feedback über
die Installation und Verbreitung zu liefern.
-
Das
Verfahren formalisiert die Bereitstellung eines Systems zur Verteilung
von Patches, z.B. gegen Viren, unter Verwendung des Virenverteilungsmechanismus.
Das System kann Betreiber ersuchen, die Abhilfemaßnahme (vorhandenes
Update) des Systems, einschließlich
der Möglichkeit
z.B. einer Gebührenberechnung
für die
Verteilung oder einer Steuerung der Verteilung, anzuzeigen.
-
3 zeigt
ein (erweitertes) Server-System S' und eine Menge von (erweiterten) Client-Systemen
C1', C2', ..., C9'. Das Server-System
S' und die Client-Systeme
C1', C2', ..., C9' sind über Netzverbindungen
NC1', NC2', ..., NC9' miteinander verbunden.
-
Der
Server kann Software-Updates gemäß dem in 2 dargestellten
Verfahren verteilen. Es sind neun Client-Systeme C1', C2',
..., C9' gezeigt. Wenn
ein neues Update zur Verfügung
steht, wird es in Wellen verteilt und installiert.
-
Angenommen,
eine erste Verteilung vom Server-System S' an das Client-System C1' benötigt die
Zeit eines Updates. In der zweiten Deployment-Welle verteilen das
Server-System S' und
das Client-System C1' das
Update über
die Netzverbindungen NC2' bzw.
NC3' an zwei weitere
Client-Systeme C2' bzw. C3'. In der dritten
Deployment-Welle verteilen das Server-System S' und die bereits aktualisierten Client-Systeme
C1', C2' und C3' das Update über die
Netzverbindungen NC4',
NC5', NC6' bzw. NC7' an weitere vier
Client-Systeme C4',
C5' C6' bzw. C7'. In einer weiteren
Deployment-Welle werden die übrigen
Client-Systeme C8' und
C9' über die
Netzverbindungen NC8' bzw.
NC9' aktualisiert. Die
ganze Prozedur erfordert etwa die vierfache Zeit eines Updates.
Allgemein haben n Client-Updates eine zeitliche Komplexität von O(log
n). Die Wirkung des beanspruchten Verfahrens besteht darin, dass alle
geheilten Systeme mithelfen, den Abhilfevirus zu verteilen. Dies
führt zu
einer sehr schnellen Verteilung der erforderlichen Patches für die Betriebssysteme.
-
Um
Updates stark zu vervielfachen, kann das erweiterte Update-Transfer-Protokoll
Mittel zum rekursiven Bereitstellen von Feedback über ein
Update umfassen, z.B. darüber,
welche weiteren Clients ebenfalls aktualisiert wurden. Solche Informationen können in
dem erweiterten Server-System, das die Update-Verteilungen verfolgt,
verwendet werden. Die Koordination der Updates kann zufallsmäßig gesteuert,
selbstorganisierend, dynamisch auf der Basis von Umgebungsaspekten
wie Netzkonnektivität, oder
sogar statisch sein, d.h., der Deployment-Graph (Baumgraph) ist
fest.
-
Die
Viren-Abhilfemaßnahme
funktioniert nach einem einfachen Prinzip. Sie ist selbst ein Virus, der
alle Client-Systeme infiziert, die nicht mit dem Verfahren geimpft
sind, das die Impfung verhindern soll. Nachdem das Client-System
infiziert ist, wird es gezwungen, den Abhilfevirus zu verteilen.
-
In
einem nachfolgenden Schritt korrigiert der Virus das Client-System
so, dass Viren, welche dieses Zugriffsverfahren und die Abhilfemaßnahme selbst
verwenden, ein geheiltes System nicht erneut infizieren können.
-
Ein
erweitertes Update-Transfer-Protokoll kann die Fähigkeit besitzen, Update-Ressourcen
interaktiv zu verbinden und koordinieren, z.B. zum Verwalten von
mehreren Client-Updates, Teil-Updates oder sogar einer Zuordnung
bezüglich
Update-Zuständigkeit
oder Update-Berechtigung.
-
Das
Software-Paket oder -Update selbst kann so ausgelegt werden, dass
es die Virusfunktionalität,
d.h., eine Virus-Shell, umfasst.
-
Zurzeit
gibt es in der Informatik eine Tendenz, Probleme unter Verwendung
von naturanalogen Verfahren, z.B. neuronalen Netzen, genetischen Algorithmen
usw., zu lösen.
Das dieser Erfindung entsprechende biologische Objekt ist ein Retrovirus.
-
Retroviren
sind infektiöse
Teilchen, die aus einem RNA-Genom
(dem Software-Update) bestehen, welches in einem von einer Lipid-Hülle (dem Container)
umgebenen Proteinkapsid verpackt ist. Die Lipid-Hülle enthält Polypeptidketten
mit rezeptorbindenden Proteinen, welche sich mit den Membranrezeptoren
der Wirtszelle verbinden und so den Infektionsprozess (die Verteilung)
initiieren.
-
Retroviren
enthalten RNA anstelle der üblicheren
DNA als Erbmaterial. Neben RNA enthalten Retrovirenteilchen auch
die reverse Transkriptase (oder RTase), die eine Synthese eines
komplementären
DNA-Moleküls
(cDNA) unter Verwendung einer Virus-RNA als Template (das Update)
bewirkt.
-
Wenn
ein Retrovirus eine Zelle infiziert, injiziert er seine RNA zusammen
mit dem Enzym der reversen Transkriptase in das Cytoplasma der Zelle. Die
aus dem RNA-Template erzeugte cDNA enthält die vom Virus abgeleiteten
genetischen Anweisungen und ermöglicht
ein Fortschreiten der Infektion der Wirtszelle (die rekursive Verteilung).
-
Das
Kapsid kann vorzugsweise mittels eines Mobile Agent unter Verwendung
einer Mobile-Agent-Plattform oder durch jedes andere geeignete Verfahren,
wie die Sicherheitslücken
in mehreren Web-Servern, die z.B. von Code Red genutzt werden, realisiert
werden.