La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.

Presentazioni simili


Presentazione sul tema: "Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi."— Transcript della presentazione:

1 Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi che utilizzano lo stesso codice Data = variabili inizializzate BSS = variabili non inizializzate Process A Process B

2 Condivisione di File Two processes can share a mapped file. Un file mappato simultaneamente in due processi: accesso più veloce, utilizzato nelle librerie condivise

3 System Call per la Gestione della Memoria Non sono standard, al loro posto è usata una chiamata di libreria di più alto livello del C: malloc

4 Utilizzo malloc Alloca una serie di byte in memoria. Ha un utilizzo simile alla new di Java per dichiarare array dinamici: Esempio di allocazione di un vettore di 10 interi. int * vett; vett = (int *) malloc (10 * sizeof (int)); sizeof (int) = byte occupati da un intero. int * = puntatore ad interi (alla prima cella dellarea di memoria degli interi)

5 Gest. memoria nei processi Windows Layout di spazi di indirizzamento logici per 3 processi Le aree bianche sono private Le aree scure sono condivise

6 Gest. memoria nei processi Windows Aree mappate con le rispettive pagine su disco Il file lib.dll è mappato in due spazi di indirizzamento contemporaneamente

7 Gestione della sicurezza (Linux/Windows) Gestione della sicurezza in Linux Gestione della sicurezza in Windows 2000 Buchi nella sicurezza (allinterno del sistema). Attacchi dallesterno

8 Sicurezza in Linux Ogni file ha permessi di lettura, scrittura ed esecuzione. Ogni file ha un owner (proprietario) con un proprio UID (Identificativo utente) e GID (Identificativo gruppo). Lutente con UID 0 è detto root è può effettuare qualsiasi operazione sui file.

9 System Calls per la protezione dei file s è un codice di errore. uid e gid sono user ID e il group ID. Le ultime tre chiamate sono eseguibili solo dal root

10 Id effettivo e reale Problema: un programma deve accedere a risorse possedute dal root. Soluzione: settare il bit SETUID. Se tale bit è settato chi esegue il programma acquista, solo per lesecuzione, i diritti del proprietario del programma (il suo id effettivo diventa quello del proprietario). chmod a+s pippo (setta per il file pippo il bit SETUID per tutti). Attenzione: il programma non deve contenere buchi di sicurezza.

11 Sicurezza in Windows 2000 Ogni processo in Windows possiede un Access Token SID=Security ID (ogni utente ha il suo). DACL = Discretionary Access Control List Restricted SIDs sono utenti che hanno permessi limitati sul file. Privilegi: alcuni privilegi speciali (anche di superuser possono essere dati al processo). Un thread può passare la sua access token ad un altro (impersonificazione). Struttura di un access token

12 Security Descriptor Ogni oggetto possiede un security decriptor SACL=System Access Control List (Log) ACE=Access Control Element

13 API per la Sicurezza

14 Buchi nella sicurezza Cavalli di troia Login spoofing Porte segrete Bombe logiche Buffer overflow

15 Buffer Overflow (a) Il main è chiamato (b) Il metodo A è chiamato (c) Buffer overflow è mostrato in grigio


Scaricare ppt "Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi."

Presentazioni simili


Annunci Google