This is an old revision of the document!


Curs 12 - Elemente de securitate

Demo-uri

Pentru rularea demo-urilor de mai jos folosim mașina virtuală USO Demo. Mașina virtuală (în format OVA) poate fi importată în VirtualBox. Comenzile le vom rula în cadrul mașinii virtuale.

Mașina virtuală deține două interfețe de rețea:

  • eth0 pentru accesul la Internet (interfață de tipul NAT)
  • eth1 pentru comunicarea cu sistemul fizic (gazdă, host) (interfață de tipul Host-only Adapter)

Pentru a rula demo-ul avem două opțiuni:

  1. Folosim direct consola mașinii virtuale.
  2. Aflăm adresa IP de pe interfața eth1 a mașinii virtuale și ne conectăm prin SSH, de pe sistemul fizic, folosind comanda
    ssh student@<adresa-IP-vm-eth1>

    unde <adresa-IP-vm-eth1> este adresa IP a interfeței eth1 din cadrul mașinii virtuale.

Pentru conectarea la mașina virtuală folosim numele de utilizator student cu parola student. Contul student are permsiuni de sudo. Folosind comanda

sudo su -

obținem permisiuni privilegiate (de root) în shell.

Dacă dorim să ne conectăm pe SSH iar mașina virtuală nu are adresă IP configurată pe interfața eth1 atunci folosim comanda

sudo dhclient eth1

pentru a obține o adresă IP.

Dacă optăm pentru rularea prin SSH iar sistemul fizic rulează Windows, putem folosi Putty pe post de client SSH pe sistemul fizic.

Comenzile folosite sunt de uz general. Actualizând adresele IP cu adrese potrivite, putem rula cu succes comenzile pe orice sistem sau mașină virtuală Linux.

Folosire umask pentru configurarea permisiunilor de creare

Unul dintre cele mai importante principii în securitate este principiul celui mai mic privilegiu (least privilege). Pentru aceasta, inclusiv în sistemul de fișiere (fișiere, directoare), se recomandă permisiuni (drepturi de acces minime). Acestea pot fi schimbate folosind comanda chmod. Dorim, însă, să putem configura permisiunile implicite la crearea intrărilor în sistemul de fișiere. Pentru aceasta folosim comanda umask.

La o rulare simplă, comanda umask ne afișează valoarea sa:

student@uso-demo:~$ umask
0022

Comanda umask indică permisiunile care vor fi absente în momentul creării unor intrări. Regulile de stabilire a permisiunilor de creare sunt:

  • pentru fișiere: 666 & ~umask (adică 666 ȘI logic cu masca negată)
  • pentru directoare: 777 & ~umask (adică 777 ȘI logic cu masca negată)

Pentru umask = 0022, ~umask = 7755. Rezultă permisiunile de creare:

  • pentru fișiere: 666 & 7755 = 0644
  • pentru directoare: 777 & 7755 = 0755

Putem verifica acest lucru creând un fișier și un director:

student@uso-demo:~$ touch test-file
student@uso-demo:~$ mkdir test-dir
student@uso-demo:~$ ls -l
total 4
drwxr-xr-x 2 student student 4096 Jan  5 11:31 test-dir
-rw-r--r-- 1 student student    0 Jan  5 11:31 test-file

Observăm că fișierul (test-file) a fost creat cu permisiunile rw-r--r-- (adică 644) iar directorul (test-dir) a fost creat cu permisiunile rwxr-xr-x (adică 755). Adică valorile așteptate.

În ideea de least privilege, este uzual să oferim permisiuni doar utilizatorului (user) și nici o permisiune pentru group și others. Pentru aceasta stabilim valoarea umask la 077, folosind comanda

student@uso-demo:~$ umask 077
student@uso-demo:~$ umask
0077

Observăm din a doua comandă că acum valoarea umask este alta.

Creăm un nou fișier și un nou director și verificăm aplicarea noii valori a umask pentru stabilirea permisiunilor de creare:

student@uso-demo:~$ touch test-file-2
student@uso-demo:~$ mkdir test-dir-2
student@uso-demo:~$ ls -l 
total 8
drwxr-xr-x 2 student student 4096 Jan  5 11:31 test-dir
drwx------ 2 student student 4096 Jan  5 11:36 test-dir-2
-rw-r--r-- 1 student student    0 Jan  5 11:31 test-file
-rw------- 1 student student    0 Jan  5 11:36 test-file-2

Observăm că fișierul (test-file-2) a fost creat cu permisiunile rw------- (adică 600) iar directorul (test-dir) a fost creat cu permisiunile rwx------ (adică 700). Adică valorile așteptate, rezultate în urma calculului:

  • pentru fișier: 666 & ~umask = 666 & ~0077 = 666 & 7700 = 600 = rw-------
  • pentru director: 777 & ~umask =777 & ~0077 = 777 & 7700 = 700 = rwx------

Valoarea umask este configurată funcție de nevoile utilizatorului ținând cont și de principiul celui mai mic privilegiu.

Valoarea umask este pe 4 cifre în octal. Prima cifră este aferentă biților speciali (setuid, setgid, sticky) folosiți în permisiuni. Nu insistăm pe acest lucru. Puteți găsi informații în secțiunile aferente din pagina de manual a chmod.

Pentru configurarea persistentă a valorii umask se recomandă plasarea comenzii de configurare într-un fișier de configurare a sesiunii de shell (precum ~/.bashrc).

Folosire John the Ripper pentru password cracking

TODO

Criptare/decriptare folosind chei simetrice

TODO

Criptare/decriptare folosind chei asimetrice

TODO

Semnare/verificare folosind chei asimetrice

TODO

uso/cursuri/curs-12.1452446713.txt.gz · Last modified: 2016/01/10 19:25 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0