Réseau et cybersécurité : Qu’est-ce qu’un “service caché” ? Partie 1
Le terme de “service caché” est intimement lié à certaines technologies comme le darknet et le Tor Project. Ce mécanisme est employé pour apporter nombre de caractéristiques de sécurité et d’anonymat aux utilisateurs des réseaux. Dans l’esprit collectif, il est admis que le darknet et les services cachés sont principalement utilisés par les cybercriminels afin de proposer des applications accessibles à travers le réseau Internet sans risquer de dévoiler les identités des interlocuteurs. Mais en réalité, les services cachés sont très souvent employés à des fins bien plus nobles pour lesquelles les avantages techniques proposés sont particulièrement appréciés.
Lanceurs d’alertes, échanges de données sécurisées, publication de contenu journalistique, et aujourd’hui accès distant généralisé et sécurisé avec l’avènement du Zero-Trust Network Access, sont d’autant de façons d’utiliser les services cachés pour se protéger. Mais que sont les services cachés, et qu’apportent-t-ils réellement ? Réponses dans cet article.
Vous avez dit “service” ?
Le terme service est tellement générique qu’il convient de le définir dans notre contexte. Un service est une application réseau, accessible à travers un réseau d’entreprise, ou à travers un réseau plus étendu comme Internet. La raison d'être d’un service est de proposer à des utilisateurs un ensemble de fonctionnalités auxquels ils peuvent accéder.
Par exemple, une entreprise peut utiliser une application pour gérer toute sa documentation. Cette documentation est accessible en ligne, par Internet, à l’ensemble des collaborateurs, ou directement depuis le réseau interne de l’organisation. S'il s’agit d’une application Web, les utilisateurs y accèdent à travers leur navigateur. D’autres exemples de services du même type : toutes les applications nécessaires au bon fonctionnement de l'entreprise : la facturation, la paie, la gestion des congés, les documents financiers, la stratégie etc.
Les services ne sont pas que Web. En effet, un nombre très importants d’autres types de service viennent s’ajouter aux applications Web et sont rendus accessibles à travers le réseau. En voici une liste non-exhaustive: - Les lecteurs de fichiers partagés, utilisés pour déposer / récolter des fichiers au sein d’une même organisation ; - Les protocoles d’administration de serveurs (comme SSH) ; - Les protocoles de partage de bureaux à distance (comme RDP), souvent utilisés pour de l’administration serveur mais aussi énormément pour partager des applications ou des ressources entre utilisateurs ; - Les bastions de sécurité et les passerelles VPN ; - Les boîtes aux lettres électronique (comme IMAP)
En bref, un service se rend accessible, depuis le réseau. Techniquement, il est adressable à travers une adresse IP et un port.
Et les services cachés ?
On emploie le terme “services cachés” pour désigner les services réseau qui s’appuient sur des protocoles de communication qui apportent certaines caractéristiques de sécurité très spécifiques. Tout type de service “classique” peut devenir un service caché et la première des caractéristiques apportées est ...
L’anonymat
Les services “classiques” sont identifiables à travers une adresse IP et un port. Ces deux informations permettent de “localiser” le service. Suivant le réseau, elles permettent plus ou moins d’obtenir des informations sur le service ou l’administrateur du service, notamment : - Sur le réseau Internet, une approximation de la position géographique du serveur qui porte l’application. - Sur un réseau privé, une idée du segment réseau et des applications annexes portées par la même zone réseau.
En cachant son service, celui-ci n’est plus accessible à travers une adresse IP, mais à travers une clé cryptographique qui, utilisée à travers le réseau, permet d'établir une connexion avec le service, sans savoir où il se situe.
Cette première des caractéristiques est la plus connue, mais peut-être pas la plus intéressante. Qu’en est-il des autres ?
L’authentification
Les protocoles de communication standard (comme TCP/IP) qui permettent d'établir une connexion avec un service n’apportent aucune assurance quant au fait que l'utilisateur communique bel et bien avec le service attendu. C’est d’autant plus vrai avec le fonctionnement général d’Internet, la résolution des noms de domaine par le protocole DNS, et les méthodes de routage qui régissent le réseau. Pour ces raisons, d’autres couches protocolaires (comme TLS) et l’emploi de mécanismes de sécurité (comme les certificats et la cryptographie à clé publique) sont largement répandus conjointement avec l’usage des services “classiques”.
En utilisant les services cachés et la négociation des connexions avec leur clé publique, l’utilisateur a la certitude qu’il échange avec le bon service, et non avec un pirate. Cette propriété est native du protocole, et ne nécessite pas l’emploi de certificats pour authentifier le service auprès de l’utilisateur. (Mais elle ne l’empêche pas non plus). En plus de cette propriété de l’authentification du service, certains protocoles proposent également une authentification de l’utilisateur, par clé, et sans remettre en question toutes les caractéristiques apportées par le principe de service caché. Ainsi, la boucle est bouclée : les services sont authentifiés auprès des utilisateurs et inversement.
La suppression de l’exposition
Les lecteurs assidus du blog connaissent bien cette propriété que nous avons décrite à plusieurs reprises dans les articles Sécurité des SI, comprendre le problème de l’exposition et 10 cyberattaques qui ont exploité le principe d’exposition.
En deux mots, l’emploi des services cachés permet d'éviter d’exposer son service au sein du réseau ou de la zone réseau. Il devient impossible pour un attaquant (qui, par exemple, scannerait le réseau) de découvrir un service et donc de l’attaquer. Ainsi, l’usage des services cachés permet de se prémunir d’un ensemble important d’attaques opportunistes ou ciblées.
D’autres caractéristiques comme la micro-segmentation, la suppression de confiance en l’intermédiaire ou la sécurité par le mouvement sont d’autant de raisons de porter une attention particulière aux services cachés. Nous décrirons plus en détails ces propriétés dans la partie 2 de cet article.
Quels services de mon SI devrais-je configurer en tant que “services cachés” ?
De manière générale, il est intéressant de configurer un service comme service caché si celui-ci remplie ces deux conditions :
-
Vous êtes capables d’identifier une population bien définie d’utilisateurs du service. Donc par exemple: une passerelle VPN ou un service de partage de fichiers sensibles. Ou en contre exemple : un site internet institutionnel ou un serveur de relai mail qui, par définition, doit être “visibles” par le monde entier pour recevoir le courrier électronique.
-
Vous avez la main sur le service. C’est à dire que vous êtes en mesure de “couper” l’exposition du service du réseau Internet ou du sous-réseau dans lequel il se situe, et de ne rendre accessible le service qu'à travers l’agent logiciel faisant le relai vers le réseau. Par exemple: une application on-premise, ou sur le cloud en IaaS. Et en contre exemple: une application SaaS pour laquelle vous ne pouvez pas définir de liste blanche d’adresses IP autorisées.
Vous voulez essayer ? Contactez-nous, et nous vous fournirons un accès au réseau Chimere pour dissimuler vos services.
N’oubliez pas de vous inscrire à la newsletter Chimere pour ne pas manquer les prochains articles:
Header photo : Image by wirestock on Freepik