Citrix ADC

Sicherheit für Webanwendungen

Webanwendungssicherheit ist Netzwerksicherheit für Computer und Programme, die mit der HTTP- und HTTPS-Protokolle kommunizieren. Dies ist ein äußerst breiter Bereich, in dem Sicherheitslücken und Schwächen im Überfluss vorhanden sind. Betriebssysteme auf Servern und Clients haben Sicherheitsprobleme und sind anfällig für Angriffe. Webserver-Software und Website-Technologien wie CGI, Java, JavaScript, PERL und PHP haben zugrunde liegende Schwachstellen. Browser und andere Clientanwendungen, die mit webfähigen Anwendungen kommunizieren, weisen ebenfalls Schwachstellen auf. Websites, die jede Technologie verwenden, aber die einfachste HTML, einschließlich jeder Website, die Interaktion mit Besuchern ermöglicht, haben oft eigene Schwachstellen.

In der Vergangenheit war eine Sicherheitsverletzung oft nur ein Ärger, aber heute ist das selten der Fall. Beispielsweise waren Angriffe, bei denen ein Hacker Zugriff auf einen Webserver verschafft und unautorisierte Änderungen an einer Website vorgenommen hat, häufig. Sie wurden in der Regel von Hackern gestartet, die keine Motivation hatten, außer anderen Hackern ihre Fähigkeiten zu demonstrieren oder die zielgerichtete Person oder Firma in Verlegenheit zu bringen. Die meisten aktuellen Sicherheitsverletzungen sind jedoch durch den Wunsch nach Geld motiviert. Die Mehrheit versucht, eines oder beide der folgenden Ziele zu erreichen: sensible und potenziell wertvolle private Informationen zu erhalten oder unbefugten Zugriff auf eine Website oder einen Webserver und deren Kontrolle zu erlangen.

Bestimmte Formen von Web-Attacken konzentrieren sich auf die Beschaffung privater Informationen. Diese Angriffe sind oft auch gegen Websites möglich, die sicher genug sind, um einen Angreifer daran zu hindern, die volle Kontrolle zu übernehmen. Die Informationen, die ein Angreifer von einer Website erhalten kann, können Kundennamen, Adressen, Telefonnummern, Sozialversicherungsnummern, Kreditkartennummern, Krankenakten und andere private Informationen umfassen. Der Angreifer kann diese Informationen dann verwenden oder an andere verkaufen. Ein Großteil der Informationen, die durch solche Angriffe erhalten werden, ist gesetzlich geschützt, und all dies durch Gewohnheit und Erwartung. Ein solcher Verstoß kann äußerst schwerwiegende Folgen für Kunden haben, deren private Informationen gefährdet sind. Diese Kunden müssen bestenfalls Wachsamkeit ausüben, um andere daran zu hindern, ihre Kreditkarten zu missbrauchen, unbefugte Kreditkonten in ihrem Namen zu eröffnen oder ihre Identität zu eigen (Identitätsdiebstahl). Im schlimmsten Fall können die Kunden ruinierte Kreditratings oder sogar für kriminelle Aktivitäten verantwortlich gemacht werden, an denen sie keine Rolle hatten.

Andere Web-Angriffe zielen darauf ab, die Kontrolle über eine Website oder den Server, auf dem sie arbeitet, oder beides zu erlangen (oder zu kompromittieren). Ein Hacker, der die Kontrolle über eine Website oder einen Server erhält, kann damit nicht autorisierte Inhalte hosten, als Proxy für Inhalte fungieren, die auf einem anderen Webserver gehostet werden, SMTP-Dienste zum Senden unerwünschter Massen-E-Mails bereitstellen oder DNS-Dienste bereitstellen, um solche Aktivitäten auf anderen kompromittierten Webservern zu unterstützen. Die meisten Websites, die auf kompromittierten Webservern gehostet werden, fördern fragwürdige oder betrügerische Unternehmen. Beispielsweise werden die meisten Phishing-Websites und Websites für untergeordnete Ausnutzung auf kompromittierten Webservern gehostet.

Der Schutz Ihrer Websites und Webdienste vor diesen Angriffen erfordert eine mehrschichtige Verteidigung, die sowohl bekannte Angriffe mit identifizierbaren Eigenschaften blockieren als auch vor unbekannten Angriffen schützt. Diese können oft erkannt werden, weil sie sich vom normalen Datenverkehr zu Ihren Websites unterscheiden und Web-Services.

Bekannte Webangriffe

Die erste Verteidigungslinie für Ihre Websites ist der Schutz vor der großen Anzahl von Angriffen, die bekanntermaßen existieren und von Web-Sicherheitsexperten beobachtet und analysiert wurden. Häufige Arten von Angriffen auf HTML-basierte Websites sind:

  • Pufferüberlaufangriffe. Senden einer extrem langen URL, extrem langen Cookie oder andere extrem lange Informationen an einen Webserver in der Hoffnung, dass sie oder das zugrunde liegende Betriebssystem hängen, abstürzen oder dem Angreifer Zugriff auf das zugrunde liegende Betriebssystem ermöglichen. Ein Pufferüberlaufangriff kann verwendet werden, um Zugriff auf nicht autorisierte Informationen zu erhalten, um einen Webserver oder beides zu gefährden.
  • Cookie-Sicherheitsangriffe. Senden eines modifizierten Cookies an einen Webserver, in der Regel in der Hoffnung, Zugriff auf nicht autorisierte Inhalte durch gefälschte Anmeldeinformationen zu erhalten.
  • Zwangsvolles Surfen. Direkter Zugriff auf URLs auf einer Website, ohne über Hyperlinks auf der Homepage oder andere allgemeine Start-URLs auf der Website zu den URLs zu navigieren. Einzelne Fälle von erzwungenem Surfen können einfach einen Benutzer anzeigen, der eine Seite auf Ihrer Website als Lesezeichen markiert hat, aber wiederholte Versuche, auf nicht vorhandene Inhalte oder Inhalte zuzugreifen, auf die Benutzer nie direkt zugreifen sollten, stellen oft einen Angriff auf die Sicherheit der Website dar. Erzwungenes Browsen wird normalerweise verwendet, um Zugriff auf nicht autorisierte Informationen zu erhalten, kann aber auch mit einem Pufferüberlaufangriff kombiniert werden, um Ihren Server zu gefährden.
  • Webformular-Sicherheitsangriffe. Senden unangemessener Inhalte in einem Webformular an Ihre Website. Unangemessene Inhalte können geänderte ausgeblendete Felder, HTML oder Code in einem Feld enthalten, das nur für alphanumerische Daten bestimmt ist, eine übermäßig lange Zeichenfolge in einem Feld, das nur eine kurze Zeichenfolge akzeptiert, eine alphanumerische Zeichenfolge in einem Feld, das nur eine ganze Zahl akzeptiert, und eine Vielzahl anderer Daten, die Ihre Website nicht erwarten, dass sie in diesem Webformular erhalten. Ein Webformular-Sicherheitsangriff kann entweder verwendet werden, um nicht autorisierte Informationen von Ihrer Website zu erhalten oder um die Website endlos zu gefährden, in der Regel in Kombination mit einem Pufferüberlaufangriff.

Zwei spezielle Arten von Angriffen auf die Sicherheit von Webformularen verdienen besondere Erwähnung:

  • SQL-Injection-Angriffe. Senden eines aktiven SQL-Befehls oder Befehls in einem Webformular oder als Teil einer URL, mit dem Ziel, die Ausführung des Befehls oder der Befehle durch eine SQL-Datenbank zu veranlassen. SQL-Injection-Angriffe werden normalerweise verwendet, um nicht autorisierte Informationen zu erhalten.
  • Cross-Site-Skripting-Angriffe. Verwenden einer URL oder eines Skripts auf einer Webseite, um gegen die Richtlinie der gleichen Herkunft zu verstoßen, die jedem Skript das Abrufen von Eigenschaften oder Ändern von Inhalten auf einer anderen Website verbietet. Da Skripte Informationen abrufen und Dateien auf Ihrer Website ändern können, kann es einem Angreifer ermöglichen, nicht autorisierte Informationen zu erhalten, einen Webserver oder beides zu gefährden.

Angriffe auf XML-basierte Webdienste fallen normalerweise in mindestens eine der folgenden zwei Kategorien: Versuche, unangemessene Inhalte an einen Webdienst zu senden, oder Versuche, die Sicherheit eines Webdienstes zu verletzen. Häufige Arten von Angriffen gegen XML-basierte Webdienste sind:

  • Bösartiger Code oder Objekte. XML-Anforderungen, die Code oder Objekte enthalten, die entweder direkt sensible Informationen abrufen oder einem Angreifer die Kontrolle über den Webdienst oder den zugrunde liegenden Server geben können.
  • Schlecht geformte XML-Anforderungen. XML-Anforderungen, die nicht der W3C-XML-Spezifikation entsprechen und daher die Sicherheit eines unsicheren Webdienstes verletzen können
  • Denial-of-Service-Angriffe (DoS). XML-Anforderungen, die wiederholt und in hohem Umfang gesendet werden, mit der Absicht, den zielgerichteten Webdienst zu überwältigen und legitimen Benutzern den Zugriff auf den Webdienst zu verweigern.

Neben standardmäßigen XML-basierten Angriffen sind XML-Webdienste und Web 2.0-Websites auch anfällig für SQL-Injection und Cross-Site-Skripting-Angriffe, wie unten beschrieben:

  • SQL-Injection-Angriffe. Senden eines aktiven SQL-Befehls oder Befehls in einer XML-basierten Anforderung, mit dem Ziel, dass eine SQL-Datenbank diesen Befehl oder diese Befehle ausführen kann. Wie bei HTML-SQL-Injektionsangriffen werden XML-SQL-Injektionsangriffe normalerweise verwendet, um nicht autorisierte Informationen zu erhalten.
  • Cross-Site-Skripting-Angriffe. Verwenden eines Skripts, das in einer XML-basierten Anwendung enthalten ist, um gegen die Richtlinie des gleichen Ursprungs zu verstoßen, wodurch kein Skript Eigenschaften aus einer anderen Anwendung abrufen oder ändern kann. Da Skripts Informationen abrufen und Dateien mithilfe Ihrer XML-Anwendung ändern können, kann es einem Angreifer ermöglichen, nicht autorisierte Informationen zu erhalten, die Anwendung zu gefährden, oder beides zu gefährden.

Bekannte Webangriffe können in der Regel durch Filtern des Website-Datenverkehrs nach bestimmten Merkmalen (Signaturen) gestoppt werden, die immer für einen bestimmten Angriff erscheinen und niemals im legitimen Datenverkehr erscheinen sollten. Dieser Ansatz hat die Vorteile, dass relativ wenige Ressourcen benötigt werden und ein relativ geringes Risiko von False-Positives darstellt. Es ist daher ein wertvolles Werkzeug zur Bekämpfung von Angriffen auf Websites und Web-Services, und die Konfiguration grundlegender Signaturschutzmaßnahmen, die die meisten bekannten Web-Angriffe abfangen, ist einfach zu tun.

Unbekannte Webangriffe

Die größte Bedrohung für Websites und Anwendungen ist nicht von bekannten Angriffen, sondern von unbekannten Angriffen. Die meisten unbekannten Angriffe fallen in eine von zwei Kategorien: neu gestartete Angriffe, für die Sicherheitsfirmen noch keine wirksame Verteidigung entwickelt haben (Zero-Day-Angriffe), und sorgfältig gezielte Angriffe auf eine bestimmte Website oder einen Webdienst statt auf viele Websites oder Webdienste (Spear-Attacken). Diese Angriffe, wie bekannte Angriffe, sind in der Regel dazu gedacht, vertrauliche private Informationen zu erhalten, die Website oder den Webdienst zu gefährden und ermöglichen es, sie für weitere Angriffe oder beide Ziele verwendet werden.

Zero-Day-Angriffe stellen eine große Bedrohung für alle Benutzer dar. Diese Angriffe sind in der Regel von den gleichen Arten wie bekannte Angriffe; Zero-Day-Angriffe beinhalten oft injizierte SQL, ein siteübergreifendes Skript, eine siteübergreifende Anforderungsfälschung oder eine andere Art von Angriff ähnlich wie bekannte Angriffe. In den meisten Fällen zielen sie auf Schwachstellen ab, von denen die Entwickler der angestrebten Software, der Website oder des Webdienstes entweder nicht wissen oder von denen sie gerade erfahren haben. Sicherheitsfirmen haben daher normalerweise keine Abwehrmaßnahmen gegen diese Angriffe entwickelt, und selbst wenn sie dies getan haben, haben Benutzer die Patches normalerweise nicht erhalten und installiert oder die zum Schutz vor diesen Angriffen erforderlichen Problemumgehungen durchgeführt. Die Zeit zwischen der Entdeckung eines Zero-Day-Angriffs und der Verfügbarkeit einer Verteidigung (das Schwachstellenfenster) schrumpft, aber Täter können immer noch auf Stunden oder sogar Tage zählen, an denen viele Websites und Webdienste keinen spezifischen Schutz vor dem Angriff haben.

Spear-Angriffe sind eine große Bedrohung, aber für eine ausgewählte Gruppe von Benutzern. Eine übliche Art von Spear-Angriff, ein Spear Phish, richtet sich in der Regel an Kunden einer bestimmten Bank oder eines Finanzinstituts oder (seltener) an Mitarbeiter eines bestimmten Unternehmens oder einer bestimmten Organisation. Im Gegensatz zu anderen Phishes, bei denen es sich oft um grobe Fälschungen handelt, die ein Benutzer mit irgendeiner Vertrautheit mit der tatsächlichen Kommunikation dieser Bank oder Finanzinstitution erkennen kann, sind Spear Phishes buchstabenperfekt und überzeugend. Sie können spezifische Informationen für das Individuum enthalten, die auf den ersten Blick kein Fremder wissen oder in der Lage sein sollte. Der Speer-Phisher ist daher in der Lage, sein Ziel davon zu überzeugen, die angeforderten Informationen bereitzustellen, die der Phisher dann verwenden kann, um Konten zu plündern, unrechtmäßig erhaltenes Geld aus anderen Quellen zu verarbeiten oder Zugang zu anderen, noch sensibleren Informationen zu erhalten.

Beide Arten von Angriffen haben bestimmte Merkmale, die normalerweise erkannt werden können, wenn auch nicht mit statischen Mustern, die nach bestimmten Merkmalen suchen, wie Standardsignaturen. Die Erkennung dieser Arten von Angriffen erfordert anspruchsvollere und ressourcenintensivere Ansätze, wie heuristische Filterung und positive Sicherheitsmodellsysteme. Heuristische Filterung sieht nicht für bestimmte Muster, sondern für Verhaltensmuster aus. Positive Sicherheitsmodellsysteme modellieren das normale Verhalten der Website oder des Webdienstes, den sie schützen, und blockieren dann Verbindungen, die nicht in dieses Modell der normalen Verwendung passen. URL-basierte und webformularbasierte Sicherheitsprüfungen profilieren die normale Verwendung Ihrer Websites und steuern dann, wie Benutzer mit Ihren Websites interagieren, wobei sowohl Heuristik als auch positive Sicherheit verwendet werden, um anomalen oder unerwarteten Datenverkehr zu blockieren. Sowohl heuristische als auch positive Sicherheit, die ordnungsgemäß entworfen und bereitgestellt werden, können die meisten Angriffe erfassen, die Signaturen verpassen. Sie benötigen jedoch wesentlich mehr Ressourcen als Signaturen, und Sie müssen einige Zeit damit verbringen, sie richtig zu konfigurieren, um Fehlalarme zu vermeiden. Sie werden daher in der Regel nicht als primäre Verteidigungslinie verwendet, sondern als Backups für Signaturen oder andere weniger ressourcenintensive Ansätze.

Durch die Konfiguration dieser erweiterten Schutzmaßnahmen zusätzlich zu Signaturen erstellen Sie ein hybrides Sicherheitsmodell, das es der Web App Firewall ermöglicht, umfassenden Schutz vor bekannten und unbekannten Angriffen zu bieten.

Sicherheit für Webanwendungen