This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
secure-low-level-programming:capitole:10-controlul-accesului [2018/12/20 22:07] razvan |
secure-low-level-programming:capitole:10-controlul-accesului [2018/12/21 16:38] (current) razvan [setuid] |
||
---|---|---|---|
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 ==== | ||
Line 42: | Line 42: | ||
Accesăm directorul ''cap/'' din arhiva de suport. | Accesăm directorul ''cap/'' 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. | + | <note important> |
- | + | Va trebui să instalați pachetul ''libcap-dev'' folosind comanda | |
- | <note tip> | + | |
- | Dacă doriți să recompilați programul ''prog.c'' în fișierul executabil ''prog'' va trebui să instalați pachetul ''libcap-dev'' folosind comanda | + | |
<code> | <code> | ||
sudo apt install libcap-dev | sudo apt install libcap-dev | ||
</code> | </code> | ||
</note> | </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: | Apoi oferiți executabilului ''prog'' capabilitatea ''CAP_DAC_READ_SEARCH'' folosind comanda: | ||
Line 67: | Line 67: | ||
sudo setcap cap_dac_read_search-ep ./prog | sudo setcap cap_dac_read_search-ep ./prog | ||
</code> | </code> | ||
+ | </note> | ||
==== seccomp ==== | ==== seccomp ==== | ||
Accesăm directorul ''seccomp/'' din arhiva de suport. | Accesăm directorul ''seccomp/'' 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. | + | <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''. |