Web programozás

Versenyfeltételek biztonsági rései a webalkalmazásokban

Versenyfeltételek biztonsági rései a webalkalmazásokban
Ha a funkciók rögzített sorrendben történő kezelésére konfigurált webalkalmazás szükséges két vagy több művelet egyidejű végrehajtásához, akkor versenyfeltételes támadás következik be. Ez a technika kihasználja a szolgáltatás bevezetése és a biztonsági ellenőrzés bekövetkezése közötti időeltolódást. Ezt a támadást a kétféleképpen lehet végrehajtani, többszálú alkalmazásokon alapulva: nem megbízható folyamatok által okozott behatolás és egy megbízható folyamat okozta behatolás, amelynek azonos és egyenlő jogai lehetnek.

A különböző folyamatok megfelelő intézkedések nélkül kölcsönhatásba léphetnek egymással. Ezek a támadások úgy is ismertek, mint az Ellenőrzés ideje, a Használat ideje támadások vagy TOC / TOU támadások. A versenyfeltételek sérülékenységei elsősorban a fejlesztők által létrehozott alapvető programozási hibák miatt vannak ott, és ezek a hibák költségesnek bizonyultak. A rosszindulatú szervezetek rengeteg rosszindulatú célból használták ki a versenykörülményeket, azaz.e., az ingyenes utalványok megszerzésétől az online számláktól és befektetési vállalkozásoktól történő pénzrabláshoz.

Tegyük fel, hogy két párhuzamos végrehajtási szál megkísérli 5-tel növelni a globális változó értékét. Végül tehát a globális változó értéke 10 lenne. Ha azonban az összes szál egyidejűleg fut, akkor a végrehajtás helytelen lehet erőforrás-zárak vagy szinkronizálás nélkül. Amikor az első szál néhány manipulációt végez azzal a globális változóval, a második szál elolvassa és elkezd más manipulációkat végrehajtani. Ebben az esetben a végső érték nem a vártnak felel meg.

Ez azért fordul elő, mert az egyik szál befejezésének hatása a másik eredményétől függ. Ha a két szálat egyidejűleg hajtják végre, nem szándékos következményekkel jár.

A versenyfeltételek támadásainak köre:

Képzelje el, hogy a fenti példa két szála végrehajt egy kicsit kritikusabb dolgot, például pénzcserét bankszámlák között. A pénz helyes elküldéséhez a programnak ezeket a feladatokat ebben a sorrendben kell végrehajtania; Ellenőrizze, hogy van-e elegendő egyenleg a feladó számláján, adjon pénzt a fogadó számlájára, majd vonjon le a feladó számlájáról. De ha egyidejűleg két kérelmet nyújt be, akkor kiválthatja azt a feltételt, amelyben a szál végrehajtásának sorrendje megváltozik. Ilyen helyzetben a vártnál más összeggel fogsz végezni.

A versenyhelyzet sérülékenységét Egor Homakov találta meg a Starbucks weboldalán. Felfedezte a végtelen összegű hitel létrehozásának módját a Starbucks ajándékutalványon, ingyen, különböző böngészőkkel, különböző sütikkel.

A kiemelkedő Meltdown támadás a versenyfeltételek sérülékenységének egyik példája. Az összeomlási támadásban a gyengeséget a memóriából történő adatgyűjtés párhuzamos feldolgozása és annak hitelesítése váltja ki, hogy a felhasználó hozzáférhet-e a memóriához. Ez a hiba lehetővé teszi, hogy egy eszköz elkerülje a szokásos jogosultsági ellenőrzéseket, amelyek elválasztják a támadási mechanizmust az operációs rendszer adatainak elérésétől. Ez a kiskapu azt eredményezi, hogy minden illetéktelen folyamat lehetővé teszi az adatok és információk megtekintését a memória aktuális állapotához kapcsolódó bármely más címről. A hibás végrehajtás során a nem jóváhagyott címről érkező információk gyakran gyorsan a CPU gyorsítótárába kerülnek, ahonnan az információk visszaállíthatók.

Valós életű támadási forgatókönyvek:

Ha folyamatosan számos kérést nyújt be a webszerverhez, kereshet és manipulálhatja a versenyfeltételeket a webalkalmazásokban. Ha meg szeretné tudni, hogy a curl funkcióval több pénzt tud-e felvenni a bankszámlájánál, akkor egyszerre több kifizetési kérelmet is elküldhet a szervernek.

göndörítés (50000 visszavonás) & (50000 visszavonás) & (50000 visszavonás) & (50000 visszavonás) & 50000 visszavonás & 50000 visszavonás

Minél több igényt nyújt be rövid idő alatt, annál nagyobb az esélye, hogy a támadása működni fog.

Ezenkívül, ha aszinkron nyomon követési kéréseket küld, akkor többször is követni fogja a felhasználót, ahelyett, hogy hibaüzenetet küldene. én.e., ha hamis fejlécet tartalmaz, amely tartalmazza a (z)% s elemet, miközben a turbó behatoló használatával elveti a kérelmeket, és beilleszti a következő python kódot:

def followReqs (target, wordlists):
motor = RequestEngine (végpont = cél.végpont,
concurrentConnections = 40,
requestPerConnection = 100,
pipeline = Hamis
)
i-re a (40) tartományban:
motor.sor (cél.req, str (i), gate = 'check')
motor.openGate ('check')
motor.teljes (időkorlát = 60)
def responseHandle (req, érdekes):
asztal.add (req)

Megjelenik egy Attack gomb. Ennek megnyomása után a Turbo Intruder 40 lekérdezést küld és beolvassa az állapotkódokat. Ha több, a 201 Generált státuszú választ lát, ez azt jelzi, hogy többször követte az adott személyt.

Van egy versenyhelyzet-biztonsági rés, amelyben több, ingyenes fiókokhoz kínált konzolt érhet el. Az ingyenes konzolokat kínáló webhelyek többségének vannak ingyenes fiókjai, standard és prémium csomagjai. Az ingyenes fiókok felhasználónként csak 2 vagy 3 konzolt biztosítanak. Ennek a korlátnak a megsértéséhez és korlátlan konzolok használatához többször is be kell tolnia a GET kérést NULL hasznos terhelések használatával, például 100 vagy 200. Ezután törölje manuálisan az egyik konzolt a felhasználói felületről, miközben a szálak futnak.

Következtetés:

A hozzáférés-ellenőrzés aláásásának eszközeként szerepelnek a versenyfeltételek. Bármely program, amely a hozzáférés-ellenőrzés mechanizmusaitól függ, sebezhető lehet. A pénzintézetek weboldalain a hackerek legtöbbször kihasználják a versenykörülményeket. Mivel korlátlan anyagi előnyökhöz vezethet a hacker számára, ha versenyfeltételeket lehet felfedezni egy olyan létfontosságú jellemzőnél, mint a készpénzfelvétel, az átutalás vagy a hitelkártyás fizetés. Az e-kereskedelem platformjai, a videojátékok és az online szavazási szolgáltatások egyéb magas kockázatú technológiák. A biztonságos egyidejűség megvalósítása a versenyfeltételek elkerülésének titka. És használhat erőforrás-zárakat is. Ezenkívül beépül egy zárolási funkció a programozási nyelvek számára, amelyek párhuzamossági képességekkel segítenek megakadályozni az ilyen körülményeket. Ezenkívül a biztonságos kódolási szabványokat követve, i.e., A legkevesebb jogosultsági koncepció és az ellenőrzési kód csökkenti a program esélyeit a jogsértésekre.

Az OSD-fedvény megjelenítése teljes képernyős Linux-alkalmazásokban és játékokban
Teljes képernyős játékok lejátszása vagy alkalmazások figyelemelterelés nélküli, teljes képernyős módban történő használata elvághatja a panelen vagy ...
Az 5 legjobb játékrögzítő kártya
Mindannyian láttuk és szerettük a YouTube-on a streaming játékokat. A PewDiePie, a Jakesepticye és a Markiplier csak néhány a legnépszerűbb játékosok ...
Hogyan lehet játékot fejleszteni Linuxon
Egy évtizeddel ezelőtt nem sok Linux-felhasználó jósolta, hogy kedvenc operációs rendszerük egy napon a videojátékok népszerű játékplatformja lesz. El...