This shows you the differences between two versions of the page.
so:cursuri:curs-13 [2014/04/14 18:08] razvan.deaconescu removed |
so:cursuri:curs-13 [2017/02/23 16:34] (current) razvan.deaconescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Curs 13 - Android ====== | + | ====== Curs 13 - Securitatea sistemului ====== |
+ | |||
+ | * [[http://elf.cs.pub.ro/so/res/cursuri/SO_Curs-13.pdf|Curs 13 - Securitatea sistemului (PDF)]] | ||
+ | * Suport curs | ||
+ | * Operating System Concepts Essentials | ||
+ | * Capitolul 13 -- Protection | ||
+ | * Capitolul 14 -- Security | ||
+ | * Secțiunile 14.1, 14.2, 14.5 | ||
+ | * Modern Operating Systems, 3rd Edition | ||
+ | * Capitolul 9 -- Security | ||
+ | * Mai puțin secțiunea 9.6: Exploiting Code Bugs | ||
<html> | <html> | ||
- | <iframe src="http://prezi.com/embed/_h0scih9xndd/?bgcolor=ffffff&lock_to_path=0&autoplay=0&autohide_ctrls=0&features=undefined&disabled_features=undefined" width="550" height="400" frameBorder="0"></iframe> | + | <center> |
+ | <iframe src="https://docs.google.com/viewer?url=http://elf.cs.pub.ro/so/res/cursuri/SO_Curs-13.pdf&embedded=true" width="600" height="480" style="border: none;"> | ||
+ | </iframe> | ||
+ | </center> | ||
</html> | </html> | ||
- | * [[http://prezi.com/_h0scih9xndd/so-curs-13/?kw=view-_h0scih9xndd&rc=ref-31844697 | Curs 13 - Android (Vizualizare Prezi)]] | + | ===== Demo-uri ===== |
- | * [[http://elf.cs.pub.ro/so/res/cursuri/SO_Curs-13.pdf | Curs 13 - Android (PDF)]] | + | |
- | * Suport curs | + | Pentru parcurgerea demo-urilor, folosiți [[http://elf.cs.pub.ro/so/res/cursuri/curs-13-demo.zip|arhiva aferentă]]. |
- | * [[http://imsciences.edu.pk/serg/wp-content/uploads/2010/10/1st_Analysis-of-Dalvik-VM.pdf|Analysis of Dalvik-VM]] | + | |
- | * [[http://handycodeworks.com/wp-content/uploads/2011/02/linux_versus_android.pdf|A Survey on Android vs. Linux]] | + | - Bitul de set-user-ID-on-execution |
+ | * Consultați fișierul ''test.c''. | ||
+ | * Scopul acestui program este de a genera un fișier de log care să conțină timestamp-uri aferente fiecărei rulări a sa, de forma ''user: time''. | ||
+ | * Numai owner-ul fișierului are drept de scriere asupra fișierului. | ||
+ | * Folosiți fișierul ''prep_users.sh'' pentru a genera cei doi utilizatori de test. | ||
+ | * Trebuie să aveți drept de sudo pentru a reuși întreg procesul. | ||
+ | * Ca utilizatorul ''master'' (''su - master'') compilați fișierul folosind comanda ''make''. | ||
+ | * Folosiți ''ls -l'' pentru a obține informații complete despre executabilul ''test''. | ||
+ | * Observați că executabiul este deținut de ''master'' și că are bitul de set-user-ID activat.<code bash> | ||
+ | -rwsr-xr-x 1 master master 12315 2014-05-12 22:33 test | ||
+ | </code> | ||
+ | * Ca utilizatorul ''worker'' (''su - worker'') rulați executabilul:<code bash> | ||
+ | ./test | ||
+ | </code> | ||
+ | * Observați cele două tipuri de identificatori de utilizatori: //user id//, //effective user ID//.<code> | ||
+ | worker@erathia:~$ ~master/test | ||
+ | |||
+ | Process started | ||
+ | |||
+ | Setuid on | ||
+ | Effective user name: master; UID: 1002 | ||
+ | Real user name: worker; UID: 1003 | ||
+ | |||
+ | |||
+ | Giving up setuid until opening the file | ||
+ | |||
+ | Setuid off | ||
+ | Effective user name: worker; UID: 1003 | ||
+ | Real user name: worker; UID: 1003 | ||
+ | |||
+ | |||
+ | Wanting to open the file | ||
+ | |||
+ | Setuid on | ||
+ | Effective user name: master; UID: 1002 | ||
+ | Real user name: worker; UID: 1003 | ||
+ | |||
+ | |||
+ | File opened, giving up setuid | ||
+ | |||
+ | Setuid off | ||
+ | Effective user name: worker; UID: 1003 | ||
+ | Real user name: worker; UID: 1003 | ||
+ | |||
+ | |||
+ | File closed, process done | ||
+ | </code> | ||
+ | * Detalii în [[http://man7.org/linux/man-pages/man7/credentials.7.html|pagina de manual credentials]]. | ||
+ | * Conform principiului least privilege, doar în momentul deschiderii fișierului pentru scriere sunt folosite drepturile utilizatorului owner. | ||
+ | * Observați că se poate reveni la utilizatorul owner al fișierului (//temporary privilege drop//). |