# Softwareaktualisierung

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, als Update einer Webseite oder eines Berichts.

## Zweck

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 Patchday 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.
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ängigkeiten

Software wird häufig im Zusammenspiel mit anderer Software verwendet oder eine Software basiert auf mehreren anderen Softwares oder Bibliotheken. Dabei entstehen Abhängigkeiten, 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.

## Sicherheit

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. In behördlich kontrollierten Infrastrukturen, wie zum Beispiel in der Luftfahrt, bei der Energieversorgung oder im Eisenbahnverkehr ist auch eine aktualisierte Software meist vollständig zu prüfen und zu genehmigen, was einen sehr hohen personellen und zeitlich Aufwand verursacht.
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.

### Sicherheitsupdates für PC, Handy und Tablet
#### Nutzen

Durch fehlende Sicherheitsupdates können Internetkriminelle sich Zugriff auf den PC, das Smartphones oder das Tablet verschaffen, um z. B. an personenbezogene Daten, Kontaktdaten und Login- und Internetpasswörter für Webseiten oder das Internetbanking zu gelangen, Cryptojacking zu installieren und dabei Rechenleistung zu kapern, dabei nutzen sie neu entdeckte Sicherheitslücken.

#### Pflichten der Hersteller

Nach wenigen Jahren sind Smartphones, Tablets und Notebooks oft schon nicht mehr sicher benutzbar. Schuld daran sind fehlende Sicherheitsupdates. Mit der EU-Ökodesignrichtlinie will die Europäische Union Elektroschrott reduzieren, weshalb auch seit etwa Ende 2021 Diskussionen in der EU geführt werden, dass Handyhersteller ihre Geräte fünf Jahre lang mit Sicherheitsupdates versorgen sollen und für denselben Zeitraum sollen die Hersteller Ersatzteile für das Recht auf Reparatur für externe Werkstätten bereitstellen. Die Bundesregierung geht bereits einen Schritt weiter und will sich seit Ende 2021 EU-weit für langlebigere Geräte einsetzen u. a. sollen Sicherheitsupdates 7 Jahre lang verpflichtend werden. Die Industrie sperrte sich jedoch bisher noch gegen diese geplanten Auflagen. Der Industrieverband DigitalEurope schlägt in einem Gegenangebot drei Jahre Sicherheitsupdates vor, was sogar etwas unter den aktuell auf dem Markt gängigen Standards liegt. Die neuen Regeln der EU sollen laut dem Computermagazin c’t im Jahr 2023 in Kraft treten.

#### Versprechungen und Taten der Hersteller

Die angegebene Jahre werden immer gerechnet ab der Markteinführung.

##### Android-Betriebssystem

Bei Geräten mit Android hängt das Supportende für Sicherheitsupdates jeweiliger Geräte in der Regel von dem Marktstart des jeweiligen Gerätes ab.

###### Google

Pixel 8 von 2023: 7 Jahre Betriebssystem- und Sicherheitsupdates.
Pixel 7 von 2022: 5 Jahre Sicherheitsupdates.
Pixel 6 von 2021: 5 Jahre Sicherheitsupdates.
Pixel 5 aus 2020: 3 Jahre Sicherheitsupdates.

###### Motorola

Seit 2022, mindestens ein Modell: 3 Jahre Sicherheitsupdates.
Seit 2021, mindestens ein Modell: 2 Jahre Sicherheitsupdates.

###### Oppo

Seit 2021, mindestens ein Modell: 3 Jahre Sicherheitsupdates.

###### Samsung

Galaxy S und Galaxy Note Modelle seit 2021: 5 Jahre Sicherheitsupdates.
Galaxy S und Galaxy Note Modelle 2015 bis 2020: 4 Jahre Sicherheitsupdates. (Nach neuer Update-Strategie 2021, davor wurden nur 3 Jahre versprochen)

###### Xiaomi

Die 11T-Line seit 2020: 4 Jahre Sicherheitsupdates.

##### Chrome OS Betriebssystem

Im Gegensatz zu Windows zählt bei Geräten mit Chrome OS der Zeitpunkt des ersten Marktstarts des Geräts. Alle neuen Chromebooks erhalten seit 2020 acht Jahre lang Sicherheitsupdates, zuvor waren es sieben, davor sechs und zum Anfang sogar nur drei.

##### Chrome OS Flex Betriebssystem

Chrome OS Flex ist ein neues Betriebssystem von Google, das nicht nur auf Chromebooks laufen soll. Das Sicherheitsupdate-Ende ist hier noch unbekannt, da das Projekt sich seit Februar 2022 in der Early-Access-Phase befindet.

##### iOS-Betriebssystem

Aus Sicht des Jahres 2021 werden, rückwirkend betrachtet, in der Regel Apple-Smartphones rund 4 bis 6 Jahre lang mit dem neuesten iOS-Updates versorgt. Apple ist damit bisher absoluter Vorreiter, wenn es um den Langzeitsupport der eigenen Smartphones geht. Kein anderer Hersteller versorgt auch seine älteren Smartphones so lange und zuverlässig mit Updates. Das aktuelle iOS 15 aus dem Jahr 2021 läuft noch auf dem iPhone 6s aus dem Jahr 2015 versorgt. Allerdings bringen die Upgrades der iOS-Version nicht nur Sicherheit, sondern mitunter auch den gefühlten oder gemessenen Effekt einer Verlangsamung mit sich.

##### Linux-Betriebssystem

Die Entwicklung von Linux ist nicht in der Hand von Einzelpersonen, Konzernen oder Ländern, sondern in der Hand einer weltweiten Gemeinschaft vieler Programmierer. Somit sind keine umfassend gültigen Zeiträume für Sicherheitsaktualisierungen oder Support-Garantien festlegbar. Die meisten Linux-Distributionen haben dennoch eigene (teils sehr unterschiedliche) garantierte Zeiträume festgelegt, in denen Sicherheitsaktualisierungen garantiert werden. Diese sind oft an eine besondere Version des Linux-Kernels geknüpft, bei dem bestimmte Versionen eine längere Pflege erhalten, was mit „Long Term Support“ (kurz: LTS) bezeichnet wird. Länger gepflegte Versionen bestimmter Linux-Distributionen nutzen oft dieselbe Bezeichnung, etwa Ubuntu LTS.
Auch finden sich Linux-Distributionen, die das Konzept von Rolling Releases umsetzen. Dabei wird das Betriebssystem stets aktuell gehalten, sodass es theoretisch kein Support-Ende gibt bzw. praktisch erst dann keine weiteren Aktualisierungen mehr möglich sind, wenn die genutzte Hardware dies unmöglich macht. Erst dann könnte ein Nutzer auf eine länger gepflegte Linux-Distribution umsteigen, bis diese ebenfalls nicht mehr mit Sicherheitsaktualisierungen versorgt wird.
Eine Vielzahl an Geräten, die ursprünglich mit Windows oder macOS ausgeliefert wurden, lassen sich so weit länger sicher weiter verwenden.

##### Windows-Betriebssystem

Bei Windows zählt nicht der Hersteller oder der Marktstart der Geräte, sondern es wird versucht, alle Geräte permanent mit Sicherheitsupdates zu unterstützen.

###### Windows 10

Windows 10 hat Sicherheitsupdates bis 14. Oktober 2025. Supportzeitraum somit circa 10 Jahre. (Kostenloses Upgrade zu Windows 11 unter bestimmten Voraussetzungen möglich)

###### Älteres Windows

Windows 8 erhielt bis 10. Januar 2023 Sicherheitsupdates. Der Supportzeitraum lag somit bei circa 10 Jahren.
Auch Windows 7 wurde ca. 10 Jahre regulär mit Sicherheitsupdates versorgt, das offizielle Supportende war der 14. Januar 2020. Aufgrund von Versäumnissen bei der Migration auf eine neuere Windows-Version gab es jedoch das öffentliche Interesse, Windows 7 länger zu nutzen, sodass Microsoft eine jährlich kostenpflichtige Verlängerung bis 10. Januar 2023 anbot (in Form einer ESU-Lizenz, für Extended Security Updates).
Sowohl von Windows 7 als auch von Windows 8 und 8.1 ist ein kostenloses Upgrade auf Windows 10 oder 11 unter bestimmten Voraussetzungen möglich.

### Eindeutige Herkunft

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.

### Betriebssicherheit

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) 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. Bei fehlerhaft programmierten Herzschrittmachern können zum Beispiel weltweit Tausende von Patienten betroffen sein. 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.

### Datensicherheit

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.
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.

## Umfang

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).
* Siehe auch: Patch (Software)#Patch-Pakete

## Distribution

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.
Bei Over-the-Air-Updates (OTA) wird die Software über eine Funkschnittstelle (typischerweise WLAN oder Mobilfunknetz) übertragen.

## Abgrenzung

Der Begriff Softwareupdate beschreibt explizit die Aktualisierung von Software. Dazu zählt auch die System-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.