Profile cover photo
Profile photo
Security Summer School
14 followers -
From "Voodoo" to "You Do" via hex and fun.
From "Voodoo" to "You Do" via hex and fun.

14 followers
About
Posts

În a cincea săptămână de SSS am început discuția despre cum putem injecta și executa cod într-un proces, precum și contramăsuri în acest sens.

Luni am vorbit despre shellcode și am văzut că nu doar ce e în secțiunea de cod poate fi executat. Stiva unei funcții sau chiar stiva programului principal, via variabile de mediu, poate fi un loc ideal pentru a plasa cod suplimentar.

Joi ne-am axat pe DEP și ASLR, două mecanisme care au fost proiectate pentru a preveni shellcode. Prima incomodează un atacator prin restrângerea dreptului de execuție, iar a doua sabotează atacurile care se bazează pe adrese fixe. Totuși, cele două nu sunt o soluție universală și am văzut și câteva metode care circumventează aceste abordări.

Prezentările de la cele două sesiuni pot fi parcurse de către oricine e interesat:
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-09.pdf
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-10.pdf
Add a comment...

Post has attachment
Toată săptămâna nu am făcut decât fuzzing, cum ceea ce crezi că o să primească un program și ceea ce primește pot fi lucruri radical diferite.

Luni am vorbit despre fuzzere în general, precum Sulley și familia SPIKE, despre fuzzere mutaționale și fuzzere generatoare. Pentru a ilustra aceste concepte, sesiunea a fost axată pe fuzzing stateless.

Joi am discutat și un subiect mai avansat, anume stateful fuzzing, util pentru diverse protocoale de comunicație care sunt proiectate având în spate un automat de stări. În acest scop am prezentat concepte mai avansate despre Sulley.

De asemenea, tot luni, pentru a marca jumătatea cursului, am ieșit cu toții la The PUB ca să ne testăm setea de bere și apetitul pentru burgeri de vită cu oameni din restul Europei, CTF-style. Pentru că asta facem, băgăm 0x42454552 până aproape de buffer overflow și mâncăm 0xDEADBEEF pe pâine. :)

Pentru slide-uri, folosiți link-urile de mai jos. Berea în schimb nu putem s-o uploadăm.
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-07.pdf
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-08.pdf
Add a comment...

Post has attachment
Săptămâna aceasta a fost axată pe două subiecte: drumul unui executabil ELF de pe disc în memorie și analiza statică a binarelor.

Luni am văzut cum informațiile conținute într-un fișier ELF sunt folosite de către loader-ul sistemului de operare pentru a încărca executabilul în memorie, precum și pentru a rezolva simboluri externe expuse de diverse biblioteci. Am discutat despre secțiunile de cod și de date, despre stivă și heap și cum ASLR schimbă datele problemei.

Joi ne-am ocupat timpul cu analiza statică a binarelor. Am discutat despre cele două metode de dezasamblare, linear sweep și recursive traversal, precum și câte un dezasamblor care să reprezinte fiecare categorie. Am văzut astfel atât avantajele, cât și limitările lor. Ne-am lovit și de cum nevoia de a suporta namespace-uri, polimorfism și clase în C++ se traduce în dificultăți pentru cineva care vrea să facă analiză statică.  Am aruncat o privire scurtă și în lumea analizei dinamice folosind GDB și PEDA.

Slide-urile celor două sesiuni se află la link-urile de mai jos:
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-03.pdf
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-04.pdf
Add a comment...

Post has attachment
După primele 2 sesiuni, am trecut în revistă cunoștințele de bază
necesare pentru a face low-level exploitation.

Luni ne-am axat pe importanța securității în ziua de astăzi și ne-am
jucat puțin cu câteva utilitare care permit obținerea unor informații
despre comportamentul și funcționalitatea unui program. De la strings
la ltrace și de la netcat la lsof, le-am pus pe masă pe toate și am
văzut ce se poate face cu ele.

Joi am discutat despre cel mai jos nivel de programare, limbajul de
asamblare. Printre regiștri, opcodes și apeluri de sistem, am văzut
că nu îți trebuie mereu libc pentru a afișa ceva pe ecran sau pentru a
porni un alt program.

Pentru cei interesați, slide-urile aferente primelor două sesiuni pot
fi găsite la link-urile de mai jos:
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-01.pdf
http://security.cs.pub.ro/summer-school/wiki/_media/public/sess-02.pdf
Add a comment...

Vă reamintim de termenul de 25 mai 2014 pentru înscrierea la "Security
Summer School".

Le reamintim celor care s-au înscris doar pe Stagii pe Bune, că
trebuie să rezolve și provocările anunțate.

https://docs.google.com/forms/d/19qNWLFrv4hndXSXrrXQze8PG7eSsnVDkbLJxhoXgEd4/viewform

Have fun!
Add a comment...

Post has attachment
Dacă vă atrag provocările de tot felul, dacă vă pasionează subiectele de
securitate și programare low-level, atunci vă invităm să participați la
prima ediție a "Security Summer School"[1], o școală de vară dedicată
domeniului securității ofensive (creării de exploit-uri). Subiectele
abordate vor fi unele practice, pornind de la analiză de procese,
analiză de binare, suprascriere de memorie, shellcode-uri, exploit-uri,
fuzz testing, mecanisme defensive și ofensive.

[1] http://wiki.cs.pub.ro/studenti/summer-schools/security
Photo
Add a comment...
Wait while more posts are being loaded