La scena di Jurassic Park a cui si fa riferimento nel titolo è famigerata per quanto possa sembrare ridicola per coloro che sono esperti di tecnologia. Ma illustra anche quello che mi sembra essere un enorme buco nella sicurezza web, in particolare nei dispositivi IoT: non appena gli aggressori scoprono che un server, una telecamera o un baby monitor esegue Linux, conoscono immediatamente i volumi su come funziona. Sanno che comandi come sudo
sono grandi bersagli succosi e sanno che l'accesso alla shell porterà con sé molti strumenti utili come ls
e cat
.
Allora perché l'offuscamento del sistema operativo non è più una cosa? Non sto parlando solo di nascondere la versione nelle intestazioni web. Simile alla minimizzazione o all'offuscamento di JavaScript, sto parlando di cambiare i nomi dei binari e dei percorsi dei file nel sistema operativo stesso. Intere classi di attacchi non sarebbero praticamente inutili se il sistema operativo avesse i comandi ha7TrUO
e RRI6e29
invece di sudo
e ls
? Immagina un hacker che in qualche modo ha ottenuto l'accesso root remoto: cosa faranno anche se non conoscono alcun comando?
L'implementazione sarebbe abbastanza facile per i compilatori. Prendiamo il caso più semplice di "rinominare questa funzione e tutte le chiamate ad essa". Potresti dare a un compilatore del sistema operativo e un compilatore dell'applicazione gli stessi nomi casuali e sarebbero in grado di parlare tra loro. Ma anche se l'applicazione ha una sicurezza scarsa ed è vulnerabile all'iniezione di bash, tali attacchi sarebbero inutili.
Ovviamente questa tecnica non può essere utilizzata in tutti gli scenari. Mettendo da parte scenari come i server gestiti da amministratori di sistema umani, mi sembra che qualsiasi dispositivo o server gestito dall'automazione sia un ottimo candidato per questa difesa.
Immagino che la domanda debba essere un po 'di più concreto:
- L'offuscamento del sistema operativo come descritto è ampiamente utilizzato e non l'ho riscontrato?
- Se non viene utilizzato ampiamente, quali sono gli ostacoli pratici o tecnici all'utilizzo?