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ásMiné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.