{"id":11291,"date":"2022-03-23T12:00:52","date_gmt":"2022-03-23T11:00:52","guid":{"rendered":"https:\/\/blog.rwth-aachen.de\/itc\/?p=11291"},"modified":"2022-03-18T15:40:36","modified_gmt":"2022-03-18T14:40:36","slug":"sql-injection","status":"publish","type":"post","link":"https:\/\/blog.rwth-aachen.de\/itc\/2022\/03\/23\/sql-injection\/","title":{"rendered":"SQL-Injection: Angriffe auf Datenbanken"},"content":{"rendered":"<div class=\"twoclick_social_bookmarks_post_11291 social_share_privacy clearfix 1.6.4 locale-de_DE sprite-de_DE\"><\/div><div class=\"twoclick-js\"><script type=\"text\/javascript\">\/* <![CDATA[ *\/\njQuery(document).ready(function($){if($('.twoclick_social_bookmarks_post_11291')){$('.twoclick_social_bookmarks_post_11291').socialSharePrivacy({\"txt_help\":\"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter, Flattr, Xing, t3n, LinkedIn, Pinterest oder Google eventuell ins Ausland \\u00fcbertragen und unter Umst\\u00e4nden auch dort gespeichert. N\\u00e4heres erfahren Sie durch einen Klick auf das <em>i<\\\/em>.\",\"settings_perma\":\"Dauerhaft aktivieren und Daten\\u00fcber-tragung zustimmen:\",\"info_link\":\"http:\\\/\\\/www.heise.de\\\/ct\\\/artikel\\\/2-Klicks-fuer-mehr-Datenschutz-1333879.html\",\"uri\":\"https:\\\/\\\/blog.rwth-aachen.de\\\/itc\\\/2022\\\/03\\\/23\\\/sql-injection\\\/\",\"post_id\":11291,\"post_title_referrer_track\":\"SQL-Injection%3A+Angriffe+auf+Datenbanken\",\"display_infobox\":\"on\"});}});\n\/* ]]> *\/<\/script><\/div><p><div id=\"attachment_11292\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11292\" class=\"wp-image-11292 size-medium\" src=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920-300x200.jpg\" alt=\"Medizinische Spritze\" width=\"300\" height=\"200\" srcset=\"https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920-300x200.jpg 300w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920-1024x683.jpg 1024w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920-768x512.jpg 768w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920-1536x1024.jpg 1536w, https:\/\/blog.rwth-aachen.de\/itc\/files\/2022\/03\/medical-g589d2d0e1_1920.jpg 1920w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-11292\" class=\"wp-caption-text\">Quelle: <a href=\"https:\/\/pixabay.com\/de\/photos\/medizinisch-spritze-impfung-nadel-5835701\/\">Pixabay<\/a><\/p><\/div><\/p>\n<p>Datenbanksysteme sind in vielerlei Hinsicht unverzichtbar. Diese Systeme erm\u00f6glichen es, gro\u00dfe Datenmengen zu ordnen, langfristig zu speichern und abzurufen. Das Einsatzfeld von Datenbanksystemen ist immens und die Menge an darin gespeicherten personenbezogenen Daten ebenso. So werden beispielsweise bei Banken und Versicherungen Kontoinformationen und Informationen bez\u00fcglich Buchungsvorg\u00e4ngen in Datenbanken strukturiert und gespeichert. Bei jeder Produktsuche in einem Webshop greifen wir auf eine bestimmte Datenbank zu und auch unsere personenbezogene Daten, wie beispielsweise Anmeldedaten werden in Datenbanken gespeichert. Dabei werden sensible Daten im besten Fall verschl\u00fcsselt. Der Aufwand f\u00fcr den Aufbau und die Pflege dieser elektronischen Datenbest\u00e4nde ist gro\u00df &#8211; doch die gr\u00f6\u00dfte Herausforderung ist es, ihre Sicherheit zu gew\u00e4hrleisten. Eine der gr\u00f6\u00dften Bedrohungen f\u00fcr diese Datenbanken und die darin enthaltenen Daten sind sogenannte Code-Injections.<!--more--><\/p>\n<h4>Was ist Code Injection?<\/h4>\n<p>Einfach ausgedr\u00fcckt versteht man unter Code-Injection das Einschleusen von einem b\u00f6sartigem Code in eine Software, der die Funktion dieser Anwendung negativ beeinflusst. Durch diesen in die Software eingebrachten Code, k\u00f6nnen die Sicherheit, die Integrit\u00e4t und die Funktionsweise der Anwendung gest\u00f6rt werden.<\/p>\n<p>Zu den bekanntesten Formen der Code-Injection geh\u00f6rt die sogenannte SQL-Injection (SQLI), bei der die Eingabe \u00fcber die Sprache SQL (= Structured Query Language) erfolgt. SQL wird inzwischen als Standardsprache f\u00fcr Datenbankmanagement genutzt. Datenbankeintr\u00e4ge k\u00f6nnen \u00fcber sogenannte SQL-Abfragen erfasst, gelesen und gel\u00f6scht werden. Greift eine Website zum Beispiel auf ihre Datenbank zu, um Informationen zu finden oder zu bearbeiten, wird SQL verwendet, um diese Abfrage zu verarbeiten. In der Praxis kann das zum Beispiel wie folgt ablaufen: Nutzende besuchen einen Webshop. Sie kommunizieren mittels einer Produktsuchmaske in diesem Webshop mit einem Server. Der Server fragt dann eine Datenbank ab und gibt letztendlich die Ergebnisse als Suchergebnisse an den Webshop zur\u00fcck.<\/p>\n<p>Genau \u00fcber diesen Weg k\u00f6nnen Datenbanken anf\u00e4llig f\u00fcr Code-Injections sein. Statt eines herk\u00f6mmlichen Suchbegriffs in das Eingabefeld einzugeben, geben Angreifer*innen SQL-Befehle ein.<\/p>\n<h4>Wie funktioniert SQL-Injection?<\/h4>\n<p>Zahlreiche Websites erfassen Personeneingaben \u00fcber Eingabefelder in der Web-Oberfl\u00e4che und leiten sie an ihre Server weiter. Das passiert zum Beispiel, wenn Nutzer*innen ein Suchfeld auf einer Website nutzen, sich registrieren, Profilinformationen oder ihre E-Mail-Adresse in einem Feld angeben. Auch Kommentarfelder, Felder eines Web-Formulars oder Felder f\u00fcr Kund*innenbewertungen sind solche Eingabefelder. Hacker*innen k\u00f6nnen versuchen, verschiedene SQL-Codes in diese Eingabefelder einzugeben und versuchen, \u00fcber diesen Weg in die Datenbank der Website einzudringen. <a href=\"https:\/\/www.php.net\/manual\/de\/security.database.sql-injection.php\">Konkrete Beispiele<\/a> zeigen, wie durch SQLI Superuser angelegt werden und Passw\u00f6rter ausgelesen oder zur\u00fcckgesetzt werden k\u00f6nnen.<\/p>\n<p>Jede Anwendung, die diese Eingaben nicht pr\u00fcft, ist anf\u00e4llig f\u00fcr Code-Injektion. Ohne Pr\u00fcfung k\u00f6nnte ein SQL-Code direkt als Befehl weitergeleitet und im eigentlichen Code eingeschleust werden. Einmal eingeschleust kann dieser Code die vom System ausgef\u00fchrten Befehle beeinflussen. So w\u00e4re es beispielsweise m\u00f6glich, Informationen unerlaubt auszulesen, zu ver\u00e4ndern oder zu l\u00f6schen.<\/p>\n<h4>Was sind die Auswirkungen von SQL-Injection?<\/h4>\n<p>Injection-Angriffe richten sich gegen Server und Anwendungen mit freiem Zugang f\u00fcr jede*n Internetnutzer*in. Auf dieser Weise sind besonders Unternehmen und Organisationen eine direkte Zielscheibe f\u00fcr Cyberkriminelle. F\u00fcr betroffene Unternehmen und Organisationen lauert ein breites Spektrum an Bedrohungen. Bei vielen SQLI-Angriffen werden Daten gestohlen. Diese Daten k\u00f6nnen nicht nur Kund*inneninformationen beinhalten, sondern auch Gesch\u00e4ftsgeheimnisse oder geistiges Eigentum. Diese Daten k\u00f6nnen dann in manchen F\u00e4llen sogar dazu dienen, in andere Bereiche der IT-infrastruktur einzudringen.<\/p>\n<p>Auch die Ver\u00e4nderung oder L\u00f6schung von Daten in einer Datenbank, kann bereits eine Menge Chaos stiften und ein Unternehmen oder eine Organisation leicht destabilisieren. Nicht zu untersch\u00e4tzen sind f\u00fcr Unternehmen und Organisationen ebenfalls Image-Sch\u00e4den. Werden Sicherheitsl\u00fccken und personenbezogene Daten erstmal \u00f6ffentlich gemacht, kann es sehr schwierig sein, das Vertrauen der Kund*innen und der \u00d6ffentlichkeit wiederzugewinnen.<\/p>\n<p>Doch auch f\u00fcr Privatpersonen k\u00f6nnen die Auswirkungen eines solchen Angriffs gravierende Auswirkungen haben. Wenn Nutzer*innen eine Website nutzen, die Ziel eines solches Angriffs geworden ist, sind ihre pers\u00f6nlichen Daten nicht mehr sicher. Datendiebstahl kann f\u00fcr Betroffene im schlimmsten Fall zu finanziellen Sch\u00e4den und Identit\u00e4tsdiebstahl f\u00fchren.<\/p>\n<h4>Wie k\u00f6nnen Code Injections verhindert werden?<\/h4>\n<p>Da sich Injection-Angriffe gegen Server und Anwendungen richten, k\u00f6nnen Nutzer*innen selbst diese Angriffe nicht verhindern. Grunds\u00e4tzlich sollten Nutzer*innen beim Umgang mit personenbezogenen Daten im Internet sparsam und mit Bedacht vorgehen. Je mehr Daten wir im Internet preisgeben, desto angreifbarer werden wir. In erster Linie sollten Anwendungsentwickler*innen die Risiken kennen und ihre Anwendungen dementsprechend sch\u00fctzen. Jede*r Entwickler*in oder Serveradministrator*in sollte die eigenen Systeme regelm\u00e4\u00dfig auf Schwachstellen hin \u00fcberpr\u00fcfen und diese so schnell wie m\u00f6glich korrigieren.<\/p>\n<p>Im Optimalfall sollte jede Eingabe in die Web-Oberfl\u00e4che vom System gepr\u00fcft und gegebenenfalls bereinigt werden. Durch spezielle Ma\u00dfnahmen kann sichergestellt werden, dass Eingaben nicht als Befehle \u00fcbernommen werden. Das bedeutet, dass zum Beispiel ungew\u00f6hnliche Zeichen, die auf Manipulationen hindeuten, blockiert werden. Die erlaubten Eingaben k\u00f6nnen ebenfalls auf ihr Format und ihre L\u00e4nge gepr\u00fcft und eingegrenzt werden. Wenn das Format der Eingabe dem Format eines SQL-Befehls zu sehr \u00e4hnelt, wird die Eingabe nicht weitergeleitet. Auch die Menge an erlaubten Zeichen kann eingegrenzt werden. Ein allbekanntes Beispiel daf\u00fcr sind Eingabefelder f\u00fcr Benutzernamen, bei denen die Nutzung bestimmter Sonderzeichen, verhindert wird. Einer der Gr\u00fcnde daf\u00fcr ist, dass diese Sonderzeichen Sonderfunktionen in SQL besitzen.<\/p>\n<p>Code-Injections k\u00f6nnen eine Menge \u00c4rger verursachen. Wenn eine Anwendung nicht ausreichend gegen Injection-Angriffe gesch\u00fctzt ist, k\u00f6nnen diese Angriffe v\u00f6llig automatisiert ablaufen. Jedes einzelne Eingabefeld einer Anwendung kann dabei von Cyberkriminellen gescannt und auf Schwachstellen getestet werden. Bei einem erfolgreichen Angriff k\u00f6nnen die Konsequenzen schwerwiegend sein. Gegen SQLI-Angriffe sind Nutzer*innen leider machtlos. Anwendungsentwickler*innen sollten sich der Gefahr von SQLI-Angriffen stets bewusst sein und ihre Systeme von Angriffen sch\u00fctzen. Scanns und Schwachstellenanalysen sind auch als pr\u00e4ventive Ma\u00dfnahme unumg\u00e4nglich. So k\u00f6nnen Schwachstellen zeitnah aufgedeckt und behoben werden.<\/p>\n<p>&nbsp;<\/p>\n<p>Verantwortlich f\u00fcr die Inhalte dieses Beitrags ist <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/IT-Center\/IT-Center\/Team\/~epvp\/Mitarbeiter-CAMPUS-\/?gguid=0x2C5E1B0A3DA32A45AB293A42E93EEC07&amp;allou=1\">St\u00e9phanie Bauens<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Datenbanksysteme sind in vielerlei Hinsicht unverzichtbar. Diese Systeme erm\u00f6glichen es, gro\u00dfe Datenmengen zu ordnen, langfristig zu speichern und abzurufen. Das Einsatzfeld von Datenbanksystemen ist immens und die Menge an darin [&hellip;]<\/p>\n","protected":false},"author":1859,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"c2c_always_allow_admin_comments":false,"footnotes":""},"categories":[314],"tags":[333,336,335,61,149,334],"class_list":["post-11291","post","type-post","status-publish","format-standard","hentry","category-it-sicherheit","tag-code-injection","tag-cyberkriminalitaet","tag-datenbank","tag-it-sicherheit","tag-safetyfirst","tag-sql"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/11291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/users\/1859"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/comments?post=11291"}],"version-history":[{"count":1,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/11291\/revisions"}],"predecessor-version":[{"id":11293,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/posts\/11291\/revisions\/11293"}],"wp:attachment":[{"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/media?parent=11291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/categories?post=11291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/itc\/wp-json\/wp\/v2\/tags?post=11291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}