Standard Software

IT Sicherheitsanforderungen für Standard-Software, kategorisiert in unterschiedliche Themenfelder.

Nachfolgende Anforderungen bilden eine Zusammenfassung der wichtigsten Sicherheitsanforderungen für Standard-Software. Um zu der detaillierten Auflistung dieser Sicherheitsanforderungen zu gelangen, führen Sie bitte die Schutzbedarfsklassifizierung durch, oder klicken Sie hier für eine vollständige Liste ohne Klassifizierung.

Hinweis: Klicken Sie auf einzelne Anforderungstexte oder ganze Kategorien um diese an- oder abzuwählen. Am Ende dieser Seite können Sie die gefilterten Texte als PDF oder RTF exportieren lassen.



In vielen Produkten gibt es die Anforderung, diejenigen Benutzer zu bestimmen, die Zugriff auf Betriebsmittel haben, die vom Produkt kontrolliert werden. Dazu muss nicht nur die behauptete Identität des Benutzers festgestellt, sondern auch die Tatsache nachgeprüft werden, dass der Benutzer tatsächlich die Person ist, die sie vorgibt zu sein. Dies geschieht, indem der Benutzer dem Produkt Informationen liefert, die fest mit dem betreffenden Benutzer verknüpft sind.
Falls Methoden zur Identifizierung eines Benutzers nicht implementiert sind, können Angreifer Zugriff auf die Betriebsmittel, die vom Produkt kontrolliert werden, erhalten. Andere Klassen von Sicherheitsanforderungen sind abhängig von der korrekten Implementierung der Identifizierung und Authentifizierung, um effektiv wirksam zu sein.

Authentifizierungsmöglichkeiten
Es gibt eine Vielzahl an Authentifizierungsmöglichkeiten, die in drei Kategorien unterschieden werden. Die Identität eines Benutzers kann durch Nachweis von Wissen, Besitz oder aufgrund personenspezifischer Merkmale festgestellt werden. Der Einsatz einzelner, oder eine Kombination mehrerer dieser Authentifizierungsmethoden, ist von der zu erreichenden Sicherheit, Praktikabilität und dem Anwendungsgebiet abhängig.

  • Authentifizierung per Wissen beinhaltet folgende Authentifizierungsmöglickeiten:
    • Passwort: Ein Passwort ist eine einfache Möglichkeit der Authentifizierung. Je nach Länge und Komplexität bietet es mehr oder weniger Sicherheit. Bei der Auswahl eines Passwortes sollten die hier zu findenden Empfehlungen beachtet werden. Beispielsweise sollte um die Länge eines Passworts zu bestimmen, differenziert werden, welche Zeichen verwendet werden: Wurden nur Groß- und Kleinbuchstaben verwendet, sollte das Passwort mindestens 12 Zeichen lang sein, wurden zusätzlich alphanumerische und Sonderzeichen verwendet, gelten 10 Zeichen bereits als sicher. Passwörter können geknackt werden, indem per Brute-ForceAttacke alle möglichen Zeichenkombinationen ausprobiert werden, oder per Wörterbuchangriff, bei dem sinnvolle Wortkombinationen ausprobiert werden. Darum ist es so wichtig, keine bekannten Wörter, ohne starker Adaptierung, als Passwort zu verwenden. Im Speicher eines Systems werden Passwörter idealerweise als Hashwerte gespeichert und nicht als Klartext.
    • PIN: Eine PIN (Personal Identification Number) ist ein numerisches Passwort, das oft zusammen mit einem Token verwendet wird, welcher die Benutzer ID enthält. Dieses System wird unter anderem von Banken genutzt (ISO 9564), aber auch bei Zutrittssystemen oder Internet Transaktionen.
    • Sicherheitsfrage: Bei Sicherheitsfragen handelt es sich oftmals um persönliche Fragen, die häufig in Kombination mit Passwörtern verwendet werden, um einen Benutzer zu authentifizieren. Dabei muss der Benutzer zuvor definierte personenbezogene Fragen beantworten, wie z.B. “Wie hieß Ihr erstes Haustier?” oder “Wie lautet der Mädchenname Ihrer Mutter?”. Die Anzahl der auswählbaren Fragen aus einem Katalog ist meistens nur gering. Zudem könnten Benutzer indirekt Antworten zur Sicherheitsfragen über Social Media Portale unbeabsichtigt preisgeben.
  • Authentifizierung per Besitz beinhaltet folgende Authentifizierungsmöglickeiten:
    • Smartcard: Wird auch als Chipkarte bezeichnet und kann durch spezielle Kartenlesegeräte angesteuert werden. Durch die Eingabe eines PINs wird das Auslesen der gespeicherten Daten erlaubt, oder der gespeicherte Schlüssel wird für die Authentifizierung gegen das System verwendet. Aktuelle Generationen verfügen über einen Mikroprozessor, über welchen man auf die gespeicherten Daten zugreifen kann (dazwischen werden kryptographische Verfahren verwendet). Eingesetzt werden Smartcards beispielsweise bei SIM-Karten für Mobiltelefonen oder als Mitarbeiterkarten in einem Unternehmen. Smartcards zählen zu den HardwareToken.
    • Token: Hardware-Token sind Komponenten, die oft im Zuge der Zwei-Faktor-Authentifizierung genutzt werden. Bei der Eingabe eines Passworts muss man zusätzlich den Token nutzen, der entweder direkt ans System angeschlossen wird, oder per Display einen Code anzeigt, welcher eingegeben werden muss. Der Code ist zeitlich begrenzt, wechselt ständig und kann als OTP (One Time Password) gesehen werden. Bei PCs werden TPM (Trusted Platform Modules) Bauteile eingesetzt, die einen geheimen Schlüssel speichern, also auch als Token gesehen werden können. Weitere Beispiele sind Smartphones mit NFC, RFID Transponder oder USB Token.
    • Kryptografischer Schlüssel: Eine Bitfolge, welche zum Ver- und Entschlüsseln einer Nachricht verwendet wird. Es kann entweder für beide Vorgänge der selbe Schlüssel verwendet werden (symmetrische Verschlüsselung) oder jeweils ein separater Schlüssel (asymmetrische Verschlüsselung). Die Länge bei symmetrischen kryptografischen Schlüsseln sollte mindestens 128 Zeichen (besser 256) betragen, bei asymmetrischen kryptografischen Schlüsseln 2048 Zeichen (besser 4096). Ein Beispiel für eine kryptographische Authentifizierung ist das sogenannte “Challenge-Response-Verfahren”. Hierbei stellt ein Prüfer eine Aufgabe (engl. challenge), die der Beweisende lösen muss (engl. response), um zu zeigen, dass er im Besitz einer bestimmten Information ist, ohne diese Information selber zu übertragen. Bei symmetrischen Verfahren ist dies ein symmetrischer Schlüssel, der vorab ausgetauscht werden muss. In asymmetrischen Verfahren zeigt der Beweisende, dass er im Besitz eines geheimen Schlüssels ist.
  • Authentifizierung per biometrischen Merkmalen:
    • Hierbei handelt es sich um personenspezifische Merkmale, die entweder konditioniert, vererbt (genetisch) oder zufällig (randotypisch) sein können. Biometrische Systeme erfassen biometrische Daten einer Person mit dem Ziel, die Identität durch Vergleich von bereits erfassten Referenzdaten (Templates) zu bestätigen oder zu widerlegen. Beispiele für biometrische Merkmale sind Fingerabdruck, Handfläche, Iris, Venen, Gesicht, (Aus-) Sprache, Gang, Handschrift oder Erbinformationen
      Die eingesetzten Verfahren variieren je nach Einsatzgebiet:
      • Zutrittssysteme werden mit Fingerabdruck-Scannern kombiniert, z.B. in Gebäuden oder für das Entsperren des Smartphones.
      • Im asiatischen Raum ist der Venen-Scan eine beliebte Alternative zum Fingerabdruck, da keine Oberfläche direkt berührt werden muss.
      • Iris bzw. Retina Scans werden in Hochsicherheitsbereichen eingesetzt, wo eine intensive Prüfung höher priorisiert ist als eine rasche Abfertigung.
      • Spracherkennung kann eingesetzt werden, um die Identität eines Benutzers während einer Konversation zu verifizieren.
    • Die Vorteile biometrischer Merkmale sind, dass sie im Allgemeinen einzigartig pro Person und universell vorhanden sind.

Obwohl es sehr schwierig ist, ein sicheres Authentifizierungs- und Session-Management korrekt zu implementieren, setzen Entwickler häufig auf eigene Lösungen. Bei eigenen Implementierungen ist das Risiko hoch, Fehler etwa bei der Abmeldung und dem Passwortmanagement, bei der Wiedererkennung des Benutzers, bei Timeouts und Sicherheitsabfragen usw. zu machen. Um dieses Risiko zu minimieren, sollte, wo es möglich ist, eine überprüfte Bibliothek oder ein anerkanntes Framework für die Implementierung des Authentifizierungs- und Session-Management verwendet werden. Ein Beispiel für eine solche Bibliothek ist die OWASP Enterprise Security API (ESAPI) Bibliothek [6], wenn auch zum aktuellen Zeitpunkt nicht für alle Programmiersprachen eine stabile Implementierung der Bibliothek verfügbar ist.

Zugriffskontrolle
Bei vielen Produkten ist sicherzustellen, dass Benutzer und Prozesse, die für diese Benutzer tätig sind, daran gehindert werden, Zugriff auf Informationen oder Betriebsmittel zu erhalten, für die sie kein Zugriffsrecht haben oder für die keine Notwendigkeit eines Zugriffs besteht. Des Weiteren gibt es Anforderungen bezüglich der unbefugten Erzeugung oder Änderung (einschließlich Löschung) von Informationen. Autorisierung (Zugriffskontrolle) ist der Prozess der Bestimmung, ob ein Benutzer auf eine bestimmte Ressource zugreifen darf, basierend auf den Benutzerberechtigungen und den Berechtigungen, die für die Ressource gelten.
Wenn keine Zugriffskontrolle angewendet wird, sind Benutzer in der Lage, auf Daten zuzugreifen oder Aktionen durchzuführen, die nicht erlaubt sein sollten. Dies kann zu einer Vielzahl von Problemen führen, einschließlich Zugriff auf sensible Daten, Denial of Service, oder der Ausführung beliebigen Codes. Mittels Role-Based Access Control (RBAC) [8] können die Grenzen des erlaubten Zugriffs für die verschiedenen Benutzerrollen entsprechend gesetzt werden. Es sollten, wo es möglich ist, überprüfte Bibliotheken oder Frameworks für die Implementierung einer sicheren Zugriffskontrolle verwendet werden. Beispiele solcher Frameworks sind das Java Authentication and Authorization Service (JAAS) [9] und das OWASP Enterprise Security API (ESAPI) Framework [6].

[6] OWASP, "The OWASP Enterprise Security API (ESAPI)", https://www.owasp.org/index.php/ESAPI. [Online]. Available: https://www.owasp.org/index.php/ESAPI

[8] D. Ferraiolo and R. Kuhn, "Role-based access control", in In 15th NIST-NCSC National Computer Security Conference, 1992, pp. 554–563.

[9] Oracle, "Java Authentication and Authorization Service (JAAS) Reference Guide", Java SE Documentation. [Online]. Available: https://docs.oracle.com/javase/7/docs/technotes/guides/security/jaas/JAASRefGuide.html



Verschlüsselung dient der Wahrung der Vertraulichkeit von Daten. Bei vielen Produkten ist es erforderlich, Nutzdaten vor einer Übertragung oder nach der Bearbeitung zu verschlüsseln und diese nach Empfang oder vor der Weiterverarbeitung zu entschlüsseln. Hierzu ist ein anerkanntes Verschlüsselungsverfahren zu verwenden. Die Verwendung von Eigenimplementierungen ist in der Regel unsicher und daher nicht zulässig. Verschlüsselung kann des Weiteren zur Wahrung der Integrität einer Nachricht (gegen unbefugte Manipulationen), sowie zum Identitätsnachweis (Authentisierung) von Kommunikationspartnern eingesetzt werden (vgl. [12]).
Das entscheidende Merkmal eines Verschlüsselungsverfahrens ist die Güte des Algorithmus sowie der Schlüsselauswahl. Wenn ein schwacher Verschlüsselungsalgorithmus verwendet wird, könnte ein Angreifer in der Lage sein, den verschlüsselten Text in den ursprüngliche Klartext zu konvertieren. Bei der Schlüsselauswahl für symmetrische Verschlüsselungsalgorithmen spielt vor allem die Qualität des Zufallszahlengenerators eine wichtige Rolle. Des Weiteren ist zu beachten, dass die zur Entschlüsselung benötigten Parameter (z. B. Schlüssel) in einer Weise geschützt sind, so dass kein Unbefugter Zugang zu diesen Daten besitzt.
Eine Auswahl von sicheren kryptographischen Algorithmen und deren empfohlenen Schlüssellängen befindet sich hier.

[12] BSI, "M 3.23 Einführung in kryptographische Grundbegriffe", IT-GrundschutzKataloge, 2013. [Online]. Available: https://www.bsi.bund.de/DE/Themen/ITGrundschutz/ITGrundschutzKataloge/Inhalt/_content/m/m03/m03023.html



Eine der am häufigsten vorkommenden Software-Schwachstellen, speziell bei Software mit einer HTTP(S)-Schnittstelle (Weboberfläche), ist das Fehlen einer ordnungsgemäßen Validierung der Eingaben, die vom Benutzer oder anderen Komponenten stammen, bevor diese in der Software weiterverwendet werden (vgl. [5]). Die fehlende Validierung führt zu vielen der am häufigsten vorkommenden und ausgenützten Software-Schwachstellen, wie etwa Buffer-Overflows, Command-Injection, SQL-Injection oder CrossSite-Scripting (XSS).
Um diese Schwachstellen zu vermeiden, ist eine gute Annahme, dass grundsätzlich jeder Input bösartig ist. Es sollten für die Implementierung einer umfassenden Datenvalidierung überprüfte Bibliotheken oder Frameworks verwendet werden. Eine Datenvalidierung ist für die Eingabe, Verarbeitung und Ausgabe von Daten durchzuführen. Ein Beispiel für ein solches Framework ist das OWASP Enterprise Security API (ESAPI) Framework [6]. Durch die Etablierung einer umfassenden Datenvalidierung erreicht man eine strikte Trennung zwischen (Eingabe-)Daten und Code.

[5] T. M. Corporation, "CWE/SANS Top 25 Most Dangerous Software Errors", http://cwe.mitre.org/top25/, 2011. [Online]. Available: http://cwe.mitre.org/top25/

[6] OWASP, "The OWASP Enterprise Security API (ESAPI)", https://www.owasp.org/index.php/ESAPI. [Online]. Available: https://www.owasp.org/index.php/ESAPI



Bei vielen Produkten ist sicherzustellen, dass sowohl über gewöhnliche Vorgänge als auch über außergewöhnliche Vorfälle ausreichend Informationen aufgezeichnet werden. Damit kann durch Nachprüfungen später festgestellt werden, ob tatsächlich Sicherheitsverletzungen vorgelegen haben und welche Informationen oder sonstigen Betriebsmittel davon betroffen waren. Werden Fehler nicht korrekt behandelt, kann sowohl der Betrieb als auch der Schutz von Funktionen und Daten einer Anwendung nicht mehr gewährleistet werden.
Das primäre Ziel der Fehlerbehandlung und der Protokollierung (Logging) ist es, eine nützliche Information für den Benutzer, die Administratoren und die Incident-Response-Teams bereitzustellen und eine entsprechende Reaktion zu ermöglichen. Das Ziel ist nicht, massive Mengen von Log-Einträgen zu erzeugen, sondern qualitativ hochwertiges Logging. Dabei sollten die Detailstufen des Logging im laufenden Betrieb flexibel angepasst werden können.
Wenn ein Vergleich von Log-Einträgen zwischen mehreren Systemen möglich sein soll, müssen Datum und Uhrzeit sekundengenau und mit Zeitzone protokolliert werden. Damit eine Sekundengenauigkeit über mehrere Systeme hinweg erreicht wird, muss jedes System über eine einheitliche Systemzeit verfügen, die mit Hilfe einer externen Zeitquelle synchronisiert wird.



Die Konfiguration der Software selbst sowie die Parametrierung von verwendeten Bibliotheken müssen möglichst sicher gestaltet werden. Eine Software soll bereits mit sicherer Standardkonfiguration, basierend auf den Sicherheitsanforderungen, ausgeliefert werden. Ähnlich wie bei der Benutzerauthentifizierung ist es hierbei wichtig, dass die Berechtigungen der einzelnen Komponenten und Dienste nach dem Prinzip der minimal erforderlichen Rechte (sog. “Least Privilege” Prinzip) vergeben werden. Die sichere Standardkonfiguration muss auch dokumentiert sein.



Persönliche Daten sind längst zu einem wichtigen Handelsgut geworden. Aufgabe des Datenschutzes ist es, im Hinblick auf die Achtung des Privat- und Familienlebens des Einzelnen, den Anspruch auf Geheimhaltung der betreffenden personenbezogenen Daten durchzusetzen.
Personenbezogene Daten sind Angaben zu Personen mit Hilfe deren ihre Identität bestimmt oder bestimmbar ist, z.B. Name, SV-Nummer, Adresse, etc. Sensible oder besonders schutzwürdige Daten sind Angaben über die rassische und ethnische Herkunft, politische Meinung, Gewerkschaftszugehörigkeit, religiöse oder philosophische Überzeugung, Gesundheit oder Sexualleben einer Person (vgl. §4 DSG 2000).
Die Erhebung, Verarbeitung und Nutzung personenbezogener Daten und die Auswahl und Gestaltung von Datenverarbeitungssystemen sind an dem Ziel auszurichten, so wenig personenbezogene Daten wie möglich zu erheben, zu verarbeiten oder zu nutzen. Insbesondere sind personenbezogene Daten zu anonymisieren oder zu pseudonymisieren, soweit dies nach dem Verwendungszweck möglich ist und keinen im Verhältnis zu dem angestrebten Schutzzweck unverhältnismäßigen Aufwand erfordert (vgl. [15] S. 43).
Für die Verwendung von personenbezogenen Daten ist das Datenschutzgesetz 2000 in der aktuell geltenden Fassung einzuhalten. Die Bestimmungen sind auf die Verwendung von personenbezogenen Daten in Österreich anzuwenden. Darüber hinaus ist es auf die Verwendung von Daten im Ausland anzuwenden, soweit diese Verwendung in anderen Mitgliedstaaten der Europäischen Union für Zwecke einer in Österreich gelegenen Haupt- oder Zweigniederlassung eines Auftraggebers geschieht (vgl. §3 DSG 2000).
Cloud Computing darf nicht zu einer Absenkung der Datenschutzstandards im Vergleich zur herkömmlichen Datenverarbeitung führen. Bei Cloud Computing haben Kunden aktuell keine Möglichkeit zu überprüfen, wo Daten gespeichert oder virtuelle Maschinen ausgeführt werden. Dies kann unter Umständen Probleme mit lokalen Datenschutzgesetzen verursachen. So könnte ein österreichischer Cloud-Provider beispielsweise Kundendaten unbemerkt und unverschlüsselt in ein Drittland auslagern.

[15] BSI, "Leitfaden zur Entwicklung sicherer Webanwendungen: Empfehlungen und Anforderungen an die Auftragnehmer", https://www.bsi.bund.de/DE/Publikationen/Studien/Webanwendungen/index_htm.html, 2013. [Online]. Available: https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/Studien/Webanwendungen/Webanw_Auftragnehmer_pdf.pdf?__blob=publicationFile&v=1



Schadcode ist Code eines Programms, welcher nicht autorisierte oder schädliche Aktionen durchführt, wie z.B. Sabotage, Spionage oder nicht-autorisierte Datenweiterleitungen, und dadurch der Sicherheit des Programms entgegenwirkt. Zu Schadcode gehören u.a.: Viren, Würmer, Trojaner, Backdoors, Time Bombs und Easter Eggs.



Jede Software hat mehr oder weniger schwerwiegende Bugs, wobei manche davon zu Sicherheitsproblemen führen können. In vielen Anwendungsbereichen ist es wichtig, dass ein Hersteller seine Kunden möglichst zeitnah und umfassend mit geeigneten Informationen zu Sicherheitsproblemen versorgt. Dies setzt eine offene Kommunikation des Herstellers bezüglich der Sicherheitsprobleme seiner Produkte voraus, und Außenstehenden muss es möglich sein, Sicherheitsüberprüfungen durchzuführen und potentielle Sicherheitslücken zu melden (sog. “Responsible Disclosure”). Damit bekannt gewordene Sicherheitslücken beseitigt werden können, muss das gesamte System mit all seinen Komponenten, inkl. Erweiterungen und 3rd-Party-Software, patchfähig sein.



Der Hersteller soll eine Gesamtdokumentation über das Design des Gesamtsystems zur Verfügung stellen, welche den Aufbau des Systems und die Interaktionen aller beteiligten Komponenten beschreibt. In dieser Dokumentation wird besonders auf die sicherheitsrelevanten oder schützenswerten Systemkomponenten sowie ihre gegenseitigen Abhängigkeiten und Interaktionen eingegangen. Außerdem werden sicherheitsspezifische Implementierungsdetails aufgelistet und in hinreichender Tiefe fachlich beschrieben (z.B. verwendete Verschlüsselungsalgorithmen, Zufallszahlengeneratoren).


Beschaffungsplattform für sichere IT von Fachhochschule St. Pölten.