Schnelleinführung - So implementieren Sie die Informationen des Handbuchs
Auf dieser Seite
Modulübersicht
Zielsetzung
Betrifft
Verwendung dieses Moduls
Ziel und Themenumfang
Der ganzheitliche Ansatz
Schützen des Netzwerks
Schützen des Hosts
Schützen der Anwendung
Identifizieren von Bedrohungen
Anwenden der Informationen des Handbuchs auf die Lebensdauer eines Produkts.
Implementieren der Informationen des Handbuchs
Wer führt welche Aktionen aus?
Zusammenfassung
Modulübersicht
In diesem Modul wird der im Sicherheitshandbuch Erhöhen der Sicherheit von Webanwendungen: Bedrohungen und Gegenmaßnahmen gewählte Ansatz beschrieben, der Ihnen beim Erstellen und Entwickeln von angriffsresistenten Webanwendungen helfen soll. Durch solche sicheren Anwendungen wird die Wahrscheinlichkeit erfolgreicher Angriffe verringert und der Schaden im Falle eines Angriffs vermindert.
In einem ganzheitlichen Ansatz wird die Webanwendungssicherheit über mehrere Anwendungsschichten und -ebenen hinweg berücksichtigt (Netzwerk-, Host- und Anwendungsebene). Darüber hinaus werden zentrale Sicherheitskonzepte erklärt und eine Sicherheitsprüfliste vorgestellt.
Das Modul endet mit der Beschreibung des RACI-Konzepts (Responsible, Accountable, Consulted and keep Informed). RACI ist eine benutzerfreundliche und praktische Lösung zur Einschätzung und Festlegung der Sicherheitsaufgaben und -rollen, die im Lebenszyklus eines Projekts vorhanden sein sollten.
Zielsetzung
Themenbereiche:
Einführung in den ganzheitlichen Ansatz für Webanwendungssicherheit, bei dem Netzwerk-, Host- und Anwendungsebenen zusammenhängend geschützt werden
Überblick über die Bedrohungsanalyse
Optimale Anwendung der Informationen des Handbuchs über die Lebensdauer eines Produkts hinweg
Optimale Anwendung der Informationen des Handbuchs auf die jeweiligen Rollen
Implementieren der Informationen des Handbuchs
Betrifft
Obwohl dieses Modul auf Inhalt und Struktur des Sicherheitshandbuchs Erhöhen der Sicherheit von Webanwendungen: Bedrohungen und Gegenmaßnahmen aufbaut, sind die hier beschriebenen Methoden für jeden Benutzer mit einem Interesse an der Entwicklung sicherer Webanwendungen relevant.
Verwendung dieses Moduls
Verständnis der zentralen Sicherheitskonzepte zu Strategien und Methoden für die Entwicklung bzw. Implementierung sicherer Webanwendungen.
Ziel und Themenumfang
Mithilfe dieses Handbuch sind Sie in der Lage, Webanwendungen zu entwerfen, erstellen und konfigurieren, die vor Hackerangriffen sicher sind. Durch diese Anwendungen wird die Wahrscheinlichkeit erfolgreicher Angriffe verringert und der Schaden im Falle eines Angriffs vermindert. In Abbildung 1 ist der Themenumfang dieses Handbuchs sowie der darin vorgestellte dreistufige Ansatz dargestellt: Schützen des Netzwerks, Schützen des Hosts und Schützen der Anwendung.
Abbildung 1
Themenumfang des Handbuchs
In diesem Handbuch wird die auf die drei in Abbildung 1 dargestellten physischen Schichten bezogene Sicherheit beschrieben. Dabei wird auf den Webserver, den Remoteanwendungsserver und den Datenbankserver Bezug genommen. Für jede Schicht wird die Sicherheit auf Netzwerk-, Host- und Anwendungsebene beschrieben. In Abbildung 1 werden darüber hinaus auch die Konfigurationskategorien dargestellt, die in diesem Handbuch zur Anordnung der verschiedenen den Host und das Netzwerk betreffenden Sicherheitskonfigurationseinstellungen verwendet werden. Ebenso zeigen wir die Kategorien der Anwendungssicherheitslücken, die zur Strukturierung von Aspekten der Anwendungssicherheit verwendet werden.
Der ganzheitliche Ansatz
Die Sicherheit von Webanwendungen muss über Anwendungsschichten hinweg und auf mehreren Ebenen entwickelt und gewährleistet werden. Ein Angreifer kann Schwächen auf allen Ebenen ausnutzen. Aus diesem Grund wurde für das Handbuch ein ganzheitlicher Ansatz für die Anwendungssicherheit gewählt. Dieser Ansatz ist auf allen drei Ebenen gleichermaßen wirksam und anwendbar. Dieser ganzheitliche Ansatz ist in Abbildung 2 dargestellt.
Abbildung 2
Ganzheitlicher Ansatz für Sicherheit
In Abbildung 2 werden die in diesem Handbuch behandelten Ebenen, einschließlich Netzwerk, Host und Anwendung, dargestellt. Die Hostebene umfasst das Betriebssystem, Plattformdienste und -komponenten sowie Laufzeitdienste und -komponenten. Zu den Plattformdiensten und -komponenten gehören Microsoft® SQL Server™ 2000 und Enterprise Services. Zu den Laufzeitdiensten und -komponenten gehören unter anderen ASP.NET- und .NET-Codezugriffssicherheit.
Schützen des Netzwerks
Die drei Kernelemente eines sicheren Netzwerks sind Router, Firewall und Switch. In diesem Handbuch werden alle drei Elemente besprochen. In Tabelle 1 finden Sie für jedes Element eine kurze Beschreibung.
Tabelle 1 Elemente der Netzwerksicherheit
Element |
Beschreibung |
---|---|
Router |
Router bilden den äußersten Netzwerkring. Sie leiten Pakete an die Ports und Protokolle weiter, die Sie für Ihre Anwendungen festgelegt haben. Unsichere TCP/IP-Protokolle werden an diesem Ring abgeblockt. |
Firewall |
Durch die Firewall werden die Protokolle und Ports blockiert, die von der Anwendung nicht verwendet werden. Durch Firewalls wird außerdem ein sicherer Datenverkehr im Netzwerk gewährleistet, indem mit anwendungsspezifischen Filtern böswillige Kommunikation blockiert wird. |
Switch |
Ein Switch dient zum Trennen von Netzwerksegmenten. Diese werden häufig übersehen oder zu vertrauenswürdig behandelt. |
Schützen des Hosts
Der Host umfasst das Betriebssystem und das .NET Framework sowie die damit verbundenen Dienste und Komponenten. Dieses Handbuch folgt einer allgemeinen, für die verschiedenen Serverrollen und -typen gleichermaßen geltenden Sicherheitsmethode, unabhängig davon, ob es sich bei dem Host um einen Webserver unter IIS, einen Anwendungsserver unter Enterprise Services oder einen Datenbankserver unter SQL Server handelt.
Die zu treffenden Vorsichtsmaßnahmen und die zu konfigurierenden Einstellungen sind in diesem Handbuch nach Kategorien geordnet. Mithilfe dieser Sicherheitskategorien können Sie den Sicherheitsprozess systematisch von oben nach unten nachvollziehen. Oder Sie wählen eine einzelne Kategorie aus und führen bestimmte Schritte durch.
In Abbildung 3 werden die in Teil IV dieses Handbuchs, "Schützen von Netzwerken, Hosts und Anwendungen", verwendeten Konfigurationskategorien dargestellt.
Abbildung 3
Sicherheitskategorien für den Host
Schützen der Anwendung
In diesem Handbuch wird ein Satz von Kategorien zu Anwendungssicherheitslücken beschrieben, mit dem Sie sichere Webanwendungen entwerfen und erstellen und die Sicherheit bestehender Anwendungen überprüfen können. Dabei handelt es sich um gängige Kategorien, die mehrere Technologien und Komponenten in einer auf verschiedenen Ebenen basierenden Architektur umfassen. Diese Kategorien stehen im Zentrum der Beschreibungen in den Modulen zum Entwerfen und Erstellen sowie zur Sicherheitsbewertung in diesem Handbuch.
Tabelle 2 Kategorien der Anwendungssicherheitslücken
Kategorie |
Beschreibung |
---|---|
Eingabeüberprüfung |
Wie können Sie die Gültigkeit und Sicherheit der von Ihrer Anwendung empfangenen Eingaben überprüfen? Der Begriff "Eingabeüberprüfung" bezeichnet das Verfahren, bei dem Eingaben vor einer weiteren Bearbeitung von Ihrer Anwendung gefiltert, bereinigt oder abgelehnt werden. |
Authentifizierung |
Wer sind Sie? Authentifizierung bezeichnet den Prozess, der von einer Einheit zum Identifizieren einer anderen Einheit verwendet wird. In der Regel geschieht dies durch Anmeldeinformationen wie Benutzernamen und Kennwörter. |
Autorisierung |
Was können Sie tun? Autorisierung bezeichnet das Verfahren, das von einer Anwendung zur Steuerung des Zugriffs auf Ressourcen und Vorgänge verwendet wird. |
Konfigurationsverwaltung |
Unter welcher Identität wird Ihre Anwendung ausgeführt? Mit welchen Datenbanken ist diese verbunden? Wie wird die Anwendung verwaltet? Wie werden diese Einstellungen geschützt? Konfigurationsverwaltung bezieht sich auf die Art und Weise, wie diese Aspekte und Vorgänge in Ihrer Anwendung geregelt sind. |
Vertrauliche Daten |
Bei vertraulichen Daten handelt es sich um Informationen, die entweder im Speicher, bei der Übertragung oder in permanenten Speichern geschützt werden müssen. Ihre Anwendung muss über ein Verfahren zum Umgang mit vertraulichen Daten verfügen. |
Sitzungsverwaltung |
Eine Sitzung ist eine Reihe von miteinander verbundenen Interaktionen zwischen einem Benutzer und einer Webanwendung. Sitzungsverwaltung bezeichnet das Verfahren, das eine Anwendung bei der Handhabung dieser Interaktionen verwendet. |
Kryptografie |
Wie werden geheime Informationen geschützt (Vertraulichkeit)? Wie werden Daten beziehungsweise Bibliotheken fälschungssicher (Integrität)? Wie werden Seeds für kryptografisch abgesicherte Zufallswerte erstellt? Kryptografie bezeichnet das Verfahren, durch das eine Anwendung Vertraulichkeit und Integrität sicherstellen soll. |
Parametermanipulation |
Als Parameter für eine Anwendung werden häufig Formularfelder, Abfragezeichenfolge-Argumente und Cookiewerte verwendet. Parametermanipulation ist sowohl das Verfahren, durch das eine Anwendung die Manipulation dieser Werte verhindert, als auch das Verfahren zur Verarbeitung von Eingabeparametern. |
Ausnahmeverwaltung |
Wie reagiert eine Anwendung auf einen fehlgeschlagenen Methodenaufruf? Welche Informationen sind über die Fehlerbedingungen verfügbar? Sollten Fehlerinformationen an Endbenutzer gesendet werden? Werden an den Anwender wertvolle Ausnahmeinformationen zurückgesendet? Erfolgt das Fehlschlagen der Anwendung kontrolliert? |
Überwachen und Protokollieren |
Wer hat wann welche Aktionen ausgeführt? Überwachen und Protokollieren sind Verfahren, mit denen eine Anwendung sicherheitsbezogene Ereignisse aufzeichnet. |
Identifizieren von Bedrohungen
Vor dem erfolgreichen Einsatz von Sicherheitsmaßnahmen müssen Sie die Bedrohungen kennen. Bedrohungen können entweder von außen durch einen Angreifer aus dem Internet oder von innen ausgeführt werden, beispielsweise von einem verärgerten Mitarbeiter oder Administrator. Mithilfe dieses Handbuchs können Sie Bedrohungen auf zweierlei Art und Weise identifizieren:
Die Hauptbedrohungen für Webanwendungen werden für Netzwerk-, Host- und Anwendungsebene aufgelistet.
Es wird ein Verfahren zur Bedrohungsanalyse vorgestellt, mit dem Sie die für Ihre Anwendung relevanten Bedrohungen identifizieren können.
In Abbildung 4 finden Sie eine Übersicht zu dem in diesem Handbuch beschriebenen Verfahren zur Bedrohungsanalyse.
Abbildung 4
Das Verfahren zur Bedrohungsanalyse
Im Folgenden werden die in Abbildung 4 dargestellten Schritte beschrieben:
Identifizieren zu schützender Daten/Komponenten.
Identifizieren Sie die wertvollen Daten und Komponenten, die durch Ihre Systeme geschützt werden müssen.Erstellen einer Architekturübersicht.
Dokumentieren Sie mithilfe einfacher Diagramme und Tabellen die Architektur Ihrer Anwendung, und berücksichtigen Sie dabei Untersysteme, Vertrauensgrenzen und den Datenfluss.Zerlegen der Anwendung.
Erstellen Sie für die Anwendung ein Sicherheitsprofil, bei dem Sie die Architektur Ihrer Anwendung zerlegen, einschließlich des Entwurfs des darunter liegenden Netzwerks und der Hostinfrastruktur. Das Sicherheitsprofil dient zum Aufdecken der Sicherheitslücken im Entwurf, in der Implementierung oder der Bereitstellungskonfiguration einer Anwendung.Identifizieren der Bedrohungen.
Bedrohungen für eine Anwendung können unter Berücksichtigung der Ziele eines Angreifers und durch genaue Kenntnis der Architektur der Anwendung sowie ihrer potenziellen Sicherheitslücken identifiziert werden.Dokumentieren der Bedrohungen.
Dokumentieren Sie jede der Bedrohungen mithilfe einer gängigen Bedrohungsvorlage, in der ein Satz von Attributen definiert wird, die für die einzelnen Bedrohungen erfasst werden sollten.Einstufen der Bedrohungen.
Stufen Sie die Bedrohungen nach Dringlichkeit ein und begegnen Sie der dringendsten Bedrohung zuerst. Diese Bedrohung stellt das größte Risiko dar. Im Einstufungsverfahren wird die Wahrscheinlichkeit einer Bedrohung gegenüber dem Schaden durch einen möglichen Angriff abgewogen. Nach einer Abwägung des Risikos mit dem Kostenaufwand für entsprechende Gegenmaßnahmen besteht für einige Bedrohungen möglicherweise kein Handlungsbedarf.
Anwenden der Informationen des Handbuchs auf die Lebensdauer eines Produkts.
Die verschiedenen Teile dieses Handbuchs beziehen sich auf unterschiedliche Phasen im Lebenszyklus der Produktentwicklung. Die Abfolge der Module in diesem Handbuch entspricht den typischen Phasen des Lebenszyklus. Das Modul-zu-Rolle-Verhältnis wird in Abbildung 5 dargestellt.
Abbildung 5
Verhältnis des Moduls zum Lebenszyklus des Produkts
Hinweis: Die Bedrohungsanalyse und Sicherheitsbewertung (insbesondere die Module zu Codeüberprüfung und Bereitstellungsüberprüfung) beziehen sich auf das Erstellen neuer Webanwendungen beziehungsweise das Überprüfen bestehender Anwendungen.
Implementieren der Informationen des Handbuchs
Die Informationen in diesem Handbuch sind nach den jeweiligen Aufgaben geordnet in Module aufgebaut. Jedes Modul bezieht sich auf die verschiedenen Stufen im Lebenszyklus der Produktentwicklung und die damit verbundenen unterschiedlichen Rollen. Diese Rollen umfassen Systemarchitekten, Entwickler, Systemadministratoren und Sicherheitsexperten. Sie können für einzelne Aufgaben die jeweils entsprechenden Module auswählen oder für eine Phase im Lebenszyklus der Produktentwicklung eine Reihe von Modulen verwenden.
In der Prüfliste in Tabelle 3 werden die in diesem Handbuch beschriebenen Bereiche angegeben, die zum Schützen von Netzwerk, Host und Anwendung erforderlich sind.
Tabelle 3: Sicherheitsprüfliste
Prüfen |
Beschreibung |
---|---|
Informieren Sie Ihre Teams über die Bedrohungen, die das Netzwerk, den Host und die Anwendung betreffen. Identifizieren Sie gängige Sicherheitslücken und Angriffe und informieren Sie sich über Gegenmaßnahmen. Weitere Informationen finden Sie in Modul 2, "Bedrohungen und Gegenmaßnahmen". |
|
Führen Sie eine Bedrohungsanalyse für Ihre Webanwendungen durch. Weitere Informationen finden Sie in Modul 3, "Bedrohungsanalyse". |
|
Überprüfen und implementieren Sie die Sicherheitsrichtlinien Ihres Unternehmens. Wenn noch keine Sicherheitsrichtlinien bestehen, sollten Sie diese erstellen. Weitere Informationen zum Erstellen von Sicherheitsrichtlinien finden Sie unter "Security Policy Issues" im SANS Info Sec Reading Room unter http://www.sans.org/rr/catindex.php?cat_id=50. |
|
Überprüfen Sie Ihre Netzwerksicherheit. Weitere Informationen finden Sie in Modul 15, "Schützen des Netzwerks". |
|
Aktualisieren Sie Ihre Server regelmäßig und wenden Sie aktuelle Patches an. Überprüfen Sie die Sicherheitseinstellungen Ihres Servers und vergleichen Sie diese mit dem Snapshot eines sicheren Servers. Weitere Informationen finden Sie unter "Snapshot eines sicheren Webservers" in Modul 16, "Schützen des Webservers". |
|
Informieren Sie Ihre Systemarchitekten und Entwickler über Entwurfsrichtlinien und -prinzipien für sichere Webanwendungen. Weitere Informationen finden Sie in Modul 4, "Entwurfsrichtlinien für sichere Webanwendungen". |
|
Informieren Sie Ihre Systemarchitekten und Entwickler über das Schreiben von sicherem verwaltetem Code.Weitere Informationen finden Sie in Modul 7, "Erstellen sicherer Assemblys" sowie in Modul 8, "Codezugriffssicherheit in der Praxis". |
|
Schützen Sie die Arbeitsstationen der Entwickler. Weitere Informationen finden Sie unter "Schützen einer Entwicklerarbeitsstation" im entsprechenden Abschnitt dieses Handbuchs. |
|
Überprüfen Sie die Entwürfe neuer und bereits bestehender Webanwendungen. Weitere Informationen finden Sie in Modul 5, "Sicherheitsüberprüfung der Architektur und des Entwurfs". |
|
Informieren Sie Ihre Entwickler über das Ausführen von Codeüberprüfungen. Führen Sie Codeüberprüfungen bei Anwendungen durch, die sich noch in der Entwicklung befinden. Weitere Informationen finden Sie in Modul 21, "Codeüberprüfung". |
|
Führen Sie Bereitstellungsüberprüfungen für Ihre Anwendungen durch, um mögliche Sicherheitslücken zu identifizieren. Weitere Informationen finden Sie in Modul 22, "Überprüfen der Bereitstellung". |
Wer führt welche Aktionen aus?
Das Entwerfen und Erstellen sicherer Anwendung ist ein Gemeinschaftsprojekt, an dem mehrere Rollen beteiligt sind. Dieses Handbuch ist so strukturiert, dass jede Rolle sowie die relevanten Sicherheitsfaktoren für diese Rolle berücksichtigt wird. Im Folgenden finden Sie einen Überblick über die Kategorisierung und die besprochenen Themen.
RACI-Diagramm
RACI steht für:
Responsible (Verantwortlich - die für das Ausführen verantwortliche Rolle)
Accountable (Rechenschaftspflichtig - die Rolle mit der Hauptverantwortung für die Aufgabe)
Consulted (Befragt - die Mitarbeiter, die Informationen zum Ausführen der Aufgabe zur Verfügung stellen)
Keep Informed (Interessengruppe, die permanent mit aktuellen Informationen versorgt werden sollte)
Mithilfe des RACI-Diagramms können Sie zu Beginn eines Projekts die wichtigsten sicherheitsbezogenen Aufgaben sowie die für die Ausführung der einzelnen Aufgaben verantwortlichen Rollen identifizieren.
In Tabelle 4 wird ein einfaches RACI-Diagramm für dieses Handbuch dargestellt. (In der Überschriftzeile sind die Rollen und in der ersten Spalte die Aufgaben aufgelistet. In den verbleibenden Spalten wird der Verantwortlichkeitsgrad für die jeweiligen Aufgaben auf Rollen bezogen beschrieben.)
Tabelle 4. RACI-Diagramm
Aufgaben |
Architekt |
Systemadministrator |
Entwickler |
Tester |
Sicherheitsexperte |
---|---|---|---|---|---|
Sicherheitsrichtlinien |
R |
I |
A |
||
Bedrohungsanalyse |
A |
I |
I |
R |
|
Prinzipien für den Sicherheitsentwurf |
A |
I |
I |
C |
|
Sicherheitsarchitektur |
A |
C |
R |
||
Architektur- und Entwurfsüberprüfung |
R |
A |
|||
Codeentwicklung |
A |
R |
|||
Technologiebezogene Bedrohungen |
A |
R |
|||
Codeüberprüfung |
R |
I |
A |
||
Sicherheitstests |
C |
I |
A |
C |
|
Netzwerksicherheit |
C |
R |
A |
||
Hostsicherheit |
C |
A |
I |
R |
|
Anwendungssicherheit |
C |
I |
A |
R |
|
Bereitstellungsüberprüfung |
C |
R |
I |
I |
R |
Zusammenfassung
Diese Schnelleinführung umreißt den grundlegenden Ansatz dieses Handbuchs für den Entwurf und die Entwicklung angriffsresistenter Webanwendungen sowie die Bewertung der Sicherheit bestehender Anwendungen. Darüber hinaus wurde auch beschrieben, wie die Informationen des Handbuchs auf die spezifischen Rollen im Lebenszyklus eines Projekts angewendet werden sollten.