La scène Jurassic Park mentionnée dans le titre est tristement célèbre pour son ridicule pour ceux qui maîtrisent la technologie. Mais cela illustre également ce qui me semble être une faille flagrante dans la sécurité Web, en particulier les appareils IoT - dès que les attaquants découvrent qu'un serveur, une caméra ou un moniteur pour bébé exécute Linux, ils en savent instantanément sur son fonctionnement. Ils savent que les commandes comme sudo
sont de grandes cibles juteuses et ils savent que l'accès au shell apportera avec lui des tas d'outils utiles comme ls
et cat
.
Alors pourquoi l'obfuscation du système d'exploitation n'est-elle pas plus une chose? Je ne parle pas simplement de cacher la version dans les en-têtes Web. Semblable à la minification ou à l'obfuscation JavaScript, je parle de changer les noms des binaires et des chemins de fichiers dans le système d'exploitation lui-même. Des classes entières d'attaques ne seraient-elles pas pratiquement inutiles si le système d'exploitation avait des commandes ha7TrUO
et RRI6e29
au lieu de sudo
et ls
? Imaginez un pirate informatique qui obtient en quelque sorte un accès root à distance - que vont-ils même faire s'ils ne connaissent aucune commande?
La mise en œuvre serait assez facile pour les compilateurs. Prenons le cas le plus simple de «renommer cette fonction et tous les appels à celle-ci». Vous pourriez donner à un compilateur de système d'exploitation et à un compilateur d'application les mêmes noms aléatoires et ils pourraient se parler. Mais même si l'application a une sécurité médiocre et est vulnérable à l'injection de bash, de telles attaques seraient infructueuses.
De toute évidence, cette technique ne peut pas être utilisée dans tous les scénarios. En mettant de côté des scénarios tels que des serveurs gérés par des administrateurs système humains, il me semble que tout appareil ou serveur géré par l'automatisation est un candidat de choix pour cette défense.
Je suppose que la ou les questions doivent être un peu plus concret:
- L'obscurcissement du système d'exploitation tel que décrit est-il largement utilisé et je ne l'ai tout simplement pas rencontré?
- S'il n'est pas largement utilisé, quels sont les obstacles pratiques ou techniques à l'utilisation?