az Apriorit alapítója és vezérigazgatója vagyok, egy szoftverfejlesztő cég, amely világszerte mérnöki szolgáltatásokat nyújt a technológiai vállalatok számára.

Hátulnézet női számítógépes hacker kódolás az íróasztalnál a kreatív irodában

getty

manapság a számítógépes támadók lenyűgöző fegyverválasztékkal vannak felfegyverkezve, az egyszerű rosszindulatú programoktól a kifinomult visszafejtési eszközökig. A szétszerelők, dekompilátorok és egyéb eszközök lehetővé teszik a hackerek számára az alkalmazás forráskódjának elérését és elemzését. Ezekkel az információkkal a hackerek különféle módon visszaélhetnek a szoftverével: érzékeny információk kinyerésével, rosszindulatú kód hozzáadásával, sőt az alkalmazások klónozásával.

a Positive Technologies biztonsági cég nemrégiben készült tanulmánya kimutatta, hogy a népszerű mobil banki alkalmazások hajlamosak a hacker támadásokra. A leggyakrabban azonosított kiberbiztonsági problémák az osztályok és módszerek neveinek explicit forráskódba írásával, a kódinjekció elleni védelem hiányával és a kód elhomályosításával kapcsolatosak.

különösen a Kódfejtés ígéretes gyakorlat a szoftverek biztonságában. Ha keresi a módját, hogy megvédje a szoftvert a behatolásoktól, érdemes kezdeni azzal, hogy megszilárdítja a védelmét a kód elhomályosításával.

hogyan működik a kódelnyelés?

az Obfuscation metódusok lehetővé teszik az alkalmazáskód megkeményítését azáltal, hogy átalakítja az implicit értékek elrejtésére és a logika elrejtésére. Ezek az intézkedések megnehezítik az illetéktelen harmadik fél számára, hogy a szoftver motorháztetője alá nézzen.

a legtöbb ködösítési technika átalakítja a kód következő aspektusainak egyikét:

• adatok: a kódelemek úgy néznek ki, mint valami más, mint amilyenek

• vezérlési folyamat: a futtatható logika nem meghatározóvá válik, ha a szoftvert dekompilálják

• elrendezési struktúra: adatok formázása, azonosítók átnevezése és kódmegjegyzések eltávolítása

a zavaró eszközök forráskóddal, gépi vagy bináris kóddal és bájtkóddal működnek. Annak meghatározásához, hogy melyik kódtípust lehet a legjobban elfedni, szem előtt kell tartania az egyes választások korlátait.

a forráskód elferdítésekor kihívásokkal kell szembenéznie az elferdített kód kezelése és hibakeresése során. A bináris ködösítés nemcsak bonyolultabb, mint a másik két lehetőség, hanem minden rendszerarchitektúrára alkalmazni kell.

cégemnél gyakran választjuk a bytecode obfuscation-t, mivel ebben az esetben nem kell forráskódot vagy gépi kódot kezelnünk. Amikor azonban a bájtkódot gépi kóddá alakítjuk, nehéz az összes elhomályosított kódinjekciót teljesen véletlenszerűen tartani.

az egyik legutóbbi projektünknél a csapatom az LLVM fordítót használta, amely segített a magas szintű bájtkódvédelem biztosításában, kevés hatással a szoftver teljesítményére. A keményedő kód mellett ez a fordító véletlenszerűen elhelyezhet szoftverlicenc-hitelesítőket, amelyek szinte lehetetlenné teszik a hackerek számára a szoftverek feltörését.

hogyan védheti meg az alkalmazást a kód elhomályosításával?

bár az obfuscation az OWASP által ajánlott biztonságos kódolási gyakorlatok egyike, még mindig nem olyan népszerű a sok fejlesztő körében. Ennek fő oka az, hogy túlzott használat esetén a kód elhomályosítása károsíthatja a szoftver teljesítményét.

de ha mondjuk egy mobil banki alkalmazásról beszélünk, akkor a felhasználó bankszámlaadatainak biztonságának fontossága elég magas ahhoz, hogy további időt és erőfeszítést fordítson a kiegyensúlyozott kódkeményítésre.

ha a leghatékonyabb módon szeretné elhomályosítani a kódot, itt van néhány szempont, amelyet figyelembe kell venni:

• a kód elhomályosítása előtt el kell döntenie, hogy a kód mely részeit lehet elhomályosítani. Kerülje a teljesítménykritikus kód elhomályosítását. Győződjön meg arról is, hogy az elhomályosítás semmilyen módon nem befolyásolja a szoftver funkcionalitását.

• ügyeljen a homályos kód méretére és teljesítményére. Nagy kóddarab keményítésekor a végrehajtási idő akár 1000-szeresére is megnőhet.

• adjon hozzá átlátszatlan predikátumokat az elhomályosított kódhoz, hogy lehetetlenné tegye annak megértését, hogy a kódfuttatás hova fog menni. A vezérlőfolyamat-grafikon úgy nézzen ki, mint egy állapotgép-végrehajtás, nem pedig lineáris kódfuttatás.

• réteges védelem létrehozásához kombináljon több átalakítási technikát. Minél több ködösítési technikát használ, annál jobb lesz a kód védelme.

• a kódfejtést csak kiegészítő biztonsági rétegként használja, mivel nem helyettesítheti más biztonsági gyakorlatokat.

megfelelő megvalósítás esetén a code obfuscation hatékony megoldás a szoftver jogosulatlan elemzés elleni védelmére. Ez nem egy ezüst golyó, de jelentősen bonyolítja a szoftver kihasználásának és veszélyeztetésének kísérleteit.

a Forbes Technology Council egy meghívásos közösség világszínvonalú CIO-k, CTO-k és technológiai vezetők számára. Jogosult vagyok?

Kövess engem a Twitteren vagy a LinkedIn-en. Nézze meg a honlapomat.

Betöltés …

Vélemény, hozzászólás?

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