Sicherheitsrisiken und Schwachstellen
Anwendungssicherheit oder auch oft Application Security (AppSec) genannt, bezeichnet den Prozess und die Maßnahmen zum Schutz von Anwendungen vor Bedrohungen, Schwachstellen und Angriffen. Das Ziel ist es, sicherzustellen, dass Anwendungen während ihres gesamten Lebenszyklus sicher sind – und das vom Entwurf und der Entwicklung bis hin zur Bereitstellung und Wartung. Dadurch können Datenmissbrauch, finanzielle Schäden, Rufschädigung und zeitliche Einbußen präventiv umgangen werden. Hierbei gibt es diverse Bedrohungen, welche bestimmte Sicherheitsmaßnahmen mit sich bringen.
Arten von Bedrohungen
Cross-Site Scripting
Cross-Site Scripting (XSS) ist eine häufige Sicherheitslücke in Webanwendungen, bei der Angreifer schädliche Skripte in Websites einschleusen, die dann von anderen Benutzern ausgeführt werden. Diese Schwachstelle entsteht, wenn eine Anwendung Benutzereingaben ohne ausreichende Validierung oder Filterung verarbeitet und in die Webseite einfügt. Es gibt unterschiedliche Arten von XSS, auf die im Folgenden näher eingegangen wird.
Stored XSS (Persistente XSS): Der bösartige Code wird auf dem Server gespeichert (z. B. in einer Datenbank) und wird jedes Mal ausgeführt, wenn ein Benutzer die infizierte Seite aufruft.
Reflected XSS (Reflektierte XSS): Der schädliche Code wird als Teil der URL oder eines Formularparameters an den Server gesendet und sofort in die Antwort eingebettet und an den Benutzer zurückgegeben.
DOM-based XSS: Der bösartige Code wird im Client-Side-Skript der Webseite ausgeführt und manipuliert das Document Object Model (DOM) direkt. Dies geschieht ohne eine serverseitige Verarbeitung.
SQL-Injection (SQLi)
SQL-Injection (SQLi) als Sicherheitslücke in Webanwendungen beschreibt eine Einschleusung eines schädlichen SQL-Befehles in Eingabefelder einer Anwendung. Dadurch soll die darunterliegende Datenbank manipuliert oder der Zugriff auf Daten erlangt werden. Dies kann auf zwei Arten erfolgen. Die eine Variante ist die Eingabe von SQL-Befehlen. Ein Angreifer gibt dabei speziell formatierte SQL-Befehle in ein Eingabefeld einer Webanwendung ein (z. B. in ein Login-Formular), die dann von der Anwendung ungefiltert in eine SQL-Abfrage eingebettet werden. Zum anderen kann eine SQLi durch die Manipulation einer Datenbank geschehen. Diese eingeschleusten SQL-Befehle können dazu verwendet werden, Daten zu lesen, zu ändern, zu löschen oder administrative Befehle auf der Datenbank auszuführen.
Auch bei der SQL-Injection gibt es unterschiedliche Unterarten:
Classic SQL Injection (In-Band SQLi): Der Angreifer erhält eine direkte Rückmeldung über die manipulierte SQL-Abfrage, z. B. durch Fehler- oder Ergebnisanzeigen auf der Webseite.
Blind SQL Injection: Der Angreifer erhält keine direkten Rückmeldungen von der Datenbank. Stattdessen wird die Reaktion der Anwendung auf verschiedene Eingaben beobachtet, um Rückschlüsse auf die Datenbankstruktur und -inhalte zu ziehen.
Out-of-Band SQL Injection: Diese Methode nutzt unterschiedliche Kanäle (z. B. DNS oder HTTP) zur Exfiltration von Daten, wenn direkte Rückmeldungen nicht möglich sind.
Bei erfolgreichem Angriff drohen demnach Datenverlust, -manipulation oder –diebstahl. Zudem können Angreifer die Authentifizierungsmechanismen umgehen und sich als andere Benutzer ausgeben, einschließlich Administratoren. Schließlich können Angreifer Befehle auf dem zugrunde liegenden Betriebssystem ausführen, was zu einer vollständigen Kompromittierung des Systems führen kann.
Software Supply Chain Attacks
Software Supply Chain Attacks sind Cyberangriffe, die darauf abzielen, Schwachstellen in der Lieferkette von Software auszunutzen, um Schaden zu verursachen oder Daten zu stehlen. Diese Angriffe versuchen die Vertrauenswürdigkeit von Softwareprodukten zu untergraben, indem sie Malware oder bösartige Codes in Softwarekomponenten einschleusen oder manipulieren. Sobald diese kompromittierte Software in den Systemen der Endbenutzer eingesetzt wird, können die Angreifer Zugriff auf sensible Informationen erlangen, Schäden verursachen oder Kontrolle über die Systeme übernehmen.
Buffer Overflows
Ein Buffer Overflow (Pufferüberlauf) ist ein Fehler in der Speicherverwaltung von Software, der auftritt, wenn ein Programm mehr Daten in einen Puffer (einen festgelegten Bereich des Speichers) schreibt, als der Puffer aufnehmen kann. Dies führt dazu, dass die überschüssigen Daten in angrenzende Speicherbereiche geschrieben werden, was unvorhersehbare Effekte haben, und die Sicherheit und Stabilität des Systems gefährden kann.
Ursachen können hierbei vielseitig sein. Zum einen kann eine fehlerhafte Eingabeüberprüfung zu einem Buffer Overflow führen. Das bedeutet, dass ein Programm nicht sicherstellt, dass die Eingabedaten die erwartete Länge nicht überschreiten. Ebenso kann eine falsche Speicherzuweisung zu einem Overflow führen, wenn zugewiesene Speicherplatz für einen Puffer zu klein ist. Letztlich kann die Ursache auch eine schlechte Programmierpraktik sein, wenn auf moderne sicherheitsbewusste Programmiermethoden und –techniken verzichtet wurde.
Ein Buffer Overflow zieht folgende Probleme mit sich. Es kann unter anderem zum Absturz des Programms kommen. Auch haben Angreifer leichtes Spiel. Sie können durch gezielte Überschreibung von Speicherbereichen den Programmfluss manipulieren. Auch können Angreifer einen eigenen Code ausführen, indem sie den Speicher so überschreiben, dass das Programm diesen Code ausführt. Dies nennt man dann Remote Code Execution (RCE).
Man-in-the-Middle-Angriff (MitM-Angriff)
Ein Man-in-the-Middle-Angriff (MitM-Angriff) ist eine Art von Cyberangriff, bei dem ein Angreifer heimlich die Kommunikation zwischen zwei Parteien abfängt und möglicherweise manipuliert, ohne dass die Parteien wissen, dass ihre Verbindung kompromittiert wurde. Der Angreifer kann dabei sowohl die Daten überwachen als auch verändern, wodurch die Vertraulichkeit und Integrität der Kommunikation gefährdet werden. Es gibt verschiedene Arten von Man-in-the-Middle-Angriffen. Beim Eavesdropping (Abhören) hört der Angreifer passiv die Kommunikation ab und sammelt Informationen, ohne die Nachrichten zu verändern. Bei der Packet Injection (Paketeinschleusung) fügt der Angreifer gefälschte Nachrichten in die Kommunikation ein, um die Informationen zu manipulieren. Bei Session Hijacking (Sitzungsentführung) übernimmt der Angreifer eine aktive Sitzung, indem er gültige Sitzungs-Tokens stiehlt und sich als legitimer Benutzer ausgibt. Beim SSL Stripping wandelt der Angreifer verschlüsselte HTTPS-Verbindungen in unverschlüsselte HTTP-Verbindungen um, um sensible Informationen abzufangen.
Ein Man-in-the-Middle-Angriff verläuft in mehreren Schritten. Zunächst fängt der Angreifer die Verbindung ab, indem er sich zwischen die beiden Kommunikationspartner platziert, z.B. durch ein kompromittiertes WLAN-Netzwerk oder durch DNS-Spoofing. Danach entschlüsselt der Angreifer die ausgetauschten Daten, wenn sie verschlüsselt sind, indem er sich als eine der beiden Parteien ausgibt. Schließlich kann der Angreifer die ausgetauschten Informationen ändern oder weiterleiten, ohne dass die Opfer den Eingriff bemerken. Man-in-the-Middle-Angriffe sind eine ernsthafte Bedrohung für die Cybersicherheit, da sie die Vertraulichkeit und Integrität der Kommunikation zwischen zwei Parteien kompromittieren können. Ein Bewusstsein für diese Angriffe und die Umsetzung geeigneter Schutzmaßnahmen sind entscheidend, um sich vor solchen Angriffen zu schützen.
Zero-Day-Exploits
Zero-Day-Exploits sind Sicherheitslücken in Software, die den Entwicklern und der Öffentlichkeit noch unbekannt sind und somit am „Tag null“ ihres Bekanntwerdens von Angreifern ausgenutzt werden können. Diese Schwachstellen stellen eine besondere Gefahr dar, da es noch keine Patches oder Updates gibt, die die Lücke schließen. Angreifer nutzen Zero-Day-Exploits, um unbemerkt in Systeme einzudringen, Daten zu stehlen, Schaden anzurichten oder Kontrolle über die betroffenen Systeme zu erlangen. Die Entdeckung solcher Lücken erfolgt oft durch Cyberkriminelle, die die Schwachstellen entweder selbst ausnutzen oder an andere verkaufen. Manchmal werden Zero-Day-Exploits auch von Sicherheitsforschern entdeckt, die diese Informationen verantwortungsvoll an die betroffenen Softwarehersteller weiterleiten, damit diese die notwendigen Sicherheitsupdates entwickeln können. Die Bedrohung durch Zero-Day-Exploits erfordert proaktive Sicherheitsmaßnahmen wie regelmäßige Updates, die Nutzung von Sicherheitssoftware und die Implementierung von Intrusion-Detection-Systemen, um potenzielle Angriffe frühzeitig zu erkennen und abzuwehren.
Cross-Site Request Forgery
Cross-Site Request Forgery (CSRF) ist eine Art von Cyberangriff, bei dem ein Angreifer eine authentifizierte Sitzung eines Benutzers ausnutzt, um unbefugt Aktionen im Namen des Benutzers auf einer Webanwendung durchzuführen. Dies geschieht, indem der Angreifer den Benutzer dazu bringt, eine bösartige Anfrage an die Webanwendung zu senden, bei der der Benutzer bereits angemeldet ist. Da die Webanwendung die Anfrage als legitim betrachtet, weil sie von einem authentifizierten Benutzer stammt, führt sie die vom Angreifer beabsichtigten Aktionen aus.
Ein typischer CSRF-Angriff verläuft in mehreren Schritten. Zunächst bereitet der Angreifer eine bösartige Webseite oder einen Link vor, der eine Anfrage an die Ziel-Webanwendung sendet. Wenn der authentifizierte Benutzer diese bösartige Webseite besucht oder auf den schädlichen Link klickt, wird die bösartige Anfrage an die Ziel-Webanwendung gesendet, wobei die Cookies und Authentifizierungsinformationen des Benutzers verwendet werden. Da die Webanwendung denkt, dass die Anfrage vom Benutzer stammt, führt sie die Aktion aus.
Beispiele für CSRF-Angriffe sind Überweisungen von Geld, bei denen ein Angreifer eine bösartige Anfrage erstellt, die Geld von einem Bankkonto des Benutzers auf das Konto des Angreifers überweist, oder die Änderung von E-Mail-Adressen, bei der der Angreifer eine Anfrage sendet, die die E-Mail-Adresse im Benutzerprofil ändert, um Kontrolle über das Konto zu erlangen. Auch die Veröffentlichung von Inhalten in sozialen Netzwerken ist ein Beispiel, bei dem ein Angreifer eine bösartige Anfrage sendet, die im Namen des Benutzers Inhalte postet. CSRF-Angriffe sind besonders gefährlich, weil sie legitime Benutzer ausnutzen, um bösartige Aktionen durchzuführen. Ein umfassendes Verständnis dieser Angriffe und die Implementierung geeigneter Schutzmaßnahmen sind entscheidend, um die Sicherheit von Webanwendungen zu gewährleisten.
Zusammenfassung / Fazit
Anwendungssicherheit, auch bekannt als Application Security (AppSec), dient der Sicherung von (Web-)Anwendungen um Bedrohungen, Schwachstellen und Angriffen vorzubeugen. Sie wappnend vor vielerlei unterschiedlicher Bedrohungen und erkennt unterschiedliche Arten von Sicherheitslücken.
Weitere interessante Quellen:
- https://www.myrasecurity.com/de/saasp/application-security/
- https://www.cloudflare.com/de-de/learning/security/what-is-web-application-security/
- https://www.otaris.de/beratung-secure-sdlc/
- https://sequafy.com/application-security/
- https://www.adesso.de/de/services/security-services/application-security.jsp
Häufig gestellte Fragen und Antworten
Warum ist Application Security so wichtig?
Die Application Security ist aus diversen Gründen wichtig für Firmen und Privatpersonen. Viele Anwendungen arbeiten mit Benutzer- und Kundendaten und sensiblen Finanzinformationen. Diese sind für Angreifer besonders attraktiv und können bei Sicherheitslücken in den Anwendungen missbraucht werden. Sicherheitsverletzungen können nicht nur finanzielle Schäden mit sich bringen, sondern auch das Vertrauen und den Ruf des Unternehmens mindern. Außerdem sind gewisse branchenabhängige Vorschriften in den Compliance-Anforderungen einzuhalten. Fehlen diese durch mangelnde Application Security drohen nicht nur Angriffe, sondern auch rechtliche Konsequenzen oder Bußgelder.
Was macht ein Application Security Anbieter?
Ein Anbieter von Application Security kümmert sich um den Schutz diverser Webanwendungen, um präventiv gegen Angriffe vorzugehen, Schwachstellen zu erkennen und Sicherheitslücken zu schließen. Insbesondere werden Codes und die Einhaltung der Branchenvorschriften überprüft. Eine regelmäßige Überwachung und das Updaten der Sicherheitstools stellen einen reibungslosen Ablauf und Gefahrenschutz sicher.
Welche Art von Sicherheitsbedrohungen betreffen Anwednungen?
Anwendungen können von verschiedenen Sicherheitsbedrohungen betroffen sein, darunter SQL-Injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), unsichere Authentifizierung und Autorisierung, sowie andere Formen von Angriffen auf die Sicherheit der Anwendung.
Footprint Technology als Experte in der Anwendungssicherheit
Wir sorgen in Ihrem Unternehmen für eine adäquate Anwendungssicherheit innerhalb Ihrer IT-Projekte. Von der Prävention hin zur Detektion und Reaktion kümmern wir uns um die Einhaltung aller Sicherheitsstandarts, sodass sie sorgenfrei Ihrem Alltagsgeschäft nachgehen können. Wir sind Ihr professioneller IT-Dienstleister.
IT-Beratung gewünscht?
Kontaktieren Sie uns unverbindlich unter +49 (0) 7972 – 9498100 oder über unser Kontaktformular.