Softwaredistribution und Patch Management

Softwareverteilung und Patch Management in einem Unternehmen

Seit einigen Jahren besteht schon der Trend in größeren Unternehmen und Organisationen die IT-Dienstleistungen wie z.B. die Systemverwaltung zu zentralisieren, wobei es hierzu vielerlei Gründe wie z.B. die Modernisierung und Standardisierung verschiedener Technologien, Konsolidierung von technischen und organisatorischen Prozessen um Kosten einzusparen, geben kann. Für die Systemverwaltung zu zentralisieren gibt es mittlerweile eine Reihe von Herstellern am Markt. Wobei diese Systemverwaltungssoftwaresuiten eine ganze Reihe an Diensten wie z.B. Lizenzmanagement, Endgeräteverwaltung, Inventarisierung, Helpdeskfunktionen und auch eine Softwareverteilung inkl. Patch Management anbieten.

Gerade die Softwareverteilung und das Patch Management spielen in größeren Unternehmen und Organisationen mit mehreren Endgeräten mittlerweile eine sehr wichtige Rolle. Ziel der Softwareverteilung ist es dabei möglichst viele Endgeräte mit gleicher Softwareausstattung zu bestücken, wobei das Patch Management oft dazu da ist wichtige Sicherheitupdates in sehr kurzer Zeit bereitzustellen.

Bei all diesen Prozessen der Softwareverteilung und Patch Managements, werden viele Aspekte der IT-Sicherheit berührt. Hierbei soll verhindert werden das irgendwelche Schadsoftware eingeschleust werden kann, Angreifer Zugriff auf interne Informationen erhalten oder das Angreifer mögliche Hintertüren im IT-System des Unternehmens einbauen können. Ebenso ist zu berücksichtigen wenn die Softwareverteilung Software über Netzwerkgrenzen verteilt, das eine gewisse Vertrauensstellung der Netzwerke vorhanden ist. Zudem sollten Administratorenkonten speziell geschützt werden, da diese ein sehr beliebtes Angriffsziel von Hackern sind. Weiterhin sollte es eine beweissichere Protokollierung und Überwachung aller Prozesse geben, um Sicherheitsvorfälle frühzeitig erkennen und forensisch analysieren zu können. Zudem sollte es zur Erhaltung des Sicherheitsniveaus regelmäßig Überprüfungen der Sicherheitsmaßnahmen geben.

Wie wir weiter oben gesehen haben spielt die Softwareverteilung und das Patch Management in großen Unternehmen eine wichtige Rolle, allerdings sollte diese aus 2 wichtigen Gründen weitestgehend automatisiert werden. Der erste Grund ist die enorme Kostenersparnis bei einer automatisierten Softwareverteilung und Konfiguration der Endgeräte. Der zweite Grund ist die enorme Erhöhung der Produktivität, da die Administratoren mehr Zeit für andere Aufgaben haben und die Erhöhung der Verfügbarkeit der Software auf den Endgeräten gewährleistet ist.

Allerdings kann auch eine schlecht konfigurierte Softwareverteilung enorme Risiken mit sich bringen. Laut einer Studie vermutet Gartner, dass bei allen Fehlern und Ausfällen von IT-Systemen durch fehlerhafte Prozesse, mehr als die hälfte davon auf die Fehler in den Prozessen der Softwareverteilung zurückzuführen sind. Zudem kommt dazu oft noch eine mangelhafte Koordination der Changemanagementprozesse mit denen der Softwareverteilung. Aus diesen Gründen sollte eine sorgfältige Planung der Einführung einer Softwareverteilung voran gehen. Ebenso sollte auf eine sorgfältige Dokumentation aller Softwareverteilprozesse geachtet werden. Zudem sollte auf geltende Standards und etablierte Systeme geachtet werden. Weiterhin sollten nicht mehrere Softwareverteilsysteme gleichzeitig eingesetzt werden.

Bevor wir etwas tiefer in das Thema automatisierte Softwareverteilung eingehen, werden nachfolgend ein paar Begriffsdefinitionen erklärt.

Begriffsdefinitionen

Softwareverteilung

Unter „Softwareverteilung“ (engl.: software distribution) versteht man die automatische Lieferung und Installation von Software über das Firmennetzwerk auf die Endgeräte der Mitarbeiter oder auf die Server eines Unternehmens. Bei der automatischen Installation der Software erfolgt diese weitestgehend ohne jegliche Nutzerinteraktion. In kleinen Unternehmen mit wenigen Endgeräten kann diese Installation auch teilweise manuell über einen qualifizierten Mitarbeiter (z.B. Administrator) erfolgen.

Die Softwareverteilung lässt sich in die folgenden Prozesse untergliedern:

Orchestrieren: Bei der Orchestrierung wird die zu installierende Software in Abhängigkeit zu den entsprechenden Endgeräten und deren Konfiguration zusammengestellt.

Herunterladen: Die entsprechende Software, welche zu installieren ist, wird entweder vom Hersteller oder von sogenannten Softwaredepots heruntergeladen.

Paketieren: Die entsprechende Software, welche zu installieren ist, wird inkl. der Installationsroutinen und den notwendigen Konfigurationen in Pakete zusammengestellt.

Testen: Die entsprechende Installation der Installationspakete wird vor der eigentlichen Installation und Auslieferung auf Testgeräten getestet.

Verteilen: Die Auslieferung der Softwarepakete (Installationspakete) auf die Endgeräte.

Installieren: Die ausgelieferten Softwarepakete werden auf den Endgeräten installiert. Hierzu zählt auch die Deinstallation obsoleter Software.

In jedem dieser Teilprozesse findet immer eine Fehlerbehandlung statt, hierdurch kann die Softwareverteilung jederzeit gestoppt werden. Natürlich findet dann immer ein Rollback statt d.h. es werden unvollständige Softwarepakete gelöscht oder bereits unvollständig installierte Software auf den Endgeräten wieder gelöscht. Wir betrachten hier nur die automatisierten Softwareverteilprozesse, da durch diese Automatisierung erst die oben genannten Teilprozesse schnell und kosteneffizient ausgeführt werden können und somit die Software sehr schnell auf eine große Anzahl an Endgeräten ausgerollt werden kann. Mit dieser Vorgehensweise ist auch sichergestellt das Sicherheitsupdates und Patches zeitnah nach ihrer Veröffentlichung und Bereitstellung auf alle betroffenen Rechner ausgerollt werden können und somit nicht nur eine Kostenersparnis sondern auch eine Erhöhung des Sicherheitsstandards erzielt wird.

Systemverwaltung

Die Softwareverteilung ist in der Regel fast immer ein Bestandteil einer kompletten Systemverwaltungssoftware (System Management Software). Hier gibt es aktuell viele Hersteller am Markt. Neben der Softwareverteilung können mit diesen Produkten zur Systemverwaltung diverse andere Aufgaben erledigt werden. Hier ein kurzer Überblick:

Inventarisierung von Hardware und Software: eine Inventarisierung dient zur Verwaltung der Softwarelizenzen, also welche Software auf welchem Endgerät bzw. Server installiert ist. Sowie zur Ermittlung der Hardwareausstattung (wie z.B. CPU, Speicher, Disk etc.) der Endgeräte und Server.

Monitoring: Das Monitoring kann unter anderem überwachen ob die Software auf den Endgeräten bzw. Servern noch aktuell ist oder die Lizenzen noch gültig sind bzw. noch genügend Lizenzen vorhanden sind.

Konfigurationsverwaltung: Oft sind Endgeräte und Server in der Praxis sehr heterogen und haben unterschiedliche Hardware- oder Software Konfigurationen d.h. sie haben oft eine unterschiedliche Hardwarebasis und unterscheiden sich oft im Stand des Betriebssystems, sowie in der installierten Applikationssoftware. Auch diese unterschiedlichen Konfigurationen können mit der Systemverwaltung verwaltet werden.

Paketverwaltung: Die Systemverwaltung verwaltet auch die mittels der Softwareverteilung generierten Softwarepakete.

Architektur

Eine voll automatisierte Softwareverteilung baut auf einem oder mehreren Softwareverteilungsserver auf, welche die im vorangegangenen Abschnitt beschriebenen Aufgaben erledigen. Um eine Kommunikation mit den Endgeräten zu gewährleisten zu können ist auf diesen eine Client- bzw. Agentsoftware installiert.

Generell unterscheidet man zwischen 3 Topologien zur Softwareverteilung.

Zentrale Softwareverteilung: Bei dieser Topologie gibt es genau einen Softwareverteilungsserver der alle Aufgaben der Softwareverteilung übernimmt und auch alle Endgeräte bedient.

Dezentrale Softwareverteilung: Bei dieser Topologie gibt es mehrere Softwareverteilungsserver die die Endgeräte mit Software beliefern. Hier ist es allerdings so das bestimmte Softwarepakete nur von bestimmten Softwareverteilungsservern bezogen werden können.

Hierarchische Softwareverteilung: Bei dieser Topologie gibt es einen zentralen Softwareverteilungsserver, der die Softwarepakete an mehrere untergeordnete Softwareverteilungsserver verteilt. Wobei diese wiederum die Softwarepakte dann auf die Endgeräte verteilen. Bei dieser Art von Topologie findet meistens eine Aufgabenteilung zwischen den Softwareverteilungsservern auf den einzelnen Ebenen der Hierarchie statt. In der Regeln übernimmt der zentrale Softwareverteilungsserver die Aufgabe der Orchestrierung und Paketierung, wobei dann die Server der unteren Ebene die Verteilung und die Installation der Pakete übernehmen.

Diese drei Standardtopologien sind beliebig untereinander kombinierbar. Ebenso ist eine Verteilung über Netzwerkgrenzen möglich, das bedeutet die Softwareverteilungsserver und die Endgeräte befinden sich in unterschiedlichen Netzwerken. Bei der Entscheidung für eine bestimmte Topologie spielen auch Kostenaspekte eine entscheidende Rolle. Beim Thema Optimierung von IT-Kosten wird auch sehr oft auf die Zentralisierung von IT-Diensten hingewiesen. Ebenso wird beim Thema Kosteneinsparungen auf die Konsolidierung der verwendeten Technologien, sowie die Verwendung von Standard Technologien hingewiesen. Weitere Einsparpotentiale ergeben sich durch die Verringerung der Komplexität des Anwendungsportfolios, sowie bei der Vermeidung von Redundanzen bei den Anwendungen.

Verteilungsstrategien

Wir wollen in diesem Abschnitt kurz die verschiedenen Strategien der Softwareverteilung diskutieren. Hierbei stellt sich gleich zu Beginn die Frage, ob der Softwareverteilserver die Software auf den Endgeräten installiert oder ob sich die Endgeräte aktiv die Software vom Softwareverteilserver herunterladen (Push- vs.
Pull-Verfahren). Ebenso spielt die zeitliche Dimension eine entscheidende Rolle bei der Softwareverteilung d.h. kann zu jeder Zeit Software auf den Endgeräten installiert werden oder gibt es gewisse Zeitfenster in denen die Software auf die Endgeräte installiert werden kann.

Push- vs. Pull-Verfahren

In der Regel erfolgt die automatisierte Verteilung von Softwareprodukten mittels eines Push- oder Pull-Verfahrens. Beim Push-Verfahren verteilt der Softwareverteilserver die Softwarepakete aktiv auf die Endgeräte. Der große Vorteil bei diesem Verfahren ist, das der Administrator jederzeit die volle Kontrolle darüber hat welche Software, zu welchem Zeitpunkt auf welches Endgerät verteilt wird. Ein entscheidender Nachteil bei diesem Verfahren ist allerdings, das die Endgeräte immer erreichbar sein müssen und das der Softwareverteilserver diverse Informationen über die Endgeräte vorhalten muss (z.B. welche Software auf welche Endgeräte installiert werden muss bzw. schon installiert ist). 

Beim Pull-Verfahren regeln das die Endgeräte immer selbstständig. Auf dem Endgerät ist eine spezielle Clientsoftware (Software-Agent) installiert, welche die Software vom Softwareverteilungsserver herunterlädt und auf dem Endgerät installiert. Der Vorteil ist hierbei das die Endgeräte nicht ständig erreichbar sein müssen. Der große Nachteil ist hierbei allerdings das der Administrator keine Kontrolle mehr hat welche Software auf welchem Endgerät, zu welchem Zeitpunkt installiert wurde. Das bedeutet im schlimmsten Fall aus Performanzsicht das alle Endgeräte zum gleiche Zeitpunkt Software beim Softwareverteilserver herunterladen und installieren. 

Zeitliche Reihenfolge

Eine zeitliche Planung der Softwareverteilung kann aus den unterschiedlichsten Gründen sehr sinnvoll sein. Um etwa eine Überlastung des Netzes zu vermeiden oder kritische Security Software Updates zeitnah auf den Endgeräten einzuspielen. Um eine Überlastung des internen Netzes und des Softwareverteilungsservers zu vermeiden, können z.B. unterschiedliche Zeitfenster für die unterschiedlichsten Gruppen an Endgeräten (z.B. verschiedene Endgeräte einer Abteilung eines Unternehmens) definiert werden. 

Software kann somit nur innerhalb dieser klar definierten Zeitfenster installiert werden. Für kritische Softwareupdates sollten aber Ausnahmeregeln gelten, so dass diese auch jederzeit installiert werden können.

Ein weiterer sehr wichtiger Aspekt bei der zeitlichen Planung der automatisierten Softwareverteilung ist, wie zeitnah die Software nach deren Veröffentlichung auf den Endgeräten installiert werden muss. Hierbei ist immer abzuwägen zwischen der Dringlichkeit eines Softwareupdates aus Sicherheitsgründen, also ob ein Softwareupdate Sicherheitslücken schließt, oder einem anderen Risiko, welches durch die Installation der neuen Software bereits installierte Software in ihrer Funktionalität beeinträchtigt oder das die Benutzer durch die Installation unausgereifter Softwareprodukte in ihrer Arbeit beeinträchtigt werden. 

Software kann prinzipiell zu jedem Zeitpunkt, auch während des laufenden Betriebs, eingespielt werden. Sollte es aber während des Installationsprozesse zu Beeinträchtigungen der Benutzer der Endgeräte kommen, weil während dieses Zeitraums bestimmte Software oder das gesamte Endgerät nicht nutzbar ist, sollten wie vorab schon beschrieben Wartungszeitfenster vereinbart und dies an den Benutzer kommuniziert werden. Innerhalb dieser Zeitfenster stehen dann den Benutzern die Endgeräte nur bedingt oder gar nicht zur Verfügung und die Software kann dann eingespielt werden. Eine generelle Empfehlung kann hier allerdings nicht ausgesprochen werden, da es immer sowohl von der zu installierenden Software wie vom Betriebssystem des Endgerätes abhängt, welche Methode am besten ist. 

Laut einer Studie ist es sinnvoll Software sukzessive an einen immer größer werdenden Benutzerkreis auszuliefern. Das Ziel hierbei ist es Fehler und Probleme in der Software möglichst frühzeitig zu entdecken, dabei aber nur einen kleinen Teil der Benutzer dadurch zu beeinträchtigen. Ebenso ist dadurch ein notwendiges Deinstallieren und Zurücksetzen der Endgeräte in den Ursprungszustand einfacher, wenn nur wenige Endgeräte davon betroffen sind. Diese Verteilungsstrategie ist aber eher etwas für einen Softwareentwicklungsprozess als für die Standard-Softwareverteilung, da bei einer Softwareentwicklung ständig neue Versionen der Software an die Anwender ausgeliefert werden müssen.

Ihre Anforderungen, unser KnowHow

Die SYSM ist Ihr kompetenter Ansprechpartner wenn es um Softwaredistribution und Patch Management Lösungen geht. Wir bieten Ihnen umfassende Dienstleistungen und Produkte für die Planung, Umsetzung und Betreuung rund um die Themen einer kompletten Softwaredistribution und Patch Management Lösung an. Unser höchstes Ziel ist es den maximalen Mehrwert für Sie zu erzielen und somit gemeinsam Ihre Projekte zum Erfolg zu führen. Dafür stehen wir Ihnen mit unseren Softwaredistribution und Patch Management Experten zur Verfügung.

Testen Sie unser KnowHow im Bereich Softwaredistribution und Patch Management. Wir stellen Ihnen unsere Softwaredistribution und Patch Management Experten gerne zur Verfügung.

Michael Schwab Geschäftsführer