ACL Windows mal protégées : A qui la faute ?
Les mauvaises attributions de droits sont à l'origine de la plupart des vulnérabilités « exploitables ». Bien souvent, un accès shell ou l'exécution d'un programme s'effectuent par héritage des droits d'un processus (ou service) un peu trop « monté en grade ». D'un côté, Microsoft prévient ses clients que ce genre d'assaut n'est plus tellement pensable sous 2003 Server ou XP SP2, une bonne partie des services étant désormais soumis à des restrictions d'accès. Pourtant, tous les arguments de Microsoft -notamment celui expliquant que ces exploitations ne sont parfois réalisables que par des usagers disposant déjà de droits étendus- sont nettement moins recevables... il suffit de compter le nombre de « login : Administrateur/password : toto » que l'on peut trouver sur les chemins réseau. Mais qui donc se permet de critiquer la gestion « par défaut » des ACL ? Des universitaires, bien sûr. Sudhakar Govindavajhala et Andrew W. Appel, de Princeton. Lesquels insistent : et quand bien même la totalité des services serait sérieusement paramétrée, que l'on risque de voir ressurgir le spectre d'une faille par la simple négligence des logiciels tiers utilisant précisément ces services. Ainsi, un éditeur souhaitant qu'un usager sans droits extraordinaires puisse lancer et avorter un processus (un deamon, comme disent les unixiens), risque parfois d'attribuer tous les accès à l'utilisateur, y compris la permission de ré-écrire les descripteurs de sécurité et de configurer le service. Tout çà soit par simple flemme, soit par méconnaissance des méthodes de gestion des services... la faute en incomberait donc une fois de plus à Microsoft. Il faut reconnaître que bon nombre d'inconsistances de code sont le fruit d'une programmation « quick and dirty », qui elle-même part du principe que jamais un usager ne cherchera à passer un paramètre supplémentaire dans le lancement d'un service, ou n'aura pas une seule fois la présence d'esprit de dépasser le nombre de caractères prévu par un champ de saisie. Or, l'absence de contrôles de saisie est la mamelle nourricière du buffer overflow et de l'héritage de droits système. Un programme de pentest, Servercheck, est disponible sur le serveur de la ML (attention, fichier zip renommé en bin).