RPCFirewall : Filtrer les accès RPC sous Windows

Mickael Dorigny - ITConnect - 16/10
Cet article présente la solution RPCFirewall, un pare-feu conçu pour filtrer les appels RPC sur les systèmes d'exploitation Windows et améliorer leur sécurité.

Sommaire

  • I. Présentation
  • II. Le protocole RPC et ses risques
    • A. Rappel sur le protocole RPC
    • B. RPC en environnement Windows : quels risques ?
  • III. Reprendre le contrôle avec RPCFirewall
    • A. Qu’est-ce que RPCFirewall ?
    • B. Installation de RPCFirewall
    • C. Auditer et journaliser les appels RPC avec RPCFirewall
    • D. Configurer un filtrage des appels RPC avec RPCFirewall
  • IV. Conclusion

I. Présentation

Cet article présente la solution open source RPCFirewall de la société ZeroNetworks. Il s'agit d'un pare-feu conçu pour filtrer les appels RPC sur les systèmes d'exploitation Windows.

Nous rappellerons d'abord ce qu'est le protocole RPC et les risques associés. Ensuite, nous explorerons le fonctionnement de RPCFirewall et pourquoi il constitue une solution efficace pour atténuer ces risques et améliorer la sécurité d'un domaine Windows et des systèmes qui le composent.

II. Le protocole RPC et ses risques

A. Rappel sur le protocole RPC

Bien que les administrateurs système ne l'utilisent pas directement, le protocole RPC (Remote Procedure Call) est omniprésent dans les environnements Windows, en particulier au sein des domaines Active Directory. Créé dans les années 1980, RPC permet à un client d'exécuter des fonctions sur un serveur distant comme s'il s'agissait d'appels locaux, facilitant ainsi les communications entre applications distribuées.

RPC ne doit pas être comparé directement à des protocoles comme HTTP ou FTP, car il opère au niveau 5 (Session) du modèle OSI et est conçu pour orchestrer des échanges complexes entre services plutôt que pour transférer des données ou gérer des connexions réseau. Sa fonction principale est de permettre à un processus de rendre accessibles ses fonctionnalités à d'autres processus, même s'ils sont distants. L'implémentation la plus répandue de RPC dans les systèmes Windows est DCE/RPC (Distributed Computing Environment/Remote Procedure Call), qui est au cœur de nombreuses fonctionnalités critiques du système, comme la gestion des services réseau, l'authentification et la gestion des permissions.

Vous pouvez voir le protocole RPC comme un protocole "valise", qui permet d'organiser les échanges client-serveur tout en restant ouvert sur la finalité exacte de ces échanges, il permet à chaque interface d’implémenter son propre protocole basé sur RPC et répondant à des tâches plus spécifiques. Cette flexibilité le rend extrêmement polyvalent, et c’est pourquoi il est utilisé dans de nombreux contextes. Parmi les cas d’usage courant du protocole RPC dans un domaine Windows, on trouve par exemple :

  • Protocole MS-DRSR : Gestion de la réplication à distance des contrôleurs de domaine.
  • Protocole MS-RPRN : Gestion des tâches d’impression client-serveur.
  • Protocole MS-EFSR : Gestion des données chiffrées à distance.
  • Protocole MS-DSSP : Récupération distante d’informations sur un système du domaine.
  • Protocole MS-EVEN : Récupération de journaux d’évènements à distance
  • Rendez-vous sur cette page pour avoir une liste plus complète des protocoles basés sur RPC utilisés en environnement Windows

Par exemple, si vous avez lu notre article sur l'attaque DCSync, vous savez que le protocole RPC est utilisé lors d'une synchronisation de données entre deux contrôleurs de domaine. On retrouve d'abord un appel DCE/RPC pour la connexion initiale, puis EPM pour mapper les services proposés par le serveur via RPC, et enfin DRSUAPI pour effectuer la synchronisation des données.

En contexte Windows, le Portmapper ou Endpoint Mapper (EPM) est le service qui écoute sur le port TCP/135. Il aide les clients à localiser l'adresse et le port d'un...
[Courte citation de 8% de l'article original]

Loading...