Duboka specijalizacija

Obrnuti inženjering

Predajte nam svoj softver i mi ga rastavljamo. Vašu SaaS, desktop ili mobilnu aplikaciju, binarnu datoteku, firmver uređaja, seciramo je kako bismo razumjeli kako zaista funkcionira, a zatim je natjeramo da učini ono za što nikada nije bila namijenjena: zaobiđemo zaštite, srušimo pretpostavke i otkrijemo što je skriveno unutra.

Obrnuti inženjering

Jednostavnim riječima

Pogledajte svoj proizvod očima vještog napadača

Svaka aplikacija koju isporučite nosi sa sobom pretpostavke: da se klijentska strana ne može mijenjati, da se provjera licence ne može zaobići, da će tajna u kodu ostati tajna, da korisnik može učiniti isključivo ono što sučelje dopušta. Sposoban napadač ne prihvaća te pretpostavke, on rastavlja softver i testira svaku od njih. Obrnuti inženjering je način na koji mi radimo isto, namjerno i na vašoj strani, prije nego što to netko drugi učini protiv vas.

Riječ je o specijaliziranoj disciplini i pravoj diferencijaciji: većina sigurnosnih tvrtki staje kod mreže i web sučelja. Mi idemo dublje, u sam kompilirani kod. Ako vaše poslovanje ovisi o zaštiti intelektualnog vlasništva, provedbi licenciranja ili povjerenju u klijentsku aplikaciju ili povezani uređaj, ovo je način da saznate drži li se to povjerenje zaista.

Vrijedi jasno reći po čemu se ovo razlikuje od uobičajenog testiranja aplikacije. Web penetracijski test promatra vaš softver dok ga korisnik izvana ispituje. Obrnuti inženjering otvara kutiju: čitamo stvarni kompilirani kod, isti onaj koji se nalazi na telefonima i računalima vaših korisnika, i utvrđujemo što on zapravo radi, koje tajne nosi i koja se od njegovih pravila mogu tiho isključiti. Ako sigurnost vašeg proizvoda ovisi o ispravnom ponašanju klijentske strane, ovo je jedini način da saznate je li ta ovisnost sigurna.

Opseg i pokrivenost

Što rastavljamo

Web, SaaS i thick-client aplikacije

Ispitujemo dijelove vašeg proizvoda koji se izvršavaju na korisničkoj strani, gdje se često pogrešno pretpostavlja da se pravila poslužiteljske strane provode.

  • Logika klijentske strane i skrivena funkcionalnost
  • Zaobilaženje kontrola koje bi trebao provoditi poslužitelj
  • Izložene krajnje točke, tajne i debug funkcionalnosti
  • Neovlaštene izmjene zahtjeva, stanja i radnih procesa

Obrnuti inženjering mobilnih aplikacija

Android i iOS aplikacije isporučuju se izravno u ruke napadača. Raspakiravamo ih kako bismo vidjeli što otkrivaju i čemu vjeruju.

  • Dekompilacija i statička analiza aplikacije
  • Tvrdo kodirani ključevi, tokeni i API tajne
  • Zaobilaženje certificate pinninga i root/jailbreak zaštite
  • Instrumentacija u stvarnom vremenu i manipulacija prometom

Analiza binarnih datoteka i firmvera

Kompilirani softver i firmver uređaja, rastavljeni i razumljeni, uključujući dijelove koje ste možda naslijedili od trećih strana.

  • Disasembliranje i dekompilacija nativnih binarnih datoteka
  • Ekstrakcija i analiza firmvera
  • Ranjivosti oštećenja memorije i logičke ranjivosti
  • Nedokumentirane naredbe i backdoor pristupi

Zaobilaženje licenciranja, DRM-a i anti-tamper zaštite

Ako vaš prihod ovisi o provjeri koja se izvršava na tuđem uređaju, testiramo može li se ta provjera jednostavno ukloniti.

  • Zaobilaženje provjere licence i aktivacije
  • Zaobilaženje feature flagova i paywalla
  • Pregled anti-tamper i zaštite integriteta
  • Savjeti o zaštitama koje zaista usporavaju napadače

Analiza protokola i API-ja

Rastavljamo način na koji vaš softver komunicira, kako bismo utvrdili što izlaže i što će prihvatiti od zlonamjernog klijenta.

  • Analiza prilagođenih i nedokumentiranih protokola
  • Napadi ponavljanjem (replay), neovlaštenim izmjenama i lažiranim klijentom
  • Skrivene ili privilegirane API operacije
  • Curenje podataka tijekom prijenosa i u mirovanju

Zaobilaženje kontrola na klijentskoj strani

Srž posla: natjerati softver da učini upravo ono što ne bi smio, kako biste ispravili pogrešnu pretpostavku prije nego što je napadač iskoristi.

  • Zaobilaženje ovlasti i uloga s klijentske strane
  • Otključavanje ograničene ili skrivene funkcionalnosti
  • Krivotvorenje pouzdanog stanja i identifikatora
  • Pretvaranje nalaza u konkretne, prioritizirane popravke

Vrijednost

Što dobivate

Zaštita vašeg proizvoda i intelektualnog vlasništva

Saznajte drže li vaše licenciranje, klijentske kontrole i intelektualno vlasništvo doista protiv odlučnog, vještog napadača.

Uvid koji nijedan skener ne može pružiti

Automatizirani alati ne čitaju kompilirani kod onako kako to čini ljudski stručnjak za obrnuti inženjering. Riječ je o ručnom, stručnom radu koji pronalazi ono što drugi propuštaju.

Partner sa specifičnom sposobnošću

Duboko znanje obrnutog inženjeringa je rijetko. Imati ga na raspolaganju znači da teška pitanja o vašem softveru konačno dobivaju iskren odgovor.

Metodologija

Kako radimo

01

Opseg i ciljevi

Dogovaramo cilj, što za vas znači „probiti” ga, te pisano ovlaštenje za njegovu analizu i testiranje.

02

Statička analiza

Disasembliramo i dekompiliramo softver, mapirajući njegovu logiku, tajne, zaštite i granice povjerenja.

03

Dinamička analiza

Pokrećemo ga i instrumentiramo, kačeći se (hooking) na njega i manipulirajući njime u stvarnom vremenu kako bismo dokazali što se zaista može zaobići.

04

Izvješće i jačanje zaštite

Pokazujemo točno što smo probili, uz dokaze, i dajemo praktične smjernice kako bismo to sljedeći put znatno otežali.

Statička i dinamička analizaAndroid i iOSNativne binarne datoteke i firmverPotpuno ovlašteno i povjerljivo

Za tehničkog čitatelja

Pogled ispod haube

Kombiniramo statičku i dinamičku analizu. Statički, disasembliramo i dekompiliramo cilj kako bismo rekonstruirali njegovu logiku, pronašli tajne i razumjeli njegove zaštite. Dinamički, pokrećemo ga uz instrumentaciju, kačeći se na funkcije, presrećući promet i manipulirajući stanjem u stvarnom vremenu, tako da teorija o slabosti postane funkcionalno zaobilaženje koje možete sami vidjeti.

Obrnuti inženjering je važan jer velik dio sigurnosti tiho ovisi o ispravnom ponašanju klijentske strane. Provjera licence, ograničenje uloge, skrivena funkcionalnost, pinani certifikat: svaki od njih jak je onoliko koliko je jaka pretpostavka da se kod koji se izvršava na korisničkom uređaju ne može mijenjati. Tu pretpostavku testiramo izravno, a kada zakaže, ne samo da to dokazujemo, već savjetujemo o zaštitama, od provedbe na poslužiteljskoj strani do anti-tamper mjera, koje zaista podižu cijenu za sljedećeg napadača.

Svaki je angažman u potpunosti ovlašten i potpuno povjerljiv. Vaš izvorni kod, binarne datoteke i nalazi ostaju kod nas i tretiraju se kao osjetljivo intelektualno vlasništvo, što i jesu.

Tipičan angažman kreće se između dva načina rada. Statička analiza rekonstruira program bez njegovog pokretanja, kroz disasembliranje, dekompilaciju, ekstrakciju stringova i tajni, mapirajući logiku i njezine zaštite. Dinamička analiza zatim pokreće cilj pod debuggerom ili instrumentacijskim okvirom, kačeći se na funkcije, presrećući mrežne pozive i prepisujući vrijednosti u memoriji kako bi se dokazalo da se kontrola može zaobići u praksi, ne samo u teoriji. Ta dva pristupa nadopunjuju se: statička analiza govori nam gdje gurati, dinamička analiza potvrđuje što zaista popušta.

Isporuke

Što dobivate

Sažetak za rukovodstvo

Prikaz jednostavnim jezikom onoga što se moglo zaobići ili izvući, te što to znači za vaš proizvod i prihod.

Nalazi s dokazima

Svaka slabost demonstrirana funkcionalnim dokazom koncepta, tako da je učinak konkretan i neupitan.

Problemi ocijenjeni prema riziku

Svaki nalaz ocijenjen prema ozbiljnosti i potrebnom naporu, tako da znate koje pretpostavke prvo ojačati.

Smjernice za jačanje zaštite

Praktični savjeti o provedbi na poslužiteljskoj strani, obfuskaciji i anti-tamper mjerama koje zaista usporavaju stvarne napadače.

Tehnički pregled

Jasan prikaz načina na koji smo rastavili softver, koristan za vaše vlastite razvojne programere i buduće preglede.

Ponovno testiranje ključnih popravaka

Potvrda da zaštite koje ste dodali doista zatvaraju propuste koje smo pronašli.

Za koga je namijenjeno

Kada je obrnuti inženjering pravi izbor

Vi ste dobavljač softvera ili SaaS tvrtka čiji prihod ovisi o licenciranju, pravima korištenja ili zaštićenim značajkama.
Isporučujete mobilne ili desktop aplikacije koje se izvršavaju na uređajima koje ne kontrolirate.
Vaš proizvod uključuje povezane uređaje ili firmver, bilo da su razvijeni interno ili naslijeđeni od dobavljača.
Oslanjate se na provjere na klijentskoj strani ili DRM i trebate znati drže li doista.
Sumnjate da se vaša aplikacija probija (crack), neovlašteno mijenja ili klonira, i želite razumjeti kako.
Provodite tehničku dubinsku analizu (due diligence) softvera treće strane prije nego što na njemu gradite ili ga kupujete.

Rijetka vještina, prava specijalizacija

Obrnuti inženjering je područje na kojem ofenzivna sigurnost postaje istinski zahtjevna, a većina tvrtki jednostavno je ne nudi. Ujedno je prirodan partner našem red team radu, gdje prilagođeno zaobilaženje vašeg vlastitog softvera može biti ključ koji otvara širi cilj.

Pitanja i odgovori

Obrnuti inženjering: pitanja i odgovori

Trebate li naš izvorni kod?

Ne. Radimo na temelju kompilirane aplikacije, binarne datoteke ili firmvera, dakle onoga što bi imao i napadač. Izvorni kod nije potreban, no ako odlučite podijeliti ga, to može ubrzati rad i produbiti pokrivenost.

Možete li zaista zaobići naše licenciranje ili zaštite?

Vrlo često, da, jer se mnoge zaštite u konačnici izvršavaju na korisničkom uređaju gdje ih je moguće izmijeniti. Precizno vam pokazujemo kako se kontrola može poraziti, uz funkcionalan dokaz koncepta, a zatim savjetujemo o mjerama na poslužiteljskoj strani i anti-tamper mjerama koje to znatno otežavaju.

Je li naš softver i intelektualno vlasništvo sigurno kod vas?

Da. Svaki je angažman u potpunosti ovlašten i potpuno povjerljiv, pokriven ugovorom o povjerljivosti (NDA). Vaše binarne datoteke, svaki izvorni kod koji podijelite i svi nalazi tretiraju se kao osjetljivo intelektualno vlasništvo, što i jesu, te nikada ne izlaze iz naše kontrole.

Kakav softver možete analizirati?

Web i SaaS sučelja, thick-client desktop aplikacije, Android i iOS mobilne aplikacije, nativne binarne datoteke i firmver uređaja. Ako izvršava kod, obično ga možemo rastaviti i reći vam gdje puca.

Po čemu se ovo razlikuje od uobičajenog penetracijskog testiranja?

Penetracijsko testiranje ispituje vaš softver izvana, onako kako bi to činio korisnik. Obrnuti inženjering ulazi u sam kompilirani kod kako bi porazio pretpostavke do kojih vanjski pogled ne može doprijeti, poput provjera licence, ograničenja na klijentskoj strani i skrivene funkcionalnosti.

Što dobivamo na kraju?

Jasno izvješće sa sažetkom za rukovodstvo, svakom slabošću demonstriranom dokazom koncepta, ocjenama rizika, praktičnim smjernicama za jačanje zaštite i ponovnim testiranjem kojim se potvrđuje da zaštite koje dodate doista zatvaraju propuste.

Ikona

Pouzdana zaštita za vaš digitalni svijet

Vaša sigurnost naša je misija. Vaše povjerenje naša je obveza

Kliknite ispod kako biste zakazali svoju besplatnu procjenu rizika i saznali kako vam možemo pomoći zaštititi vaš svijet.

Počnite štititi svoje poslovanje

PozadinaOblik