Softwareentwicklung
Um eine sichere Software-Entwicklung zu gewährleisten, sollten verschiedene Maßnahmen ergriffen werden. Sicherheit sollte dabei von Beginn an integraler Bestandteil der Entwicklung sein, gemäß dem Prinzip "Security by Design". Gleichzeitig ist es wichtig, auch Datenschutzanforderungen frühzeitig zu berücksichtigen, etwa durch „Privacy by Design“ und „Privacy by Default“.
Qualitätssicherung spielt eine zentrale Rolle: Die Softwaredokumentation sollte so gestaltet sein, dass sie von anderen Entwicklern leicht nachvollzogen werden kann. Dies umfasst die Beschreibung des Entwicklungsprojekts, den Quellcode sowie detaillierte Funktions- und Schnittstellenbeschreibungen. Es ist essenziell, ausschließlich aktuelle Bibliotheken, Frameworks und Komponenten zu verwenden, um Sicherheitslücken durch veraltete Software zu vermeiden.
Vor der Produktivsetzung neuer Softwareversionen sind angemessene Test- und Freigabeverfahren durchzuführen. Werden Produktivdaten für Testzwecke genutzt, müssen Anforderungen der Informationssicherheit und des Datenschutzes, wie beispielsweise die Anonymisierung der Daten, berücksichtigt werden. Softwareentwicklungsumgebungen sowie der Quellcode sind zu schützen, wobei der Zugriff auf die Entwicklungsumgebung nur autorisierten Personen gestattet sein darf.
Wenn Entwicklungsumgebungen über das Internet erreichbar sind, sollten zusätzliche Schutzmaßnahmen wie VPN, starke Authentifizierung (z.B. Multi-Faktor-Authentifizierung) und verschlüsselte Kommunikation gemäß dem Stand der Technik eingesetzt werden. Eine Versionierung und die Trennung von Entwicklungs- und Testbereichen innerhalb der Entwicklungsumgebung sind sicherzustellen.
Zudem ist eine durchdachte Datensicherung erforderlich, um wichtige Entwicklungsschritte wiederherstellen zu können. Der Zugriff auf diese Sicherungsdaten sollte streng reguliert und nur autorisierten Personen möglich sein. Die Nachvollziehbarkeit des Zugriffs auf die Entwicklungsumgebung wird durch geeignete Protokollierungsmaßnahmen gewährleistet.
Zudem muss beschrieben werden, wie Software getestet wird und wie sie von Entwicklungs- in die Produktivsysteme überführt werden.
Softwareentwickler sollten regelmäßig Schulungen zur Sicheren Softwareentwicklung erhalten.
Wartung
Die Wartung von IT-Systemen ist ein zentraler Aspekt, der bereits bei der Beschaffung der Systeme berücksichtigt und vertraglich geregelt werden sollte. Insbesondere ist dabei festzulegen, wie Schwachstellen identifiziert und behoben werden und wer dafür verantwortlich ist. Ein formales Change-Management bildet die Grundlage für die Durchführung von Updates und stellt sicher, dass Änderungen an Informationssystemen kontrolliert erfolgen und Aspekte der Informationssicherheit während des gesamten Lebenszyklus berücksichtigt werden.
Change-Management und Sicherheitsstandards:
Ein effektives Änderungsmanagement sollte sich an einem anerkannten IT-Service-Management-Standard wie ITIL orientieren und mindestens einmal jährlich überprüft werden. Es gewährleistet, dass Informationssysteme zuverlässig arbeiten und die notwendige Leistung sowohl heute als auch in Zukunft erbringen können. Dazu ist eine gründliche Kapazitätsplanung erforderlich.
Das Änderungsmanagement-Prozess sollte klar definierte Schritte und Verantwortlichkeiten umfassen:
- Genehmigung: Änderungen dürfen nur von einer zuständigen Stelle genehmigt werden.
- Risikobewertung: Alle mit der Änderung verbundenen Risiken müssen gemeinsam mit dem Informationssicherheitsbeauftragten (ISB) bewertet und entsprechende Maßnahmen zur Risikominderung umgesetzt werden.
- Sicherheitsmaßnahmen: Es ist sicherzustellen, dass alle notwendigen Sicherheitsmaßnahmen wirksam implementiert werden.
- Notfall-Änderungen: Änderungen, die außerhalb des regulären Prozesses durchgeführt werden müssen (z. B. in Notfällen), sind dem ISB vor oder unmittelbar nach der Umsetzung zu melden.
- Prozessanpassung: Sollten Änderungen zu Problemen führen, sind die Ursachen zu analysieren, und der Änderungsprozess ist entsprechend anzupassen.
Durchführung von Software-Aktualisierungen:
Für jedes Informationssystem muss ein klarer Plan festgelegt werden, wie und in welchem Zeitrahmen Software-Aktualisierungen durchgeführt werden sollen. Dies umfasst alle Systemkomponenten wie Firmware, BIOS, Betriebssysteme, Serversoftware und Anwendungssoftware.
Wichtige Aspekte bei der Planung und Installation von Updates:
- Minimierung von Betriebsunterbrechungen: Aktualisierungen sollten so geplant werden, dass sie den laufenden Betrieb möglichst wenig beeinträchtigen.
- Testphase: Updates, die viele Systeme betreffen und daher ein hohes Störungspotenzial haben, sollten zunächst an einer Testgruppe erprobt werden.
- Rollback-Mechanismus: Für Systeme mit hohem Schutzbedarf muss ein Mechanismus vorhanden sein, der bei Problemen eine Rückkehr zum vorherigen Zustand innerhalb akzeptabler Zeitrahmen (RTO) und mit minimalem Datenverlust (RPO) ermöglicht.
- Testumgebungen: Aktualisierungen von Systemen mit sehr hohem Schutzbedarf sind vor der Installation in einer Testumgebung zu prüfen.
- Fehlerbehandlung: Falls Aktualisierungen Fehlfunktionen verursachen, müssen die Ursachen nach Behebung der Störung gründlich analysiert und dokumentiert werden.
Eine strukturierte Wartung und ein durchdachtes Change-Management sind essenziell, um die Sicherheit und Zuverlässigkeit von IT-Systemen sicherzustellen. Durch klare Prozesse, regelmäßige Überprüfungen und präventive Maßnahmen können Risiken minimiert und die Betriebskontinuität gewährleistet werden. Die Kombination aus präziser Planung, sorgfältigen Tests und einer robusten Rückfallebene stellt sicher, dass IT-Systeme auch in kritischen Situationen zuverlässig arbeiten.
Schwachstellenmanagement
Ein effektives Schwachstellenmanagement ist elementar, um die Sicherheit von Informationssystemen zu gewährleisten. Dieses Management sollte formal etabliert sein und sicherstellen, dass identifizierte Schwachstellen risikobasiert innerhalb festgelegter Fristen behoben werden. Der Prozess beginnt mit einer kontinuierlichen und systematischen Informationsbeschaffung. Täglich werden relevante Informationen über technische Schwachstellen aus vertrauenswürdigen Quellen gesammelt und zeitnah ausgewertet. Diese Quellen umfassen unter anderem Meldungen von Herstellern, Behörden wie dem BSI, anerkannten Computer Emergency Response Teams (CERT/CSIRT), Verbänden, Interessengruppen sowie spezialisierten Nachrichtenportalen und Dienstleistern.
Ergänzend sollten alle Informationssysteme und Systemkomponenten regelmäßig durch Schwachstellenscans geprüft werden, soweit dies technisch möglich ist. Die Häufigkeit dieser Scans wird durch eine fundierte Risikobewertung bestimmt, die Faktoren wie die Exposition und Anzahl der betroffenen Systeme, bestehende Sicherheitsmaßnahmen und den Schutzbedarf der betroffenen Informationswerte berücksichtigt. Sollte bei bestimmten Systemen ein Schwachstellenscan ein hohes Risiko für deren Verfügbarkeit oder Integrität darstellen, können diese ausgeschlossen werden. In solchen Fällen ist jedoch eine sorgfältige Bewertung und Behandlung des daraus resultierenden Risikos erforderlich.
Die im Rahmen der Schwachstellenscans identifizierten Schwachstellen werden durch eine Risikobewertung analysiert. Hierbei wird die Eintrittswahrscheinlichkeit der Schwachstelle unter Berücksichtigung mehrerer Faktoren bewertet: Ist die Schwachstelle relevant und ausnutzbar? Ist das betroffene System exponiert, beispielsweise über das Internet erreichbar? Wie viele Systeme sind betroffen, und wie stark sind diese geschützt? Zudem wird geprüft, ob öffentlich verfügbare Exploits existieren und ob die Schwachstellen bereits aktiv ausgenutzt werden. Parallel dazu werden die potenziellen Auswirkungen bewertet. Dabei spielen sowohl die Bewertungen vertrauenswürdiger Quellen (z. B. CVSS-Score) und Schwachstellenscanner (z. B. Kritikalitätsbewertung, Tenable VPR-Score) als auch der Schutzbedarf des betroffenen Informationswertes eine Rolle. Auch wird untersucht, ob das betroffene System den Zugriff auf interne Ressourcen ermöglicht.
Die Risikobehandlung erfolgt in Übereinstimmung mit den definierten Optionen für das Risikomanagement. Sofern ein identifiziertes Risiko nicht akzeptiert werden kann, muss es entweder vermieden oder verringert werden. Zu den Maßnahmen zur Vermeidung gehört etwa die Deaktivierung oder Außerbetriebnahme des betroffenen Systems. Um Risiken zu verringern, können Sicherheitsupdates eingespielt, Systeme gehärtet oder so konfiguriert werden, dass die Schwachstellen nicht mehr ausnutzbar sind. Auch eine Isolation des Systems auf Netzebene kann eine wirksame Maßnahme sein, um die Ausnutzbarkeit zu verhindern. Die Fristen für die Umsetzung dieser Maßnahmen richten sich nach der Höhe des identifizierten Risikos; beispielsweise sollten bei sehr hohen Risiken Maßnahmen innerhalb von zwei Stunden umgesetzt werden.
Durch diesen strukturierten Ansatz wird sichergestellt, dass Schwachstellen effektiv und effizient behandelt werden, wobei die Sicherheit der Informationssysteme und der Schutz sensibler Daten stets im Fokus stehen.
Gerne können wir Ihnen Empfehlungen für geeignete Tools geben, die Sie bei der Umsetzung und Überwachung dieser Prozesse und Maßnahmen effektiv unterstützen.