BarsUP.AM: comment nous avons développé un outil de protection des informations des applications web

image

BarsUp.Access Manager (BarsUp.AM) - notre progiciel de protection des informations confidentielles. Lors de la conception et du développement de ce système conformément aux exigences des documents réglementaires du FSTEC de Russie, nous avons rencontré des difficultés dans la gestion de l'accès aux applications Web à l'aide d'outils de protection des informations certifiés.

L'ordonnance du FSTEC de Russie n ° 17 stipule que le choix doit être fait des moyens de protection des informations certifiés conformes aux exigences de sécurité des informations, compte tenu de leur coût, de leur compatibilité avec les technologies de l'information et des moyens techniques. Nous avons regardé ce qui était à l'époque sur le marché et compris: le coût des solutions compatibles avec nos systèmes d'information dépassait souvent le coût des systèmes eux-mêmes, ou ils étaient incompatibles.

Dans ce cas, le régulateur signale qu'en l'absence de moyens adéquats de protection des informations, leur développement (révision) et certification conformément à la législation de la Fédération de Russie ou l'ajustement des décisions de conception sont organisés . Nous avons décidé de développer et certifier dans le FSTEC de Russie un logiciel qui implémente les fonctions d'identification et d'authentification des utilisateurs, de contrôle d'accès et d'enregistrement des événements de sécurité pour la possibilité de son utilisation:

  • Dans les systèmes automatisĂ©s jusqu'Ă  la classe de sĂ©curitĂ© 1G incluse conformĂ©ment aux exigences du document d'orientation «Systèmes automatisĂ©s. Protection contre l'accès non autorisĂ© Ă  l'information. Classification des systèmes automatisĂ©s et des exigences de protection des informations »(Commission technique d'État de Russie, 1992);
  • 11 2013 . â„– 17 « , , » 11 2014 . « »;
  • 1 18 2013 . â„– 21 « ».

Le produit est appelé BarsUP.Access Manager ou BarsUP.AM . Je supprimerai les problèmes liés à l'obtention d'une décision du FSTEC et à la conclusion d'accords avec un laboratoire d'essais et un organisme de certification au-delà des limites de ce matériel, et je décrirai comment nous avons développé des logiciels pour protéger les applications Web.

DĂ©but


Nous avons formé une équipe composée d'un chef de projet, d'un ingénieur en sécurité de l'information, d'un analyste, d'un architecte logiciel et de deux développeurs de premier plan. Lors de la mise en œuvre du projet, nous avons identifié les étapes de travail suivantes:

image

Au stade de l'analyse, nous avons collecté les exigences des documents réglementaires qui peuvent être mis en œuvre comme outil de sécurité pour le web, puis nous avons travaillé avec les développeurs sur la possibilité de leur mise en œuvre en termes de ressources dépensées et de temps. Lors de l'examen des exigences, nous avons traduit le libellé des actes juridiques dans un langage compréhensible pour les analystes et les développeurs, formé une feuille de route: ce qui devrait être mis en œuvre en premier lieu, ce qui est facultatif. Nous avons écrit de la documentation pour la certification en parallèle et après le développement du produit.

En sortie, nous avons reçu un produit qui résout les tâches suivantes:

  • (SSO) ;
  • ;
  • ;
  • ;
  • ;
  • .
  • , ;
  • ;
  • () , TOTP ;
  • ;
  • ;
  • () ;
  • ;
  • ;
  • Ă©volutivitĂ© horizontale du système due au clustering.

Le logiciel prend en charge deux normes pour l'implémentation de l'authentification unique:

  • langage SAML (Security Assertion Markup Language);
  • OpenID Connect 1.0.

Implémentation de l'authentification unique SAML


Conformément aux termes de la norme SAML, le logiciel agit en tant que fournisseur d'identité (IdP). Les sous-systèmes IP agissent en tant que fournisseurs de services (SP).

La procédure générale pour travailler avec l'authentification unique via SAML est présentée ci-dessous:

image

  1. L'utilisateur tente de mettre en œuvre l'accès Web à l'application (SP);
  2. L'application vérifie la présence d'un contexte de sécurité et, en son absence, génère un message AuthnRequest et redirige le navigateur de l'utilisateur vers le serveur d'autorisation BarsUP.AM (IdP);
  3. L'utilisateur se connecte au serveur d'autorisation et saisit ses informations d'identification;
  4. , ;
  5. Response;
  6. , Response. Response .

L'échange de messages entre les parties prend la forme de déclarations SAML (assertions) . Les revendications SAML sont transmises à l'aide du protocole HTTPS sécurisé.

Une relation d'approbation est établie entre le fournisseur d'identité IdP et les fournisseurs de services SP. Les messages SAML envoyés, y compris AuthRequest et AuthResponse, sont signés à l'aide de certificats numériques SP et IdP, respectivement.

Un message AuthRequest est signé avec la clé privée de l'application et remis au serveur d'autorisation à l'aide de messages HTTP Redirect, HTTP POST ou HTTP Artifact. Un message AuthRequest, en particulier, contient les informations suivantes:

  • URL d'application
  • URL du fournisseur d'identitĂ© IdP (serveur d'autorisation BarsUP.AM);
  • ID et heure de crĂ©ation de la demande.

Le message de réponse AuthnResponse est signé avec la clé privée du serveur d'autorisation. Un message AuthnResponse, en particulier, contient les informations suivantes:

  • Identifiant de demande AuthRequest auquel cette rĂ©ponse correspond;
  • URL du gestionnaire de rĂ©ponses
  • la pĂ©riode pendant laquelle la rĂ©ponse est considĂ©rĂ©e comme valable;
  • Date et heure d'authentification de l'utilisateur
  • identifiant de session utilisateur;
  • les attributs utilisateur et leurs valeurs.

Implémentation de l'authentification unique basée sur OpenID Connect


OpenID Connect est une extension conçue pour fournir l'identification et l'authentification des utilisateurs via le protocole OAuth 2.0.

Dans le processus de mise en œuvre de l'authentification unique à l'aide de la technologie OpenID Connect, BarsUP.AM agit comme un fournisseur OpenID (OpenID Provider, OP). Les systèmes d'information (c'est-à-dire les applications Web ciblées accessibles par l'utilisateur) agissent en tant que partie utilisatrice (RP), qui utilise l'OP pour authentifier l'utilisateur.

L'implémentation de la connexion unique via OpenID Connect est décrite dans la figure ci-dessous:

image

  1. Un utilisateur tente d'accéder à une application Web (SP);
  2. L'application génère une demande de code d'autorisation (protocole OAuth2.0) et redirige le navigateur de l'utilisateur vers le serveur d'autorisation BarsUP.AM (OP);
  3. L'utilisateur entre ses informations d'identification sur OP;
  4. OP ;
  5. , OP RP . , Authorization Response, ;
  6. RP OP, (Token Request). TLS;
  7. , OP RP (ID Token, Access Token);
  8. RP .

BarsUP.AM web-


Pour Ă©viter les attaques visant Ă  usurper l'OP ou le RP, ils doivent s'authentifier mutuellement.

BarsUP.AM prend en charge les méthodes d'authentification définies dans la spécification pour OpenID Connect. Le principe de fonctionnement d'OpenID Connect et d'OAuth 2.0 est basé sur l'utilisation de jetons d'identification (jeton ID) et d'autorisation (jeton d'accès).

Je vais donner l'implémentation des fonctions de sécurité de base dans les logiciels:

  • identification et authentification des utilisateurs;
  • contrĂ´le d'accès;
  • journalisation des Ă©vĂ©nements de sĂ©curitĂ©.

Authentification utilisateur et authentification


L'identification et l'authentification sont implémentées dans BarsUP.AM en fonction du nom d'utilisateur et du mot de passe. L'utilisateur entre ses informations d'identification sur la page Web d'authentification BarsUP.AM. Dans ce cas, les informations d'identification sont transmises sous une forme sécurisée via le protocole HTTPS. L'accès à l'application cible n'est autorisé que si l'authentification a réussi. Ainsi, l'identification et l'authentification des utilisateurs sont réalisées avec un accès Web à distance à IP.

Lors de la saisie du mot de passe, le mot de passe n'est pas affiché dans le formulaire Web et le spécial est remplacé. personnages. Pour cette raison, la protection des commentaires est implémentée lors de la saisie des informations d'authentification.

La stratégie de mot de passe BarsUP.AM fournit les paramètres suivants:

  • algorithme de hachage;
  • interdire le nom d'utilisateur dans le mot de passe;
  • nombre minimum de chiffres dans un mot de passe;
  • longueur minimale du mot de passe;
  • nombre minimum de lettres minuscules;
  • nombre minimum de lettres majuscules;
  • nombre minimum de caractères spĂ©ciaux;
  • longueur de l'historique du mot de passe;
  • changement de mot de passe forcĂ© après une certaine pĂ©riode de temps;
  • Le nombre minimum de caractères a changĂ© dans le nouveau mot de passe.

BarsUP.AM prend Ă©galement en charge l'authentification utilisateur multifacteur (Ă  deux facteurs).

Contrôle d'accès


BarsUP.AM implémente la prise en charge automatisée de la gestion des comptes utilisateurs et le verrouillage automatique des comptes utilisateurs.

L'administrateur peut créer, modifier, supprimer, bloquer et débloquer des comptes d'utilisateurs à sa discrétion. Les comptes d'utilisateurs sont créés par l'administrateur à l'aide de la console Web du serveur de gestion BarsUP.AM. Lors de la création d'un compte, le nom, l'adresse e-mail, la période de validité du compte et, si nécessaire, d'autres attributs utilisateur sont indiqués. Le mot de passe est modifié par l'utilisateur lors de la première connexion conformément à la politique de mot de passe. Les comptes d'utilisateurs peuvent être regroupés avec des attributs de groupe et des autorisations spécifiques.

Les mécanismes de verrouillage de compte d'utilisateur suivants sont:

  • blocage administrateur;
  • blocage Ă  la fin de la pĂ©riode dĂ©finie pour l'utilisation du compte;
  • blocage après une pĂ©riode d'un temps spĂ©cifiĂ© de non-utilisation du compte;
  • blocage en cas de dĂ©passement des tentatives de connexion infructueuses;
  • blocage lorsque le nombre de sessions simultanĂ©es est dĂ©passĂ©.

Le compte sera débloqué par l'administrateur ou après l'expiration du délai de blocage (par exemple, lorsqu'il est bloqué en raison du dépassement du nombre de tentatives de connexion infructueuses).

BarsUP.AM implémente le contrôle d'accès des sujets lors de la saisie de l'IP. Chaque utilisateur ou groupe d'utilisateurs dans BarsUP.AM peut se voir attribuer des rôles et des droits. Les droits peuvent s'appliquer à un système spécifique ou à l'ensemble du domaine qui comprend plusieurs systèmes (applications). Les informations sur le rôle et les droits sont définies par l'administrateur et sont fixées sous la forme d'attributs d'accès.

Journalisation des événements de sécurité


BarsUP.AM met en œuvre la collecte, l'enregistrement et le stockage d'informations sur les événements de sécurité lors de l'accès Web à distance à IP. En particulier, les événements liés à la modification des mots de passe des utilisateurs, à la configuration et à la suppression des comptes d'utilisateurs, à la modification des règles de contrôle d'accès et des autorisations des utilisateurs sont enregistrés.

Les événements de sécurité sont enregistrés dans le journal des événements. Pour chaque événement, la date et l'heure, le type d'événement, le système affecté, l'utilisateur associé à l'événement et l'adresse IP du nœud sont enregistrés. Le serveur de journalisation est utilisé pour stocker les journaux d'événements.

Les événements sont divisés en catégories, y compris les événements de sécurité et les événements système. L'administrateur a le droit de consulter le journal des événements.

La composition des événements de sécurité à enregistrer peut être personnalisée. La définition des événements de sécurité à enregistrer et de leurs durées de stockage est enregistrée dans les documents organisationnels et administratifs de protection des informations

Total


Le projet nous a pris 6 mois, hors temps de test et travail de l'organisme de certification. Désormais, lors de la mise en œuvre de projets visant à assurer la protection des informations dans les systèmes d'information, nous n'avons pas de maux de tête, ce que signifie protéger les applications Web.

Source: https://habr.com/ru/post/undefined/


All Articles