Logiciels concernés
AXESS Les versions 4.x et 5.0.0 sont affectées par une vulnérabilité potentielle de contournement du schéma d'authentification
. (Les autres produits Axiros ne sont pas concernés).
Date de détection : 18 mars 2024 (crédits à nsideattacklogic)
Contact : [email protected]
Description
Les versions mentionnées de AXESS sont vulnérables au contournement du schéma d'authentification.
Bien que Axiros ne puisse pas faire de déclarations générales concernant l'impact des vulnérabilités mentionnées sur les systèmes déployés, Axiros recommande d'appliquer le correctif décrit dès que possible. Les prochaines versions de AXESS incluront un correctif pour cette vulnérabilité.
Atténuation et réparation
Afin de corriger la vulnérabilité, un fichier à l'intérieur de AXUserManager doit être remplacé et une nouvelle permission doit être ajoutée à la configuration RBAC.
Processus de mise à niveau Ansible
Veuillez lire les procédures de correction Ansible avant d'appliquer la correction.
https://docs.axiros.com/axess-documentation/install/latest/ansible_playbook_reference/utilities/distribute_patches/index.html
Veuillez noter que cette procédure doit être répétée sur chaque environnement (par exemple, laboratoire, staging, production).
Télécharger le fichier patch en fonction de la version AXESS
4.0.0 AXESS4_0_0__LegacyAXUserManager.py /opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager/LegacyAXUserManager.py
4.1.0 AXESS_4_1_0__AXUserManager.py /opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager/AXUserManager.py
4.2.0 AXESS_4_2_0__AXUserManager.py /opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager/AXUserManager.py
4.3.0 + 4.3.1 AXESS_4_3_0__AXUserManager.py /opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager/AXUserManager.py
5.0.0 AXESS_5_0_0__AXUserManager.py /opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager/AXUserManager.py
Placer le fichier dans la machine de contrôle Ansible
Veuillez copier le fichier patch ci-dessus dans le chroot de votre machine de contrôle Ansible.
Veuillez noter que vous devrez peut-être créer la structure du dossier à l'intérieur du répertoire des correctifs (par défaut, il est vide). Enlevez le préfixe de version du fichier avant de le placer dans le répertoire des correctifs (par exemple AXESS_5_0_0__AXUserManager.py renommé en AXUserManager.py).
admin@ip-172-31-8-138:~$ sudo chroot /opt/axess-ansible axess-ansible root@ip-172-31-8-138:/# cd /opt/axess-ansible/contrib-project/patches/ axess-ansible root@ip-172-31-8-138:/opt/axess-ansible/contrib-project/patches# ls -l total 8.0K drwxr-xr-x 2 root root 4.0K 2022-11-23 09:07 . drwxr-xr-x 16 root root 4.0K 2022-07-06 16:11 ... -rw-r--r-- 1 root root 0 2022-11-22 19:00 .gitkeep # Dans cette configuration, le dossier patches est vide. Maintenant, nous créons la structure du dossier pour le patch axess-ansible root@ip-172-31-8-138:/opt/axess-ansible/contrib-project/patches# mkdir -p axess/base/Products/AXUserManager/ axess-ansible root@ip-172-31-8-138:/opt/axess-ansible/contrib-project/patches# cd axess/base/Products/AXUserManager/ axess-ansible root@ip-172-31-8-138:/opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager# ls total 8.0K drwxr-xr-x 2 root root 4.0K 2024-03-18 16:04 . drwxr-xr-x 3 root root 4.0K 2024-03-18 16:04 ... # La structure du dossier a été créée, veuillez placer le fichier patch téléchargé dans ce répertoire de manière à ce qu'il ressemble à ceci axess-ansible root@ip-172-31-8-138:/opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager# ls -l total 24K drwxr-xr-x 2 root root 4.0K 2024-03-18 16:06 . drwxr-xr-x 3 root root 4.0K 2024-03-18 16:04 ... -rw-r--r-- 1 root root 15K 2024-03-18 16:06 AXUserManager.py
Créer la structure de dossier nécessaire
Distribuer le correctif via les playbooks Ansible
Nous voulons maintenant déployer le correctif sur tous les nœuds du cluster. Le playbook peut être exécuté comme n'importe quel autre playbook - assurez-vous de sélectionner le bon fichier d'inventaire.
ansible-playbook --ask-vault-pass -i inventory/lab.py util_axess_patch_files.yml
Exemple de sortie
TASK [Create missing destination directories] ***************************************************************************************************************************** ok : [axess] => (item=répertoire de base) ignorer : [axess] => (item=fichier manquant) ok : [axess] => (item=répertoire base/Produits) ok : [axess] => (item=répertoire base/Produits/AXUserManager) ignorer : [axess] => (item=saut de fichier) TÂCHE [Copier les fichiers corrigés vers les nœuds gérés] **************************************************************************************************************************** sauter : [axess] => (item=suppression d'un répertoire) sauter : [axess] => (item=/opt/axess-ansible/contrib-project/patches/axess/.gitkeep) sauter : [axess] => (item=répertoire à ignorer) sauter : [axess] => (item=répertoire à sauter) changed : [axess] => (item=/opt/axess-ansible/contrib-project/patches/axess/base/Products/AXUserManager/AXUserManager.py) PLAY [Distribuer les correctifs aux nœuds tr069controller] ************************************************************************************************************************ TASK [Patches directory query] ******************************************************************************************************************************************** ok : [axess -> localhost] TASK [Create missing destination directories] ***************************************************************************************************************************** skipping : [axess] => (item=fichier à ignorer) TÂCHE [Copier les fichiers corrigés vers les noeuds gérés] **************************************************************************************************************************** sauter : [axess] => (item=/opt/axess-ansible/contrib-project/patches/tr069controller/.gitkeep) PLAY [Distribuer les correctifs aux nœuds du configcontroller] *********************************************************************************************************************** TASK [Patches directory query] ******************************************************************************************************************************************** ok : [axess -> localhost] TASK [Create missing destination directories] ***************************************************************************************************************************** skipping : [axess] => (item=fichier à ignorer) TÂCHE [Copier les fichiers corrigés vers les noeuds gérés] **************************************************************************************************************************** sauter : [axess] => (item=/opt/axess-ansible/contrib-project/patches/configcontroller/.gitkeep) PLAY RECAP **************************************************************************************************************************************************************** axess : ok=17 changed=1 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0
Redémarrer les processus de AXESS Northbound
Après le déploiement du correctif, nous devons redémarrer tous les processus AXESS northbound.
ansible-playbook --ask-vault-pass -i inventory/lab.py node-axess-northbound-uwsgi_restart.yml
Créer une nouvelle autorisation sur AXESS.GUI
Le portail AXCustomerSupportPortal utilise une URL de déconnexion qui est maintenant restreinte pour les rôles d'utilisateur non "Manager" après l'application du correctif.
Veuillez créer une nouvelle permission et l'assigner au rôle d'utilisateur "Authentifié". De cette manière, tous les autres rôles hériteront de cette permission.
Cette étape n'est obligatoire que si vous utilisez le portail AXCustomerSupportPortal ou une page de déconnexion HTML personnalisée.
Connectez-vous sur AXESS.GUI et accédez à la page Role Based Access Control (contrôle d'accès basé sur les rôles).
Créer une nouvelle autorisation
Créez une nouvelle autorisation avec les paramètres suivants
Nom : support_portal_logout
Opérations, RPC et facettes : *
Chemin d'accès : */acl_users/logout.html*
Attribuer au rôle authentifié existant
Sélectionnez la nouvelle autorisation dans la liste déroulante et cliquez sur le bouton Enregistrer.
La nouvelle autorisation devient active après le renouvellement du cache (60 secondes par défaut). Elle n'est pas nécessaire pour déconnecter les sessions d'utilisateurs existantes.