User Tools

Site Tools


secure-low-level-programming:capitole:10-controlul-accesului

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
secure-low-level-programming:capitole:10-controlul-accesului [2018/12/20 21:19]
razvan
secure-low-level-programming:capitole:10-controlul-accesului [2018/12/21 16:38] (current)
razvan [setuid]
Line 28: Line 28:
 Accesăm directorul ''​setuid/''​ din arhiva de suport. Accesăm directorul ''​setuid/''​ din arhiva de suport.
  
-Urmăriți conținutul fișierului ''​ prog.c''​ și rulați executabilul ''​prog''​. Programul încearcă deschiderea a două fișiere privilegiate. În primă instanța va eșua.+Urmăriți conținutul fișierului ''​prog.c''​ și rulați executabilul ''​prog''​. Programul încearcă deschiderea a două fișiere privilegiate. În primă instanța va eșua.
  
 Apoi schimbați owner-ul fișierului în ''​root''​ și adăugați-i bitul de ''​setuid''​ folosind comenzile Apoi schimbați owner-ul fișierului în ''​root''​ și adăugați-i bitul de ''​setuid''​ folosind comenzile
Line 36: Line 36:
 </​code>​ </​code>​
  
-Acum rulați din nou programul și observați că reușește deschiderea unui fișier, câtă vreme //effective user id-ul// (''​euid''​) este ''​1000''​.+Acum rulați din nou programul și observați că reușește deschiderea unui fișier, câtă vreme //effective user id-ul// (''​euid''​) este ''​0''​. În momentul în care //effective user id-ul// (''​euid''​) este ''​1000''​, operația eșuează.
  
 ==== cap ==== ==== cap ====
  
-Accesăm directorul ''​lalala/''​ din arhiva de suport.+Accesăm directorul ''​cap/''​ din arhiva de suport.
  
-TODO+<note important>​ 
 +Va trebui să instalați pachetul ''​libcap-dev''​ folosind comanda 
 +<​code>​ 
 +sudo apt install libcap-dev 
 +</​code>​ 
 +</​note>​
  
 +Urmăriți conținutul fișierului ''​prog.c''​ și rulați executabilul ''​prog''​. Programul încearcă deschiderea a două fișiere privilegiate. În primă instanța va eșua.
 +
 +Apoi oferiți executabilului ''​prog''​ capabilitatea ''​CAP_DAC_READ_SEARCH''​ folosind comanda:
 +<​code>​
 +sudo setcap cap_dac_read_search+ep ./prog
 +</​code>​
 +Verificați adăugarea capabilității folosind comanda:
 +<​code>​
 +getcap ./prog
 +</​code>​
 +
 +Acum rulați din nou programul și observați că reușește deschiderea unui fișier, câtă vreme capabilitatea ''​CAP_DAC_READ_SEARCH''​ este prezentă.
 +
 +<note tip>
 +Dacă doriți să eliminați capabilitatea ''​CAP_DAC_READ_SEARCH''​ din executabilul ''​prog''​ folosiți comanda
 +<​code>​
 +sudo setcap cap_dac_read_search-ep ./prog
 +</​code>​
 +</​note>​
 ==== seccomp ==== ==== seccomp ====
  
-Accesăm directorul ''​lalala/''​ din arhiva de suport.+Accesăm directorul ''​seccomp/''​ din arhiva de suport.
  
-TODO+<note important>​ 
 +Va trebui să instalați pachetul ''​libseccomp-dev''​ folosind comanda 
 +<​code>​ 
 +sudo apt install libseccomp-dev 
 +</​code>​ 
 +</​note>​
  
 +Urmăriți conținutul fișierului ''​prog.c''​ și rulați executabilul ''​prog''​. Programul încearcă deschiderea a două fișiere privilegiate. Deschiderea primului fișier va reuși, în vreme ce deschiderea celui de-al doilea fișier va eșua dată fiind folosirea sandboxing-ului cu ajutorul ''​seccomp''​.
secure-low-level-programming/capitole/10-controlul-accesului.1545333591.txt.gz · Last modified: 2018/12/20 21:19 by razvan