obfuscation

mi az obfuscation?

az elhomályosítás azt jelenti, hogy valamit nehéz megérteni. A programozási kódot gyakran elhomályosítják a szellemi tulajdon vagy az üzleti titkok védelme, valamint annak megakadályozása érdekében, hogy a támadó visszafejtsen egy saját szoftvert.

a program kódjának egy részének vagy egészének titkosítása egy ködösítési módszer. Más megközelítések közé tartozik a potenciálisan felfedő metaadatok eltávolítása, az osztály-és változónevek helyettesítése értelmetlen címkékkel, valamint fel nem használt vagy értelmetlen kód hozzáadása egy alkalmazás szkripthez. Az obfuscator nevű eszköz automatikusan konvertálja az egyszerű forráskódot egy olyan programba, amely ugyanúgy működik, de nehezebb olvasni és megérteni.

sajnos a rosszindulatú kódírók is használják ezeket a módszereket, hogy megakadályozzák a támadási mechanizmusaikat a kártevőirtó eszközök által. A 2020-as SolarWinds támadás egy példa arra, hogy a hackerek ködösítést használnak a védekezés elkerülésére.

Deobfuscation technikákat lehet használni, hogy visszafejteni-vagy visszavonni-ködösítés. Ezek a technikák magukban foglalják a programszeletelést, amely magában foglalja a programkód szűkítését a program egy adott pontján lévő releváns állításokra. A fordító optimalizálása és a program szintézise két másik deobfuscation technika. Az Obfuscation célja, hogy megnehezítse a visszafejtést, és ne érje meg a fáradságot.

hogyan működik az obfuscation?

az Obfuscation a számítógépes kódban összetett körforgalmi kifejezéseket és redundáns logikát használ, hogy megnehezítse a kód megértését az olvasó számára. A cél az, hogy elvonja az olvasó figyelmét az olvasott bonyolult szintaxisával, és megnehezítse számukra az üzenet valódi tartalmának meghatározását.

számítógépes kóddal az olvasó lehet személy, számítástechnikai eszköz vagy más program. Az Obfuscation-t arra is használják, hogy megtévessze a víruskereső eszközöket és más programokat, amelyek nagymértékben támaszkodnak a digitális aláírásokra a kód értelmezéséhez. Decompilers állnak rendelkezésre nyelvek, mint a Java, operációs rendszerek, mint az Android és iOS, és a fejlesztési platformok, mint a. NET. ők automatikusan visszafejteni forráskód; obfuscation célja, hogy megnehezítse ezeket a programokat, hogy nem a decompiling is.

a Kódfejtés nem a program eredeti kódjának tartalmának megváltoztatásáról szól, hanem arról, hogy a kód kézbesítési módját és bemutatását még zavarosabbá tegye. Az Obfuscation nem változtatja meg a program működését vagy a végkimenetét.

az alábbiakban egy példa a normál JavaScript kódrészletére:

var greeting = 'Hello World';greeting = 10;var product = greeting * greeting;

ugyanez a kódrészlet zavaros formában így néz ki:

var _0x154f=;var _0x52df=function(_0x159d61,_0x12b953){_0x159d61=_0x159d61-0x122;var _0x154f4b=_0x154f;return _0x154f4b;};(function(_0x19e682,_0x2b7215){var _0x5e377c=_0x52df;while(!!){try{var _0x2d3a87=-parseInt(_0x5e377c(0x129))*parseInt(_0x5e377c(0x123))+-parseInt(_0x5e377c(0x125))*parseInt(_0x5e377c(0x12e))+parseInt(_0x5e377c(0x127))*-parseInt(_0x5e377c(0x126))+-parseInt(_0x5e377c(0x124))*-parseInt(_0x5e377c(0x12f))+-parseInt(_0x5e377c(0x128))*-parseInt(_0x5e377c(0x12b))+parseInt(_0x5e377c(0x12a))*parseInt(_0x5e377c(0x12d))+parseInt(_0x5e377c(0x12c))*parseInt(_0x5e377c(0x122));if(_0x2d3a87===_0x2b7215)break;else _0x19e682(_0x19e682());}catch(_0x22c179){_0x19e682(_0x19e682());}}}(_0x154f,0x1918c));var greeting='Hello\x20World';greeting=0xa;var product=greeting*greeting;

a zavaros verziót szinte lehetetlen követni az emberi szem segítségével.

Obfuscation technikák

az Obfuscation számos különböző módszert tartalmaz. Gyakran több technikát alkalmaznak réteges hatás létrehozására.

a lefordított szoftvernyelveken írt programokat, mint például a C# és a Java, könnyebben el lehet homályosítani. Ennek oka az, hogy középszintű utasításokat hoznak létre, amelyek általában könnyebben olvashatók. Ezzel szemben a C++ – t nehezebb elhomályosítani, mert gépi kódra fordít, amivel az emberek nehezebben tudnak dolgozni.

néhány általános ködösítési technika a következőket tartalmazza:

  • átnevezés. Az obfuscator megváltoztatja a változók metódusait és neveit. Az új nevek nem nyomtatható vagy láthatatlan karaktereket tartalmazhatnak.
  • csomagolás. Ez tömöríti az egész programot, hogy a kód olvashatatlanná váljon.
  • vezérlő áramlás. A dekompilált kód úgy néz ki, mint a spagetti logika, amely strukturálatlan és nehéz fenntartani a kódot, ahol a gondolatvonal elhomályosul. Ennek a kódnak az eredményei nem egyértelműek, és nehéz megmondani, hogy mi a kód lényege, ha megnézzük.
  • utasítás minta átalakítása. Ez a megközelítés a fordító által létrehozott közös utasításokat veszi át, és azokat összetettebb, kevésbé gyakori utasításokra cseréli, amelyek hatékonyan ugyanazt teszik.
  • Dummy kód beillesztése. A Dummy kód hozzáadható egy programhoz, hogy megnehezítse az olvasást és a visszafejtést, de ez nem befolyásolja a program logikáját vagy eredményét.
  • metaadatok vagy nem használt kód eltávolítása. A fel nem használt kód és metaadatok további információkat adnak az olvasónak a programról, hasonlóan a Word-dokumentum kommentárjaihoz, amelyek segíthetnek olvasni és hibakeresni. A metaadatok és a fel nem használt kód eltávolításával az olvasó kevesebb információt kap a programról és annak kódjáról.
  • átlátszatlan predikátum beillesztése. A predikátum a kódban egy logikai kifejezés, amely igaz vagy hamis. Az átlátszatlan predikátumok feltételes ágak – vagy ha-akkor állítások -, ahol az eredményeket statisztikai elemzéssel nem lehet könnyen meghatározni. Az átlátszatlan predikátum beillesztése felesleges kódot vezet be, amelyet soha nem hajtanak végre, de rejtélyes az olvasó számára, aki megpróbálja megérteni a dekompilált kimenetet.
  • anti-debug. A törvényes szoftvermérnökök és hackerek hibakeresési eszközöket használnak a kód soronkénti vizsgálatára. Ezekkel az eszközökkel a szoftvermérnökök felismerhetik a kód problémáit, a hackerek pedig felhasználhatják őket a kód visszafejtésére. Az informatikai biztonsági szakemberek hibakeresésgátló eszközökkel azonosíthatják, amikor egy hacker támadás részeként hibakeresési programot futtat. A hackerek futtathatnak hibakeresésgátló eszközöket annak azonosítására, hogy mikor használnak hibakeresési eszközt a kódban végrehajtott módosítások azonosítására.
  • szabotázs elleni védelem. Ezek az eszközök felismerik a manipulált kódot, és ha módosították, leállítja a programot.
  • karakterlánc titkosítás. Ez a módszer titkosítást használ a végrehajtható karakterláncok elrejtésére, és csak akkor állítja vissza az értékeket, amikor azok szükségesek a program futtatásához. Ez megnehezíti, hogy menjen át a programot, és keressen bizonyos húrok.
  • Kód átültetése. Ez a rutinok és ágak átrendezése a kódban anélkül, hogy látható hatással lenne a viselkedésére.

hogyan mérhető az obfuscation siker

az obfuscation módszerek sikere a következő kritériumok alapján mérhető:

  • erő. Az, hogy a transzformált kód mennyire ellenáll az automatizált deobfuscation kísérleteknek, meghatározza az erőt. Minél több erőfeszítést, időt és erőforrást igényel, annál erősebb a kód.
  • differenciálás. A transzformált kód eltérésének mértéke az eredetitől egy másik mércéje annak, hogy mennyire hatékony. A differenciálás megítélésének néhány módja a következő:
    • az új kódban szereplő predikátumok száma.
    • az öröklési fa mélysége (Dit) – a kód összetettségének jelzésére használt mutató. A magasabb DIT összetettebb programot jelent.
  • költség. A költséghatékony obfuscation módszer hasznosabb lesz, mint az, ami drága, különösen, amikor a nagyobb alkalmazásokhoz milyen jól skálázódik.
  • komplexitás. Minél több réteget ad hozzá az obfuscator, annál összetettebb lesz a program, így az obfuscation sikeresebb lesz.

a ködösítés előnyei

a ködösítés fő előnyei a következők:

  • titoktartás. Az Obfuscation elrejti a kódban található értékes információkat. Ez előnyt jelent a legitim szervezetek számára, akik meg akarják védeni a kódot a versenytársaktól és a támadóktól. Ezzel szemben a rossz szereplők kihasználják a ködösítés titkosságát, hogy elrejtsék rosszindulatú kódjukat.
  • hatékonyság. Néhány obfuscation technikák, mint a fel nem használt kód eltávolítása, az a hatása, hogy csökken a program, így kevésbé erőforrás-igényes futtatni.
  • biztonság. Az Obfuscation egy beépített biztonsági módszer, amelyet néha alkalmazás önvédelemnek is neveznek. Külső biztonsági módszer használata helyett a védett területen belül működik. Kiválóan alkalmas olyan alkalmazások védelmére, amelyek nem megbízható környezetben futnak, és amelyek érzékeny információkat tartalmaznak.

az obfuscation hátrányai

az obfuscation egyik fő hátránya, hogy rosszindulatú programokban is használják. A rosszindulatú programok írói arra használják, hogy elkerüljék a víruskereső programokat, amelyek kódokat keresnek bizonyos funkciók után. Azáltal, hogy elhomályosítja ezeket a funkciókat, a rosszindulatú program legitimnek tűnik a víruskereső szoftver számára.

a rosszindulatú programok szerzői által használt általános technikák a következők:

  • kizárólagos vagy (XOR). Olyan művelet, amely elrejti az adatokat azáltal, hogy XOR értékeket alkalmaz a kódra, így csak egy képzett szem képes visszafejteni azokat.
  • ROT-13. Olyan utasítás, amely véletlenszerű karakterekkel helyettesíti a kódot.

a ködösítéssel az új rosszindulatú programok kifejlesztése helyett a szerzők újracsomagolják az általánosan használt árucikk-támadási módszereket, hogy elrejtsék jellemzőiket. Bizonyos esetekben a rosszindulatú szereplők szállítóspecifikus technikákat tartalmaznak.

a ködösítés másik hátránya, hogy megnehezítheti a kód olvasását. Például a string encryption obfuscation módszert használó kód megköveteli a karakterláncok visszafejtését futás közben, ami lassítja a teljesítményt.

Obfuscation and SolarWinds

egy támadás a SolarWinds, egy Austin, Texas, IT menedzsment és monitoring szoftvergyártó ellen, amelyről úgy gondolják, hogy már 2019 szeptemberében kezdődött, számos más vállalat és kormányzati ügynökség megsértését eredményezte. A támadást 2020 decemberében fedezték fel, és orosz hackereknek tulajdonítják. Kezdetben veszélyeztette a SolarWinds Orion informatikai menedzsment platformját.

a támadók Sunburst malware-t használtak, amely a ködösítést, a gépi tanulást és az AI technikákat kombinálta, hogy hátsó ajtót telepítsen az Orion platform szoftverfrissítéseibe. Hogy álcázzák erőfeszítéseiket és megkerüljék a védelmet, megváltoztatták az ellenőrzési naplókat, törölt fájlokat és programokat használat után, és hamis tevékenységet tettek, hogy legitim alkalmazásoknak tűnjenek a hálózaton.

ez az ellátási lánc támadás gyanúja szerint több mint egy éve észrevétlen maradt. Az Orion kódba beillesztett malware szunnyadt és rejtve maradt, amíg a felhasználók le nem töltötték a fertőzött frissítéseket. Ezután észrevétlenül átterjedt a hálózaton, és megfertőzte az Orion-t használó szervezetek hosszú listáját.

az Obfuscation egy a sok technika közül, amelyet a hackerek alkalmaznak az informatikai rendszerekbe való betöréshez. Tudjon meg többet a különböző típusú kiberbiztonsági támadások elleni védekezésről a TechTarget mélyreható kiberbiztonsági tervezési útmutatójában.

Leave a Reply

Az e-mail-címet nem tesszük közzé.