Libri -20% + Spedizione gratuita

È l'offerta migliore dell'anno, ma non dura a lungo 🧨

Guarda tutti i libri tra cui scegliere
Home
Parla come un hacker (per difenderti da ogni attacco)

07 Febbraio 2024

Parla come un hacker (per difenderti da ogni attacco)

di

La sicurezza non è un insieme di regole ma un’attenzione continua a tutti i rischi possibili di attacco a un sistema. Da conoscere anche per nome.

Se è software, è un’occasione di attacco

  1. Quali sono le basi dell’autenticazione
  2. Che cos’è la ripudiabilità
  3. Quali sono le caratteristiche di un attacco Denial of Service
  4. Quali sono i principali meccanismi di manomissione
  5. Che cos’è l’espansione dell’autorità

1. Quali sono le basi dell’autenticazione

L’autenticità richiede innanzitutto un identificatore: una dichiarazione di chi siamo. Questo potrebbe essere un nome (Han Solo) o un ruolo (Stormtrooper). Potrebbe essere vero o falso, e dato il rischio di un’impersonificazione, uno sbaglio o una bugia, richiediamo dei fattori di autenticazione, come un ID, una password o un’uniforme, mentre valutiamo se l’identificatore è autentico e concediamo (o neghiamo) l’autorizzazione.

Come si vede nella figura, i mezzi di autenticazione differiscono in base al tipo di entità che è deputata a provare l’identità e al tipo di entità che essa sta verificando.

Modalità di autenticazione.

Francamente, alcuni dei metodi mostrati nella figura non sono molto affidabili. Per esempio, il computer di fronte a noi è autenticato dalla nostra posizione fisica: ci fidiamo della nostra password perché la stiamo digitando. A volte quell’autenticazione debole è sufficiente, ma altre volte chi controlla l’altra entità vuole che l’autenticazione sia più forte (come nella prossima figura).

Difficoltà di autenticazione

Difficoltà di autenticazione.

>Identificatori tecnici

Esistono molti tipi di identificatori tecnici, per servizi, macchine, file, processi e utenti. Alcuni sono stati concepiti per gli esseri umani, come threatbook.com; altri sono rivolti ai computer, come 172.18.19.20. Esistono naturalmente strumenti per mappare gli uni negli altri. Questi sono elementi importanti, perché ogni mappatura rappresenta un’opportunità per l’insinuarsi di errori o minacce che hanno poi un impatto sul sistema.

Infatti, ogni volta che c’è una mappatura da un oggetto reale a una sua rappresentazione, c’è spazio per fare confusione. Chiamate come listen(socket) e open(file) sono piene di minacce quando si esegue la mappatura da un nome di file a un descrittore di file.

L’identità della macchina o del servizio implica un nome, per esempio rebelbase.threatbook.com. Gli spazi dei nomi dei computer in genere sono univoci per specifici ambiti. Teoricamente, rebelbase.threatsbook.com sarà univoco a livello globale, ma possono esserci anche molti computer aventi un nome DNS rebelbase.local: uno su Yavin, uno su Hoth, uno sulla nostra rete locale.

Il servizio potrebbe essere falsificato, impiegando un nome molto simile, come rebe1base. Se si tratta di un sito web e gli sveliamo le nostre credenziali di accesso, nome-utente e password, i suoi operatori potrebbero poi accedere alla vera rebelbase, fingendo di essere noi. Quasi tutte le connessioni soggette a falsificazione presentano vulnerabilità in entrambe le direzioni, dove l’impatto di un attacco poi ricade su varie parti.

I computer avranno spesso nomi DNS come rebelbase.threats­book.com. Quell’indirizzo può fare riferimento a più di una macchina fisica, ma questi non sono gli unici nomi che un computer fisico può avere. Può avere un nome UNC (Windows) e anche altri nomi. Il nome può fare riferimento a più di una macchina, tramite, per esempio, un sistema DNS round-robin, e potrebbero esserci livelli di mappatura con cname e altri sistemi di indirizzamento.

Allo stesso modo, anche i file hanno sia nomi sia identificatori tecnici, come i numeri di inode, che il file system utilizza per motivi di efficienza.

Spesso l’identità di un processo può essere rappresentata da un file o da una porta o perfino dal nome di un eseguibile. Per esempio, qualcuno potrebbe aspettarsi che la cosa in ascolto sulla porta 25 sia un server di posta elettronica o che il primo processo denominato Chrome sia quello del nostro browser web. I processi possono cambiare il proprio nome nella tabella dei processi e spesso il codice dannoso tenterà di cambiare il nome dei propri processi, per fingersi qualcosa d’altro, innocuo.

Infine, gli utenti hanno vari tipi di nomi-utente, nomi visualizzati e altri identificatori, e comprenderli comporta una complessità tale che vale la pena di considerare l’ampia gamma di identificatori umani e, di conseguenza, anche il modo in cui vengono rappresentati dai computer.

Torna all’inizio.

2. Che cos’è la ripudiabilità

Lando Calrissian: “Ha detto che rimanevano qui sotto la mia sorveglianza!”.
Darth Vader: “Ho cambiato il nostro accordo. Prega che non lo cambi ancora”.

Qui vediamo Darth Vader rinnegare un accordo. Non afferma di non aver stretto l’accordo. Si limita a ripudiarlo, dopodiché minaccia Lando.

Non vale più

La ripudiabilità è la minaccia che una parte confuti o neghi una qualche responsabilità. La merce non è arrivata; il pagamento non è andato a buon fine. L’affermazione che tale parte non sia responsabile può essere vera o meno. La parola ripudio può provocare ragionamenti più ampi sul tema del rifiuto, rinnegamento e anche molte altre parole che non iniziano con ri.

La ripudiabilità è una forma specifica di negazione o rifiuto. Ecco alcuni esempi, ispirati alle definizioni del dizionario.

  • Rifiutare di accettare o di essere associato a: ha ripudiato le politiche perseguite dal Consiglio dei Jedi.
  • Negare la verità o la validità di: i Moff hanno ripudiato le affermazioni secondo le quali Alderaan fosse un pianeta pacifico.
  • Decidere che un accordo non è più in essere: l’imperatore ha ripudiato il Senato e spazzato via le ultime vestigia della vecchia Repubblica.
  • Rifiutarsi di adempiere o estinguere un accordo, un obbligo o un debito: Darth Vader ha ripudiato il suo accordo di lasciare neutrale Cloud City.

È utile capire che il concetto di ripudio si sovrappone a quello di frode. Non tutte le frodi sono ripudi e non tutti i ripudi sono frodi. Per esempio, posso vendere una borsa di Gucci falsa, il che è una frode, ma se affermo di non sapere che era falsa, sono io che ripudio la merce. Dove i ripudi si sovrappongono, alla fine, possono entrare in gioco le regole della società in materia di frode, falsa dichiarazione o furto. Una fase importante in tali processi spesso è che qualcuno faccia denuncia alla polizia. Questo può essere, tecnicamente, un ottimo punto finale. Molto tempo fa, un amico ha scritto che un ‘e poi arrivano le guardie’ non è un buon passo da includere nei vostri protocolli. Questa è una dichiarazione vera; nella misura in cui sia possibile progettare e gestire sistemi in cui non possano verificarsi frodi o non sia necessario chiamare la polizia, tali sistemi sono probabilmente più resistenti e sicuri di altri, nei quali la polizia è regolarmente chiamata a risolvere le controversie. Inoltre, stiamo anticipando il costo della sicurezza, che potrebbe essere più costoso del considerare e proteggere un numero inferiore di transazioni. Inoltre, andare alla polizia ha molte proprietà importanti, tra cui il fatto che mentire alla polizia è un crimine e che la polizia è addestrata a indagare, ovvero stabilire fatti, valutare la credibilità dei testimoni e così via. Pertanto, un rapporto della polizia è un ripudio autorevole di molti debiti derivanti dal furto di identità. Il ripudio di Vader del suo accordo con Lando è semplicemente una negazione, non una frode.

Leggi anche: Lo hacking etico chiede risorse: eccole

Si può ripudiare un’azione passata: “Non ho più intenzione di ubriacarmi e urlare” (qui il ripudio è implicito e, naturalmente, conta di più se qualcuno va oltre il semplice ripudio e si scusa per tale comportamento). In secondo luogo, la ripudiabilità è anche una minaccia molto interessante dal punto di vista filosofico perché, se nel campo della sicurezza la minaccia è la ripudiabilità, nella privacy la minaccia è la non-ripudiabilità. Cioè, per preservare la nostra privacy, vogliamo essere in grado di rinnegare parole, azioni, associazioni e altri aspetti di noi stessi o del nostro ambiente sociale. Vogliamo che la nostra associazione con l’Alleanza Ribelle rimanga privata. Infine, poiché ripudio è una parola insolita, può essere scomodo inserirla in una frase. Per aiutarvi a vedere la raccolta di minacce, a volte userò un’altra parola per chiarire che cosa viene ripudiato (messo in discussione) e metto l’una o l’altra tra parentesi.

Torna all’inizio.

3. Quali sono le caratteristiche di un attacco Denial of Service

Gli attacchi Denial-of-Service possono essere generici o altamente specializzati, ovvero rivolti a un determinato sistema. Possono fare affidamento sulle capacità dell’hacker o essere amplificate da alcune proprietà del nostro sistema. Possono essere persistenti o chiudersi da soli.

>Su misura o generalizzato

Schemi d’attacco come una zip bomb o un DDoS non richiedono una particolare conoscenza dell’obiettivo. Sono molto comuni, perché funzionano. Quando non funzionano o quando non sono sufficientemente distruttivi, un hacker particolarmente motivato progetterà un attacco su misura solo per noi. Un hacker intelligente si accanirà contro un collo di bottiglia per bloccare l’intera operatività. Quel collo di bottiglia può essere nei componenti dei nostri fornitori o nel nostro codice.

È più probabile che il collo di bottiglia sia nel nostro codice, perché tali difetti tendono a passare inosservati. Un hacker ottiene un vantaggio meno generale sfruttandolo e i nostri tecnici e operatori riceveranno molto meno aiuto dalla community, in generale. Può trattarsi di difetti semplici (buffer, pool di calcolo, spazi di memorizzazione di dimensioni fisse) o possono essere più complessi. Gli hacker possono mirare a saturare continuamente la cache con raffiche di cache miss o eseguire complesse operazioni join sui database. Possono essere empirici (Sembra lento, possiamo renderlo ancora più lento?) o più studiati (Scommetto che se combiniamo tre parole del dizionario a caso, nessuno avrà fatto quella ricerca).

Gli hacker, come gli Ewok, spesso ci sorprendono con l’intelligenza dei loro attacchi. La loro mancanza di raffinatezza tecnica non impedisce alla loro buona e vecchia rete di funi di catturare le persone o ai loro tronchi di abbattere veicoli anche avanzati.

Amplificazione

Alcuni attacchi sono relativamente simmetrici: utilizzano le risorse dell’hacker alla stessa velocità con cui usano le nostre. Altri, come una zip bomb, usano un qualche tipo di amplificazione, e il problema diventa più grave. Il fattore di amplificazione è il rapporto tra le risorse consumate e il danno inferto e maggiore è il rapporto, maggiore è il valore per gli hacker. I fattori di amplificazione sono tipicamente nell’intervallo 10X-50X ma possono arrivare anche a 51.000X.

I protocolli di rete hanno ancora un’amplificazione importante, ma prima le cose erano molto peggiori. Internet era un posto diverso negli anni Ottanta e molti sistemi Unix presentavano un servizio, chargen, che inviava semplicemente un flusso di caratteri. È un utile strumento di debug, se le nostre reti non sono altamente resilienti. Era divertente inviare un pacchetto che diceva: Ehi, potete inviare molti caratteri. Era ancora più divertente inviarlo in broadcast con un indirizzo di trasmissione contraffatto, in modo che ogni macchina della rete riceva improvvisamente un flusso di caratteri (entrambe le cose sono divertenti dal punto di vista dell’hacker). Oggi ci sono molti attacchi equivalenti. Alcuni provengono da server, come DNS, e sono progettati per servire tutti i chiamanti. Altri sono sistemi come memcache, progettati per restituire risultati il più rapidamente possibile. L’esecuzione su UDP per evitare i costi di setup e la mancata autenticazione sono ottime idee, se quello che conta è la velocità. E se non ci sono controlli su chi può richiamare il sistema, l’attacco può essere utilizzato per inviare dati a qualsiasi sistema di cui sia possibile falsificare i pacchetti UDP.

Le aree cache, per definizione, vogliono inviare rapidamente molti dati. Questo è ottimo per gli hacker, in quanto le cache possono amplificare gli attacchi di un fattore di decine di migliaia. Cioè, l’hacker invia byte di richiesta e il sistema restituisce decine di migliaia di byte.

L’amplificazione non si verifica solo con le richieste di rete: la richiesta di transcodifica video discussa in precedenza amplifica i costi sia di calcolo sia di larghezza di banda di rete.

Autenticazione

L’hacker non ha bisogno di aver fatto login per inondare la nostra rete di pacchetti. Deve però essere connesso per lanciare una fork bomb. Gli utenti autorizzati di solito possono consumare più risorse rispetto a quelli anonimi e questo spiega perché gli attacchi DDoS possono essere così fastidiosi: chiunque può partecipare, e inseguirli tutti è antieconomico. I siti web dei negozi al dettaglio esporranno ricerche potenzialmente costose a chiunque possa aiutare a vendere. Altri possono limitare le query più costose ai soli utenti autenticati.

Effimero o persistente

Alcuni attacchi Denial-of-Service sono transitori. Quando un raggio traente si spegne, una nave può sfuggirci. Altri sono più permanenti. Quando Han Solo spara a una console di comunicazione, qualcuno dovrà inviare un tecnico per la riparazione.

Ci sono attacchi che funzionano finché l’hacker (o il suo computer) non perde interesse, e ci sono attacchi che funzionano finché non li ripulite. Dal punto di vista dell’hacker, quando si fermano i pacchetti, si ferma anche il divertimento, ma se il nostro disco è pieno… è pieno. Pertanto, in genere le reti si ripristineranno abbastanza rapidamente e i bilanciatori di carico della rete e strumenti simili si ripristineranno più lentamente (e dopo che saranno sistemati tutti i sistemi che gestiscono, primario e secondario). Allo stesso modo, gli attacchi alle capacità di calcolo, come le fork bomb, se ne vanno via con una kill() o un riavvio. Pertanto, gli attacchi al computer o alla rete sono per lo più transitori, mentre gli attacchi allo spazio di memorizzazione, alla larghezza di banda e alle batterie richiedono un intervento.

All’inizio della mia carriera, gli attacchi DDoS e ai sistemi di calcolo erano la forma più comune di DoS, quindi la maggior parte degli attacchi era di natura transitoria. Un impatto poco notato dell’ascesa dei sistemi cloud e dell’IoT è un cambiamento del tipo delle minacce: la persistenza è ora più comune. Questo cambio di proprietà è insolito. Nonostante la popolarità di frasi come Il mondo in rapida evoluzione del cyber, se facciamo un piccolo passo indietro, le minacce rimangono notevolmente stabili. Gli attacchi come la falsificazione degli utenti o le schermate di accesso continuano anche oggi, e il problema dell’esecuzione di codice in modalità remota tramite danneggiamento della memoria non è stato risolto (sebbene le tecniche di attacco siano notevolmente migliorate per superare le nuove difese).

Diretto o progressivo

Un attacco Denial-of-Service spesso minaccia direttamente una risorsa, come la capacità della rete, e quando l’attacco si ferma, le cose tornano alla normalità. Ma ci sono anche minacce di Denial-of-Service progressive.

Coloro che hanno lavorato su sistemi complessi sanno che mostrano comportamenti emergenti e inaspettati sotto carico, inclusi comportamenti a cascata e gonfiati, e che questi possono accumularsi. Se un sistema invia molti messaggi perché non riesce a raggiungere un servizio, le risorse, in particolare la rete e l’archiviazione, possono esaurirsi. Se sono molti i sistemi che non sono in grado di raggiungere il servizio sotto attacco, i loro tentativi di login e riconnessione potrebbero amplificare il problema. Questo non è solo un problema teorico. Nel dicembre 2021, AWS East-1 di Amazon ha esibito esattamente questo comportamento. E ha bloccato non solo AWS, ma moltissimi servizi che da esso dipendono.

Torna all’inizio.

4. Quali sono i principali meccanismi di manomissione

Dopo aver parlato della manomissione dei sistemi di archiviazione, delle comunicazioni, del tempo e dei processi, nonché di come tali manipolazioni si manifestano nel cloud, nell’IoT e nell’intelligenza artificiale/machine learning, rivolgiamo la nostra attenzione ad alcuni specifici meccanismi interessati.

>Posizione dell’attività di manomissione

Sono molti i meccanismi di manomissione e ognuno di essi richiede un’autorità di un certo livello. Nel mondo informatico classico, i privilegi più importanti sono: la possibilità di eseguire del codice, la possibilità di farlo come amministratori di sistema o di dominio e la possibilità di essere fisicamente collegati a una rete. Essere collegati a una rete significa trovarsi dietro il firewall, anche se oggi i firewall sono più d’uno. Significa anche potersi connettere liberamente a tutte le risorse private interne. Essere collegati a una rete fisica significa poter vedere tutti i pacchetti che passano, perché vengono trasmessi a tutti, sul cavo. Potendo vederli, si può anche essere in grado di modificarli, almeno quanto basta per violare un checksum e quindi inviare al loro posto una versione falsificata. Le reti cablate che utilizzavano il cavo coassiale sono state generalmente sostituite da cavi Ethernet su doppino, dove le trasmissioni sono governate da uno switch. Ovviamente, controllando lo switch o il router, diventa possibile modificare tutto ciò che lo attraversa.

Può sembrare bizzarro parlare di reti cablate nell’era dei telefoni cellulari e dei portatili, ma i cavi sono ancora molto in uso in ambienti densi di sistemi come i data center e in quelle installazioni, come le ambasciate, dove il rischio di subire intercettazioni o manomissioni wireless è elevato. Per queste reti e per molti dispositivi IOT, l’accesso fisico è un importante privilegio richiesto per le attività di manomissione. L’accesso fisico è tradizionalmente difeso tramite recinzioni, muri e, talvolta, anche le barriere dei dispositivi. Il tutto, spesso, affiancato da guardie e cani (sì, a volte sono cani da guardia, per esempio feroci doberman, ma altre volte sono animali domestici, come un giocoso cocker). Quei controlli sono efficaci a vari livelli, ma anche porosi in modi a volte sorprendenti. Università, caffetterie, hotel, chiese e altri spazi accoglienti sono paurosamente aperti, se siamo un po’ paranoici, e le nostre case sono aperte durante i compleanni o quando vengono affittate con Airbnb.

Le nostre case e le nostre aziende sono generalmente aperte anche alle trasmissioni radio, che a volte sono sorprendentemente potenti. Le radio sono un altro esempio di perversione nel campo della sicurezza: se volete che il wireless funzioni ovunque, pensate che la portata sia sorprendentemente ridotta; quando invece temete gli hacker, la troverete sorprendentemente ampia.

Infine, vi è la manomissione nella catena di approvvigionamento. Coloro che progettano, fabbricano, assemblano o spediscono gli apparecchi possono fornire prodotti che non sono esattamente ciò che vi aspettate, e gli sviluppatori di software e i responsabili della sicurezza possono fare ben poco, al riguardo. Provate a leggere The Huawei and Snowden Questions (Lysne, 2018) se pensate di poter fare davvero qualcosa. La nostra generale incapacità di creare software sicuro pur impegnandoci al massimo significa che la maggior parte degli hacker possa dormire sonni tranquilli.

C’è anche manomissione nel software. Se un progettista di compilatori desidera inserire una backdoor nel codice macchina prodotto dal proprio compilatore, può certamente farlo. Può perfino scrivere una versione del proprio compilatore che riconosca che sta compilando un compilatore e che inserisca apposito codice nel compilatore prodotto. Fatto ciò, possono poi eliminare il codice trojan. Ma lo abbiamo mai guardato il codice di GCC? Potremmo nasconderci un intero sandcrawler e nessuno se ne accorgerebbe. Quindi, quasi non è necessario eliminarlo, se non per questioni di negabilità. Ken Thompson ne ha parlato nella sua conferenza al Premio Turing, Reflections on Trusting Trust.

Strumenti per le attività di manomissione

I meccanismi con cui è possibile eseguire manomissioni intenzionali possono essere strumenti generici o specializzati. Se ho fatto login e posso scrivere su un file, posso aprirlo anche con un semplice editor di testo. La cosa funziona anche se il file non è di testo, anche se potrebbe essere complicato apportare le modifiche desiderate, e il nostro editor potrebbe correggere le irregolarità che rileva nel file, cioè, potrebbe manomettere la nostra manomissione. Che impudenza! Tali problemi possono essere evitati utilizzando i client corretti: un client di database per un file di database, Word per i file .docx, emacs per i file .html o gdb o windbg per i processi. Esistono anche client specializzati per l’analisi e per la modifica di file locali, alcuni dei quali sono piuttosto ingegnosi, come il visualizzatore di file Veles o un offuscatore di codice. Che cosa dici? Che un offuscatore non serve per modificare i file ma per impedire a qualcuno di studiarli? Certo che lo fa, attraverso la manomissione del contenuto. Credete che quelle modifiche siano autorizzate? Molti di questi strumenti ora funzionano anche in un browser web, il che non li rende meno specialistici, ma riduce il carico in termini di installazione e configurazione.

La modifica di una connessione di rete di solito richiede l’impiego di strumenti specializzati. Esistono strumenti progettati per modificare le connessioni di rete e per modificare le reti come farebbe un hacker. Possiamo modificare le nostre connessioni di rete per ottenere funzionalità come la registrazione o l’alterazione semplificata di flussi complessi come le sessioni web, utilizzando OWASP ZAP (Zed Attack Proxy). Qualcuno potrebbe voler modificare in modo non cooperativo le nostre connessioni di rete, come accade la maggior parte delle volte che soggiorniamo in un hotel, o modificare il comportamento della rete inviando comandi di routing per reindirizzare tutto il traffico attraverso il proprio sistema.

Una tecnica di manomissione interessante è la famiglia di attacchi rowhammer. Se consideriamo la RAM come una fitta successione di celle, dove ogni cella contiene uno 0 o un 1, ci sarà chiaro che la loro dimensione è molto piccola. Con l’aumentare della densità della RAM, la corrente può fuoriuscire da una cella e debordare su quella adiacente, e così causare una piccola inversione, perché, come ha sottolineato quel filosofo dell’ingegneria che è Martin Gore, tutto conta, in grandi quantità. E con grandi quantità di scritture nella memoria adiacente, i bit possono essere invertiti, ovvero manomessi. Dopo l’annuncio degli attacchi rowhammer, i produttori di chip di memoria hanno introdotto una tecnica chiamata refresh della riga target. Se stiamo lavorando con componenti PC standard, questo probabilmente non rappresenterà un problema, per noi, ma se stiamo implementando dell’hardware, è il caso di assicurarsi che i nostri componenti siano protetti da questo e altri attacchi correlati.

Un’altra tecnica di manomissione interessante impiega le pagine di consigli su Internet. Questa tecnica sfrutta un deputato molto confuso, il proprietario umano di qualche sistema, che sta cercando di risolvere un qualche problema. Anche i migliori contenuti generati dagli utenti possono includere aspetti non sicuri, ma questi siti possono anche essere occupati da persone che offrono cattivi consigli, intenzionalmente o accidentalmente. I link riportati in questi siti possono essere essi stessi dannosi, oppure le destinazioni dei link possono essere fallate ed essere state sostituite e distribuire malware.

Torna all’inizio.

5. Che cos’è l’espansione dell’autorità

Questi non sono i droidi che state cercando, dice Ben Kenobi agli Stormtrooper che lo hanno appena fermato. Con quale autorità? In effetti, questa è la prima volta che vediamo in azione il controllo mentale dei cavalieri Jedi, perché quelli sono proprio i droidi che gli Stormtrooper stanno cercando. Kenobi non dovrebbe essere in grado di convincere gli Stormtrooper a lasciarli passare. Usa il suo potere per espandere la sua effettiva autorità e raggiungere il suo obiettivo.

L’espansione dell’autorità può sembrare diversa dalle altre minacce. La manomissione o falsificazione possono sembrare meccanismi o addirittura obiettivi. L’espansione può apparire (o anche essere) più simile a un mezzo, un trampolino di lancio. Ma si tratta sempre di minacce: un’azione che un hacker può intraprendere e una minaccia a una proprietà del sistema. L’espansione dell’autorità è una minaccia per il sistema delle autorizzazioni.

Autorità significa gli effetti che un programma può imporre sugli oggetti cui può accedere, direttamente tramite autorizzazioni o indirettamente tramite le interazioni consentite con altri programmi. In generale, ci sono tre modi per controllare l’uso dell’autorità: autorizzazioni, attenuazione e isolamento.

Il lato oscuro del software, di Adam Shostack

Che cosa potrebbero mai insegnare R2-D2, Darth Vader, Han Solo o persino Yoda sulla sicurezza del software?

Le autorizzazioni possono essere le più facili da comprendere. Per esempio, Unix si protegge impostando la proprietà e le autorizzazioni dei file contenuti in /etc, /usr/bin e molti altri luoghi usati dal sistema operativo. Attenuazione significa ridurre o limitare; il processo di accesso attenuerà la propria autorità passando da root all’ID-utente prima di generare una shell per un normale utente. Pertanto, quella shell non erediterà l’autorità necessaria per richiamare l’API setuid o per collegarsi a porte con un numero basso. Isolamento significa impiegare del software o dell’hardware per limitare ciò che il codice può fare. Per esempio, un utente può inviare segnali o collegare un debugger solo ai propri processi, non a quelli di altri utenti. Questo è l’isolamento fornito dal kernel.

Scendendo da Unix all’hardware, l’isolamento viene fornito dai livelli (ring) di esecuzione della CPU. E passando da un singolo sistema alle reti, l’isolamento è fornito dai firewall.

Un altro modo di pensare a queste difese: la seconda Morte Nera è una stazione da battaglia pienamente armata e operativa e può implementare le autorizzazioni e utilizzare gli Stormtrooper per farle rispettare. Ha anche uno scudo, su una piccola luna, che gli fornisce l’isolamento necessario.

Espandere l’autorità significa passare da un livello di autorità a uno più elevato: dall’incapacità di eseguire il codice all’essere in grado di farlo; da un normale utente a root a kernel; dall’impossibilità di impostare i permessi all’amministratore di un servizio cloud; da comune droide intrappolato in una rete a dio degli Ewok.

Torna all’inizio.

Questo articolo richiama contenuti da Il lato oscuro del software.

Immagine di apertura originale di Bernard Hermant su Unsplash.

L'autore

  • Adam Shostack
    Adam Shostack è esperto di tecnologia, imprenditore e game designer. Professore associato presso l'Università di Washington, è membro del BlackHat Review Board e fondatore di Shostack + Associates, una società di consulenza specializzata in sicurezza dedicata ad aiutare le organizzazioni a fornire sistemi sicuri.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Libri che potrebbero interessarti

Tutti i libri

Il lato oscuro del software

Insegnamenti da Star Wars per jedi della sicurezza

26,60

28,00€ -5%

di Adam Shostack