Web-programmering

Sårbarheder i løbetilstand i webapplikationer

Sårbarheder i løbetilstand i webapplikationer
Når det kræves, at en webapplikation, der er konfigureret til at styre funktioner i en fast sekvens, til at udføre to eller flere operationer samtidigt, opstår der et angreb på race-tilstand. Denne teknik udnytter en tidsforsinkelse mellem når en service introduceres, og når en sikkerhedskontrol finder sted. Dette angreb kan udføres på en af ​​de to måder, baseret på multitrådede applikationer: indtrængen af ​​ikke-tillid til processer og indtrængen af ​​en pålidelig proces, der kunne have de samme og lige rettigheder.

Forskellige processer kan interagere med hinanden uden passende foranstaltninger. Disse angreb er også kendt som Time of Check-angreb, Time of Use-angreb eller TOC / TOU-angreb. Sårbarheder i løbetilstand er tilfældigvis i første omgang på grund af grundlæggende programmeringsfejl, som udviklere normalt opretter, og disse fejl har vist sig at være dyre. Ondsindede enheder har udnyttet raceforhold til masser af ondsindede formål, dvs.e., fra at få gratis kuponer til at rane penge fra online-konti og investeringsselskaber.

Lad os antage, at to parallelle udførelsestråde forsøger at hæve en global variabels værdi med 5. I sidste ende ville den globale variabel have en værdi på 10. Men hvis alle tråde kører samtidigt, kan udførelsen være forkert uden ressourcelåse eller synkronisering. Når den første tråd udfører nogle manipulationer af den globale variabel, læser den anden tråd den og begynder at udføre nogle andre manipulationer. I dette tilfælde vil den endelige værdi ikke være som forventet.

Dette sker, da effekten af ​​den ene trådafslutning afhænger af resultatet af den anden. Når de to tråde udføres samtidigt, vil der være utilsigtede konsekvenser.

Omfanget af race-tilstandsangreb:

Forestil dig at noget lidt mere kritisk udføres af de to tråde i ovenstående eksempel, som at udveksle penge mellem bankkonti. For at sende pengene korrekt skal programmet udføre disse opgaver i denne rækkefølge; Kontroller, om der er nok saldo på afsenderens konto, tilføj penge til modtagerens konto, og træk derefter fra afsenderens konto. Men hvis du samtidig indsender to anmodninger, kan du muligvis udløse en tilstand, hvor sekvensen af ​​trådudførelse ændres. I en situation som denne ender du med et andet beløb end forventet.

Sårbarhed i løbetilstand blev fundet af Egor Homakov på Starbucks-webstedet. Han opdagede en måde at oprette en uendelig mængde kredit på Starbucks gavekort gratis ved hjælp af forskellige browsere med forskellige cookies.

Det fremtrædende Meltdown-angreb er et eksempel på sårbarhed i race-tilstand. I meltdown-angrebet udløses svagheden ved parallel behandling af datahentning fra hukommelsen og godkendelse af, om en bruger har adgang til hukommelsen eller ej. Denne fejl gør det muligt for et værktøj at undgå standardprivilegekontrol, der adskiller angrebsmekanismen fra adgang til OS-data. Dette smuthul resulterer i, at enhver uautoriseret proces kan se data og information fra enhver anden adresse, der er forbundet med den aktuelle status i hukommelsen. I processen med forkert udførelse stables oplysninger fra en ikke-godkendt adresse ofte hurtigt i cachen på CPU'en, hvorfra informationen kan gendannes.

Virkelige angrebsscenarier:

Ved løbende at sende flere anmodninger til webserveren kan du søge og manipulere raceforhold i webapplikationer. Hvis du vil se, om du kan trække flere penge, end du har på din bankkonto, ved hjælp af curl-funktionen, kan du samtidig sende flere anmodninger om hævning til serveren.

curl (træk 50000) & (træk 50000) & (træk 50000) & (træk 50000) & (træk 50000) & (træk 50000)

Jo flere krav du indgiver på kort tid, jo større er chancerne for, at dit angreb fungerer.

Hvis du desuden sender asynkrone opfølgningsanmodninger, vil du følge en bruger flere gange i stedet for at sende et fejlsvar. jeg.e., hvis du tilføjer en falsk overskrift, der indeholder% s, mens du dropper anmodninger ved hjælp af turbo-ubuden gæst og indsætter følgende pythonkode:

def followReqs (mål, ordlister):
engine = RequestEngine (endpoint = target.slutpunkt,
concurrentConnections = 40,
requestsPerConnection = 100,
rørledning = Falsk
)
for jeg inden for rækkevidde (40):
motor.kø (mål.req, str (i), gate = 'check')
motor.openGate ('check')
motor.komplet (timeout = 60)
def responseHandle (req, interessant):
bord.tilføj (req)

Du vil se en Attack-knap. Efter at have trykket på det, sender Turbo Intruder 40 forespørgsler og scanner statuskoderne. Hvis du ser flere svar med 201 genereret status, angiver det flere gange, at du har fulgt personen.

Der er en race-sårbarhed, hvor du kan få adgang til flere konsoller, der tilbydes til gratis konti. De fleste af de websteder, der leverer gratis konsoller, har gratis konti, standard- og premiumpakker. Gratis konti giver kun 2 eller 3 konsoller pr. Bruger. For at bryde denne grænse og bruge ubegrænset konsoller, træng ind på GET-anmodningen ved hjælp af NULL-nyttelast flere gange, som 100 eller 200. Slet derefter en af ​​konsolerne manuelt fra brugergrænsefladen, mens tråde kører.

Konklusion:

Som et middel til at underminere adgangskontrol er race betingelser inkluderet. Ethvert program, der er afhængigt af adgangskontrolmekanismer, kan være sårbart. For det meste udnytter hackere på finansielle institutioners websteder raceforhold. Da det kan føre til ubegrænsede økonomiske fordele for hackeren, hvis en race-tilstand kunne blive opdaget på en vital funktion såsom kontantudtag, pengeoverførsel eller kreditkortbetaling. E-handelsplatforme, videospil og onlinestemmetjenester er andre højrisikoteknologier. Implementering af sikker samtidighed er hemmeligheden bag at undgå racingforhold. Og du kan også bruge ressourcelåse. Der vil også være en indbygget låsefunktion til programmeringssprog med samtidige evner, der hjælper med at forhindre sådanne forhold. Derudover følger følgende sikre kodningsstandarder, i.e., mindste privilegiekoncept og revisionskode mindsker programmets chance for at overtræde.

Mus Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Brug af en mus eller et tastatur i den forkerte kropsholdning af overdreven brug kan resultere i mange sundhedsmæssige problemer, herunder stamme, kar...
Mus Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
I de senere år har computere og operativsystemer udviklet sig meget. Der var et tidspunkt, hvor brugerne skulle bruge kommandoer til at navigere genne...
Mus Styr og administrer musebevægelse mellem flere skærme i Windows 10
Styr og administrer musebevægelse mellem flere skærme i Windows 10
Dual Display Mouse Manager lader dig kontrollere og konfigurere musebevægelse mellem flere skærme ved at bremse dens bevægelser nær grænsen. Windows 1...