Wstrzyknięcie kodu SQL

Cyberprzestępcy używają wstrzyknięć SQL, aby wykorzystać luki w oprogramowaniu aplikacji internetowych i uzyskać nieautoryzowany dostęp do poufnych i cennych danych.

.st0{fill:#0D3ECC;} POBIERZ MALWAREBYTES ZA DARMO

Także dla Windows, iOS, Android, Chromebook i Dla Biznesu

Co to jest atak SQL injection?

Możesz nie wiedzieć, co to jest atak SQL injection (SQLI) ani jak działa, ale na pewno słyszałeś o ofiarach. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn i Sony Pictures—to wszystko firmy, które zostały zhakowane przez cyberprzestępców za pomocą SQL injections.

SQLI to rodzaj ataku, w którym cyberprzestępcy wykorzystują luki w oprogramowaniu aplikacji webowych, aby kraść, usuwać lub modyfikować dane, albo uzyskać kontrolę administracyjną nad systemami, na których działają atakowane aplikacje.

Badacze ds. cyberbezpieczeństwa uznają SQLI za jedno z najmniej skomplikowanych zagrożeń cybernetycznych, które łatwo jest obronić. Malwarebytes Labs umieściło SQLI na trzecim miejscu w Najgłupsze Cyberzagrożenia, które mimo wszystko działają, podkreślając, że SQLI to znany, przewidywalny atak z łatwymi do wprowadzenia środkami zaradczymi.

Ataki SQLI są tak łatwe, że atakujący mogą znajdować podatne strony korzystając z zaawansowanych wyszukiwań Google, zwanych Google Dorking. Gdy znajdą odpowiedni cel, atakujący mogą użyć zautomatyzowanych programów, które efektywnie przeprowadzą dla nich atak. Wystarczy wpisać URL strony docelowej i patrzeć, jak kradzione dane napływają.

A jednak ataki SQLI są powszechne i dzieją się każdego dnia. W rzeczywistości, jeśli masz stronę internetową lub biznes on-line, cyberprzestępcy prawdopodobnie już próbowali włamać się na Twoją stronę przez SQLI. Badanie Ponemon Institute na temat zagrożeń SQL Injection & Ostatnich Naruszeń w Handlu Detalicznych wykazało, że 65% przebadanych firm padło ofiarą ataku opartego na SQLI.

Często atakowane aplikacje webowe to: strony społecznościowe, detaliści online oraz uniwersytety. Małe i średniej wielkości przedsiębiorstwa są szczególnie narażone, gdyż często nie znają technik używanych przez cyberprzestępców w ataku SQLI i tym samym nie wiedzą, jak się obronić przed takim atakiem.

Z tego względu zróbmy pierwsze kroki w obronie przed SQL injection, edukując się w tym temacie. Oto wprowadzenie do SQL injections.

"SQLI to rodzaj ataku, w którym cyberprzestępcy wykorzystują luki w oprogramowaniu aplikacji webowych, aby kraść, usuwać lub modyfikować dane, albo uzyskać kontrolę administracyjną nad systemami, na których działają atakowane aplikacje.”

Jak działa SQL injection?

Opracowany we wczesnych latach 70-tych SQL (skrót od Structured Query Language) jest jednym z najstarszych języków programowania nadal używanych do zarządzania bazami danych online. Te bazy danych zawierają takie informacje, jak ceny i poziomy zapasów w witrynach zakupów online. Gdy użytkownik musi uzyskać dostęp do informacji z bazy danych, SQL jest używany do uzyskiwania dostępu i prezentowania tych danych użytkownikowi. Jednak te bazy danych mogą również zawierać bardziej wrażliwe i cenne dane, takie jak nazwy użytkowników i hasła, informacje o kartach kredytowych i numery ubezpieczenia społecznego. W tym miejscu do gry wkraczają iniekcje SQL.

Krótkim opisem, SQL injection to sytuacja, gdy przestępcy komputerowi wprowadzają złośliwe polecenia do formularzy webowych, jak pole wyszukiwania, pole logowania lub URL, na niezabezpieczonej stronie, w celu nieautoryzowanego dostępu do wrażliwych i cennych danych.

Oto przykład. Wyobraź sobie, że wchodzisz na swoją ulubioną stronę sklepu internetowego z odzieżą. Szukasz skarpet i oglądasz świat technologii w jaskrawych kolorowych skarpetkach, wszystkie dostępne za kliknięciem myszy. Cuda technologii! Każda skarpetka, którą widzisz, istnieje w bazie danych na jakimś serwerze. Kiedy znajdujesz skarpetkę, która Ci się podoba, a klikniesz na nią, wysyłasz żądanie do bazy danych skarpetek, a strona zakupowa odpowiada danymi na temat skarpetki, którą kliknąłeś. Teraz wyobraź sobie, że Twoja ulubiona strona zakupowa jest zbudowana w sposób niedbały, pełna luk w zabezpieczeniach SQL.

Cyberprzestępca może manipulować zapytaniami do bazy danych w taki sposób, że prośba o informacje na temat pary skarpet zwraca numer karty kredytowej jakiegoś niefortunnego klienta. Powtarzając ten proces w kółko, cyberprzestępca może zagłębić się w bazę danych i wykraść poufne informacje o każdym kliencie, który kiedykolwiek robił zakupy w Twojej ulubionej internetowej witrynie odzieżowej - w tym o Tobie. Kontynuując eksperyment myślowy, wyobraź sobie, że jesteś właścicielem tej witryny odzieżowej. Masz do czynienia z ogromnym naruszeniem danych.

Jedna atak SQLI może dostarczyć cyberprzestępcom dane osobowe, e-maile, loginy, numery kart kredytowych i numery ubezpieczenia społecznego milionów konsumentów. Cyberprzestępcy mogą następnie sprzedać te dane osobowe na najciemniejszych zakątkach dark web, aby zostały użyte do wszelkiego rodzaju nielegalnych celów.

Skradzione wiadomości e-mail mogą być wykorzystywane do ataków phishingowych i malspamowych. Z kolei ataki malspamowe mogą być wykorzystywane do infekowania ofiar wszelkiego rodzaju destrukcyjnym złośliwym oprogramowaniem, takim jak ransomware, adware, cryptojackery i trojany (np. Emotet). Skradzione numery telefonów dla Android i iOS mogą być celem połączeń automatycznych i spamu w wiadomościach tekstowych.

Skradzione dane logowania z serwisów społecznościowych mogą być używane do wysyłania spamu i kradzieży kolejnych logowań do innych stron. Malwarebytes Labs wcześniej informowało o zhakowanych kontach LinkedIn, których używano do wysyłania wiadomości InMail ze złośliwymi linkami, które były fałszywie przedstawiane jako strona logowania do Google Docs, co pozwalało cyberprzestępcom na zdobycie nazw użytkowników i haseł Google.

„Cyberprzestępca może zmanipulować zapytania do bazy danych w taki sposób, że żądanie o informacje o parze skarpet zwraca numer karty kredytowej nieszczęsnego klienta.”

Jaka jest historia SQL injections?

Exploit SQL injection został po raz pierwszy udokumentowany w 1998 roku przez badacza cyberbezpieczeństwa i hakera hacker Jeffa Forristala. Jego odkrycia zostały opublikowane w długo działającym hacker zinie Phrack. Pisząc pod pseudonimem Rain Forest Puppy, Forristal wyjaśnił, w jaki sposób ktoś z podstawowymi umiejętnościami kodowania może podłączyć nieautoryzowane polecenia SQL do legalnych poleceń SQL i wyciągnąć poufne informacje z bazy danych niezabezpieczonej strony internetowej.

Kiedy Forristal powiadomił firmę Microsoft o tym, jak podatność wpływa na ich popularny produkt SQL Server, nie potraktowali tego jako problemu. Jak ujął to Forristal: „Według nich [Microsoft], to, co zamierzasz przeczytać, nie jest problemem, więc nie martw się robieniem czegokolwiek, by to powstrzymać.”

To, co sprawia, że brak reakcji Microsoftu jest szokujący, to fakt, że wiele branż i instytucji bardzo poważnie polegały (wtedy i teraz) na bazach danych tej firmy, by utrzymać swoje operacje, w tym handel detaliczny, edukacja, opieka zdrowotna, bankowość i zasoby ludzkie. To prowadzi nas do następnego wydarzenia w historii SQLI—pierwszego dużego ataku SQLI.

W 2007 roku największa sieć sklepów convenience w Stanach Zjednoczonych, 7-Eleven, padła ofiarą ataku SQLI. Rosyjscy hakerzy użyli SQL injection, aby włamać się na stronę internetową 7-Eleven i użyli tego jako skokowego punktu do bazy danych debetowych kart klienta sieci. To pozwoliło im potem wypłacać gotówkę w Rosji. Jak podało magazyn Wired, przestępcy zgarnęli w sumie dwa miliony dolarów.

Nie wszystkie ataki SQLI są motywowane chciwością. W innym godnym uwagi przykładzie z 2007 roku cyberprzestępcy użyli SQLI, aby uzyskać kontrolę administracyjną nad dwoma stronami związanymi z armią USA i przekierowali odwiedzających na strony z propagandą antyamerykańską i antyizraelską.

Wyciek danych z 2008 roku na MySpace należy do największych ataków na konsumencką stronę internetową. Cyberprzestępcy ukradli e-maile, nazwiska oraz częściowe hasła prawie 360 milionów kont. I to dlatego nie używamy tych samych haseł na różnych stronach.

Tytuł za najbardziej rażący brak bezpieczeństwa otrzymuje Equifax. Wyciek danych środkowej wielkości organizacji w 2017 roku ujawnił ekstremalnie osobiste informacje (tj. nazwiska, numery ubezpieczenia społecznego, daty urodzenia i adresy) dla 143 milionów konsumentów. W przypadku organizacji, która działa jako bramkarz informacji dla każdego Amerykanina, z wyjątkiem tych żyjących poza siecią, można pomyśleć, że podejmą środki ostrożności przeciwko podstawowemu atakowi SQLI. Jeszcze przed wyciekiem ostrzegano Equifax przez firmę badającą bezpieczeństwo IT, że są podatni na atak SQLI, ale biuro nie wzięło tego na poważnie aż było za późno.

Atak SQLI na producenta zabawek Vtech w 2015 roku doprowadził do naruszenia danych prawie pięciu milionów rodziców i 200 000 dzieci. W rozmowie z Motherboard, internetową publikacją multimedialną, odpowiedzialny hacker twierdził, że nie miał żadnych planów dotyczących danych i nie publikował ich nigdzie w Internecie. Z drugiej strony, hacker wyjaśnił również, że dane były bardzo łatwe do kradzieży i ktoś inny mógł się do nich dostać jako pierwszy. Rzeczywiście, zimne pocieszenie.

Przechodząc do dnia dzisiejszego, atak SQLI nadal jest aktualny. Co trzy lata Open Web Application Security Project (OWASP) sporządza ranking 10 Najbardziej Krytycznych Ryzykowych Zagadnień Bezpieczeństwa Aplikacji Webowych. W najnowszej edycji z 2017 roku atak SQLI znalazł się na miejscu pierwszym.

Poza długowiecznością ataku SQLI ciekawe jest, że ataki SQLI nie zmieniły się ani nie ewoluowały w żaden sposób. Ataki SQLI działają i będą działać, dopóki ludzie nie zmienią swojego podejścia do bezpieczeństwa IT. Bądź tą zmianą.

Aktualności na temat SQL injections

Jak SQL injections wpływają na moje przedsiębiorstwo?

Jak wynika z naszego raportu o Taktykach i Technikach Cyberprzestępczości, cyberataki (wszelkiego rodzaju) na firmy wzrosły o 55% w drugiej połowie 2018 roku, podczas gdy ataki na indywidualnych konsumentów wzrosły tylko o 4%. Statystyki nie są zaskakujące. Firmy z kiepskim bezpieczeństwem stanowią miękki cel dla przestępców, mając skarbnicę wartościowych danych wartych miliony.

Przeciwnie, firma będąca centrum naruszenia danych może spodziewać się wypłaty milionów. Badanie IBM wykazało, że średni koszt naruszenia danych, wliczając w to naprawę i kary, wynosi 3,86 miliona dolarów. Wcześniej wspomniany wyciek danych z LinkedIn kosztował sieć społecznościową 1,25 miliona dolarów w sprawie ugodowej poza sądem.

Po swoim wycieku danych, Target był zmuszony zapłacić największą sumę na rekordzie—18,5 miliona dolarów—aby zakończyć śledztwa prowadzone przez wiele stanów. To było dodatkowo do 10 milionów dolarów, które Target zapłacił, aby zakończyć pozew zbiorowy wytoczony przez konsumentów.

To prawda, że są to ogromne naruszenia danych, które dotknęły miliony konsumentów. Jednak małe i średnie firmy nadal mogą spodziewać się wypłaty 148 USD za każdy skradziony rekord konsumenta.

Morał z tej historii? Traktuj swoje bezpieczeństwo poważnie i unikaj bycia "Targetem" dla cyberprzestępców.

Jak mogę się chronić przed SQL injections?

Zostawiając na bok te wszystkie lamenty, jesteś tu, ponieważ wiesz, że SQL injections stanowią poważne zagrożenie. Teraz, zróbmy coś z tym. Oto kilka wskazówek, jak chronić swój biznes przed atakami SQL injection.

Zaktualizuj oprogramowanie do zarządzania bazą danych. Twoje oprogramowanie jest wadliwe, ponieważ pochodzi od producenta. To jest fakt. Nie ma czegoś takiego jak oprogramowanie wolne od błędów. Cyberprzestępcy mogą wykorzystać te luki w oprogramowaniu lub exploity za pomocą SQLI. Możesz się chronić, po prostu łatając i aktualizując oprogramowanie do zarządzania bazą danych.

Egzekwuj zasadę najmniejszych uprawnień (PoLP). PoLP oznacza, że każde konto posiada tylko tyle dostępu, ile potrzebuje do wykonania swojej pracy i nic więcej. Na przykład, konto webowe, które potrzebuje jedynie dostępu do odczytu danej bazy danych, nie powinno mieć możliwości zapisu, edycji ani zmiany danych w jakikolwiek sposób.

Używaj przygotowanych instrukcji lub procedur przechowywanych. W przeciwieństwie do dynamicznego SQL, przygotowane instrukcje ograniczają zmienne wchodzące w polecenia SQL. W ten sposób cyberprzestępcy nie mogą zamieszczać złośliwych SQL injections na legalnych instrukcjach SQL. Procedury przechowywane podobnie ograniczają to, co mogą zrobić cyberprzestępcy, przechowując instrukcje SQL w bazie danych, które są wykonywane przez użytkownika z poziomu aplikacji webowej.

Zatrudniać kompetentnych, doświadczonych programistów. SQLI attacks często wynikają z niestarannie napisanego kodu. Przekaż swoim programistom wcześniej, jakie masz oczekiwania dotyczące bezpieczeństwa.

Co zrobić, jeśli moje dane osobowe zostały skradzione w wyniku naruszenia danych? Powinieneś zapoznać się z naszym spisem kontrolnym wycieku danych. Tam dowiesz się wszystkiego o sprzątaniu i pozostaniu bezpiecznym po tym, jak naruszenie danych przez SQLI wpłynie na Ciebie.

Odwiedź OWASP. Open Web Application Security Project, w skrócie OWASP, to czołowy autorytet w dziedzinie aplikacji internetowych, który oferuje mnóstwo dodatkowych materiałów na temat jak zapobiegać atakom SQL injection.

A jeśli ciągle nie masz dość ataków SQL injection, zajrzyj na blog Malwarebytes Labs, aby poznać najnowsze wiadomości ze świata zagrożeń cybernetycznych i cyberbezpieczeństwa.