Programovanie webu

Zraniteľnosť v oblasti pretekov vo webových aplikáciách

Zraniteľnosť v oblasti pretekov vo webových aplikáciách
Keď je webová aplikácia nakonfigurovaná na správu funkcií v pevnom poradí vyžadovaná na súčasné vykonávanie dvoch alebo viacerých operácií, dôjde k útoku na závod. Táto technika využíva časové oneskorenie medzi zavedením služby a uskutočnením bezpečnostnej kontroly. Tento útok môže byť vykonaný jedným z dvoch spôsobov založených na viacvláknových aplikáciách: vniknutie do nedôveryhodných procesov a vniknutie do dôveryhodného procesu, ktorý môže mať rovnaké a rovnaké práva.

Rôzne procesy môžu vzájomne pôsobiť bez primeraných opatrení. Tieto útoky sú tiež známe ako útoky typu Time of Check, Time of Use alebo TOC / TOU. Zraniteľnosť medzi rasami je tu na prvom mieste v dôsledku základných programovacích chýb, ktoré vývojári zvyčajne vytvárajú, a tieto zlyhania sa ukázali ako nákladné. Škodlivé subjekty využívali rasové podmienky na množstvo škodlivých účelov, t.e., od získania poukazov zadarmo na okrádanie peňazí z online účtov a investičných spoločností.

Predpokladajme, že dve vlákna paralelného vykonávania sa pokúsia zvýšiť hodnotu globálnej premennej o 5. Nakoniec by teda globálna premenná mala hodnotu 10. Ak však všetky vlákna bežia súčasne, vykonávanie môže byť nesprávne bez zámkov prostriedkov alebo synchronizácie. Keď prvé vlákno robí nejaké manipulácie s touto globálnou premennou, druhé vlákno to načíta a začne robiť nejaké ďalšie manipulácie. V takom prípade by konečná hodnota nebola taká, ako sa očakávalo.

K tomu dochádza, pretože účinok ukončenia jedného vlákna závisí od výsledku druhého. Ak sa tieto dve vlákna vykonajú súčasne, budú to mať neželané následky.

Rozsah útokov na závodné podmienky:

Predstavte si, že všetko, čo je trochu kritickejšie, vykonávajú dve vlákna vyššie uvedeného príkladu, napríklad výmena peňazí medzi bankovými účtami. Aby bolo možné peniaze poslať správne, program bude musieť vykonať tieto úlohy v tomto poradí; Skontrolujte, či je na účte odosielateľa dostatočný zostatok, pridajte peniaze na účet príjemcu a potom odpočítajte z účtu odosielateľa. Ale ak súčasne zadáte dve požiadavky, môžete byť schopní spustiť stav, v ktorom sa zmení poradie vykonávania vlákna. V takejto situácii skončíte s inou sumou, ako ste čakali.

Zraniteľnosť podmienok závodu zistil Egor Homakov na webe Starbucks. Objavil spôsob, ako vytvoriť nekonečné množstvo kreditu na darčekové poukážky Starbucks zadarmo pomocou rôznych prehliadačov s rôznymi súbormi cookie.

Prominentný útok Meltdown je príkladom zraniteľnosti rasy. Pri útoku tavenia je slabosť vyvolaná paralelným spracovaním získavania údajov z pamäte a autentifikáciou toho, či má užívateľ prístup do pamäte alebo nie. Táto chyba umožňuje nástroju vyhnúť sa štandardným kontrolám privilégií, ktoré oddeľujú mechanizmus útoku od prístupu k údajom OS. Táto medzera vedie k tomu, že umožňuje neautorizovanému procesu prezerať údaje a informácie z akejkoľvek inej adresy spojenej so stavom aktuálneho pokroku v pamäti. V procese chybného vykonávania sa informácie z neschválenej adresy často rýchlo uložia do medzipamäte CPU, z ktorej sa dajú informácie získať.

Realizačné scenáre útoku:

Neustálym odosielaním mnohých požiadaviek na webový server môžete prehľadávať a manipulovať s rasovými podmienkami vo webových aplikáciách. Ak chcete zistiť, či môžete alebo nemôžete vybrať viac peňazí, ako máte na svojom bankovom účte, pomocou funkcie zvlnenia môžete súčasne odoslať niekoľko žiadostí o výber na server.

zvlnenie (výber 50000) & (výber 50000) & (výber 50000) & (výber 50000) & (výber 50000) & (výber 50000)

Čím viac požiadaviek zadáte v krátkom čase, tým vyššia je šanca, že váš útok bude fungovať.

Ak navyše pošlete asynchrónne následné žiadosti, budete namiesto odosielania chybových odpovedí sledovať používateľa niekoľkokrát. Ja.e., ak pridáte falošnú hlavičku obsahujúcu% s pri vypúšťaní požiadaviek pomocou turbo votrelca a prilepíte nasledujúci kód pythonu:

def followReqs (cieľ, zoznamy slov):
engine = RequestEngine (koncový bod = cieľ.koncový bod,
concurrentConnections = 40,
requestsPerConnection = 100,
pipeline = False
)
pre i v rozsahu (40):
motor.poradie (cieľ.req, str (i), gate = 'check')
motor.openGate ('skontrolovať')
motor.dokončené (časový limit = 60)
def responseHandle (požiadavka, zaujímavé):
stôl.pridať (požiadavka)

Uvidíte tlačidlo Attack. Po jeho stlačení Turbo Intruder zadá 40 otázok a naskenuje stavové kódy. Ak vidíte viac odpovedí so stavom 201 Generované, znamená to, že ste osobu sledovali viackrát.

Existuje zraniteľnosť rasy, v ktorej máte prístup k viacerým konzolám ponúkaným k bezplatným účtom. Väčšina webov, ktoré poskytujú bezplatné konzoly, má účty zadarmo, štandardné a prémiové balíčky. Bezplatné účty poskytujú iba 2 alebo 3 konzoly na používateľa. Ak chcete tento limit prelomiť a používať neobmedzené množstvo konzol, narušte požiadavku GET pomocou NULL užitočných dát viackrát, napríklad 100 alebo 200. A potom ktorúkoľvek z konzol ručne odstráňte z používateľského rozhrania, kým sú vlákna spustené.

Záver:

Ako prostriedok na podlomenie kontroly prístupu sú zahrnuté závodné podmienky. Každý program závislý na mechanizmoch kontroly prístupu môže byť zraniteľný. Hackeri väčšinou na webových stránkach finančných inštitúcií využívajú rasové podmienky. Pretože by to mohlo viesť k neobmedzeným finančným výhodám pre hackera, ak by sa podarilo zistiť stav rasy na dôležitej funkcii, ako je výber hotovosti, prevod peňazí alebo platba kreditnou kartou. Platformy elektronického obchodu, videohry a hlasovacie služby online sú ďalšie vysoko rizikové technológie. Zaistenie bezpečnej súbežnosti je tajomstvom vyhýbania sa závodným podmienkam. A môžete tiež použiť zámky zdrojov. Zabudovaná bude tiež funkcia uzamykania programovacích jazykov so schopnosťami súbežnosti, ktoré pomáhajú takýmto podmienkam predchádzať. Okrem toho sa pri dodržiavaní štandardov bezpečného kódovania, t.j.e., koncepcia najmenších privilégií a kontrolný kód zníži pravdepodobnosť porušenia programu.

Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...