jag är grundare och VD för Apriorit, ett mjukvaruutvecklingsföretag som tillhandahåller tekniska tjänster globalt till teknikföretag.

bakifrån av kvinnliga hacker kodning vid skrivbordet i creative office

getty

nuförtiden, cyber angripare är beväpnade med ett imponerande utbud av vapen, från enkla malware till sofistikerade reverse engineering verktyg. Disassemblers, decompilers och andra verktyg tillåter hackare att komma åt och analysera program källkod. Med denna information kan hackare missbruka din programvara på olika sätt: genom att extrahera känslig information, lägga till skadlig kod och till och med klona dina applikationer.

en ny studie av säkerhetsföretaget Positive Technologies avslöjade att populära mobila bankapplikationer är mottagliga för hackingattacker. De vanligaste identifierade cybersäkerhetsproblemen hade att göra med namnen på klasser och metoder som uttryckligen skrivs i källkod, brist på skydd mot kodinjektion och brist på kodfördunkling.

Kodfördunstning i synnerhet är en lovande praxis för att säkra programvara. Om du letar efter sätt att skydda din programvara från intrång kanske du vill börja med att härda sitt försvar genom att dölja koden.

hur fungerar kodfördunstning?

Obfuscation metoder gör att du kan härda programkod genom att omvandla den för att dölja implicita värden och dölja logik. Dessa åtgärder gör det svårare för en obehörig tredje part att titta under huven på din programvara.

de flesta obfuscationstekniker omvandlar en av följande aspekter av koden:

• Data: få kodelement att se ut som något annat än vad de är

• kontrollflöde: gör körbar logik nondeterministisk om programvaran dekompileras

• Layoutstruktur: formatera data, Byt namn på identifierare och ta bort kodkommentarer

Obfuscation tools arbetar med källkod, maskin eller binär kod och bytekod. För att bestämma vilken typ av kod som är bäst att dölja, måste du komma ihåg begränsningarna för varje val.

när du fördunklar källkoden kan du möta utmaningar vid hantering och felsökning av den fördunklade koden. Binär förvirring är inte bara mer komplicerad än de andra två alternativen utan måste tillämpas på varje systemarkitektur.

på mitt företag väljer vi ofta bytecode obfuscation, eftersom vi i det här fallet inte behöver hantera källkod eller maskinkod. Men när vi kommer att omvandla bytecode till maskinkod är det svårt att hålla alla obfuscated kodinjektioner helt slumpmässiga.

för ett av våra senaste projekt använde mitt team LLVM-kompilatorn, vilket hjälpte oss att säkerställa en hög nivå av bytecode-skydd med liten inverkan på programvarans prestanda. Förutom härdningskod kan denna kompilator slumpmässigt placera programvarulicensverifierare som gör det nästan omöjligt för hackare att knäcka programvara.

hur kan du skydda din app med kod obfuscation?

medan obfuscation är en av de säkra kodningsmetoder som rekommenderas av OWASP, är det fortfarande inte så populärt bland många utvecklare. Den främsta orsaken till detta är att när överanvändning, kod förvirring kan skada programvarans prestanda.

men om vi pratar om, säg en mobilbankapp, är vikten av att säkra användarens bankkontouppgifter tillräckligt hög för att motivera att spendera ytterligare tid och ansträngning på balanserad kodhärdning.

om du vill fördunkla kod på det mest effektiva sättet, här är några saker att tänka på:

• innan du fördunklar din kod bör du bestämma vilka delar av din kod som kan fördunklas. Undvik att dölja prestandakritisk kod. Se också till att obfuscation inte påverkar programvarans funktionalitet på något sätt.

• Var uppmärksam på storleken och prestanda för den obfuscated koden. Vid härdning av en stor bit kod kan körningstiden öka upp till 1000 gånger.

• Lägg till ogenomskinliga predikat i den obfuscated koden för att göra det omöjligt att förstå var kodkörningen kommer att gå. Gör kontrollflödesdiagrammet som en statlig maskinkörning snarare än linjär kodkörning.

• för att skapa ett skiktat försvar, kombinera flera transformationstekniker. Ju mer obfuscation tekniker du använder, desto bättre kommer din kod att skyddas.

när det är korrekt implementerat är code obfuscation en effektiv lösning för att skydda din programvara mot obehörig analys. Det är inte en silverkula, men det kommer avsevärt att komplicera försök att utnyttja och kompromissa med din programvara.

Forbes Technology Council är en inbjudan-bara community för världsklass CIO, CTO och teknik Chefer. Kvalificerar jag mig?

Följ mig på Twitter eller LinkedIn. Kolla in min hemsida.

Läser in …

Lämna ett svar

Din e-postadress kommer inte publiceras.