Table of Contents

Curs 13 - Securitatea sistemului

Demo-uri

Pentru parcurgerea demo-urilor, folosiți arhiva aferentă.

  1. 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.
        -rwsr-xr-x 1 master master 12315 2014-05-12 22:33 test
    • Ca utilizatorul worker (su - worker) rulați executabilul:
      ./test
    • Observați cele două tipuri de identificatori de utilizatori: user id, effective user ID.
      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
      • 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).