Hauptmenü öffnen

Softwareaktualisierung

Aktualisierung von Software

Unter Softwareaktualisierung, englisch Software Update [ˈsɒf(t)wɛː ˈʌpˌdeɪt], versteht man in der Informationstechnik die Aktualisierung von Software. Das kann sich neben Computerprogrammen ebenso auf andere Daten beziehen, beispielsweise Virensignaturen oder auch als Datenbank-Updates,[1] als Update einer Webseite oder eines Berichts.

ZweckBearbeiten

 
Updatevorgang auf einem Android Smartphone

Grundsätzlich kann eine aktualisierte Software auch in beliebigen Kombinationen folgende Änderungen aufweisen:

  • Veränderte Funktionalität
    • Implementierung neuer Funktionen
    • Änderung vorhandener Funktionen (zum Beispiel in Bezug auf die Gebrauchstauglichkeit oder die Ausführungsgeschwindigkeit)
    • Entfernung von alten Funktionen
  • Veränderte Betriebssicherheit im Zusammenhang mit Programmierfehlern
    • Verbesserung durch die Behebung von bekannten Programmierfehlern
    • Verschlechterung durch die Implementierung neuer Programmierfehler
  • Veränderte Datensicherheit durch Sicherheitslücken
    • Verbesserung durch das Schließen von erkannten Sicherheitslücken
    • Verschlechterung durch die Implementierung von neuen Sicherheitslücken

Ein Software-Update, das kleinere Verbesserungen wie etwa Optimierungen in der Programmausführungsgeschwindigkeit enthält oder Fehler innerhalb eines bestimmten Software-Stands behebt, wird auch als Service Release, Patch oder Hotfix bezeichnet.

Updates, die sich auf den Bereich der Computersicherheit beziehen, werden security updates genannt. Sie sorgen dafür, dass Sicherheitslücken in Programmen geschlossen werden. Besonders für das Betriebssystem gilt beispielsweise, dass unmittelbar nach einer Neuinstallation und danach in regelmäßigen Abständen von einigen Tagen alle verfügbaren Sicherheitsupdates installiert werden sollten, um bekannte Sicherheitslücken zu schließen. Bekannt ist in diesem Zusammenhang beispielsweise Microsofts Patch Day bei IT-Fachkräften, an dem einmal monatlich die Windows-Produkte auf den neuesten Stand gebracht werden. Es kann für Updates ein fester Zyklus festgelegt werden, oder es werden Updates bei Bedarf veröffentlicht. Die durchschnittlichen Zyklen können dabei auch sehr unterschiedlich sein. Das quelloffene Webframework Ruby on Rails hat beispielsweise einen durchschnittlichen Zyklus von 18 Tagen.[2]

Updates von Sicherheitssoftware, wie Virenschutz oder Firewall, dienen im Allgemeinen dazu, Angriffe auf das System effektiver verhindern zu können.

Updates werden normalerweise von den jeweiligen Softwarebetreibern oder Distributoren herausgegeben und können je nach Zweck und Betriebssystem kostenpflichtig oder kostenlos sein.

AbhängigkeitenBearbeiten

Software wird häufig im Zusammenspiel mit anderer Software verwendet oder eine Software basiert auf mehreren anderen Softwares oder Bibliotheken. Dabei entstehen Abhängigkeiten,[3] die zu Problemen führen können, wenn zum Beispiel Updates für einzelne Softwarekomponenten durchgeführt werden, andere Softwarekomponenten aber noch auf dem alten Stand sind.

So können beispielsweise durch ein Update Schnittstellen verändert worden sein, die bei einer anderen Komponente noch nicht geändert sind. Durch diese Inkompatibilität kann die Software unter Umständen gar nicht mehr betriebssicher ausgeführt werden, oder das Laufzeitsystem verweigert die Ausführung sogar.[4]

SicherheitBearbeiten

Insbesondere in kritischen Infrastrukturen, im Internet der Dinge oder bei Anwendungen, die die Privatsphäre gefährden können, ist es wichtig, die Sicherheit von aktualisierter Software zu gewährleisten.

Häufig verlassen sich Programmierer auf Programmbibliotheken anderer Programmierer, in denen ebenfalls Sicherheitslücken bestehen können. Bei einer Aktualisierung dieser Bibliotheken muss dann vom Anbieter einer Software ebenfalls eine Softwareaktualisierung veranlasst werden, selbst wenn der selbst generierte Programmcode fehlerfrei gestaltet wurde.

Eindeutige HerkunftBearbeiten

Damit die eindeutige Herkunft von aktualisierter Software sichergestellt werden kann, muss auch die Authentizität von Updates gewährleistet werden, was technisch durch digitale Zertifizierung umgesetzt wird. Hierzu berechnet der Hersteller aus den Daten des Updates eine Prüfsumme, verschlüsselt diese mit seinem privaten Schlüssel und sendet das Ergebnis mitsamt dem Update an das Gerät oder den Anwender.

Das Gerät hat den öffentlichen Schlüssel des Herstellers fest eingebrannt und kann damit die verschlüsselte Prüfsumme entschlüsseln. Anschließend vergleicht es den Ergebniswert mit der Update-Prüfsumme, die es selbst errechnet hat. Stimmen die Werte überein, so ist sichergestellt dass

  • das Update tatsächlich vom Hersteller stammt und
  • es unverändert empfangen wurde.

BetriebssicherheitBearbeiten

Es gibt viele Anwendungen, bei denen die Software umfangreichen Prüfungen unterzogen werden muss, bevor sie operativ eingesetzt werden darf. Dazu gehören zum Beispiel die Betriebssysteme, Laufzeitsysteme und Anwendungsprogramme von Stellwerken, Flugzeugen oder Kernkraftwerken sowie für Medizinprodukte. Hierfür gibt es in der Regel Normen und Standards, nach denen bei der Softwareentwicklung oder bei der Prüfung vorgegangen werden muss, wie zum Beispiel ISO/IEC 9126 und die Normenreihe ISO/IEC 25000 (allgemein), DO-178B (Luftfahrt), DIN EN 60880 (Kernkraftwerke)[5] oder EN 50128 (Eisenbahn).

In solchen Fällen ist eine Aktualisierung der Software riskant, langwierig und kostspielig, so dass Software-Entwickler, Gutachter und Auftraggeber große Anstrengungen unternehmen, eine Aktualisierung gar nicht erst erforderlich zu machen.[6] Bei fehlerhaft programmierten Herzschrittmachern können zum Beispiel weltweit Tausende von Patienten betroffen sein.[7] Oder wenn wegen der Aufdeckung der unsicheren Betriebssoftware eines Flugzeugmodells damit keine Passagiere mehr befördert werden dürfen, kann der dadurch entstandene Schaden für eine einzelne Fluglinie eine Höhe von mehreren Millionen Euro pro Woche haben.[8]

DatensicherheitBearbeiten

Die Datensicherheit von Software-Produkten kann aus vielfältigen Gründen beeinträchtigt sein. Beispielsweise können Programmierer es aus Zeitnot, wegen mangelnder Qualifikation, wegen schlechter Programmierwerkzeuge oder versehentlich unterlassen haben, wichtige Sicherheitsfunktionen zu implementieren und zu prüfen. Viele Software-Entwickler versuchen, solche Fehler vor der Auslieferung der Software durch eine Verifikation zu finden und zu beheben.

In manchen Fällen werden neuartige Sicherheitslücken erst nach der Auslieferung einer Software entdeckt oder veröffentlicht, so dass diese nur durch eine Aktualisierung der Software behoben werden können, sofern dies technisch möglich ist. Zum Zeitpunkt der Auslieferung von Software ist häufig weder bekannt noch geregelt, wie lange ein Software-Hersteller solche Aktualisierungen anbietet.[9]

Wenn fehlerhafte Bibliotheksfunktionen eine große Verbreitung haben, kann ein Sicherheitsproblem schwerwiegende Auswirkungen haben, wie zum Beispiel in der Open-Source-Bibliothek OpenSSL, der zum Heartbleed-Bug führte.

UmfangBearbeiten

An sich ist jede gewünschte Veränderung von Software oder Daten eine Aktualisierung. Es gibt jedoch unterschiedliche Begriffe, die sich meist auf den Umfang des jeweiligen Softwareupdates beziehen.

  • Ein Hotfix ist ein schnell verfügbar gemachter Patch. Meist handelt es sich dabei um das Schließen einer Sicherheitslücke oder das Reparieren von Ausführungsfehlern mit größeren Auswirkungen, die sonst z. B. zu Datenverlust führen könnten. Die Versionsnummer der Software bleibt dabei meist unverändert.
  • Ein Patch ist meist eine kleine Anpassung von Software. Der Patch selbst setzt oft das Vorhandensein eines bestimmten Ausgangszustands voraus, etwa ein Programm in einer bestimmten Version, auf den der Patch angewendet werden kann.
  • Ein Update ist meist eine größere Menge von Einzel-Patches. Fast immer wird dabei auch die Nebenversionsnummer angepasst, um eine neue Variante der Software zu kennzeichnen, die kleinere Neuerungen beinhaltet.
  • Ein Upgrade (englisch upgrade = ‚Aufrüstung‘) erweitert hingegen eine Software deutlich um neue Funktionen. Es steht für eine neue Version der Software und wird in der Regel durch eine Änderung der Hauptversionsnummer gekennzeichnet.

Es gibt auch ähnliche Begriffe, die ebenfalls gewünschte Veränderung von Software beschreiben, aber im Grunde genommen keine Aktualisierung (kein Update) darstellen.

  • Bei einem Downgrade wird eine technische Neuerung wieder zurückgenommen.
  • Ein Cross-Update hingegen ist kein echtes Update, sondern eine Marketingstrategie, um Kunden von der Konkurrenz abzuwerben.

Teilweise gibt es etablierte Begriffe für Aktualisierungen, die nur bestimmte Produkte oder Firmen verwenden.

  • Service Pack – eine u. a. von Microsoft verwendete Bezeichnung für die Bündelung von Updates zu einem größeren Paket. Bei Windows hat die Freigabe eines Service Packs auch Auswirkungen auf den Unterstützungszeitraum (Microsoft Support-Dauer-Richtlinie).[10]

DistributionBearbeiten

Aktualisierungen für Software können auf unterschiedliche Weise verteilt werden. Bei ROM-Bausteinen beispielsweise kann die Firmware nur durch Austausch des gesamten Bausteins aktualisiert werden. Auf veränderbaren Datenspeichern kann ein Update z. B. per Speichermedium eingespielt werden. Bei Computern und Computersystemen wurden Updates früher meist per Diskette oder CD-ROM an die Endanwender oder Administratoren verteilt. Bei Geräten, die permanent oder häufig mit dem Internet verbunden sind (siehe auch: Internet der Dinge), werden Aktualisierungen typischerweise automatisch eingespielt. Bei Computerprogrammen auf PCs spricht man in diesem Zusammenhang auch von Auto-, Internet-, Live- oder Online-Updates.

AbgrenzungBearbeiten

Der Begriff Softwareupdate beschreibt explizit die Aktualisierung von Software. Dazu zählt auch die Firmware von Computersystemen (z. B. das BIOS oder dessen Nachfolger UEFI, aber auch z. B. die Firmware des Embedded Controller) oder -komponenten (z. B. Grafikkarten, diverse Controller, Festplatten und SSDs, optische Laufwerke etc.), wodurch die Begriffe Firmwareaktualisierung und Firmware-Update letztlich ebenfalls Softwareaktualisierungen darstellen.

Außerhalb davon gibt es in der Softwareentwicklung den englischen Begriff Update auch für Methoden der Software selbst, z. B. zur Aktualisierung von Objekten. Dies kann beispielsweise die Bildschirmaktualisierung durch eine Software sein, oder es können CRUD-Operationen bei Datenbanken sein.

Siehe auchBearbeiten

BelegeBearbeiten

  1. FlowFact CRM Software 2009, Band I, ISBN 978-3-8370-9057-4, Auszug aus Seite 17: „Bei einem Datenbank-Update werden die bisherigen Daten in die erweiterte Datenbankstruktur neu eingelesen und notfalls konvertiert. Dieser Vorgang erfolgt vollautomatisch.“, siehe Auszug des Originaltextes (eingeschränkte Vorschau in der Google-Buchsuche)
  2. rails : 4.0.0 – Track your Gems at VersionEye. In: versioneye.com. 2. August 2013, abgerufen am 17. Januar 2015 (englisch).
  3. Visual : rails : 4.0.0. In: versioneye.com. Abgerufen am 17. Januar 2015.
  4. Informationen zu inkompatibler Software auf dem Mac - Manche inkompatible Software wird automatisch deaktiviert, wenn Sie ein macOS-Upgrade vornehmen, Apple vom 7. November 2016, abgerufen am 13. März 2019
  5. DIN EN 60880:2010-03;VDE 0491-3-2:2010-03 Kernkraftwerke - Leittechnik für Systeme mit sicherheitstechnischer Bedeutung - Softwareaspekte für rechnerbasierte Systeme zur Realisierung von Funktionen der Kategorie A, DIN vom März 2010, abgerufen am 13. März 2019
  6. WannaCry abhaken - irgendwie zumindest / Warum Patchen nicht immer eine Option ist, GData vom 23. Mai 2017, abgerufen am 13. März 2019
  7. Tausende Patienten von Herzschrittmacher-Rückruf betroffen Ärztezeitung vom 14. Februar 2019, abgerufen am 13. März 2019
  8. TUI: Millionen-Kosten wegen Boeing 737 Max 8, NDR.de vom 14. März 2019, abgerufen am 7. April 2019
  9. Updates: Nur wenige Anbieter aktualisieren zuverlässig, test.de vom 6. März 2019, abgerufen am 8. April 2019
  10. Jan Schüßler: Convenience Rollup für Windows 7: Das Nicht-SP2. In: Heise online. 18. Mai 2016. Abgerufen am 3. Dezember 2018.; Zitat: „Microsoft nennt das Convenience Rollup ausdrücklich nicht „Service Pack 2“, obwohl es aus Sicht vieler Anwender genau das sein dürfte. Doch es gibt Unterschiede: Die Veröffentlichung eines weiteren Service Pack würde eine neue Support-Dauer-Richtlinie auslösen, denn Microsoft garantiert den Support für ein Betriebssystem nur, wenn das aktuelle Service Pack installiert ist.“.

WeblinksBearbeiten

 Wiktionary: Softwareaktualisierung – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen