Controllo degli accessi in UNIX

Documenti analoghi
Controllo degli accessi in UNIX

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Lezione 2: Comandi avanzati della Shell di Unix

File System I parte. File System

Utenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Università degli Studi di Messina Facoltà di Scienze MM. FF. NN. Corso di Laurea Triennale in Informatica (D.M. 270)

Shell di Linux e Comandi Utente

Gestione degli Utenti e dei Permessi

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Permessi, utenti e gruppi

Linux: Controllo di accesso, gestione utenti, gruppi, permessi.

Configurazione di una LAN in ambiente Windows

Ca ra tteristiche dei sistem i GN U/L inux. Struttura di un sistema GNU/Linux Il filesystem La shell

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. 16/02/2007 Marco Marchisotti

Guida Linux. Molto rapida

Gestione degli Utenti e dei Permessi

Introduzione al DEV C++

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Appunti Corso Linux 2011 Lez. 6

File System. Capitolo Silberschatz

File System. File system gerarchico. Proteggere la propria home directory ... / = Root nodi interni: directory foglie: directory vuote o file

GNU/Linux Concetti di base

INSTALLAZIONE E CONFIGURAZIONE DEL SERVIZIO SAFEBOX

Riferimento rapido dell'applicazione Novell Filr 2.0 Web

IDE DevC

Cosa è un sistema operativo?


Linux. Linux. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Paolo Zatelli Università di Trento 1 / 24

SHELL GNU/Linux Bash. Conoscere e configurare il proprio ambiente bash. Kernel speaks: dmesg

Installazione di Ubuntu Mauro Piccolo

Manuale d uso della Posta TBS. Oracle Collaboration Suite

Utenti. Il cuore del sistema di gestione degli utenti si trova nei file. Anche altri file sono (più o meno) importanti in questo processo:

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Laboratorio di Programmazione

predefinito in Windows XP

Sequenza di avvio di Linux:

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android

Sistema Operativo (Software di base)

REMOTE DISK. GUIDA UTENTE v 2.2

Primi passi col linguaggio C

Interfaccia del file system

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Guida Piattaforma su PC. HealthCity APP

File e directory block-size=n Esprime la dimensione del blocco. --block-size=si Indica un blocco di 1000 byte, --human-readable.

Struttura del sistema operativo GNU/Linux

Utilizzo di Fiery WebSpooler

Fondamenti di GNU/Linux

PRECORSO DI INFORMATICA. Laboratorio Prima Parte

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

Informatica Generale 1 - Esercitazioni Introduzione all uso della command-line shell

Sistema operativo & file system 1

Corso base GNU/Linux Latina Linux Group. Sito web: Mailing list:

Files di Configurazione

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Moduli Bluetooth 03 - connessione seriale via BT

Utilizzo di putty. L uso base e molto semplice: richiede solo di specificare:

RICHIESTA CERTIFICATO DI AGIBILITÀ IMPRESE CHE OCCUPANO LAVORATORI DEL SETTORE DELLO SPETTACOLO

Uso del terminale in ambiente UNIX

Manuale Plugin SyncDB

Architettura degli elaboratori Docente:

Panoramica di Document Portal

By E.M. Comandi fondamentali per LINUX

Struttura di un applicazione Instant Developer

1 - Spesometro guida indicativa

Corso di Laboratorio di Sistemi Operativi

fare hard link fra file system diversi e su directory.

Laboratorio di Sistemi Operativi

I THREAD O PROCESSI LEGGERI

Manuale dell utente Superadmintool

Corso ForTIC C2 LEZIONE n. 3

Organizzazione di Sistemi Operativi e Reti

03/06/2015 GUIDA RAPIDA DELL APPLICAZIONE SID GESTIONE FLUSSI SALDI VERSIONE 1.0.5

Firma Digitale Remota

Quote of the day. Jerome Howard Jerry Saltzer (1939-) Docente universitario (M.I.T.) Ideatore del SO CTSS Co-creatore di Kerberos e X11

GUIDA RAPIDA AL PLOTTAGGIO DI NX7.5

Applicazione Android (v )

Sequenza di avvio di Linux:

Manuale D Uso. Sistema di Registrazione FormaSicilia

testo Saveris Web Access Software Istruzioni per l'uso

Con un DB vuoto (non proprio visto che alcuni campi sono valorizzati di default) il sito si presenta come nell immagine 1.

Sicurezza del File System

MSW H264 H264 2MP Canali

GLUG Govonis. Corso Avanzato GNU / Linux. Lezione del Shell

Routing IP A.A. 2006/2007. Walter Cerroni. Routing gerarchico in Internet

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2007

Guida all utilizzo della Piattaforma per la staffetta di Scrittura Creativa Manuale pratico per docenti e tutor

Introduzione all'uso del sistema operativo Ubuntu

Introduzione a LINUX

SISTEMI OPERATIVI MULTI-UTENTE: UNIX

Gestione Multilingua

Cosa sono le maschere

GLI SCRIPT DI SHELL. Lucidi a cura di B.De Carolis. UNIX shell script UdB- Dip Informatica

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Manuale Sito Videotrend

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

maurizio pizzonia sicurezza dei sistemi informatici e delle reti. sicurezza dei sistemi unix e linux

Esercitazione Laboratorio di Sistemi Operativi Cognome Nome Mat.

Transcript:

Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2013/2014 Controllo degli accessi in UNIX Andrea Lanzi 2014 Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 1 / 32

Controllo degli accessi nei sistemi UNIX Linee guida generiche stabilite fin dalle prime versioni: 1 Tutti gli oggetti (es. file, processi) hanno dei proprietari. I proprietari hanno pieno controllo (non necessariamente senza restrizioni!) sui propri oggetti 2 un utente è il proprietario di tutti gli oggetti che crea 3 l utente root può effettuare operazioni come se fosse il proprietario di un qualsiasi oggetto 4 solo all utente root è concesso effettuare speciali operazioni di amministrazione del sistema Non esiste un unico meccanismo di controllo degli accessi (Es. system call stettimeofday VS kill ). Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 2 / 32

Permessi di accesso Chi? Cosa? Soggetti UNIX: utenti gruppi processi Oggetti UNIX: file Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 3 / 32

Controllo degli accessi tramite file system Ogni file ha associati un proprietario ed un gruppo. Il proprietario può impostare, a piacere, i permessi di accesso a quello specifico file. Per per stabilire a chi appartiene un file: ls -l filename [ 1 6 : 1 0 : 1 2 ] s r d j a n @ s a l v a d o r t m p : $ l s l t o t a l 16 rw r r 1 bob s t u d e n t e 1332 Apr 9 1 5 : 5 6 a p p u n t i. t x t drwx 2 s r d j a n s r d j a n 4096 Jan 1 1970 o r b i t s r d j a n drwxrwxrwt 2 r o o t r o o t 4096 Apr 9 1 5 : 1 9 VMwareDnD drwx 2 r o o t r o o t 4096 Apr 9 1 5 : 2 0 vmware r o o t Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 4 / 32

Controllo degli accessi tramite file system Ogni file ha associati un proprietario ed un gruppo. Il proprietario può impostare, a piacere, i permessi di accesso a quello specifico file. Per per stabilire a chi appartiene un file: ls -l filename [ 1 6 : 1 0 : 1 2 ] s r d j a n @ s a l v a d o r t m p : $ l s l t o t a l 16 rw r r 1 bob s t u d e n t e 1332 Apr 9 1 5 : 5 6 a p p u n t i. t x t drwx 2 s r d j a n s r d j a n 4096 Jan 1 1970 o r b i t s r d j a n drwxrwxrwt 2 r o o t r o o t 4096 Apr 9 1 5 : 1 9 VMwareDnD drwx 2 r o o t r o o t 4096 Apr 9 1 5 : 2 0 vmware r o o t Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 4 / 32

Soggetti e oggetti: diritti Soggetti Oggetto diritti di accesso determinati da UID/GID diritti di accesso memorizzati insieme all oggetto stesso (inode) Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 5 / 32

Permessi sul file system Tipologie di permessi di accesso: lettura (r o 4), scrittura (w o 2), esecuzione (x o 1). Per i file: r: permette di leggere il file w: permette di scrivere il file x: permette l esecuzione Per le directory: r: permette di leggere il contenuto delle directory (elenco dei file) w: permette di modificare il contenuto delle directory x: permette l attraversamento della directory Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 6 / 32

Permessi dei processi Processi e proprietario Il proprietario del processo può inviare segnali al processo stesso o modificare la priorità di scheduling del processo in Unix ogni processo possiede le proprie credenziali (UID, GID) che determinano cosa un processo può fare; l utilizzo richiede supporto sia dal processo che dalla risorsa interessata; Nome uid, gid euid, egid suid, sgid fsuid, fsgid Descrizione real UID/GID effective UID/GID saved UID/GID effective file access UID/GID [Linux] Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 7 / 32

L account di root È l account amministratore che è onnipotente all interno di un sistema UNIX (superuser) può effettuare qualsiasi operazione valida root ha UID = 0 Esempi di operazioni privilegiate: modifica del hostname configurazione di interfacce di rete spegnimento del sistema modifica del proprio UID e/o GUID (Es. programma login ) Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 8 / 32

Permessi di accesso quando un processo è creato eredita la credenziali del padre; le credenziali possono essere modificate successivamente (e.g. system call); solitamente uid, euid, suid hanno lo stesso valore; Cosa succede quando un processo esegue un programma setuid? Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 9 / 32

Permessi di accesso setuid Quando un processo esegue un programma setuid i campi euid e fsuid sono impostati con l UID del proprietario del file. passwd le password sono salvate in un file comune al quale non è possibile accedere da utente non privilegiato; per cambiare la password l utente invoca il programma /usr/bin/passwd che ha il flag setuid impostato ed il cui proprietario è l utente con UID = 0 (root); quando il processo forkato dalla shell esegue passwd le credenziali del processo euid e fuid sono impostate con valore pari al UID del proprietario del file, cioè 0; il processo può accedere al file perché quando il kernel controlla i permessi trova fsuid a 0; Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 10 / 32

Permessi di accesso programmi setuid Un utente maligno può sfruttare bug nel codice per effettuare privilege escalation. Unix permette ai processi di acquisire il privilegio setuid solo quando necessario e rilasciarlo quando non se ne ha più bisogno. system call: getuid, geteuid, getresuid, setuid, seteuid, setresuid. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 11 / 32

Permessi di accesso Basati su effective UID/GID: Algoritmo real UID/GID: ereditati dal genitore; riconducibili solitamente a UID/GID dell utente che ha iniziato la sessione di lavoro associata al processo effective UID/GID: UID utilizzato quando viene effettuato il controllo dei privilegi del processo; solitamente coincide con RUID 1 se UID del soggetto corrisponde al proprietario del file, si fa riferimento ai bit di permesso relativi al proprietario; altrimenti 2 se un GID del soggetto corrisponde al gruppo del file si fa riferimento ai bit di permesso relativi al gruppo; altrimenti 3 si utilizzano i bit relativi a world Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 12 / 32

Permessi speciali Per i file: SUID: associa all eseguibile in esecuzione i permessi del proprietario del file SGID: associa all eseguibile in esecuzione i permessi del gruppo di appartenenza Per le directory: sticky: non consente di modificare un file a un utente diverso dal proprietario, neanche dagli utenti che hanno permesso di scrittura sulla directory SGID: fa in modo che i permessi dei file creati appartengano al gruppo definito SGID Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 13 / 32

Problema: passwd? s r d j a n @ s a l v a d o r : $ l s l / u s r / b i n / passwd????????? 1 r o o t r o o t 43280 Apr 9 21:54 / u s r / b i n / passwd s r d j a n @ s a l v a d o r : $ l s l / e t c / shadow rw r 1 r o o t shadow 2. 4K Apr 9 21:54 / e t c / shadow Indipendentemente da quali siano i permessi concessi sul eseguibile passwd, il programma deve modificare file (/etc/shadow) per i quali solamente l utente root, il proprietario, ha il permesso di scrittura (w)!. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 14 / 32

Soluzione: setuid s r d j a n @ s a l v a d o r : $ l s l / u s r / b i n / passwd rwsr xr x 1 r o o t r o o t 43280 Apr 9 21:54 / u s r / b i n / passwd s r d j a n @ s a l v a d o r : $ c a t / proc /13618/ s t a t u s Name : passwd S t a t e : S ( s l e e p i n g ) Tgid : 13618 Pid : 13618 PPid : 13419 T r a c e r P i d : 0 Uid : 1000 0 0 0 Gid : 1000 1000 1000 1000... Funzionamento: Quando un utente cambia la propria password usando il comando passwd il RUID corrisponde all UID dell utente che ha eseguito il programma mentre EUID corrisponde al proprietario del file, cioè root. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 15 / 32

umask permessi di default impostati alla creazione di un file, secondo una maschera definita maschera di default impostata tramite il comando umask la maschera indica i permessi che non vengono attribuiti; e.g., umask 022 non viene permessa la scrittura ne al gruppo ne ad altri utenti (permessi reali & umask) Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 16 / 32

Attributi (1) Oltre i permessi è possibile definire alcuni attributi ai file che devono essere supportati dai file system (ext2 ext3 ext4). Attributo A a c i 1 s u S Descrizione Non aggiorna la data di accesso (atime) Permette l aggiunta al file solo in append Dice al kernel di compr. e decompr. immutabile, non permette nessuna modifica al file cancella i dati con altri dati nulli. Recupero file dalla cancellazione ogni scrittura viene eseguita immediatamente. 1 Invocabile solo da utente root Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 17 / 32

Attributi (2) chattr [opzioni] [modalità] file... si possono specificare gli attributi con i segni +=- + vengono aggiunti gli attributi specificati, con - vengono rimossi gli attributi specificati, = vengono impostati gli attributi cosi come specificati. lsattr[opzioni] file... Opzione Descrizione -R operazione ricorsiva -a Elenca tutti i file (anche nascosti) -d Elenca anche le directory Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 18 / 32

chown (1) chown comando per cambiare proprietario al file. chown [opzioni] [utente][:[gruppo]] file R lavora in modo ricorsivo from=utente:gruppo cambia i file del utente:gruppo Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 19 / 32

chown (2) chown srdjan miofile cambia l utente del file miofile impostando l utente srdjan chown srdjan:users miofile cambia l utente e gruppo del file miofile rispettivamente nell utente srdjan e gruppo users chown -R from=root srdjan miadir cambia l owner dei file appartenenti all utente root nell utente srdjan Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 20 / 32

chgrp (1) chgrp comando per cambiare gruppo al file. chgrp [opzioni] gruppo file... chgrp users file questo comando imposta il gruppo users associato al file. chgrp -R users /home/srdjan questo comando imposta in modo ricorsivo il gruppo users associati ai file contenuti nella directory e sottodirectory. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 21 / 32

chmod (1) chmod comando per cambiare permessi. chmod [opzioni] modalità dei permessi file... u g o a Utente proprietario del file Gruppo proprietario Utente diverso Tutti gli utenti indifferentemente Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 22 / 32

chmod (2) r w x s t accesso lettura permesso scrittura permesso esecuzione Riguarda file eseguibili e directory (SUID SGID) file eseguibili e directory. STICKY bit chmod -R go-rwx /* Toglie al gruppo e agli altri utenti la possibilità di scrittura lettura ed esecuzione della directory e nelle directory successive. chmod -R a+rx /* Assegna a tutti gli utenti il permesso di lettura ed esecuzione partendo dalla directory e considerando le sottodirectory. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 23 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 24 / 32

Esercizio 0xA0 Utilizzando l utente bob presente sul sistema, impostare la sua umask in modo tale che possa creare file e directory leggibili e scrivibili solo da lui (i.e. negando qualsiasi altro permesso a group e other). Modificare ora la umask dell utente bob in modo che solo lui abbia il diritto di modificare e leggere i nuovi file che crea. Tale modifica deve persistere al riavvio del sistema. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 25 / 32

Esercizio 0xA1 Permettere a bob di creare la directory /usr/local/bob senza aggiungerlo al gruppo root senza creare la directory come utente root senza cambiare proprietario/permessi della directory /usr/local Tale modifica deve persistere ad eventuali reboot del sistema. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 26 / 32

Esercizio 0xA2 Creare la directory /usr/local/bob/tmp e permettere l accesso, la scrittura e la lettura in tale directory a tutti (user, group, other). Fare in modo che soltanto gli utenti proprietari dei file creati nella directory abbiamo la possibilità di cancellarli. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 27 / 32

Esercizio 0xA3 Creare la directory /home/bob/suid-files/ e cercare tutti i file suid root e copiarli nella directory appena creata impostando bob come proprietario e gruppo di appartenenza di ciascun file. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 28 / 32

Esercizio 0xA4 Creare un file appendme in /home/bob/ in modo tale che sia solamente possibile aggiungere dati e non eliminarne. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 29 / 32

Esercizio 0xB1 Scrivere un programma C che scriva su stdout le credenziali del processo relativo all esecuzione del vostro programma. Si modifichi il proprietario del programma come root, bob, alice e si attribuiscano gli opportuni permessi in modo tale che tale programma sia eseguito con le credenziali dell utente root, bob, alice. Eseguire il programma con diversi utenti e vedere come cambiano i valori di: RUID, EUID, SUID. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 30 / 32

Esercizio 0xB2 Individuare ID dell utente eve. Hint Creare un nuovo gruppo malicious e aggiungere l utente eve al gruppo appena creato. Usando l account di eve, creare un file testuale /tmp/evil.txt. Modificare i permessi di tale file per fare in modo che solamente i membri del gruppo malicious possano leggerne il contenuto. Scrivere un programma C, che utilizzi la system call setsgid, che verrà utilizzato per generare un programma che consenta all utente bob di leggere il contenuto di /tmp/evil.txt. Proprietario del file eseguibile: root; setuid (root) su file eseguibile generato. Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 31 / 32

Link e materiale utile Unix history (http://www.bell-labs.com/history/unix/) Unix and Linux System Administration Handbook, Evi Nemeth - Garth Snyder - Trent R. Hein - Ben Whaley, ED. Pretience Hall, 4th ed. The Linux Programming Interface, Michael Kerrisk, ED. no starch press Linux System Administration, Tom Adelstein & Bill Lubanovic, ED. O Reilly Setuid Demistified, H. Chen, D. Wagner, and D. Dean, 2002. Linux Command Line and Shell Scripting Bible, Richard Blum, ED. Whiley Andrea Lanzi Controllo degli accessi in UNIX - parte I 2014 32 / 32