Descărcați ca pptx, pdf sau txt
Descărcați ca pptx, pdf sau txt
Sunteți pe pagina 1din 13

Exploits and reverse

engineering on arm
platforms

Std. Radu-Nicolae
Cîrstea
Avantaje arm
Mobile and
Internet Of
Things devices?
Reverse engineering pe o Deși startul reverse engineering și
assembly language a luat naștere
multitudine de dispozitive cu procesorul x86 se pare ca
următoarea generație o să se
bazeze pe platformele ARM,
procesoarele care în momentul de
 Telefoane față sunt folosite de toate
 Tablete telefoanele mobile dar nu numai:
 Autovehicule
 Internet of things (e.g. Alexa,
Google Chrome Cast etc.)
 MACBOOKS?
 SERVERS?
Tipuri de procesor clasificate pe clase
funcționale
• A-Class
 Application processors.
 Potețialele ținte de obicei
rulează un sistem de operare
cum ar fi Linux.
 Suportă virtualizare.

• M-Class
 Microcontrollere.
 De obicei rulează doar cod-
mașină și nu folosesc sistem de
operare.

• R-Class
 Este folosit pe sisteme embeded
care au nevoie de securitate real-
time.
Caracteristici ale
procesoarelor ARM

 RISC (Reduced instruction Set Computing) processor


-Instrucțiuni mai puține
-Mai mulți regiștrii decât în CISC(Complex Instruction Set Computing)
1
 Load/Store arhitecture und in R
value fo ] found in
R2
dd re ss
-Nu se lucrează direct cu memoria, se stochează, se încarcă și se lucrează cu to [a
is stored
exclusiv cu regiștrii
 2 moduri de lucru: ARM mode (32 bit) / Thumb mode (16 bit)
 Memory access pe Word (4 byte aligned)
Segmente de memorie
• .text
-partea executabilă a programului (instrucțiunile)
Programul
• .data și .bss
-variabile sau pointeri către variabile folosite de către
aplicație

• .plt și .got
-pointeri specifici către funcții importate din diferite
librării

• .section și .rodata
-folosite dacă vrem ca datele sa fie copiate în RAM

• Regiuni Stivă și Heap


-folosite de aplicație pentru a stoca și a opera pe date
temporare (variabile) care sunt folosite în timpul execuției
programului
Exploits
Stack Overflows

Stiva este o zonă a memoriei de proces care servește ca o


colecție de elemente. Aceste elemente sunt adesea variabile
locale pentru o funcție sau adrese de retur.
Dat fiind că adresa de retur este stocată pe stivă, orice
vulnerabilitate de corupere a stivei ar putea permite ca un
atac să suprascrie adresa de retur stocată. Dacă acest lucru se
realizează cu succes și într-un mod care nu distruge
programul, atunci când funcția returnează nu se va întoarce
la apelantul său, ci în loc la valoare pe care atacatorul a
înlocuit adresa inițială.
Exploits
Stack Overflows
Exploits
Stack Overflows
Exploits
Return Oriented
Programming

Junk
Acest tip de vulnerabilitate este unul care
Characters presupune manipularea adreselor de return
ale funcțiilor programului astfel încât să
apelăm cod malițios, scris sub formă de
SP funcții ale programului dar niciodată apelate
în funcția main acestuia. Pentru a redirecta
execuția codului folosim “payloads” ce
constau in junk characters până la adresa
primului gadget după care acesta îl va apela
pe următorul și se va forma ceea ce se
numește “ROP Chain”.
Pentru a afla
Exploits
adresa fiecărei Return Oriented
funcții de tip
gadget folosim Programming
disasembler-ul
GDB

Junk characters Gadget


addresses
Exploits
Necesitatea învățării acestei platforme precum și vulnerabilitățile ei este
imperios necesară dat fiind faptul că internet of things a luat amploare și
nu mai este un secret faptul ca tehnologia este parte din viața noastră.
Mulțumesc!
Întrebări!

S-ar putea să vă placă și