Како хакери преузимају Веб локације помоћу СКЛ ињекције и ДДоС-а
Чак и ако сте само лабаво пратили догађаје хакерских група Анонимоус и ЛулзСец, вероватно сте чули да су веб сајтови и услуге хакирани, као што су злогласни Сони хакови. Да ли сте се икада запитали како то раде?
Постоје бројни алати и технике које ове групе користе, и иако не покушавамо да вам дамо приручник да то урадите сами, корисно је разумети шта се дешава. Два напада која доследно чујете о њима су: “(Дистрибутед) Дениал оф Сервице” (ДДоС) и “СКЛ Ињецтионс” (СКЛИ). Ево како они раде.
Имаге би ккцд
Дениал оф Сервице Аттацк
Шта је то?
"Одбијање услуге" (понекад названо "дистрибуирано ускраћивање услуга" или ДДоС) напад се дешава када систем, у овом случају веб сервер, прима толико захтјева у једном тренутку да су ресурси сервера преоптерећени, систем једноставно закључава и гаси се. Циљ и резултат успешног ДДоС напада је да сајтови на циљном серверу нису доступни за легитимне захтеве за саобраћај.
Како то функционише?
Логистика ДДоС напада може се најбоље објаснити примјером.
Замислите да се милион људи (нападачи) споји са циљем да ометају пословање компаније Кс, укидајући њихов позивни центар. Нападачи координирају тако да ће у уторак у 9 сати сви позвати телефонски број компаније Кс. Највјероватније, телефонски систем компаније Кс неће бити у могућности да обрађује милион позива одједном, тако да ће све долазне линије бити повезане са нападачима. Резултат је да легитимни позиви купаца (тј. Они који нису нападачи) не пролазе јер телефонски систем је везан за позиве нападача. Дакле, у суштини компанија Кс потенцијално губи посао због легитимних захтјева који нису у стању да прођу.
ДДоС напад на веб сервер ради на исти начин. Будући да практично не постоји начин да се сазна који се саобраћај добија из легитимних захтева наспрам нападача док веб сервер не обради захтев, овај тип напада је обично веома ефикасан.
Извршава напад
Због "бруталне силе" природе ДДоС напада, морате имати пуно компјутера који су сви координирани за напад у исто вријеме. Ревизијом нашег примера центра за позивање, ово би захтевало да сви нападачи знају да позову у 9 ујутру и да заиста позову у то време. Иако ће овај принцип сигурно радити када је у питању напад на веб сервер, постаје знатно лакше када се користе зомби рачунари, уместо стварних компјутера..
Као што вероватно знате, постоји много варијанти малваре-а и тројанаца који, једном на вашем систему, леже успавани и повремено „телефонирају кући“ за упутства. Једна од ових инструкција би, на пример, могла бити слање поновљених захтева веб серверу компаније Кс у 9 ујутру. Појединачни нападач може одмах да усклади стотине хиљада компромитованих рачунара како би извршио масиван ДДоС напад..
Лепота употребе зомби рачунара није само у њеној ефикасности, већ иу њеној анонимности, јер нападач заправо не мора да користи свој рачунар уопште да би извршио напад.
СКЛ Ињецтион Аттацк
Шта је то?
"СКЛ ињецтион" (СКЛИ) напад је експлоатација која користи предности слабих техника веб развоја и, обично у комбинацији са, неисправном сигурношћу базе података. Резултат успешног напада може да варира од опонашања корисничког налога до потпуног компромиса одговарајуће базе података или сервера. За разлику од ДДоС напада, СКЛИ напад је потпуно и лако могуће спријечити ако је веб апликација правилно програмирана.
Извршава напад
Кад год се пријавите на веб-локацију и унесете своје корисничко име и лозинку, да бисте тестирали своје вјеродајнице, веб апликација може покренути упит попут сљедеће:
СЕЛЕЦТ УсерИД ФРОМ Усерс ГДЈЕ је УсерНаме = "миусер" АНД Пассворд = "мипасс";
Напомена: вредности низа у СКЛ упиту морају бити затворене у појединачне наводнике, због чега се појављују око корисничких вредности.
Тако комбинација унесеног корисничког имена (миусер) и лозинке (мипасс) мора одговарати уносу у табели Усерс да би се вратио кориснички ИД. Ако нема подударања, не враћа се УсерИД тако да су акредитиви за пријаву неважећи. Иако се одређена имплементација може разликовати, механика је прилично стандардна.
Погледајмо сада упит за аутентификацију шаблона који можемо да заменимо вредностима које корисник унесе у веб образац:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "[корисник]" И Пассворд = "[пасс]"
На први поглед ово може изгледати као једноставан и логичан корак за лако проверавање корисника, али ако се на овом шаблону изврши једноставна замена корисничких вредности, он је подложан СКЛИ нападу.
На пример, претпоставимо да је „миусер'-“ унесено у поље за корисничко име и да је „пассвордпасс“ унесен у лозинку. Користећи једноставну замену у нашем упиту за предложак, добили бисмо следеће:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "миусер" - 'АНД Пассворд = "погрешка"
Кључ ове изјаве је укључивање двију цртица (-)
. Ово је почетни знак коментара за СКЛ изразе, тако да ће се све што се појави након две цртице (укључиво) занемарити. У суштини, горе наведени упит се извршава од стране базе података као:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "миусер"
Очигледан пропуст је недостатак провере лозинке. Укључивањем две цртице као део корисничког поља, потпуно смо заобишли услов за проверу лозинке и могли смо да се пријавимо као „миусер“ без познавања одговарајуће лозинке. Овај чин манипулације упитом да би се произвели нежељени резултати је СКЛ ињецтион напад.
Каква штета може бити учињена?
СКЛ ињекција је изазвана немарним и неодговорним кодирањем апликација и потпуно је онемогућено (што ћемо покрити у једном тренутку), међутим, степен оштећења који се може извршити зависи од подешавања базе података. Да би веб апликација комуницирала са позадинском базом података, апликација мора доставити пријаву у базу података (имајте на уму, ово се разликује од корисничке пријаве на саму веб локацију). У зависности од тога које дозволе захтева веб апликација, овај одговарајући налог базе података може захтевати било шта од дозволе за читање / писање у постојећим табелама само до пуног приступа бази података. Ако то сада није јасно, неколико примјера би требало да пружи неку јасноћу.
На основу горе наведеног примјера, то можете видјети уносом, на примјер, "иоурусер" - "," админ "-"
или било које друго корисничко име, можемо се одмах пријавити на сајт као тај корисник без познавања лозинке. Када смо у систему, не знамо да заправо нисмо тај корисник, тако да имамо потпуни приступ одговарајућем рачуну. Дозволе за базе података неће пружити сигурносну мрежу за ово, јер, обично, веб локација мора имати барем приступ за читање / писање у одговарајућу базу података.
Претпоставимо да веб страница има потпуну контролу над својом базом података која даје могућност брисања записа, додавања / уклањања таблица, додавања нових сигурносних рачуна, итд. Важно је напоменути да је неким веб апликацијама потребна таква врста дозволе, тако да није аутоматски лоша ствар која даје пуну контролу.
Да бисмо илустровали штету која се може урадити у овој ситуацији, користићемо пример наведен у комиксу тако што ћемо у поље за корисничко име унети следеће: "Роберт"; ДРОП ТАБЛЕ Усерс; - ".
Након једноставне замене, упит за аутентификацију постаје:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "Роберт"; Корисници корисника ДРОП ТАБЛЕ; - 'АНД Пассворд = "погрешан приступ"
Напомена: тачка-зарез је у СКЛ упиту који се користи за означавање краја одређене изјаве и почетак нове изјаве.
Која се извршава од стране базе података као:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "Роберт"
ДРОП ТАБЛЕ Корисници
Управо тако, користили смо СКЛИ напад да обришемо целу табелу корисника.
Наравно, много се гори може урадити јер, у зависности од дозвољених СКЛ дозвола, нападач може да промени вредности, табеле за депоновање (или целу базу података) у текстуалну датотеку, креира нове корисничке налоге или чак отима комплетну инсталацију базе података.
Спречавање СКЛ ињекционог напада
Као што смо раније поменули, СКЛ ињекција се лако може спречити. Једно од кардиналних правила за развој веба јесте да никада не слијепо вјерујете корисничком уносу као што смо то учинили када смо извршили једноставну замјену у нашем упиту предложака.
СКЛИ напад се лако спречава од онога што се зове санитизинг (или есцапинг) ваших улаза. Процес санације је уствари прилично тривијалан, јер све што он у суштини ради је да рукује било којим инлине појединачним знаковима (') на одговарајући начин, тако да се они не могу користити за превремено окончање низа унутар СКЛ израза.
На пример, ако сте желели да потражите “О'неил” у бази података, не бисте могли да користите једноставну замену зато што би један цитат после О изазвао прерано завршавање стринга. Уместо тога, дезинфикујте га помоћу одговарајућег бјекства. Претпоставимо да је знак за бекство за један инлине појединачни цитат префацинг сваки цитат са симболом. Дакле, "О'неал" би био дезинфициран као "О \ т.
Овај једноставан чин санације углавном спречава СКЛИ напад. Да илуструјемо, хајде да поново погледамо наше претходне примере и да видимо резултујуће упите када се унесе кориснички унет.
миусер '--
/ \ Т вронгпасс:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "миусер" - 'АНД Пассворд = "погрешна лозинка"
Због тога што је један цитат након уклањања миусер-а (што значи да се сматра делом циљне вредности), база података ће буквално тражити корисничко име "миусер" - ".
Поред тога, пошто су цртице укључене у вредност стринга, а не у сам СКЛ израз, оне ће се сматрати делом циљне вредности уместо да буду интерпретиране као СКЛ коментар.
Роберт '; ДРОП ТАБЛЕ Корисници;--
/ \ Т вронгпасс:
СЕЛЕЦТ УсерИД ФРОМ Усерс ВХЕРЕ Корисничко име = "Роберт"; Корисници корисника ДРОП ТАБЛЕ; - 'АНД Пассворд = "погрешан приступ"
Једноставним избором из једног цитата после Роберта, и тачка-зарез и цртице се налазе у оквиру за претрагу УсерНаме тако да база података буквално тражи "Роберт"; ДРОП ТАБЛЕ Усерс; - "
уместо извршавања табеле брисање.
Укратко
Док се веб напади развијају и постају софистициранији или се фокусирају на различиту тачку уласка, важно је запамтити да штите од покушаја и истинитих напада који су били инспирација за неколико слободно доступних “хакерских алата” дизајнираних да их искористе.
Одређени типови напада, као што је ДДоС, не могу се лако избећи, док други, као што је СКЛИ, могу. Међутим, штета која се може урадити овим врстама напада може да се креће од неугодности до катастрофалних зависности од предузетих мера предострожности.