Czym jest atak typu SQL injection?
Być może nie wiesz, czym jest atak SQL injection (SQLI) i jak działa, ale z pewnością znasz jego ofiary. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn i Sony Pictures - wszystkie te firmy zostały zhakowane przez cyberprzestępców za pomocą wstrzyknięć SQL.
SQLI to rodzaj ataku, w którym cyberprzestępcy wykorzystują luki w oprogramowaniu aplikacji internetowych w celu kradzieży, usuwania lub modyfikowania danych lub uzyskania kontroli administracyjnej nad systemami, na których działają zaatakowane aplikacje.
Badacze cyberbezpieczeństwa uważają SQLI za jedno z najmniej wyrafinowanych, łatwych do obrony cyberzagrożeń. Malwarebytes Labs umieścił SQLI na trzecim miejscu w rankingu The Top 5 Dumbest Cyber Threats that Work Anyway, powołując się na fakt, że SQLI jest znanym, przewidywalnym atakiem z łatwymi do wdrożenia środkami zaradczymi.
Ataki SQLI są tak łatwe, że atakujący mogą znaleźć podatne strony internetowe za pomocą zaawansowanego wyszukiwania w Google, zwanego Google Dorking. Po znalezieniu odpowiedniego celu, atakujący SQLI mogą użyć zautomatyzowanych programów, aby skutecznie przeprowadzić atak za nich. Wszystko, co muszą zrobić, to wprowadzić adres URL strony docelowej i obserwować, jak skradzione dane napływają.
A jednak ataki SQLI są powszechne i zdarzają się każdego dnia. W rzeczywistości, jeśli masz stronę internetową lub firmę online, cyberprzestępcy prawdopodobnie próbowali już włamać się do Twojej witryny za pomocą SQLI. Jedno z badań przeprowadzonych przez Ponemon Institute na temat zagrożenia SQL Injection i ostatnich naruszeń w handlu detalicznym wykazało, że 65% ankietowanych firm padło ofiarą ataku opartego na SQLI.
Do często atakowanych aplikacji internetowych należą: portale społecznościowe, sklepy internetowe i uniwersytety. Małe i średnie firmy są szczególnie narażone, ponieważ często nie znają technik stosowanych przez cyberprzestępców w ataku SQLI, a także nie wiedzą, jak się przed takim atakiem bronić.
W związku z tym zróbmy pierwszy krok w obronie przed wstrzyknięciem SQL, edukując się na ten temat. Oto podstawowe informacje na temat iniekcji SQL.
Jak działa wstrzyknięcie kodu SQL?
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.
Mówiąc prościej, wstrzyknięcie kodu SQL ma miejsce, gdy hakerzy wprowadzają złośliwe polecenia do formularzy internetowych, takich jak pole wyszukiwania, pole logowania lub adres URL niezabezpieczonej witryny internetowej, aby uzyskać nieautoryzowany dostęp do wrażliwych i cennych danych.
Oto przykład. Wyobraź sobie, że wchodzisz na swoją ulubioną stronę internetową z odzieżą. Kupujesz skarpetki i patrzysz na świat Technicolor kolorowych skarpetek, wszystkie dostępne za jednym 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 i klikasz na nią, wysyłasz zapytanie do bazy danych skarpetek, a strona zakupów odpowiada informacjami na temat klikniętej skarpetki. Teraz wyobraź sobie, że Twoja ulubiona witryna zakupów online jest skonstruowana w sposób niechlujny, pełen luk w zabezpieczeniach SQL, które można wykorzystać.
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.
Jeden atak SQLI może przynieść 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 w najbardziej mrocznych zakątkach ciemnej sieci, aby wykorzystać je 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 urządzeń mobilnych iOS mogą być celem połączeń automatycznych i spamu w wiadomościach tekstowych.
Skradzione loginy z portali społecznościowych mogą być nawet wykorzystywane do wysyłania spamu i kradzieży jeszcze większej liczby loginów do dodatkowych witryn. Malwarebytes Labs Wcześniej informowaliśmy o zhakowanych kontach LinkedIn wykorzystywanych do spamowania innych użytkowników wiadomościami InMail zawierającymi fałszywe adresy URL sfałszowane tak, aby wyglądały jak strona logowania do Dokumentów Google, za pomocą której cyberprzestępcy mogli zbierać nazwy użytkowników i hasła Google.
Jaka jest historia iniekcji SQL?
Exploit SQL injection został po raz pierwszy udokumentowany w 1998 roku przez badacza cyberbezpieczeństwa i hakera Jeffa Forristala. Jego odkrycia zostały opublikowane w długo działającym hakerskim 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ł Microsoft o tym, jak luka wpłynęła na ich popularny produkt SQL Server, firma nie uznała tego za problem. Jak to ujął Forristal: "Według nich [Microsoftu] to, co zaraz przeczytasz, nie jest problemem, więc nie martw się o zrobienie czegokolwiek, aby to powstrzymać".
To, co sprawia, że bezczynna reakcja Microsoftu jest tak szokująca, to fakt, że wiele branż i instytucji poważnie polegało (wtedy i teraz) na technologii zarządzania bazami danych firmy, aby utrzymać swoją działalność, w tym handel detaliczny, edukację, opiekę zdrowotną, bankowość i zasoby ludzkie. To prowadzi nas do kolejnego wydarzenia na osi czasu historii SQLI - pierwszego poważnego ataku SQLI.
W 2007 roku największa sieć sklepów spożywczych w Stanach Zjednoczonych, 7-Eleven, padła ofiarą ataku SQLI. Rosyjscy hakerzy wykorzystali wstrzyknięcia SQL, aby włamać się na stronę internetową 7-Eleven i użyć jej jako odskoczni do bazy danych kart debetowych klientów sklepu. Pozwoliło to hakerom na wypłatę gotówki z powrotem do domu w Rosji. Jak donosi magazyn Wired, winowajcy wzbogacili się o dwa miliony dolarów.
Nie wszystkie ataki SQLI są motywowane chciwością. W innym godnym uwagi przykładzie z 2007 r. cyberprzestępcy wykorzystali SQLI do przejęcia kontroli administracyjnej nad dwiema stronami internetowymi związanymi z armią amerykańską i przekierowali odwiedzających na strony z antyamerykańską i antyizraelską propagandą.
Naruszenie danych MySpace w 2008 roku jest jednym z największych ataków na stronę internetową dla konsumentów. Cyberprzestępcy wykradli e-maile, imiona i nazwiska oraz częściowe hasła do prawie 360 milionów kont. Właśnie dlatego nie używamy ponownie haseł z jednej witryny do drugiej.
Tytuł najbardziej rażącego braku bezpieczeństwa przypada firmie Equifax. Naruszenie danych Equifax w 2017 r. doprowadziło do wycieku niezwykle osobistych informacji (tj. nazwisk, numerów ubezpieczenia społecznego, dat urodzenia i adresów) 143 milionów konsumentów. Dla organizacji, która działa jako strażnik informacji dla każdego Amerykanina, z wyjątkiem tych żyjących poza siecią, można by pomyśleć, że podejmie środki ostrożności przed podstawowym atakiem SQLI. Zanim doszło do naruszenia danych, firma badawcza zajmująca się cyberbezpieczeństwem ostrzegła nawet Equifax, że są one podatne na atak SQLI, ale biuro kredytowe nie podjęło żadnych działań, dopóki nie 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 haker twierdził, że nie miał żadnych planów dotyczących danych i nie publikował ich nigdzie w Internecie. Z drugiej strony, haker 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 jest nadal aktualny. Co trzy lata Open Web Application Security Project (OWASP) sporządza ranking 10 najbardziej krytycznych zagrożeń dla aplikacji internetowych Security . W najnowszej edycji z 2017 r. atak SQLI zajął pierwsze miejsce.
Oprócz długowieczności ataku SQLI, interesujące jest to, ż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 cyberbezpieczeństwa. Niech to będzie zmiana.
Wiadomości na temat iniekcji SQL
- Czym jest honeypot? Jak są wykorzystywane w cyberbezpieczeństwie
- Wywiad z łowcą pluskiew: Youssef Sammouda
- Przewodnik po atakach zero-day w 2020 roku: Najnowsze ataki i zaawansowane techniki prewencyjne
- Luki w finansowych aplikacjach mobilnych narażają konsumentów i firmy na ryzyko
- Jak zabezpieczyć system zarządzania treścią
- Wyjaśnienie: Wstrzyknięcie kodu SQL
- OWASP top ten - Nudne zabezpieczenia, które się opłacają
- 5 najgłupszych cyberzagrożeń, które i tak działają
Jak iniekcje SQL wpływają na moją firmę?
Jak podano w naszym raporcie dotyczącym taktyk i technik cyberprzestępczych, cyberataki (wszelkiego rodzaju) na firmy wzrosły o 55% w drugiej połowie 2018 r., podczas gdy ataki na indywidualnych konsumentów wzrosły tylko o 4%. Statystyki te nie są zaskakujące. Firmy z kiepskimi zabezpieczeniami stanowią dla przestępców miękki cel, przechowujący skarbnicę cennych danych wartych miliony.
I odwrotnie, firma będąca w centrum naruszenia danych może spodziewać się wypłaty milionów. Badanie IBM wykazało, że średni koszt naruszenia danych, w tym działań naprawczych i kar, wynosi 3,86 miliona dolarów. Wspomniane wcześniej naruszenie danych w LinkedIn kosztowało serwis sieci biznesowych 1,25 miliona dolarów w ramach ugody pozasądowej.
Po naruszeniu danych Target został zmuszony do zapłacenia największej kwoty w historii - 18,5 miliona dolarów - w celu uregulowania dochodzeń wszczętych przez wiele stanów. Było to dodatkiem do 10 milionów dolarów, które Target zapłacił w celu rozstrzygnięcia pozwu zbiorowego wniesionego 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 "celem" dla cyberprzestępców.
Jak mogę chronić się przed iniekcjami SQL?
Pomijając to wszystko, jesteś tutaj, ponieważ wiesz, że iniekcje SQL są poważnym zagrożeniem. Teraz zróbmy coś z tym. Oto kilka wskazówek dotyczących ochrony firmy 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.
Egzekwowanie zasady najmniejszych uprawnień (PoLP). PoLP oznacza, że każde konto ma wystarczający dostęp do wykonywania swojej pracy i nic więcej. Na przykład konto internetowe, które potrzebuje tylko dostępu do odczytu do danej bazy danych, nie powinno mieć możliwości zapisu, edycji lub zmiany danych w jakikolwiek sposób.
Używaj przygotowanych instrukcji lub procedur składowanych. W przeciwieństwie do dynamicznego SQL, przygotowane instrukcje ograniczają zmienne w przychodzących poleceniach SQL. W ten sposób cyberprzestępcy nie mogą wstrzykiwać złośliwego kodu SQL do legalnych instrukcji SQL. Procedury składowane podobnie ograniczają możliwości cyberprzestępców poprzez przechowywanie instrukcji SQL w bazie danych, które są wykonywane z poziomu aplikacji internetowej przez użytkownika.
Zatrudniaj kompetentnych, doświadczonych programistów. Ataki SQLI często wynikają z niechlujnego kodowania. Poinformuj twórców oprogramowania z wyprzedzeniem, czego oczekujesz w zakresie bezpieczeństwa.
Co zrobić, jeśli moje dane osobowe zostały skradzione w wyniku naruszenia bezpieczeństwa danych? Powinieneś zapoznać się z naszą listą kontrolną dotyczącą naruszenia danych. Dowiesz się tam wszystkiego o sprzątaniu i zachowaniu bezpieczeństwa po naruszeniu danych w wyniku ataku SQLI.
Odwiedź OWASP. Open Web Application Security Project, w skrócie OWASP, jest wiodącym autorytetem w dziedzinie aplikacji internetowych i oferuje wiele dodatkowych informacji na temat zapobiegania wstrzyknięciom SQL.
A jeśli po prostu nie masz dość wstrzykiwania kodu SQL w swoim życiu, odwiedź blogMalwarebytes Labs , aby poznać wszystkie najnowsze wydarzenia w świecie cyberzagrożeń i cyberbezpieczeństwa.