sunt fondatorul și CEO al Apriorit, o companie de dezvoltare software care oferă servicii de inginerie la nivel global companiilor de tehnologie.

vedere din spate a femeii hacker de codificare la birou în biroul Creativ

getty

în zilele noastre, atacatorii cibernetici sunt înarmați cu o gamă impresionantă de arme, de la malware simplu la instrumente sofisticate de inginerie inversă. Disassemblers, decompilers și alte instrumente permit hackerilor să acceseze și să analizeze codul sursă al aplicației. Cu aceste informații, hackerii pot abuza de software-ul dvs. în diverse moduri: prin extragerea informațiilor sensibile, adăugarea de cod rău intenționat și chiar clonarea aplicațiilor.

un studiu recent realizat de compania de securitate Positive Technologies a arătat că aplicațiile bancare mobile populare sunt susceptibile la atacuri de hacking. Cele mai frecvente probleme de securitate cibernetică identificate au avut de-a face cu numele claselor și metodelor scrise în mod explicit în codul sursă, lipsa protecției împotriva injecției de cod și lipsa de confuzie a codului.

confuzia Codului, în special, este o practică promițătoare pentru securizarea software-ului. Dacă sunteți în căutarea unor modalități de a vă proteja software-ul de intruziuni, poate doriți să începeți prin întărirea apărării sale prin ascunderea codului.

cum funcționează obfuscarea codului?

metodele de ascundere vă permit să întăriți codul aplicației transformându-l pentru a ascunde valorile implicite și a ascunde logica. Aceste măsuri îngreunează o terță parte neautorizată să se uite sub capota software-ului dvs.

majoritatea tehnicilor de confuzie transformă unul dintre următoarele aspecte ale codului:

• date: face elemente de cod arata ca altceva decât ceea ce sunt

• Control flow: face executabil logica nedeterministă în cazul în care software-ul este decompilat

• structura Layout: Format de date, redenumi identificatori și elimina comentarii cod

instrumente de confuzie lucra cu codul sursă, mașină sau cod binar, și bytecode. Pentru a determina ce tip de cod este cel mai bine să se ascundă, trebuie să țineți cont de limitările fiecărei alegeri.

când ocultați codul sursă, vă puteți confrunta cu provocări în manipularea și depanarea codului ocultat. Obfuscarea binară nu este doar mai complicată decât celelalte două opțiuni, ci trebuie aplicată fiecărei arhitecturi de sistem.

la compania mea, alegem adesea confuzia bytecode, deoarece în acest caz nu trebuie să gestionăm codul sursă sau codul mașinii. Cu toate acestea, atunci când vom ajunge la transformarea bytecode în cod mașină, este greu să păstreze toate injecțiile de cod obfuscated complet aleatoare.

pentru unul dintre proiectele noastre recente, echipa mea a folosit compilatorul LLVM, care ne-a ajutat să asigurăm un nivel ridicat de protecție bytecode cu un impact redus asupra performanței software-ului. În plus față de codul de întărire, acest compilator poate plasa aleatoriu verificatori de licențe software care fac aproape imposibil ca hackerii să spargă software-ul.

cum vă puteți proteja aplicația cu confuzie de cod?

în timp ce obfuscation este una dintre practicile de codificare sigure recomandate de OWASP, încă nu este atât de popular printre mulți dezvoltatori. Principalul motiv pentru aceasta este că, atunci când este suprautilizat, obfuscarea codului poate dăuna performanței software-ului.

dar dacă vorbim despre, să zicem, o aplicație bancară mobilă, importanța securizării datelor contului bancar al unui utilizator este suficient de mare pentru a justifica cheltuirea de timp și efort suplimentar pentru întărirea echilibrată a codului.

dacă doriți să ascundeți codul în cel mai eficient mod, iată câteva lucruri de luat în considerare:

• înainte de a vă ascunde codul, ar trebui să decideți ce părți ale codului dvs. pot fi ascunse. Evitați ascunderea codului critic de performanță. De asemenea, asigurați-vă că obfuscarea nu afectează în niciun fel funcționalitatea software-ului.

• acordați atenție dimensiunii și performanței codului obfuscat. La întărirea unei bucăți mari de cod, timpul de execuție poate crește de până la 1.000 de ori.

• adăugați predicate opace la codul obfuscat pentru a face imposibil să înțelegeți unde va merge execuția codului. Faceți graficul fluxului de control să arate mai degrabă ca o execuție a mașinii de stare decât ca o execuție liniară a codului.

• pentru a crea o apărare stratificată, combinați mai multe tehnici de transformare. Cu cât utilizați mai multe tehnici de confuzie, cu atât codul dvs. va fi mai bine protejat.

• utilizați confuzia codului doar ca un strat suplimentar de securitate, deoarece nu poate înlocui alte practici de securitate.

când este implementat corect, code obfuscation este o soluție eficientă pentru protejarea software-ului împotriva analizei neautorizate. Nu este un glonț de argint, dar va complica în mod semnificativ încercările de a exploata și compromite software-ul.

Forbes Technology Council este o comunitate exclusiv pe bază de invitație pentru CIO-uri, CTO-uri și directori de tehnologie de talie mondială. Mă calific?

Urmărește-mă pe Twitter sau LinkedIn. Check out site-ul meu.

se încarcă …

Lasă un răspuns

Adresa ta de email nu va fi publicată.