Sécurisez vos applications SaaS avec Visual Guard

Vous concevez la sécurité d’une application SaaS ? Visual Guard peut vous aider.
Cet article recense les questions importantes à se poser tout au long d’un projet SaaS et les réponses apportées par Visual Guard pour éviter les failles de sécurité et les limitations fonctionnelles.

Introduction

La sécurité d’une application SaaS doit combiner robustesse et flexibilité :

Un système Robuste garantira la sécurité de l’application en :

  • Contrôlant l’accès des utilisateurs dans les limites de leur souscription.
  • Assurant la confidentialité des données entre utilisateurs partageant l’application.
  • Eliminant les failles de sécurité et vous protégeant des attaques extérieures

Un système Flexible contribuera au développement de votre business:

  • Il facilitera l’évolution de votre business model et la commercialisation de votre offre.
  • Répondre aux demandes clients sur la gestion des comptes utilisateurs (voir plus bas).
  • Supporter la montée en charge : optimiser les performances et simplifier l’administration de volumes important d’utilisateurs et de composants sécurisés.

Cet article présente les spécifications techniques et fonctionnelles de Visual Guard qui permettent d’atteindre ce double objectif. Vous pourrez ainsi concevoir la sécurité de votre application SaaS en couvrant vos besoins court-terme et en anticipant les éventuelles évolutions de votre business et les besoins additionnels correspondants.

Déléguer des droits d'administration à vos clients ?

Dans un premier temps, vous gérerez peut-être vous-même les comptes utilisateurs et leurs droits d’accès.

Lorsque le volume augmentera, vous souhaiterez peut-être – tout comme vos clients – leur déléguer certains droits d’administration pour qu’ils gèrent eux-mêmes les comptes de leurs utilisateurs.

Dans ce contexte, Visual Guard propose :

  • Une interface d’administration facilement utilisable par des non-techniciens, permettant de déléguer l’administration des utilisateurs à des managers locaux.
  • Cette interface est accessible via Internet et inclut les fonctionnalités de contrôle d’accès fréquemment requises (gestion des comptes et des groupes, assignation des droits d’accès, visibilité et contrôle des données de sécurité…).

Visual Guard WebConsole Administration Dashboard
Tableau de bord de la Console d’Administration Web de Visual Guard

Visual Guard WebConsole User Management
Gestion des utilisateurs dans la Visual Guard WebConsole

Pour en savoir plus sur cette interface d’administration :

Si vous développez une application SaaS multi-tenant (une seule instance utilisée par plusieurs clients), vous devrez restreindre les droits d’administration du client à ses propres comptes utilisateurs : vous ne voulez pas qu’il puisse modifier les comptes des autres clients !

Plus généralement, Visual Guard permet de restreindre les droits d’administration selon 3 critères:

  • Limiter l’administration aux comptes utilisateurs d’un client, voir à une partie seulement des utilisateurs d’un client. Exemple : un chef des ventes ne pourra définir que les droits d’accès des commerciaux de son équipe.
  • Limiter à certaines opérations d’administration. Exemple : un manager ne peut pas créer de nouveaux comptes utilisateurs. Il peut seulement leur donner des droits d’accès.
  • Limiter l’administration à certaines applications. Exemple : un responsable des ressources humaines pourra gérer le contrôle d’accès à un module de paye, mais il ne pourra pas donner accès au module de gestion des stocks.

La combinaison de ces critères permet de couvrir de nombreux scénarios, pour déléguer plusieurs niveaux de droits d’administration, selon l’organisation et les demandes de vos clients.

Pour en savoir plus sur la sécurité des applications multi-tenant :

Essayer Visual Guard

Single Sign-On : simplifiez la vie des utilisateurs

Si votre offre est composée d’une suite d’applications, Visual Guard vous permet  de proposer un Single Sign-On pour simplifier l’expérience de vos utilisateurs :

  • Ils pourront accéder à plusieurs applications, en passant librement d’une application à l’autre.
  • Si les applications font appel à des Services Web Sécurisés, les utilisateurs seront aussi automatiquement authentifiés pour chaque service web utilisé.
  • Chaque utilisateur se connectera une seule fois au premier site et pourra ensuite accéder aux autres applications sans fournir à nouveau ses identifiants (Single Sign-On).
Le Web SSO de Visual Guard inclut les fonctionnalités suivantes :

1 – Gérer la session de l’utilisateur :

Quand le visiteur passe d’un site à l’autre, le Web SSO

  1. identifie l’utilisateur
  2. recrée sa session sur chaque site visité
  3. charge ses données de sécurité (attributs, rôles, permissions…)
Note : ce Web SSO inclut des mécanismes de gestion des tokens de sécurité (pour créer, transférer et sécuriser les tokens). Ces mécanismes ont été optimisés, pour ne pas entraver la montée en charge (par exemple, il ne va pas « simplement » authentifier l’utilisateur et recharger sa sécurité pour chaque page visitée : les temps de réponse deviendraient trop importants avec l’augmentation du volume des visites).

2 – Fournir un frontal web pour le Single Sign-On

Le frontal Web SSO de Visual Guard a pour but de :

  • Permettre à l’utilisateur de s’identifier avant d’accéder à un site web. Le SSO de Visual Guard supporte nativement plusieurs types de comptes utilisateurs (login/password, compte Windows…).
  • Mémoriser tout ou partie des identifiants de l’utilisateur pour lui éviter de les saisir à nouveau lors de sa prochaine visite (login et mot de passe par exemple).
  • Rediriger automatiquement les utilisateurs qui naviguent entre des sites fédérés par le même SSO : l’utilisateur atteindra immédiatement le second site et son profil de sécurité sera automatiquement appliqué.
  • Une section réservée aux administrateurs system permet de personnaliser la présentation du SSO front-end et de définir certains paramètres. 

Web SSO - Login Form
Lorsque l’utilisateur se connecte au premier site, il accède à cette fenêtre de login dans laquelle il peut choisir son type de compte et saisir ses credentials

Web SSO - Logging in with saved identites
L’utilisateur peut choisir de sauvegarder ses credentials. Lors de sa prochaine visite, il pourra réutiliser un compte mémorisé par le système

3 – Faciliter l’intégration des applications au système de SSO :

  • L’intégration du Web SSO de Visual Guard ne nécessite pas de changer l’application
  • Le processus d’intégration est le même quel que soit le type d’application et la technologie de développement utilisée.

4 – Support des configurations complexes :

Le Web SSO de Visual Guard supporte les cas suivants :

  • Tous les sites ne sont pas sur le même réseau (LAN ou WAN)
  • Tous les comptes utilisateurs ne sont pas stockés dans le même réseau que le SSO
  • Tous les sites ne sont pas sous le même domaine web
  • Tous les sites ne sont pas développés avec la même technologie

Dans chacun de ces cas, Visual Guard gère automatiquement des contraintes spécifiques. Vous trouverez plus d’informations à ce sujet, sur la page Web Single Sign-On (SSO) with the Visual Guard Web Portal

Et si vos clients réutilisaient leurs propres comptes ?

La plupart des applications SaaS imposent de créer un nouveau compte pour chaque utilisateur. Le problème est que les utilisateurs possèdent déjà de multiples comptes, qui génèrent des coûts significatifs pour les entreprises (c.f. The Real Cost of Passwords).

Certaines entreprises souhaitent réutiliser les comptes de leurs utilisateurs (leurs comptes Windows par exemple). Visual Guard permet de donner des droits d’accès à vos applications, à des comptes gérés par une autre organisation. Votre système de contrôle d’accès pourra ainsi fédérer les comptes utilisateurs de plusieurs clients ou partenaires pour définir leurs droits d’accès.

Pour en savoir plus sur la fédération de comptes utilisateurs et la gestion de leurs droits d’accès :

Soyez prêts pour les évolutions de votre business model

Le système de contrôle d’accès est souvent lié au business model (paiement à l’utilisation ou licence permanente) et au modèle de distribution du logiciel (SaaS ou sur site).

Selon les évolutions du marché et de votre stratégie d’entreprise, votre modèle initial sera peut-être complété par d’autres modèles (pour servir plusieurs catégories de clients ou élargir votre offre commerciale par exemple).

Visual Guard permettra de multiples variations. Voici quelques exemples parmi les plus courants :

Cas n°1 : Modèle SaaS par défaut
L’application est hébergée par le vendeur avec le système de sécurité. Les utilisateurs y accèdent par Internet.
Le client paye pour utiliser votre application sur une base limitée en temps et récurrente.

Business model : paiement à l’utilisation
Modèle de distribution: SaaS

Cas n°2 : Pour des raisons de sécurité ou techniques, le client peut demander l’installation de l’application dans son environnement. Les utilisateurs y accèdent via une connexion LAN ou Internet.

Le vendeur continue de gérer le contrôle d’accès : Le client paye pour l’utilisation de l’application sur une base limitée en temps et récurrente.

Business model : paiement à l’utilisation
Modèle de distribution : sur site

Cas n°3 : Si les clients souhaitent réutiliser des comptes de leurs utilisateurs (leurs comptes Windows par exemple).

Visual Guard donne  à ces comptes existants des droits d’accès à l’application SaaS.

Business model : paiement à l’utilisation
Modèle de distribution : SaaS

Cas n°4: Modèle de distribution d’application classique. Le client est propriétaire d’une copie de l’application. Il gère lui-même le contrôle d’accès.

Le vendeur peut ajouter ce modèle à son catalogue - en plus du SaaS - pour élargir son offre.

Visual Guard est facilement déployable chez les clients (outils d’administration simples et robustes, documentation complète…).

Pour autant, ce type de déploiement n’interdit pas le paiement à l’utilisation. Il faudra pour cela que le système de gestion des clés logicielles distribue des licences à durée limitée.

Business model : paiement à l’utilisation ou licence Permanente
Modèle de distribution : Sur site

Séparez le code de sécurité de la logique métier

La plupart des projets écrivent du code dans l’application pour définir comment appliquer les permissions d’un utilisateur. Par exemple, selon le rôle de l’utilisateur, ce code va désactiver un menu, rendre un contrôle invisible, filtrer une liste de données…

En conséquence, si l’on veut changer la sécurité de l’application (ajouter de nouvelles restrictions par exemple), on doit réaliser un cycle de développement complet (conception, développement, test, déploiement).

Visual Guard a développé une technologie innovante pour éliminer ces inconvénients et séparer complètement la sécurité de la logique métier :

  1. les permissions sont définies par Visual Guard et stockées dans sa base de sécurité.
  2. Lorsque l’application est en production, Visual Guard charge les permissions de l’utilisateur depuis la base de sécurité et les applique dynamiquement. Il n’y a donc aucun code de sécurité dans l’application.

Cette solution apporte les bénéfices suivants :

  • Réactivité : vous pouvez mettre à jour lès règles de sécurité en quelques minutes, même lorsque l’application est en production.
  • Coût de la Maintenance : pas de changements dans le code quand on met à jour la sécurité. On évite un cycle de développement complet et le code est plus facile à maintenir.
  • Mise en œuvre : l’intégration se fait très simplement, vous n’avez pas besoin d’adapter votre application. Cette technologie supporte toutes les applications .Net existantes.
  • Flexibilité : ce système supporte n’importe quel type de permission/restriction dans l’application.

Pour en savoir plus:

add permissions to an application
Comment ajouter des permissions
à une application en production
add permissions to an application
Comment intégrer Visual Guard
dans une application existante

 

Paiement à l’utilisation et facturation

Si votre business model repose sur le Paiement à l’utilisation (pay-per-use) de l’application SaaS ou sur des droits d’utilisation temporaire, votre système de contrôle d’accès devra supporter :

  • les comptes utilisateurs à durée de vie limitée
  • une API permettant de collaborer avec un système de facturation pour mettre à jour automatiquement les dates de fin d’utilisation de chaque compte.
  • une interface utilisateur pour que le service commercial ou le centre d’assistance puisse modifier ces informations – traiter les cas particuliers ou les erreurs par exemple, avec effet immédiat pour l’utilisateur concerné.

En savoir plus :

Fiabilité et Performances

L’interface d’administration doit être conçue pour gérer de nombreux utilisateurs et droits d’accès (guider l’administrateur dans ses manipulation et ses recherches, optimiser les temps de réponses du référentiel de sécurité…).

Lorsque l’application SaaS est en production, le processus d’authentification de l’utilisateur et de calcul de ses droits d’accès doit être optimisé pour éviter un temps d’attente trop long. Par exemple, lorsqu’un système doit accéder au référentiel de sécurité à chaque fois qu’une nouvelle page est ouverte par l’utilisateur, la probabilité de rencontrer des problèmes de performances augmente parallèlement au volume d’utilisateurs et de pages vues.

Protection contre les failles de Sécurité

Puisque l’application SaaS sera accessible via Internet et gèrera des données clients, il est nécessaire de concevoir le système de telle sorte qu’il ne soit pas vulnérable aux attaques les plus courantes :

Accès non autorisé aux données de sécurité :  

  • Les données de sécurité ne doivent pas être lisibles par un accès direct SQL. Il faut imposer de passer par l’application SaaS ou par l’interface d’administration pour lire et modifier ces données.
  • Les données sensibles, telles que les mots de passe, doivent être cryptées.

Déni de service : le système de contrôle d’accès doit inclure une protection contre les attaques visant à rendre votre service indisponible en le saturant avec de nombreuses demandes d'ouverture de session.

Opérations d’administration non-autorisées : un utilisateur pourrait découvrir comment accéder à l’interface d’administration ou aux API qui gèrent le contrôle d’accès de l’application SaaS. Il faudra inclure une protection lui interdisant de donner illégalement des droits d’accès supplémentaires à des comptes utilisateurs.

Interception de données confidentielles :

  • Entre le navigateur client et le serveur Web (Support des protocoles SSL/HTTPS, cryptage des communications entre le navigateur et le serveur Web…).
  • Entre les composants.NET au sein de l’application SaaS.

Password cracking : Le système de contrôle d’accès doit définir une politique de mot de passé sophistiquée afin d’empêcher le Password cracking (deviner le mot de passe avec de multiples tentatives).

Packet sniffing : Le système de contrôle d’accès doit inclure une protection contre la capture de packets de données permettant de trouver les mots de passe ou les tokens de sécurité transitant sur le réseau. Un hacker pourrait voler ces tokens et faire des appels au système comme s'il s'agissait d'un utilisateur.

Injection SQL : Le système de contrôle d’accès contiendra probablement des champs de recherche – pour retrouver un compte utilisateur par exemple. Il faudra prémunir le système contre des injections SQL, consistant à insérer des portions d’ordres SQL dans la recherche, dans le but de consulter des informations confidentielles ou de modifier illégalement les données de sécurité.

En savoir plus :

Faire ou acheter ?

Le calendrier est la clé : on voit dans cet article que la sécurité et le contrôle d’accès d’une application SaaS implique des fonctionnalités complexes. Dans le cas d’un développement réalisé en interne, elles nécessitent un délai significatif et des compétences de haut niveau.
Si le calendrier du projet est serré ou si l’expertise correspondante n’est pas disponible, une solution commerciale de contrôle d’accès est peut-être la meilleure option.

Gestion des risques : une solution prête à l’emploi limitera vos risques courts termes (dépassement de délai, bugs et failles de sécurité), mais vous serez exposés à d’autres risques contre lesquels il faudra vous couvrir :

  • Evolutivité : consulter l’historique des versions de la solution : suit-elle les évolutions technologiques du marché, les sorties de versions sont-elles régulières et surtout récentes (risque d’obsolescence) ? Voir la liste des mises à jour de Visual Guard).
  • Qualité produit & support : privilégiez une solution stable et déjà déployée, pour laquelle des retours d’utilisateurs sont consultables.
  • Pérennité de la solution : que se passe-t-il si le fournisseur disparaît ? La solution est-elle livrée avec ses codes sources ? Le fournisseur propose-t-il un escrow agreement (dépôt des codes sources chez un tiers qui l’envoie aux utilisateurs en cas d’interruption de service de la part du fournisseur) ?

Pourquoi ne pas combiner tous les avantages ? Si le fournisseurs est à l’écoute des utilisateurs pour faire évoluer sa solution avec le marché, vous bénéficiez des avantages d’une solution générique (plus complète, plus stable et moins couteuse) tout en influençant les futurs développements pour couvrir au mieux vos besoins spécifiques. Demandez à consulter la feuille de route de la solution et vérifiez que le fournisseur sait prendre en compte les suggestions de ses utilisateurs.