MAIN MENU
Le blogue Devolutions

Annonces, mises à jour et analyses de Devolutions

Sécurité
contrôle d'accès authentification autorisation et gestion des ressources blogue

Comprendre le contrôle d'accès : authentification, autorisation et gestion des ressources

Cet article explique les trois questions fondamentales du contrôle d'accès, la différence entre les vérifications côté client et côté serveur, et pourquoi l'architecture détermine la solidité réelle de vos contrôles dans Remote Desktop Manager.

Le contrôle d’accès est l’un de ces sujets qui semblent évidents jusqu’à ce qu’on l’examine de près. C’est aussi, année après année, la première catégorie du Top 10 de l’OWASP (Broken Access Control), et de loin la faiblesse la plus fréquente qu’on observe, tant dans l’industrie que dans nos propres analyses. La bonne nouvelle, c’est qu’une fois qu’on a les bonnes questions en tête, le sujet devient beaucoup plus simple.

Alors, c’est quoi exactement le contrôle d’accès ?

Le contrôle d’accès détermine qui peut faire quoi, sur quelle ressource. Quand une application reçoit une requête, elle doit répondre à trois questions — et les trois comptent.

1. Est-ce que je sais qui est l’utilisateur ? (authentification)

C’est l’étape de l’identité : l’utilisateur est-il vraiment qui il prétend être ? Les mots de passe, l’AMF, l’authentification unique (SSO) — tout ça répond à cette première question.

2. Est-ce que cet utilisateur est autorisé à effectuer cette action ? (autorisation)

Savoir qui est l’utilisateur ne dit rien sur ce qu’il a le droit de faire. Un utilisateur authentifié n’est pas nécessairement un utilisateur autorisé à supprimer, modifier ou administrer.

3. A-t-il le droit d’accéder à cette ressource précise ? (autorisation au niveau de l’objet)

C’est la question la plus souvent oubliée. Avoir le droit de voir « une » entrée ne signifie pas avoir le droit de voir « toutes » les entrées. Quand cette vérification est absente, on appelle ça de l’IDOR (Insecure Direct Object Reference) : il suffit de modifier un identifiant dans la requête pour accéder aux données de quelqu’un d’autre.

À retenir : oublier une seule de ces trois questions suffit à créer une vulnérabilité. Les trois forment un tout.

La question qu’on oublie : la vérification se fait-elle ?

Répondre correctement aux trois questions ne suffit pas. Il faut aussi se demander ces vérifications sont appliquées. Et c’est précisément là que se joue la différence entre une vraie mesure de sécurité et une simple convention d’interface.

Côté client

Les contrôles côté client sont appliqués par l’interface : un bouton « Supprimer » masqué, une option grisée, un menu qui n’apparaît pas. C’est utile et tout à fait normal. C’est ce qui rend une application agréable à utiliser et oriente les utilisateurs à l’écart des options qui seraient de toute façon refusées. Ce n’est pas ce qui empêche l’action : quand le contrôle d’accès est fait correctement, le serveur refuse l’opération peu importe ce que l’interface affiche.

Ces contrôles vivent du côté de l’utilisateur, et quiconque manipule directement les requêtes peut les contourner, car l’interface n’est qu’une porte parmi d’autres pour atteindre les données.

Côté serveur

Les contrôles côté serveur sont appliqués par l’application elle-même, là où les données résident. Ils ne dépendent pas de l’interface utilisée et ne peuvent pas être contournés en modifiant une requête.

C’est cette couche, et seulement cette couche, qui protège véritablement les données sensibles : consultation, modification, suppression, révélation d’un mot de passe, accès aux pièces jointes, etc.

Un contrôle côté client est une convention d’expérience utilisateur, pas une mesure de sécurité. La règle est simple : toute permission qui protège des données sensibles ou un flux critique doit être appliquée côté serveur. Un contrôle côté client peut l’accompagner, mais ne peut jamais le remplacer.

Ce que ça veut dire concrètement pour vos données

Prenons l’exemple de Remote Desktop Manager (RDM), notre application de bureau pour la gestion des connexions à distance et des identifiants. RDM offre une expérience riche : permissions, rôles, options affichées ou masquées selon l’utilisateur. Mais où ces permissions sont-elles réellement appliquées ? La réponse dépend entièrement de l’architecture du workspace auquel il se connecte.

Ce n’est pas une question de bonnes intentions ou de configuration soignée. C’est une question d’architecture. Sans serveur d’application, il n’y a pas d’endroit physique où appliquer les contrôles côté serveur. C’est la raison fondamentale pour laquelle on recommande d’associer RDM à un workspace Devolutions — pas par préférence de produit, mais parce que l’architecture l’exige.

En résumé

Si RDM se connecte actuellement directement à une base de données SQL Server, ça vaut la peine de vous demander : mes contrôles d’accès sont-ils réellement appliqués ? L’architecture, et non la configuration, vous donnera la réponse honnête. Vous pouvez explorer les workspaces disponibles pour voir lequel convient à votre environnement.

Et le coût est rarement l’obstacle qu’on imagine : Devolutions Server et Devolutions Cloud offrent tous les deux une option gratuite pour démarrer. Utiliser Devolutions Server comme serveur central requiert simplement une licence Remote Desktop Manager Enterprise active — et comme connecter RDM à une base de données SQL Server nécessite déjà cette même licence Enterprise, vous détenez très probablement déjà tout ce qu’il vous faut pour faire la transition. (Accéder au workspace depuis un navigateur Web, sans RDM, utilise une licence d’accès client distincte.)

More from Sécurité

Read more articles