| Exiger une autorisation pour les demandes SOAP |
- Nouveau rattrapage : assurez-vous que la propriété glide.basicauth.required.soap Glide existe et qu’elle est définie sur la valeur true. Vous pouvez également configurer l’instance pour la sécurité WS en définissant la propriété glide.soap.require_ws_security sur vrai et en suivant la documentation du produit pour configurer les profils de sécurité WS. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.basicauth.required.soap est définie sur la valeur vrai. Vous pouvez également configurer l’instance pour la sécurité WS en définissant la propriété glide.soap.require_ws_security sur true et en suivant la documentation du produit pour configurer les profils de sécurité WS.
|
| Appliquer la vérification OCSP en cas d’erreur réseau |
- Nouveau rattrapage : assurez-vous que la propriété com.glide.communications.httpclient.ocsp_allow_network_error existe et qu’elle est définie sur false. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété com.glide.communications.httpclient.ocsp_allow_network_error est définie sur faux.
|
| Désactiver l’URL du contenu externe |
- Nouveau rattrapage : assurez-vous que la propriété glide.ui.url.external.content Glide existe et qu’elle est définie sur la valeur faux. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.ui.url.external.content est définie sur faux.
- Nouveau score CVSS : 7,2
- Ancien score CVSS : 8,1
- Script de règle : le script a été mis à jour pour améliorer la précision de la détection.
|
| Restreindre les entités externes XML |
- Nouveau rattrapage : assurez-vous que la propriété glide.xml.entity.whitelist Glide existe et est définie sur « http://java.sun.com/j2ee/dtds/ » et que la propriété glide.xml.entity.whitelist.enabled Glide existe et est définie sur la valeur vrai. Si les propriétés n’apparaissent pas dans la table sys_properties, ajoutez de nouveaux enregistrements.
- Ancien rattrapage : assurez-vous que la propriété glide.xml.entity.whitelist est définie sur « http://java.sun.com/j2ee/dtds/ » et que la propriété glide.xml.entity.whitelist.enabled est définie sur vrai.
|
| Désactiver les rapports publiés non authentifiés |
- Nouveau rattrapage : assurez-vous que la propriété glide.report.published_reports.enabled Glide existe et qu’elle est définie sur la valeur faux. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.report.published_reports.enabled est définie sur faux.
|
| Activer les contrôles de la politique de réinitialisation du mot de passe |
- Nouveau rattrapage : assurez-vous que la propriété glide.enable.password_policy Glide existe et qu’elle est définie sur la valeur true. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.enable.password_policy est définie sur vrai.
|
| Minimiser le seuil d'expansion des entités pour GlideXMLUtil pouvant contenir des scripts |
- Nouveau rattrapage : assurez-vous que la propriété glide.xmlutil.max_entity_expansion est définie sur 3 000 ou moins. Si l’instance est sur Washington ou une version ultérieure, la valeur implicite par défaut est 3 000 si l’enregistrement sys_properties n’existe pas. Si l’instance n’est pas sur Washington ou une version ultérieure, il est recommandé à l’administrateur de l’instance de créer un enregistrement sys_properties avec le nom glide.xmlutil.max_entity_expansion et la valeur 3 000.
- Ancien rattrapage : assurez-vous que la propriété glide.xmlutil.max_entity_expansion est définie sur 3 000 ou moins.
|
| Désactiver les connexions SSLv2/SSLv3 sortantes |
- Nouveau rattrapage : assurez-vous que la propriété glide.outbound.sslv3.disabled Glide existe et qu’elle est définie sur la valeur true. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.outbound.sslv3.disabled est définie sur vrai.
Important : La valeur de la glide.outbound.sslv3.disabled propriété est un remplacement sûr et ne peut pas être modifiée une fois modifiée.
|
| Désactiver le comportement hérité de clôture du champ d'application GlideRecord |
- Nouvelle description courte : Désactiver le comportement hérité de clôture du champ d’application GlideRecord
- Ancienne description courte : Activer le comportement hérité de clôture du champ d’application GlideRecord
|
| Restreindre les types MIME chargés |
- Nouveau rattrapage : assurez-vous que la propriété glide.security.file.mime_type.validation existe et qu’elle est définie sur vrai. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.security.file.mime_type.validation est définie sur vrai.
|
| Activer la protection de l’interpolation Jelly JS pour les expressions imbriquées |
- Nouveau rattrapage : assurez-vous que la propriété glide.ui.jelly.js_interpolation.protect_nested_expressions Glide existe et qu’elle est définie sur la valeur true. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.ui.jelly.js_interpolation.protect_nested_expressions est définie sur vrai.
|
| Activer SSL dans l’authentification LDAP [Mis à jour dans Centre de sécurité 1.5 et 2.0] |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| Activer UserCookie version 3.1 |
- Nouvelle description : UserCookie v3 est généré uniquement lorsque la propriété glide.ui.secure.cookies.use_kmf is disabled. UserCookie v3 n’est pas sécurisé en raison du stockage de la clé secrète pour HMAC dans le code source et identique pour tous les clients. Cela peut permettre à des acteurs malveillants d’utiliser cette clé secrète unique pour tenter de détourner les sessions des utilisateurs. En définissant la propriété glide.ui.secure.cookies.use_kmf sur true, UserCookie v3.1 sera utilisé et la clé secrète sera stockée dans un stockage de sécurité tel que KMF.
- Ancienne description : UserCookie v3 est généré uniquement lorsque la propriété glide.ui.secure.cookies.use_kmf est désactivée. UserCookie v3 n’est pas sécurisé en raison du stockage de la clé secrète pour HMAC dans le code source et identique pour tous les clients. Cela peut permettre à des acteurs malveillants d’utiliser cette clé secrète unique pour tenter de détourner les sessions des utilisateurs.
- Nouveau rattrapage : assurez-vous que la propriété glide.ui.secure.cookies.use_kmf existe et qu’elle est définie sur vrai. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.ui.secure.cookies.use_kmf est définie sur vrai. Ce qui signifie que UserCookie v3.1 sera utilisé et que la clé secrète sera stockée dans un stockage de sécurité tel que KMF.
|
| Définir la durée de vie de l’OTP pour la réinitialisation du mot de passe à 1 heure [Mis à jour dans Centre de sécurité 2.0] |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| Enregistrer l’emprunt d’identité d’un utilisateur |
- Nouveau rattrapage : assurez-vous que la propriété glide.sys.log_impersonation existe et qu’elle est définie sur vrai. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la propriété glide.sys.log_impersonation est définie sur vrai.
|
| Instanciateurs de connexions JMS requis |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| S’assurer que la création/la suppression des tableaux de bord nécessite une vérification d’accès [Nouveau dans Security Center 1.3 et mis à jour dans la version 2.0] |
- Nouveau rattrapage : assurez-vous que la propriété glide.processors.check_access_before_process Glide existe et qu’elle est définie sur la valeur true. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : assurez-vous que la valeur de glide.processors.check_access_before_process a toujours la valeur vrai.
|
| Invalider de manière proactive les sessions après des durées définies |
- Nouveau rattrapage : assurez-vous que la propriété glide.active.session.timeout.invalidate.session Glide existe et qu’elle est définie sur la valeur true. Si la propriété n’apparaît pas dans la table sys_properties, ajoutez un nouvel enregistrement.
- Ancien rattrapage : définissez la propriété glide.active.session.timeout.invalidate.session Glide sur vrai.
|
| Appliquer le champ d’application de sécurité pour l’Espace de travail d’agent pour la gestion des tickets RH [Nouveau dans Centre de sécurité 1.5 et mis à jour dans la version 2.0] |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| Appliquer le playbook pour les licences et les autorisations dans le champ d’application de sécurité [nouveau dans Centre de sécurité 1.5 et mis à jour dans la version 2.0] |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| Restreindre les types MIME téléchargeables |
- Nouvelle description : si la propriété glide.ui.attachment.force_download_all_mime_types est définie sur vrai, la glide.ui.attachment.download_mime_types propriété est remplacée afin que tous les types MIME soient téléchargés plutôt qu’affichés par le navigateur. Par exemple, le téléchargement de texte/html force un fichier HTML à être téléchargé sur le client en tant que fichier plutôt que d’être affiché en ligne dans le navigateur, empêchant ainsi une attaque XSS. Une XSS peut faciliter l’atteinte de l’escalade de privilège vers des rôles plus élevés tels que l’administrateur où un mouvement plus latéral peut être effectué.
- Ancienne description : si la propriété glide.ui.attachment.force_download_all_mime_types n’est pas définie sur vrai, la glide.ui.attachment.download_mime_types propriété est remplacée afin que tous les types MIME soient téléchargés plutôt qu’affichés par le navigateur. Par exemple, le téléchargement de texte/html force un fichier HTML à être téléchargé sur le client en tant que fichier plutôt que d’être affiché en ligne dans le navigateur, empêchant ainsi une attaque XSS. La possibilité d’avoir un XSS peut conduire à une escalade de privilège facilement atteinte vers des rôles plus élevés tels que l’administrateur où un mouvement plus latéral peut être effectué.
- Nouveau rattrapage : assurez-vous que la propriété glide.ui.attachment.force_download_all_mime_types est définie sur vrai. Si la propriété n’existe pas dans la table sys_properties, la valeur par défaut est faux.
- Ancien rattrapage : assurez-vous que la propriété glide.ui.attachment.force_download_all_mime_types est définie sur vrai.
- Script de règle : le script a été mis à jour pour améliorer la précision de la détection.
|
| Définir les types MIME téléchargeables restreints [Mis à jour dans Centre de sécurité 1.3, 1.5 et 2.0] |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| Désactiver le téléchargement des fichiers infectés |
- Nouvelle description : lorsque la propriété com.glide.snap.infected_download_allowed est définie sur vrai, les utilisateurs peuvent toujours télécharger des pièces jointes non analysées au cas où le service antivirus serait en panne ou inaccessible. Cela signifie qu’il est possible qu’un utilisateur télécharge un fichier malveillant et risque d’infecter le bureau de l’utilisateur (au cas où il n’y aurait pas d’autre protection de point de terminaison sur l’appareil).
- Ancienne description : si com.glide.snap.infected_download_allowed elle n’est pas définie sur la valeur conseillée Faux, il est possible de télécharger un fichier malveillant qui n’a pas été analysé, ce qui risque d’infecter le bureau de l’utilisateur.
- Nouveau rattrapage : assurez-vous que la propriété com.glide.snap.infected_download_allowed est définie sur faux.
- Ancienne correction : assurez-vous que la propriété com.glide.snap.infected_download_allowed est définie sur False.
|
| Restreindre l’accès à l’API scriptable GlideSystemUserSession |
- Nouvelle description : gs.addErrorMessageNoSanitizationMessaging() et gs.addInfoMessageNoSanitization() sont utilisés dans l’environnement de scripting pour la connexion et les notifications. Ces deux éléments sont disponibles dans le bac à sable si cette propriété n’est pas définie sur la valeur recommandée false. Le bac à sable (sandbox) est un environnement de script avec peu de privilèges accessible aux utilisateurs non authentifiés et sans rôle. Ces deux méthodes peuvent être utilisées pour afficher une entrée non expurgée à un utilisateur. L’affichage d’une entrée non expurgée à l’utilisateur est dangereux, car une entrée non expurgée peut contenir du code dangereux qui s’exécute dans le navigateur de l’utilisateur. Cela peut être utilisé pour les attaques XSS réfléchies traditionnelles. Les attaques XSS réfléchies peuvent être utilisées dans plusieurs scénarios, y compris le détournement de session.
- Ancienne description : la messagerie dans le bac à sable de scripting Glide est utilisée à des fins de journalisation. L’appel de cette fonction d’erreur non apurée expose la plateforme à des attaques XSS réfléchies. Les attaques XSS peuvent permettre une escalade facile des privilèges en volant les cookies de session d’une personne. S’il glide.sandbox.usersession.allow_unsanitized_messages n’est pas défini sur la valeur recommandée faux, les fonctions de messagerie d’erreur non expurgées addErrorMessageNoSanitization et addInfoMessageNoSanitization sont disponibles pour le script.
|
| Activer les règles de requête de gestion des commandes de travaux pour les organisations de services |
- Nouvelle description : lorsque la valeur est définie sur vrai, les règles/filtres de sn_query_rule table sont utilisés pour déterminer l’accès en lecture aux tables liées à Gestion des services sur site (commande de travaux et tâche de commande de travaux) pour l’utilisateur connecté via les règles métier des requêtes et les ACL en lecture. Si la valeur est définie sur false, les enregistrements ne sont pas filtrés en fonction des règles de requête. Les règles métier de requête ajoutent des validations de sécurité supplémentaires. Plus précisément, cette propriété filtre les enregistrements pour les agents, les qualificateurs et les répartiteurs en fonction du territoire qui leur est affecté ou de l’appartenance à un territoire. Il est recommandé de suivre le principe du moindre privilège lors de la lecture des documents. Lorsque cette propriété n’est pas définie sur vrai, il peut y avoir un risque accru d’exposition des données des tables Gestion des services sur site.
- Ancienne description : lorsque la valeur est définie sur vrai, les règles/filtres de sn_query_rule table sont utilisés pour déterminer l’accès en lecture aux tables liées à Gestion des services sur site (commande de travaux et tâche de commande de travaux) pour l’utilisateur connecté via les règles métier des requêtes et les ACL en lecture. Si la valeur est définie sur false, les enregistrements ne sont pas filtrés en fonction des règles de requête. Les règles métier de requête ajoutent des validations de sécurité supplémentaires. Plus précisément, cette propriété filtre les enregistrements pour les agents, les qualificateurs et les répartiteurs en fonction du territoire qui leur est affecté ou de l’appartenance à un territoire. Il est recommandé de suivre le principe du moindre privilège lors de la lecture des documents.
|
| Restreindre les domaines d’e-mail pour l’inscription des utilisateurs externes [Mis à jour dans le Centre de sécurité 1.3, 1.5 et 2.0] |
- Nouvelle description : la sn_ext_usr_reg.allowed_email_domains propriété définit les adresses e-mail autorisées à s’auto-enregistrer sur une instance ServiceNow. Le format doit être une liste séparée par des virgules de domaines d’e-mail acceptables, tels que domain1.com, domain2.com où des e-mails tels que example@domain2.com seront acceptés. S’il sn_ext_usr_reg.allowed_email_domains n’est pas défini avec une liste de domaines acceptables, les utilisateurs avec n’importe quelle adresse e-mail sont autorisés à enregistrer des comptes sur les instances. Si cette propriété n’est pas définie, les acteurs malveillants peuvent effectuer l’enregistrement à l’aide d’adresses e-mail de domaines indésirables pour obtenir un accès authentifié à l’instance.
- Ancienne description : la sn_ext_usr_reg.allowed_email_domains propriété définit les adresses e-mail autorisées à s’auto-enregistrer sur une instance ServiceNow. S’il sn_ext_usr_reg.allowed_email_domains n’est pas défini avec une liste de domaines acceptables, les utilisateurs avec n’importe quelle adresse e-mail sont autorisés à enregistrer des comptes sur les instances. Si cette propriété n’est pas définie, les acteurs malveillants peuvent effectuer l’enregistrement à l’aide d’adresses e-mail de domaines indésirables pour obtenir un accès authentifié à l’instance.
|
| Appliquer Séparation de domaine sur les champs de type « remontée pas à pas » |
- Nouvelle description : cette propriété contrôle si les requêtes de jointure reçoivent ou non des conditions séparées par domaine, afin de s’assurer qu’elles appliquent la fonctionnalité de séparation de domaine pour les champs de remontée pas à pas. S’il glide.sys.domain.include_domain_condition_on_join n’est pas défini sur la valeur recommandée vrai sur une instance à l’aide de Séparation de domaine, des informations sensibles peuvent être divulguées et ne doivent pas être partagées avec un domaine spécifique. Il peut y avoir un impact fonctionnel modéré sur l’instance si les composants dépendent des requêtes interdomaines non sécurisées. Les instances doivent être testées dans des environnements de sous-production avant l’activation.
- Ancienne description : cette propriété contrôle si les requêtes de jointure reçoivent ou non des conditions séparées par domaine, afin de s’assurer qu’elles appliquent la fonctionnalité de séparation de domaine pour les champs de remontée pas à pas. S’il glide.sys.domain.include_domain_condition_on_join n’est pas défini sur la valeur recommandée vrai sur une instance à l’aide de Séparation de domaine, des informations sensibles peuvent être divulguées et ne doivent pas être partagées avec un domaine spécifique.
|
| Appliquer la vérification de la liste d’autorisations d’URL |
- Nouveau rattrapage : assurez-vous que la propriété glide.security.url.whitelist.strict_check est définie sur vrai ou que la propriété glide.security.url.whitelist est définie sur une valeur.
- Ancien rattrapage : assurez-vous que la propriété glide.security.url.whitelist.strict_check est définie sur « vrai » et que la propriété glide.security.url.whitelist est définie sur une valeur.
|
| Définir l’utilisateur invité pour les demandes SOAP |
Script de règle : le script a été mis à jour pour améliorer la précision de la détection. |
| Restreindre l’accès au script d’arrière-plan |
- Nouvelle description : cette propriété contient le rôle requis pour accéder au module Arrière-plan de script. Si glide.script_processor.admin elle n’est pas définie sur la valeur recommandée et par défaut administrateur, les utilisateurs ayant un rôle avec moins de privilèges sont en mesure d’exécuter des scripts en arrière-plan sur l’instance. Cela conduira à un contournement complet du système d’ACL permettant un accès complet aux tables.
- Ancienne description : cette propriété contient le rôle requis pour accéder au module Arrière-plan de script. Si glide.script_processor.admin elle n’est pas définie sur la valeur conseillée administrateur, security_admin ou maintenance, les utilisateurs ayant un rôle avec moins de privilèges sont en mesure d’exécuter des scripts en arrière-plan sur l’instance. Cela conduira à un contournement complet du système d’ACL permettant un accès complet aux tables.
- Nouveau rattrapage : assurez-vous que la propriété glide.script_processor.admin est définie sur l’administrateur. Il s’agit de la valeur par défaut sur les instances.
- Ancien rattrapage : assurez-vous que la propriété glide.script_processor.admin est définie sur le rôle d’administrateur, de security_admin ou de maintenance.
|
| Vérifier la chaîne et le nom d’hôte des certificats |
- Nouvelle description : lorsque la propriété com.glide.communications.httpclient.verify_hostname Glide n’est pas définie sur la valeur sécurisée true, le nom d’hôte et la chaîne de certification présentés par les hôtes distants lors d’une connexion TLS initiée à partir de l’instance ServiceNow ne sont pas validés. Cela pourrait compromettre la sécurité de la connexion TLS et permettre des attaques de l’homme du milieu, où les communications entre deux parties sont interceptées. Cela peut conduire à la divulgation de données sensibles.
- Ancienne description : si com.glide.communications.httpclient.verify_hostname la valeur n’est pas définie sur vrai, cela pourrait permettre des attaques de l’homme du milieu où les communications entre deux parties sont interceptées. Si vous définissez cette propriété sur une valeur non sécurisée, vous désactivez le processus de vérification des certificats, qui évalue toutes les certifications de la chaîne de certificats en vérifiant le statut de révocation. Définissez cette propriété sur vrai pour empêcher le client HTTP de se connecter à un nom d’hôte potentiellement dangereux.
|
| Délai de verrouillage du contrôle pour les tentatives de réinitialisation du mot de passe non valide |
- Nouvelle description courte : Control Lockout Time for Invalid Password Reset Attempts
- Ancienne description courte : Minimize Reset Password Request Max Attempts Window Duration
- Nouvelle description : la password_reset.request.max_attempt_window propriété définit le nombre de minutes pendant lesquelles un utilisateur doit patienter avant de réinitialiser ou de changer son mot de passe après avoir dépassé le nombre maximal de tentatives infructueuses défini avec le password_reset.request.max_attempt property. Un petit nombre de minutes pour la password_reset.request.max_attempt_window propriété augmente le risque d’attaque par force brute réussie d’un mot de passe, car un plus grand nombre de tentatives de réinitialisation du mot de passe peuvent être effectuées. La valeur par défaut de 1440 minutes est recommandée.
- Ancienne description : si password_reset.request.max_attempt_window elle n’est pas définie sur la valeur conseillée de 1 440 ou moins, il est possible d’effectuer une action brutforce du compte, car le compte n’est pas verrouillé après un nombre maximal de tentatives d’authentification incorrectes.
- Nouveau rattrapage : assurez-vous que la propriété password_reset.request.max_attempt_window est définie sur 1 440 ou plus.
- Ancien rattrapage : assurez-vous que la propriété password_reset.request.max_attempt_window est définie sur 1 440 ou moins.
- Script de règle : le script a été mis à jour pour améliorer la précision de la détection.
|
| Désactiver le comportement hérité de clôture du champ d'application GlideRecord |
- Nouvelle description courte : Disable GlideRecord Scope Fencing Legacy Behavior
- Ancienne description courte : Enable GlideRecord Scope Fencing Legacy Behavior
- Nouveau rattrapage : définissez la propriété glide.record.legacy_cross_scope_access_policy_in_script Glide sur faux. Lorsqu’elle n’est pas présente dans la table sys_properties, la valeur par défaut est vrai.
- Ancien rattrapage : définissez la propriété glide.record.legacy_cross_scope_access_policy_in_script Glide sur faux.
|
| Limiter les tentatives de réinitialisation du mot de passe non valide |
- Nouvelle description courte : Limit Invalid Password Reset Attempts
- Ancienne description courte : Minimize Reset Password Request Max Attempt Allowance
|