Web Applikationssicherheit

1. Was muss bei einem Webserver (Unix od. Windows System) beachtet werden?
Es gibt viele Vorsichtsmaßnahmen, die Sie ergreifen sollten. Zum Beispiel sollten alle unbenutzten Dienste, Command-Shells sowie Interpreter oder Compiler entfernt werden. Die Webserver sollten korrekt konfiguriert sein, und die Dateiberechtigungen nur autorisierten Benutzern auf "Need to know" -Basis erteilt werden. System- und Weblogs sollten regelmäßig auf verdächtige Aktivitäten überprüft werden. Außerdem sollte die Anzahl der Webbenutzerkonten, die sich bei den Webservern anmelden können, ordnungsgemäß verwaltet werden (z.B.: sicherstellen, dass alle Benutzer dem Stand der Technik entsprechende Passwörter auswählen). Die Benutzerauthentifizierung zum Webserver sollte mindestens SSL / TLS geschützt werden, um sicherzustellen, dass ihre Kennwörter von Angreifern nicht belauscht werden. Die Zwei Faktor Authentifizierung sollte ebenfalls in Betracht gezogen werden, wenn das System sensible oder vertrauliche Informationen enthält.
Folgenden Hinweise sollten bei der Verbesserung der Sicherheit von Webservern beachtet werden:
  • Konfigurieren des Web-Server gemäß den Sicherheitsrichtlinien des Anbieters
  • Führen Sie Web-Server-Prozesse mit dem entsprechenden Berechtigungskonto aus
  • Vermeiden der Ausführung von Serverprozessen mit privilegierten Konten (z. B. 'root')
  • Wenden Sie die neuesten Sicherheitspatches auf die Webserver-Software an
  • Zugriffsrechte setzen, damit Serversoftware nicht Dateien der Benutzer ändern kann
  • Installieren Sie ein Host-basiertes Intrusion Detection System (HIDS) auf Webservern
  • HIDS aktiv überprüfen, um Sicherheitsangriffe schnell zu identifizieren
  • Server einstellen um Folgendes zu verbergen: Version, interne IP, Verzeichnisstruktur
  • Deaktivieren oder entfernen Sie unnötige Module aus der Webserver-Software
  • Anwendungsdateien auf dem Web-Server durch Zugriffskontrolle schützen
  • Sichern des privaten Schlüssels (SSL) für Serverzertifizierung vor unbefugtem Zugriff
2. Was sind die häufigsten Sicherheitsanfälligkeiten bei Webanwendungen?
  • Cross Site Scripting (XSS)
  • Injection Flaws
  • Böswillige Dateiausführung
  • Unsichere direkte Objektreferenz
  • Cross Site Request Forgery (CSRF)
  • Informationslücken und unsachgemäße Fehlerbehandlung
  • Fehlerhafte Authentifizierung und Sitzungsverwaltung
  • Unsichere kryptographische Speicherung
  • Unsichere Kommunikation
  • Fehler beim Einschränken des URL-Zugriffs
3. Welche Sicherheitsmaßnahmen gibt es für Endbenutzer bei Webanwendungen?
  • Bei kritischen Webanwendungen nicht von einem öffentlichen Computer anmelden
  • Speichern Sie Ihren Benutzernamen und Ihr Passwort nicht auf Ihrer Workstation
  • Denken Sie daran, sich am Ende einer Sitzung abzumelden
  • Unterschiedliche Logins und Passwörter je Webanwendungen und Dienst setzen
  • Regelmäßig Kennwörter für kritische Webanwendungen ändern
  • Melden Sie abnormales Verhalten sofort dem Dienstanbieter
  • Betriebssystem und Systemkomponenten wie Browser immer aktuell gepatcht halten
  • Firewall sowie Antivirensoftware mit den neuesten Virensignaturen verwenden
  • Laden Sie keine Software oder Plug-Ins von unbekannten Quellen herunter
4. Gibt es Sicherheitstipps zum Sichern einer Webanwendung?
Verschiedene Sicherheitskontrollen sollten während des gesamten Entwicklungslebenszyklus des Projekts in Betracht gezogen werden:
  • Sammeln Sie Sicherheitsanforderungen für Anwendungen
  • Standards oder Benchmarks zu Best Practices verabschieden
  • Definieren Sie sichere Codierungsstandards, um Angriffe wie SQL Injection, Cross-Site Scripting zu eliminieren
  • Sanitized Application Response zur Erfassung aller Ausgaben, Rückgabecodes und Fehlercodes
  • Nicht auf HTTP-Referrer-Header, Client-Browser-Parameter, Cookies, Formularfelder oder verborgene Parameter vertrauen, es sei denn, sie werden durch kryptographische Technik verifiziert;
  • Bewahren Sie vertrauliche Sitzungswerte auf dem Server auf, um clientseitige Änderungen zu verhindern
  • Seiten mit vertraulichen Informationen verschlüsseln und Zwischenspeichern verhindern
  • Implementieren Sie die Sitzungsverwaltung
  • Implementierung eines korrekten Endbenutzerkontos und Zugriffsrechtsmanagements
  • Eingeschränkter Zugriff auf die Backend-Datenbank, Ausführen von SQL-Befehlen und Betriebssystembefehlen
  • Wenn ein Anwendungssystem aufruft, führen Sie keine Aufrufe von tatsächlichen Dateinamen und Verzeichnispfaden durch. Verwenden Sie Mapping als Filterschicht
  • Erstellen Sie ein zentralisiertes Modul für die Anwendungsüberwachung und das Reporting
  • Verwenden Sie die am besten geeignete Art der Authentifizierungsmethode, um eingehende Benutzer- / Systemanforderungen zu identifizieren und zu authentifizieren
  • Erstellen und führen Sie eine Bedrohungsmodellierung durch
  • Design Web-Anwendung Sicherheitsarchitektur
  • Führen Sie während der Entwicklungsphase eine Sicherheitsrisikobewertung durch, um die erforderlichen Sicherheitskontrollen zu identifizieren
  • Durchsetzung der Sicherheitscode-Standards
  • Führen Sie Tests wie Stresstests, Systemtests, Regressionstests, Komponententests usw. durch
  • Führen Sie eine Code-Überprüfung durch
  • Führen Sie vor dem Produktionsstart und nach größeren Änderungen am System ein Sicherheitsaudit durch
  • Überprüfen Sie die Anwendungsprotokolle
  • Implementieren von Versionskontrolle und einer separaten Umgebung für die Anwendungsentwicklung
  • Installieren Sie eine Webanwendungs-Firewall
5. Was sollte man bei Auslagerung der Webentwicklung beachten?
Im Folgenden finden Sie einige Beispiele für Bereiche, die bei der Bewertung der Sicherheit von Webanwendungen untersucht werden könnten:

Identifikation und Authentifizierung
    • Wie werden Benutzer und Prozesse authentifiziert?
    • Ist der Authentifizierungsprozess gemäß den Spezifikationen implementiert?
    • Einhaltung der Sicherheitspolitik der Organisation?
    • Wenn die Authentifizierung auf Passwörtern basiert, wie werden die Benutzerpasswörter gehandhabt und gespeichert?
    • Ist der Passwortabwicklungsmechanismus in Übereinstimmung mit der Sicherheitsrichtlinie der Organisation?
    • Sind in der Programmquelle fest codierte Passwörter oder Schlüssel eingebettet?
    • Ist die Anwendung erforderlich, um jede Sitzung zu authentifizieren?

Datenschutz
    • Ist der Datenschutzmechanismus in Übereinstimmung mit der Sicherheit implementiert?
    • Politik der Organisation?
    • Sind alle Daten in Ruhe ausreichend geschützt?
    • Sind alle Daten während des Transports ausreichend geschützt?
    • Wenn Verschlüsselung verwendet wird, wie wird die Verschlüsselung gehandhabt?
    • Erfüllt die Verschlüsselung die allgemeine Sicherheitsrichtlinie der Organisation?

Protokollierung
    • Ist der Prüfprotokollierungsmechanismus gemäß den Spezifikationen implementiert?
    • Sind die Anwendungs-Audit-Datensätze anfällig für unautorisierte Löschung, Änderung oder Offenlegung?

Fehlerbehandlung
    • Wie werden Fehlermeldungen behandelt?
    • Besteht die Möglichkeit eines Informationslecks, das bei einem späteren Angriff genutzt werden könnte?
    • Würde ein Anwendungsfehler dazu führen, dass das System in einen unsicheren Zustand versetzt wird?

Betrieb
  • Werden die Aufgabentrennung und die Mindestprivilegien durchgesetzt?
  • Wurden alle integrierten Benutzer-IDs, Test-Benutzer-IDs und IDs mit Standardkennwörtern vor dem endgültigen Start vom Betriebssystem, den Webservern und der Anwendung selbst entfernt?
  • Sind die Systemverwaltungsverfahren, Änderungsmanagementverfahren, Disaster Recovery-Verfahren und Sicherungsverfahren vollständig und klar definiert?
  • Anforderungen und spezifische Merkmale der Ziel-Webanwendung sollten zusätzliche Testfälle oder Prüfkriterien entsprechend den spezifischen Anforderungen enthalten sein.
Wenn ein Informationssystem an einen Drittanbieter ausgelagert wird, müssen zudem geeignete Sicherheitsmanagementprozesse eingerichtet werden, um die Daten zu schützen und die mit ausgelagerten IT-Projekten / Diensten verbundenen Sicherheitsrisiken zu mindern.
6. Was sind gängige Authentifizierungsmethoden?
Es gibt drei grundlegende Authentifizierungsfaktoren (d.h. "etwas, was Sie wissen", "etwas, was Sie haben" und "etwas, was Sie sind"), das üblicherweise in einem Authentifizierungssystem bezeichnet wird. Um der zunehmenden Bedrohung durch Identitätsdiebstahl zu begegnen, sollte eine Zwei-Faktor-Authentifizierung zur Durchführung von risikoträchtigen elektronischen Transaktionen implementiert werden. Es gibt fünf gängige Authentifizierungsmethoden: Passwörter und PIN-basierte Authentifizierung, SMS-basierte Authentifizierung, Authentifizierung mit symmetrischen Schlüsseln, Authentifizierung mit öffentlichen Schlüsseln und biometrische Authentifizierung.
7. Welche Sicherheitsrisiken bestehen bei Servervirtualisierung, und welche Sicherheitsmaßnahmen gibt es?

Die Virtualisierungstechnologie ermöglicht ein oder mehrere Gastbetriebssysteme, die auf einem anderen Hostbetriebssystem ausgeführt werden. Jedes der Gastbetriebssysteme läuft in einer emulierten Umgebung, die unabhängig von einer realen Maschine isoliert und nicht unterscheidbar ist.

Ohne angemessenen Schutz kann die Virtualisierung die Sicherheitsrisiken einer Organisation erhöhen. Die allgemeine Sicherheitsbedrohung, die durch den Einsatz von Virtualisierung entsteht, besteht beispielsweise darin, dass die Sicherheitsisolierung zwischen verschiedenen Systemen durch Virtualisierung geschwächt werden kann.

Nach der Virtualisierung kann sich die Isolation zwischen verschiedenen Informationssystemen ausschließlich auf die korrekte Konfiguration des internen virtuellen Netzwerks stützen. Falsche Konfiguration könnte zu einer Gefährdung der Sicherheit führen. Softwarebasierte Netzwerkfirewalls, die sich in einer dedizierten virtuellen Maschine (VM) befinden, können helfen, dieses Risiko zu beheben. Eine alternative Minderung ist die Implementierung einer Hardware-Firewall zwischen VMs. Dadurch wird der Verkehr zwischen den VMs durch die Hardware-Firewall geregelt. Dieser Ansatz kann jedoch einen wesentlichen Einfluss auf die Netzwerkleistung haben.

Bei der Sicherung einer virtuellen Maschine sind die bewährten Methoden zur Sicherung des Betriebssystem aber auch die Implementierung einer guten Patch-Management-Praxis und Endpunkt-Sicherheitsmaßnahmen, wie z. B. Antiviren-Maßnahmen und Firewall-Implementierung auf Host- und Gastbetriebssystem zu berücksichtigen.
8. Wie greifen Eindringlinge Endanwender über einen Web-Angriff an?
Nachfolgend finden Sie einige Beispiele für wichtige Webangriffe, die auf Endbenutzer oder deren Computer abzielen:

Der "The Italian Job" Web-Angriff Im Juni 2007 wurden mehr als 10.000 Websites, darunter viele Websites italienischer Behörden, kompromittiert. Auf infizierten Websites wurde ein kurzer HTML-Code "iFrame" eingefügt, der Besucher auf eine andere Website weiterleitete, wo ein schädliches JavaScript einen Keylogger und ein Trojaner-Downloader-Programm auf ihren PCs installierte, um zu überprüfen, ob sie weiter kompromittiert werden könnten.

Der MySpace Phish / Drive-by Angriff Im Juni 2007 wurden mehrere hundert MySpace-Profile entdeckt, die mit Links zu Phishing-Seiten versehen waren. Benutzer von MySpace hatten das Risiko infiziert zu werden, wenn sie eine MySpace-Profilseite besuchten, die ein schädliches JavaScript enthielt, das sie auf eine bösartige Website umleitete die eine Internet Explorer (2006) -Schwachstelle ausnütze. Ein bekannter Proxy-Netzwerk-Bot, "flux bot", wurde daraufhin installiert, um die Phishing-Seiten hinter ständig wechselnden Proxy-Servern zu verstecken.

Cross-Site Scripting ("XSS") Würmer Im Oktober 2005 wurde eine XSS-Schwachstelle in MySpace vom Autor des Samy-Wurms ausgenutzt, der seinen infizierten XSS-Code auf seine persönliche Profilseite auf MySpace hochladen konnte. Als andere authentifizierte MySpace-Benutzer Samys Profil anschauten, zwang der Wurm seine Webbrowser, Samy als Freund hinzuzufügen und ihre Profile mit einer Kopie des bösartigen Codes zu ändern. Der Samy-Wurm verbreitete sich weiterhin exponentiell, wenn ein Benutzer die Profile von Samy oder anderen infizierten Benutzern betrachtete. Mehr als eine Million MySpace-Benutzerprofile wurden auf diese Weise infiziert.

Andere Angriffe Phishing kann als Social-Engineering-Angriff bezeichnet werden, bei dem Kriminelle versuchen, ahnungslose Surfer dazu zu bringen, sich auf einer betrügerischen Website einzuloggen, die wie eine echte Website aussieht, wie eBay oder die Website einer Online-Bank. Internet-Suchmaschinen können auch Web-Attacken helfen. Im Dezember 2004 nutzte der Web-Wurm Santy.A eine Sicherheitslücke in der Bulletin-Board-Software phpBB. Anstatt eine Ziel-IP-Adresse zufällig zu erraten, benutzte der Wurm die Google-Suchmaschine, um neue verwundbare Ziele zu finden, um Defacement-Angriffe über die Schwachstelle in phpBB zu starten.
9. Wie kann ich die Echtheit einer Website überprüfen?

Zunächst müssen Sie sicherstellen, dass die Web-Links, die Sie zur Website führen, von legitimen Publikationen des Eigentümers der Website oder anderen vertrauenswürdigen Quellen stammen. Folgen Sie nicht den Web-Links von nicht vertrauenswürdigen Quellen (z. B. Internet-Mails) ohne sorgfältige Überprüfung.

Wenn die Website die Eingabe sensibler Daten erfordert, sollte sie ein "Serverzertifikat" zur Überprüfung ihrer Authentizität bereitstellen. Sie können den Inhalt des Zertifikats, die ausstellende Zertifizierungsstelle (z. B. A-Trust), den Gültigkeitszeitraum und ob das Zertifikat gesperrt oder widerrufen wurde, untersuchen. Im Zweifelsfall verlassen Sie die Website und wenden Sie sich für weitere Informationen an den Eigentümer oder die Organisation der entsprechenden Website.