9 Populárne typy útokov na vstrekovanie webových aplikácií

Problém s webovými aplikáciami je v tom, že sú otvorene vystavené miliardám používateľov internetu, z ktorých mnohé budú chcieť prerušiť svoje bezpečnostné opatrenia – z akýchkoľvek dôvodov..


V prvých dňoch internetu bola jednou z najbežnejších metód útoku jednoduchá hrubá sila. Bots zvyčajne tieto útoky vykonávali – alebo u osôb s dostatkom voľna -, ktoré vyskúšali zillióny kombinácií užívateľských mien a hesiel, kým nenájdu ten, ktorý by umožnil prístup k cieľovej aplikácii..

Útoky hrubou silou už nie sú hrozbou, a to vďaka politike hesiel, obmedzeným pokusom o prihlásenie a captchas. Počítačoví zločinci však radi objavujú nové výhody a využívajú ich na vykonávanie nových typov útokov. Už dávno zistili, že textové polia na aplikáciách alebo na webových stránkach sa dajú využiť vložením alebo vstreknutím neočakávaného textu, ktorý by prinútil aplikáciu urobiť niečo, čo nemal robiť. Týmto spôsobom vstúpili na scénu tzv. Injekčné útoky.

Injekčné útoky sa môžu použiť nielen na prihlásenie do aplikácie bez znalosti používateľského mena a hesla, ale aj na odhalenie súkromných, dôverných alebo citlivých informácií alebo dokonca na ukradnutie celého servera. Preto tieto útoky nepredstavujú len hrozbu pre webové aplikácie, ale aj pre používateľov, ktorých údaje sa nachádzajú v týchto aplikáciách av najhoršom prípade pre ďalšie pripojené aplikácie a služby..

Vstrekovanie kódu

Vstrekovanie kódu je jedným z najbežnejších typov injekčných útokov. Ak útočníci poznajú programovací jazyk, rámec, databázu alebo operačný systém používaný webovou aplikáciou, môžu vložiť kód pomocou polí na zadávanie textu, aby prinútili webový server urobiť, čo chcú..

Tieto typy injekčných útokov sú možné v aplikáciách, ktorým chýba validácia vstupných údajov. Ak pole pre zadávanie textu umožňuje používateľom zadať, čo chcú, je aplikácia potenciálne využiteľná. Aby sa predišlo týmto útokom, musí aplikácia obmedziť čo najviac vstupov, ktorým môžu používatelia vstupovať.

Napríklad musí obmedziť množstvo očakávaných údajov, skontrolovať formát údajov pred ich prijatím a obmedziť množinu povolených znakov..

Zraniteľné miesta s vložením kódu možno ľahko nájsť, a to iba testovaním textového vstupu webovej aplikácie s rôznymi typmi obsahu. Ak sa zistia zraniteľné miesta, je ťažké ich zneužiť. Ak sa však útočníkovi podarí využiť jednu z týchto zraniteľností, môže to mať za následok stratu dôvernosti, integrity, dostupnosti alebo funkčnosti aplikácie..

SQL vstrekovanie

Podobne ako pri vkladaní kódu, tento útok vkladá do poľa na zadávanie textu skript SQL – jazyk, ktorý používa väčšina databáz na vykonávanie operácií dotazov. Skript sa odošle do aplikácie, ktorá ho vykoná priamo vo svojej databáze. V dôsledku toho by mohol útočník prejsť prihlasovacou obrazovkou alebo robiť nebezpečnejšie veci, napríklad čítať citlivé údaje priamo z databázy, upravovať alebo ničiť databázové údaje alebo vykonávať administračné operácie v databáze..

PHP a ASP aplikácie sú náchylné k SQL injekčným útokom kvôli starším funkčným rozhraniam. Aplikácie J2EE a ASP.Net sú zvyčajne chránené pred týmito útokmi. Ak sa nájde zraniteľnosť injekcie SQL – a dajú sa ľahko nájsť – rozsah potenciálnych útokov bude obmedzený iba zručnosťou a predstavivosťou útočníka. Dopad SQL injekčného útoku je teda nepochybne vysoký.

Príkazová injekcia

Tieto útoky sú tiež možné, hlavne kvôli nedostatočnej validácii vstupov. Líšia sa od útokov na vstrekovanie kódu tým, že útočník vkladá systémové príkazy namiesto častí programovacieho kódu alebo skriptov. Preto hacker nemusí poznať programovací jazyk, v ktorom je aplikácia založená, ani jazyk používaný v databáze. Potrebujú však poznať operačný systém, ktorý používa hostingový server.

Vložené systémové príkazy vykonáva hostiteľský operačný systém s privilégiami aplikácie, ktoré by mohli umožniť odhalenie obsahu ľubovoľných súborov nachádzajúcich sa na serveri, okrem iného na zobrazenie adresárovej štruktúry servera, na zmenu hesiel používateľov..

Týmto útokom môže zabrániť správca systému tým, že obmedzí úroveň prístupu k webovým aplikáciám bežiacim na serveri.

Skriptovanie naprieč stránkami

Kedykoľvek aplikácia vloží vstup od používateľa do výstupu, ktorý generuje, bez toho, aby ho validovala alebo kódovala, dáva útočníkovi príležitosť poslať škodlivý kód inému koncovému používateľovi. Útoky na viacerých stránkach (XSS) využívajú tieto príležitosti na vloženie škodlivých skriptov na dôveryhodné webové stránky, ktoré sa nakoniec odosielajú ostatným používateľom aplikácie, ktorá sa stáva obeťou útočníka..

Prehliadač obetí vykoná škodlivý skript bez toho, aby vedel, že mu nemožno dôverovať. Prehliadač mu preto umožní prístup k tokenom relácií, súborom cookie alebo citlivým informáciám uloženým v prehliadači. Ak sú skripty správne naprogramované, môžu dokonca prepísať obsah súboru HTML.

Útoky XSS sa všeobecne dajú rozdeliť do dvoch rôznych kategórií: uložené a odrazené.

v uložený Útoky XSS, škodlivý skript sa trvalo nachádza na cieľovom serveri, vo fóre správ, v databáze, v denníku návštev atď. Obeť ho dostane, keď si jeho prehliadač vyžiada uložené informácie. v odráža Pri útokoch XSS sa škodlivý skript odráža v odpovedi, ktorá obsahuje vstup odoslaný na server. Môže to byť napríklad chybové hlásenie alebo výsledok vyhľadávania.

XPath injekcia

Tento typ útoku je možný, keď webová aplikácia použije informácie poskytnuté používateľom na vytvorenie dotazu XPath pre údaje XML. Spôsob, akým tieto útoky fungujú, je podobný vstrekovaniu SQL: útočníci posielajú do aplikácie chybné informácie, aby zistili, ako sú údaje XML štruktúrované, a potom znova zaútočia, aby získali prístup k týmto údajom.

XPath je štandardný jazyk, pomocou ktorého môžete, podobne ako SQL, špecifikovať atribúty, ktoré chcete nájsť. Na vykonanie dotazu na údaje XML webové aplikácie používajú vstup používateľa na nastavenie vzoru, ktorý by sa údaje mali zhodovať. Odoslaním chybného vstupu sa vzor môže zmeniť na operáciu, ktorú chce útočník použiť na údaje.

Na rozdiel od toho, čo sa stane s SQL, v XPath neexistujú žiadne odlišné verzie. To znamená, že injekciu XPath je možné vykonať v akejkoľvek webovej aplikácii, ktorá používa údaje XML, bez ohľadu na implementáciu. To tiež znamená, že útok možno automatizovať; preto, na rozdiel od SQL injection, má potenciál byť vystrelený proti svojvoľnému počtu cieľov.

Injekcia príkazového e-mailu

Túto metódu útoku je možné využiť na využívanie e-mailových serverov a aplikácií, ktoré vytvárajú príkazy IMAP alebo SMTP s nesprávne overeným vstupom používateľa. Servery IMAP a SMTP občas nemajú silnú ochranu proti útokom, ako by to bolo v prípade väčšiny webových serverov, a preto by mohli byť viac využiteľné. Pri vstupe cez poštový server by sa útočníci mohli vyhnúť obmedzeniam, ako sú captchas, obmedzený počet žiadostí atď.

Aby útočníci mohli využívať server SMTP, potrebujú platný e-mailový účet na odosielanie správ pomocou injektovaných príkazov. Ak je server zraniteľný, bude reagovať na požiadavky útočníkov, čo im umožní napríklad potlačiť obmedzenia servera a využívať jeho služby na odosielanie spamu.

Injekciu IMAP je možné vykonávať hlavne na webových poštových aplikáciách využívajúcich funkciu čítania správ. V týchto prípadoch sa útok môže vykonať jednoduchým zadaním adresy URL s adresovanými príkazmi do adresného riadku webového prehľadávača..

Injekcia CRLF

Vkladanie znakov návratu do riadku a znaku posunu o riadok – kombinácia známej ako CRLF – do vstupných polí webového formulára predstavuje metódu útoku nazývanú injekcia CRLF. Tieto neviditeľné znaky označujú koniec riadku alebo koniec príkazu v mnohých tradičných internetových protokoloch, ako napríklad HTTP, MIME alebo NNTP..

Napríklad vloženie CRLF do požiadavky HTTP nasledované určitým HTML kódom by mohlo poslať vlastné webové stránky návštevníkom webových stránok..

Tento útok je možné vykonať na zraniteľných webových aplikáciách, ktoré na vstup používateľa nepoužívajú správne filtrovanie. Táto zraniteľnosť otvára dvere ďalším typom injekčných útokov, ako sú XSS a vstrekovanie kódu, a mohla by sa odvodiť aj z ukradnutia webovej stránky..

Injekcia hlavičky hostiteľa

Na serveroch, ktoré sú hostiteľmi mnohých webových stránok alebo webových aplikácií, sa hlavička hostiteľa stáva nevyhnutnou na určenie, ktoré z rezidentných webových stránok alebo webových aplikácií – z ktorých sú známe ako virtuálny hostiteľ – by mali spracovať prichádzajúcu požiadavku. Hodnota záhlavia hovorí serveru, na ktorý z virtuálnych hostiteľov má odoslať požiadavku. Keď server dostane neplatnú hlavičku hostiteľa, zvyčajne ju odovzdá prvému virtuálnemu hostiteľovi v zozname. To predstavuje zraniteľnosť, ktorú môžu útočníci použiť na odoslanie ľubovoľných hlavičiek hostiteľa do prvého virtuálneho hostiteľa na serveri.

Manipulácia hlavičky hostiteľa sa bežne týka aplikácií PHP, hoci sa dá vykonať aj pomocou iných technológií vývoja webových aplikácií. Útoky hlavičky hostiteľa fungujú ako aktivátory pre iné typy útokov, ako je napríklad otrava webovou vyrovnávacou pamäťou. Jeho následky môžu zahŕňať vykonanie citlivých operácií útočníkmi, napríklad obnovenie hesla.

Injekcia LDAP

LDAP je protokol navrhnutý na uľahčenie vyhľadávania zdrojov (zariadení, súborov, iných používateľov) v sieti. Je to veľmi užitočné pre intranety a ak sa používa ako súčasť systému jednotného prihlásenia, môže sa použiť na ukladanie používateľských mien a hesiel. Dotazy LDAP zahŕňajú použitie špeciálnych riadiacich znakov, ktoré ovplyvňujú jeho riadenie. Útočníci môžu potenciálne zmeniť zamýšľané správanie dotazu LDAP, ak do neho môžu vložiť kontrolné znaky.

Hlavným problémom, ktorý umožňuje útoky na injekciu LDAP, je opäť nesprávne overený vstup používateľa. Ak sa text, ktorý užívateľ pošle do aplikácie, použije ako súčasť dotazu LDAP bez toho, aby ho dezinfikoval, dopyt by mohol skončiť načítaním zoznamu všetkých používateľov a jeho zobrazením útočníkovi iba pomocou hviezdičky (*) vpravo vložte do vstupného reťazca.

Prevencia injekčných útokov

Ako sme videli v tomto článku, všetky injekčné útoky smerujú na servery a aplikácie s otvoreným prístupom k akémukoľvek používateľovi internetu. Zodpovednosť za predchádzanie týmto útokom je rozdelená medzi vývojárov aplikácií a správcov serverov.

Vývojári aplikácií musia poznať riziká spojené s nesprávnou validáciou vstupu používateľa a naučiť sa osvedčené postupy na dezinfekciu vstupu používateľa na účely predchádzania rizikám. Správcovia serverov musia pravidelne auditovať svoje systémy, aby zistili zraniteľné miesta a opravili ich čo najskôr. Existuje veľa možností na vykonanie týchto auditov, buď na požiadanie alebo automaticky.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map