Fermer

octobre 27, 2022

Quelle est la qualité de votre sécurité AEM ? – Outils d’atténuation


Les violations de données à grande échelle et les failles de sécurité critiques poussent plus que jamais les entreprises à se préoccuper de la sécurité. De nombreux développeurs connaissent le top 10 OWASP (https://owasp.org/www-project-top-ten/). Il existe déjà de nombreuses ressources sur l’atténuation générique de ces vulnérabilités. Au lieu de cela, dans cette série, je couvrirai les problèmes de sécurité et les atténuations spécifiques à AEM. Ici, je vais couvrir deux des outils d’atténuation des exploits d’AEM, CryptoSupport et Service Users.

Articles précédents dans la série :

Identifiants chiffrés

Il est recommandé que tous les mots de passe, jetons de sécurité et autres informations d’identification de service soient chiffrés dans le JCR. De cette façon, même si un attaquant accède pour lire le nœud où ils sont stockés, les informations d’identification sont inutiles sans la clé de déchiffrement. Si vous stockez ces informations d’identification via les propriétés OSGI, vous pouvez utiliser la page Crypto Support d’AEM pour chiffrer manuellement toute propriété basée sur une clé principale système. Une fois chiffré, mettez à jour la configuration OSGI du mode d’exécution correspondante dans /apps avec la valeur chiffrée.

La mise en œuvre pour votre environnement QA ressemblerait à ceci :

  1. Configurez tous les éditeurs QA pour qu’ils partagent la même clé principale système. Je recommande d’utiliser une clé principale système différente par type d’environnement (Dev, QA, Prod).
  2. Accédez à la console OSGI de l’éditeur QA, à Config Mgr, à l’onglet Main et au lien Crypto Support. Générez la propriété chiffrée (mot de passe/secret) via le champ de texte brut.
    • Si vous n’avez pas accès à la console OSGI (AMS), vous devrez créer un ticket de support avec Adobe pour vous donner accès à la console OSGI dans Prod.
    • Si cela n’est pas possible, vous pouvez faire en sorte qu’Adobe CSE génère la propriété chiffrée pour vous ou lui demander de vous aider à copier la clé de chiffrement dans un environnement inférieur.
      • Cependant, il y a quelques défauts avec ces deux approches. Le fait que le représentant génère la propriété cryptée peut constituer un problème de sécurité et être refusé par le client, car l’équipe de mise en œuvre envoie des informations d’identification en dehors des communications appartenant à l’entreprise. La copie de la clé de chiffrement peut également être un problème, car le partage des clés entre les environnements locaux/dev et prod présente un risque car ces environnements sont généralement moins sécurisés dans l’ensemble.
    • Sur AEM en tant que service cloud, vous pouvez utiliser Variables secrètes du gestionnaire de cloud Au lieu.

3. Mettez à jour la configuration OSGI du mode d’exécution QA appropriée dans la base de code avec la valeur chiffrée.

Une fois ce processus terminé, le plug-in de configuration OSGI d’AEM déchiffrera automatiquement toutes les propriétés OSGI chiffrées utilisées dans un service OSGI. Vous ne devriez pas avoir à utiliser d’appel de bibliothèque de décryptage manuel dans vos services. Pour plus de détails à ce sujet, consultez la documentation Adobe ci-dessous.

https://experienceleague.adobe.com/docs/experience-manager-64/administering/security/encryption-support-for-configuration-properties.html?lang=en

Autorisations des utilisateurs de services

Dans les anciennes versions d’AEM, il était courant pour les développeurs d’utiliser des sessions d’administration pour accéder aux données dans le JCR. Aujourd’hui, la plupart des développeurs AEM ont mis à jour ces sessions pour utiliser les utilisateurs de service, mais tous n’ont pas mis en œuvre les meilleures pratiques concernant les autorisations de l’utilisateur de service. De nombreux utilisateurs de services se voient attribuer des autorisations trop larges au lieu de chemins spécifiques. Par exemple, la plate-forme ne vous empêche pas d’implémenter un utilisateur de service qui dispose des mêmes autorisations qu’un administrateur. Si tel est le cas, un point de terminaison non sécurisé pourrait entraîner des attaques XSS côté serveur, des attaques par déni de service ou une violation de données via les écritures JCR dont j’ai parlé dans les articles précédents.

Soyez donc très attentif à la façon dont vous limitez les autorisations. Voici quelques considérations clés :

  • Restreindre les types de nœuds et les propriétés écrites par un utilisateur de service.
  • Si possible, consolidez le contenu lu et écrit par programmation dans un nombre défini de chemins. Autorisez l’accès en lecture de l’utilisateur du service uniquement à ces chemins au lieu de tous /apps ou /content.
  • Dans une architecture mutualisée, utilisez plusieurs utilisateurs de services pour limiter les vecteurs de surface d’attaque.
  • Si le contenu est accessible à des utilisateurs authentifiés spécifiques, préférez utiliser le résolveur de ressources et les ACL de leur demande au lieu d’un utilisateur de service.

Pourquoi atténuer ?

Les conceptions idéales de service, d’accès et de stockage intègrent de nombreuses considérations et les parties prenantes peuvent se demander si cela en vaut la peine. Après tout, si chaque service est bien conçu sans vulnérabilités, pourquoi passer du temps à renforcer d’autres parties du système ? Je trouve utile de l’expliquer avec l’analogie de la sécurité à domicile. La plupart des gens ne comptent pas uniquement sur des portes verrouillées pour protéger leur maison contre le vol. Certains utilisent des pênes dormants, des lumières de mouvement, une surveillance de quartier, des coffres-forts et des emplacements externes (banques) pour sécuriser leurs objets de valeur. Pourquoi? Les attaques deviennent plus sophistiquées ou changent d’approche. Une fois qu’un attaquant a franchi la première couche de défense, vous en voulez plusieurs autres pour le rencontrer.

La semaine prochaine, je couvrirai le filtre de disposition de contenu et les outils d’atténuation spécifiques à AEM en tant que service cloud.

Pour plus d’informations sur la façon dont Perficient peut vous aider à atteindre vos objectifs de sécurité AEM et à mettre en œuvre vos expériences numériques de rêve, nous aimerions avoir de vos nouvelles.

Ils compléteront le contact pour commencer votre voyage.






Source link