Possiamo classificare tre aree generali quando si parla di sicurezza informatica:

  • Hardware
  • Software
  • human-ware.

Non tratteremo in particolare esattamente come ogni campo viene declinato, però possiamo

Una altra tendenza generale è che più è complessa più è insicura. e questo senso di insicurezza cresce in modo maggiore rispetto al lineare.

Security principles

  • Open Design perché così può essere scrutata da più persone
  • Economy of mechanism spiegata sotto.
  • Fail-safe defaults questo molto importante perché molti sistemi hanno dei default che possono essere exploitati.
  • Complete mediation: così abbiamo qualcosa che tracka tutti gli accessi, che controlla gli accessi.
  • Least privilege questo va a braccetto con il fail-safe.
  • Privilege separation così possiamo mettere in modo indipendente un privilegio per qualcos’altro.

CIA properties

Ne abbiamo parlato in modo leggermente inverso in Sicurezza delle reti e in Theoretical Notions of Security. In questo caso sono

  1. Availability
  2. Integrity
  3. Confidentiality

È cambiata solamente l’availability, ossia la disponibilità in confronto alla sicurezza delle reti, in cui c’era l’autenticazione. Availability significa la disponibilità del servizio agli utenti, fare un DDoS per esempio è una violazione di questo genere. La cosa difficile è garantire tutti e 3.

Poi ci sono anche AAA ossia

  1. Autenticazione
  2. Autorizzazione
  3. Accounting (logging delle tue operazioni).
Violazione Nome
  • Disclosure
  • Alteration
  • Denial of service Nel caso dell’autenticazione sarebbe il phishing, furto d’identità diciamo.

Sistema politica e meccanismi

Già descritta in Architettura software del OS. l’idea è la stessa, separazione meccanismi e la messa in atto di queste, solo che ora siamo in ambito sicurezza ora e non implementazione del kernel. L’idea generale è che

  • Meccanismo implementa la singola feature, come permesso di scrittura se possiedi certa flag, capability etc.
  • Politica o policy, decide effettivamente quale meccanismo usare e in quale modo. Questo decoupling dovrebbe aiutare a rendere la cosa più comoda.

Crittografia

È una nota importante, ma in questa sede non andremo a trattarle Anche questo è stato descritto in Sicurezza delle reti, pubbliche private, simmetriche asimmetriche, DES AES RSA e ora curve ellittiche etc. Puoi approfondire in OTP and Stream Ciphers, Block Ciphers e Asymmetric Cryptography. Simmetrica, in cui sapere la chiave sai tutto.

Tipologie di attacchi 🟨

image/universita/ex-notion/Sicurezza OS/Untitled

Divisione per attività dell’attaccante Per veicolo dell’attacco (se da dentro o da fuori) Obiettivi dell’attacco (quindi gravità della compromissione della macchina diciamo.

image/universita/ex-notion/Sicurezza OS/Untitled 1

Attacchi soliti

Buffer overflow 🟩

Confrontare quanto presente con Memory Corruption, in cui andiamo ad approfondire molto meglio i dettagli degli attacchi di basso livello.

image/universita/ex-notion/Sicurezza OS/Untitled 2

Time of Check Time of use 🟩

Tipo access ha detto, quando non è atomico il check e l’utilizzo, nel mezzo il file potrebbe essere cambiato

Trojan horse 🟩

image/universita/ex-notion/Sicurezza OS/Untitled 3 image/universita/ex-notion/Sicurezza OS/Untitled 4

Virus e batteri 🟨

image/universita/ex-notion/Sicurezza OS/Untitled 5

Solitamente questi virus hanno comportamenti classici, e si può estrarre una firma, questo è quello con cui utilizzano antivirus per checkare.

Autenticazione

Memorizzazione password 🟩

Salt

Parlare di etc passwd ed /etc/shadow Abbiamo fatto qualche laboratorio carino sul cracking delle password l’anno seguente al corso di cybersecurity.

Login spoofing 🟩

Sniffers🟨+

Challenge based 🟩

Possiamo osservare i challenge based in Wireless attack vectors quando si parla di porte automatiche e

Smart card and physical objects 🟩-

Pluggable Authetnication Module🟨

<img src="/images/notes/image/universita/ex-notion/Sicurezza OS/Untitled 6.png" alt="image/universita/ex-notion/Sicurezza OS/Untitled 6">

I campi sono 2/3, si indica per chi si utilizza la policy, poi politiche della policy (se passa o meno o simili) e poi qualcosa di pam da utilizzare

Autorizzazione

Vogliamo dare i permessi alle persone (chi può fare cosa). Solitamente dividiamo in tre possibili parti separate

  • Soggetto: (a chi stiamo dando la possibilità di accedere alle nostre risorse?)
  • Oggetto: cosa stiamo dando come permesso?
  • Diritto: che genere di permesso stiamo dando al soggetto verso l’oggetto?

Principi d’autorizzazione(4)🟨-

image/universita/ex-notion/Sicurezza OS/Untitled 7 image/universita/ex-notion/Sicurezza OS/Untitled 8

Domini di accesso e ACL 🟩

Definiamo una riga per utente e in questa riga mettiamo tutti i permessi per questo utente.

image/universita/ex-notion/Sicurezza OS/Untitled 9 Sicurezza OS-20240527192007092

Slide Access control list

Extended ACL

Quando nelle acl Praticamente ogni posso associare dei permessi aggiuntivi che vanno ad ogni user del singolo gruppo. Poi queste sono passate da delle mask. In pratica mi permette di avere più controllo sui permessi. In linux se viene utilizzato questo c’è un + alla fine della lista permessi. si utilizzano comandi come getfactl per gestire queste credo.

Capability🟩

C’è il concetto di capability ossia ogni risorsa deve essere associata una serie di diritti d’accesso. image/universita/ex-notion/Sicurezza OS/Untitled 10

Quando viene mantenuto in lato utente, in pratica viene cifrata con la chiave privata del root, e questo viene sempre verificato. (solitamente nei sistemi distribuiti viene utilizzato questo metodo (posso eliminare la capability)

Ma come eseguire la revoca della capability di questi servizi?

Esempi di capabilities sono cookie, o file aperti. (in Unix sono molto comuni).

File descriptor table

Quando un processo accede a un file, il file descriptor table non è altro che una tabella con le capability del processo su quella risorsa. (descrive cosa ci puoi fare). La verifica del permesso è fatta solo una volta (molto alta solitamente), ma quando è messa nella tavola puoi farci tutte le letture e scritture che vuoi, ammortizzando il costo della verifica iniziale.

Revoca delle capabilities

Rimuovere una capability data è spesso molto difficile. Abbiamo i quattro casi. image/universita/ex-notion/Sicurezza OS/Untitled 11

Effective real and saved ids🟩

Saved user e group id sono gli user id precedenti a quando si fa la chiamata setuid e simili, sono utilizzati per ripristinare il servizio. image/universita/ex-notion/Sicurezza OS/Untitled 12

Si possono fare attacchi Toc Tou anche su questi checks (real sono quelli effettivi, dell’utente, mentre effettive sono i permessi utilizzati durante il momento di check).

Special permission bits

Sono

  • Setuid su dir non fa niente, su file rende l’esecuzione come quello principale.
  • Setgid su file rende possibile eseguire come gruppo, sulla directory dà ai file creati qui lo stesso gruppo.
  • Sticky-bit (permette l’eliminazione e movimento di file solamente al proprietario, ma il resto permette di fare come al solito)

Discretionary Access Control

DAC è quello che solitamente viene usato, l’owner della risorsa dà il permesso, che in pratica è il sistema classico con gli ACL descritto sopra. Discretionary perché è il singolo utente che decide se dare i permessi ad altri o meno

Mandatory Access Control

MAC, mandatory access control (mandatory perché è il sistema che definisce le regole e quelle sono, non le puoi cambiare), definisce delle regole generali del sistema e possono essere di due casi (quindi quando abbiamo MAC, ci sono ruoli di default.`

Bell La-padula🟩

Si basa sul principio che informazione va su (scrittura di nuove informazioni). Per esempio questa è una cosa che è stata fatta per prendere cose

  • Top Secret
  • Secret
  • Public Seguono questo pattern casi in cui si vuole proteggere l’informazione.

Biba🟩

È l’opposto di Bell La-padula, perché la scrittura è in giù, mentre la lettura in su. Il motivo di questo è perché la scrittura rappresenta comandi, quindi devi mandarlo giù.

  • Capitano
  • Tenente
  • Carabiniere Scelto

Più utilizzata in sistemi in cui l’integrità è importante. Quindi sistemi in cui vogliamo dare l’ordine (informazione verso il basso).

Accounting

Si interessa dei sistemi di logging. Come per esempio il Journal che utilizzano tutti i servizi nel sistema operativo. In Ext4, forse citato in Filesystem viene trattato in breve.

Questa parte dovrebbe essere approfondita.