====== 1. Concepte de securitate ====== Facem o trecere în revistă prin principalele subiecte de securitate și perspectiva atacatorului și apărătorului. ===== Subiecte abordate ===== * obiective ale securității * perspectiva atacatorului și apărătorului * concepte de securitate * tipuri/clase de securitate ===== Resurse ===== * [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/slides/01-concepte-de-securitate.pdf|Slide-uri]] * [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/01-concepte-de-securitate-skel.zip|Arhiva de suport]] ===== Exerciții ===== Arhiva de suport pentru exerciții se găsește [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/01-concepte-de-securitate-skel.zip|aici]]. Descărcați arhiva și apoi decomprimați-o folosind comenzile: wget http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/01-concepte-de-securitate-skel.zip unzip 01-concepte-de-securitate-skel.zip ==== Injectarea unei comenzi ==== Accesăm directorul ''command-injection/'' din arhiva de suport. Urmăriți fișierul cod sursă C ''vuln.c'' și rulați executabilul ''vuln''. Folosiți executabilul în așa fel încât să afișați conținutul fișierului ''/etc/passwd''. ==== Controlul mediului ==== Accesăm directorul ''env-control/'' din arhiva de suport. Urmăriți fișierul cod sursă C ''vuln.c'' și rulați executabilul ''vuln''. Folosiți executabilul în așa fel încât să afișați conținutul fișierului ''/etc/passwd''. Folosiți-vă de prezența scriptului ''id'' în directorul curent. De ce a fost nevoie ca în scriptul ''id'' să folosim calea completă către comanda ''/bin/cat''? Putem să "exploatăm" executabilul ''vuln'' în așa fel încât să nu fie nevoie de calea completă către comanda ''/bin/cat''? ==== Integer overflow ==== Accesăm directorul ''integer-overflow/'' din arhiva de suport. Urmăriți fișierul cod sursă C ''vuln.cpp'' și rulați executabilul ''vuln'' în așa fel încât să afișeze mesajul //You got it! Congratulations!//. ==== Leak de informație ==== Accesăm directorul ''leak/'' din arhiva de suport. De ce este problematic programul ''vuln.cpp''? Ce poate obține un atacator din accesarea executabilului? Ce se întâmplă dacă decomentăm linia care apelează funcția ''do_trigger2()''? ==== Obținere root prin controlul mediului ==== Accesăm directorul ''get-root/'' din arhiva de suport. Urmăriți fișierul cod sursă C ''vuln.c'' și rulați executabilul ''vuln''. Folosiți executabilul în așa fel încât să afișeze mesajul //You got it! Congratulations!//.