A hackerek szerte a világon minden nap új sebezhetőségeket fedeznek fel és használnak ki webhelyeken, alkalmazásokban, sőt a rendszerarchitektúrában is. Egy általános dolog minden elektronikus eszközben, legyen az régi vagy új, hogy azokat a memóriában tárolt programok futtatják. A hackerek kihasználták ezt, és puffertúlcsordulásként ismert sebezhetőséget találtak.

Bár nem újdonság, a puffertúlcsordulási támadások és sebezhetőségek pusztítást végeztek a kibertérben. Itt elmagyarázzuk Önnek, mik azok a puffertúlcsordulási támadások, és hogyan akadályozhatja meg őket.

A pufferek és a rendszermemória megértése

Ahhoz, hogy megértse, mi az a puffertúlcsordulási támadás, és hogyan működik, tudnia kell, mi az a puffer, és hogyan működik a számítógép memóriája.

Verem és kupac memória a számítógép memóriájának két fő jellemzője. Ezek memóriafoglaláshoz használt adatstruktúrák. Bár hasonlóak, a verem és a kupac memória különbözik többféle módon.

A verem, amely a Last-in, First-out (LIFO) koncepciót használja, a RAM-ban (random access memory) használatos. ideiglenesen tárolja a programvégrehajtásokat, miközben a kupac dinamikus allokációval hozzárendeli a memóriát a globálishoz változók. De az egyetlen közös bennük a puffer.

Mi az a puffer?

A puffer egy olyan memóriaterület, amelyet az adatok tárolására használnak, valószínűleg a számítógép RAM-jában, miközben az egyik helyről a másikra kerül. Ezek az adatok általában olyan programok, amelyeket végre kell hajtani. A pufferek a veremben vagy halomban tárolódnak. Optimalizálják az adatok végrehajtását.

Mi az a puffertúlcsordulás?

Puffertúlcsordulás akkor következik be, ha a puffer több adatot kap, mint amennyi a tárolókapacitása. Mivel nem képes ekkora adatmennyiséget feldolgozni, túlcsordul.

Most a számítógép memóriájában közvetlenül a puffer vagy a pufferterület után van egy visszatérési cím. Ezt a visszaküldési címet valójában kiterjesztett utasításmutatónak (EIP) nevezik. Feladata, hogy a számítógépet egy meghatározott programra irányítsa, amikor meg van töltve. Ha egy pufferben több adat van, mint amennyit elfér, és túlcsordul, akkor túlcsordul a visszatérési címre.

Ennek megértéséhez tegyük fel, hogy van egy pufferterülete, amely csak öt betűt tartalmaz. Tehát ha olyan szavakat ír be, mint a „cukor” vagy a „béke”, a pufferfolyam tartalmazhatja azt. De ha van egy olyan szó, mint „hitelesítés”, az elkerülhetetlenül átterjed. Ez hibához vagy összeomláshoz vezet a rendszerben. A hackerek azonban kihasználhatják ezt a biztonsági rést puffertúlcsordulási támadás indítására.

Mi az a puffertúlcsordulási támadás és hogyan működik?

Puffertúlcsordulási támadások akkor történnek, amikor a hacker átveszi az irányítást a visszatérési cím vagy az EIP felett. Ha a támadó ismeri a rendszer memóriájának méretét, szándékosan adatokat írhat a rendszerbe, hogy túlcsordítsa azt. Ezután megbizonyosodnak arról, hogy az EIP vagy visszatérési cím olyan programra van írva, amely hozzáférést biztosít számukra a rendszerhez, vagy felfedheti a rendszeren tárolt érzékeny információkat.

A támadó még olyan adatokat is írhat, amelyek rosszindulatú kódot tartalmaznak, és a puffer túlcsordulását okozhatják. Az EIP ezután megíródik, hogy visszairányítsa a rendszert a rosszindulatú kódhoz, és futni kell. Ezután a hacker átveszi a rendszer irányítását.

A puffertúlcsordulási támadásoknak öt fő lépése van:

  1. Spiking
  2. Elmosódott
  3. Az eltolás megtalálása
  4. Az EIP vagy visszaküldési cím felülírása
  5. A sebezhetőség kihasználása

A tüskézés az első lépés. Itt találják meg a hackerek a program memóriájának azt a részét, amely ki van téve a puffertúlcsordulásnak. Ezután jön a fuzzing, ami hasonló a spikinghez, de itt a hacker karaktereket küld a programnak, hátha feltörik. Ha sikeres, a támadó megkeresi az eltolást, ahol a puffer túlcsordult. Ez a puffer méretének és a visszatérési címnek a megismerése érdekében történik. Ezután a hacker beszúr egy rosszindulatú shell kódot, és irányítja a rendszert.

Melyek a puffertúlcsordulási támadások típusai?

A puffertúlcsordulási támadásoknak két fő típusa van: verem alapú és halom alapú támadás.

1. Stack-alapú puffertúlcsordulási támadások

A veremalapú puffertúlcsordulási támadások a puffertúlcsordulási támadások legnépszerűbb típusai. Ezek akkor fordulnak elő, amikor a rendszer veremmemóriáját túllépik és kihasználják. Veremverésnek is nevezik.

2. Halom alapú puffertúlcsordulási támadások

Az ilyen típusú veremtúlcsordulás nem túl gyakori, mivel nehéz megvalósítani és kihasználni. Ez akkor fordul elő, amikor a programhoz lefoglalt memória túlcsordul. 2021 januárjában a Google halomalapú puffertúlcsordulást fedezett fel sebezhetőség a Chrome V8-as összetevőjében.

Hogyan előzhető meg a puffertúlcsordulási támadások?

A puffertúlcsordulási támadások mérsékelhetők az operációs rendszer futásidejű védelmével, biztonságos programozási nyelvekkel, a címterek elrendezésének randomizálásával és általánosan megfelelő biztonsági intézkedésekkel.

1. OS Runtime Protection használata

A futásidejű védelmet futásidejű tömbhatárellenőrzésnek is nevezik. Ez biztosítja, hogy minden futó program a rendelkezésre álló pufferterületen vagy memórián belül legyen. És minden, a rendszer memóriájába írt adatot ellenőriz. Ez megnehezíti a hackerek számára, hogy felülírják az adatokat a rendszerbe, és kihasználják a biztonsági rést.

2. Biztonságos programozási nyelvek használata

Az olyan programozási nyelvek, mint a C és a C++, nem valósítják meg a futásidejű tömbhatárok ellenőrzését, mert extra kódra van szükség a rendszerbe írt összes program ellenőrzéséhez, és lelassítja azt. Ezért érzékenyebbek a puffertúlcsordulási támadásokra. A biztonságosabb nyelvek, például a C#, Java és Python használata jobb, mert kisebb a puffertúlcsordulási támadások kockázata.

3. Address Space Layout Randomization (ASLR) használata

Ez a biztonsági intézkedés véletlenszerűen rendeli hozzá a programok és funkciók címeit a rendszer memóriájában a különböző adatterületekhez. Ez megnehezíti a támadó számára a memória érzékeny funkciói között való navigálást.

4. Szigorú biztonsági szabályok betartása

Ez magában foglalja a rendszer rendszeres frissítését, a rendszerbe írt összes adat érvényesítését, és a legkevesebb jogosultság hozzárendelését a felhasználókhoz. A megfelelő biztonsági házirendekkel nem kell tartania a puffertúlcsordulási támadástól.

A biztonsági szigor megőrzése elengedhetetlen a puffertúlcsordulási támadások leküzdéséhez

A biztonság területén elterjedt mondás szerint "amíg egy rendszert az emberek használnak, addig létezik sebezhetőség", ami igaz és elkerülhetetlen. A támadás esélye azonban mindig csökkenthető, ha gondoskodunk a megfelelő biztonsági intézkedésekről és azok szigorú betartásáról.

Ne feledje, hogy a hackerek folyamatosan új módszereket találnak az ehhez hasonló biztonsági rések kihasználására. Ezért az Ön feladata, hogy megelőzze őket azáltal, hogy figyelemmel kíséri a kiberbiztonság terén elért legújabb fejleményeket.