Crie um Resposta a vulnerabilidades regra de atribuição para suporte de serviço

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 1 min. de leitura
  • Use o script a seguir para criar uma regra que atribua itens vulneráveis para correção com base nos serviços de negócios que afetam.

    Antes de Iniciar

    Função necessária: sn_vul.vulnerability_admin

    Por Que e Quando Desempenhar Esta Tarefa

    Você pode preferir executar esta tarefa somente se tiver experiência avançada de codificação ou se tiver conhecimento profundo sobre ServiceNow AI Platform e como funcionam as regras de atribuição.

    Com esta regra, os VIS são atribuídos de acordo com o quão próximos eles correspondem aos serviços de negócio listados no seu CMDB. Se nenhum serviço, departamento ou grupo de suporte relacionado for correspondido, os VIS serão atribuídos ao grupo Analista de vulnerabilidades.

    Esta regra pode ajudá-lo a reduzir o número de VIS atribuídos incorretamente ou que permanecem sem atribuição após a conclusão de outras regras de atribuição.

    Procedimento

    1. Navegar até Tudo > Resposta a vulnerabilidades > Administração > Regras de atribuição.
    2. Selecione Novo.
    3. Preencha os campos no formulário, conforme o apropriado.
      Consulte Criar ou editar Resposta a vulnerabilidades regras de atribuição para obter mais informações sobre esses campos.
    4. Na lista de seleção Atribuir usando, selecione Script .
    5. No editor, copie e cole o script a seguir.
      /*
      Assigns Vulnerable Item based on related Business Service
      Assigns to default Vulnerability Analyst group if no related Business Service
      */
      assignToServiceSupport(current);
      
      function assignToServiceSupport(vitGR) {
          var ci = vitGR.getValue('cmdb_ci');
          var defaultAssignmentGroup = 'Vulnerability Analyst';
          var defaultGR = new GlideRecord('sys_user_group');
          defaultGR.get('name', defaultAssignmentGroup);
          var defaultAssignmentGroupID = defaultGR.sys_id;
      
          var maxSizeValue = global.SecProperty.getProperty("sn_sec_cmn.services_affected_by_CI_max_size", 1000);
          var maxDepthValue = global.SecProperty.getProperty("sn_sec_cmn.services_affected_by_CI_max_depth", 10);
          var customValues = {
              "maxDepth": maxDepthValue,
              "maxSize": maxSizeValue
          };
          var ciu = new global.CIUtils();
          var services = ciu.servicesAffectedByCI(ci, customValues);
          var svc = new GlideRecord("cmdb_ci_service");
          var hasSvc = false;
          if (services && services.length > 0) {
              svc.addQuery("sys_id", "IN", services.join(",")); // returns the service with highest business criticality. Implement alternate logic here.
              svc.addNotNullQuery("busines_criticality"); // typo intended
              svc.orderBy("busines_criticality");
              svc.setLimit(1);
              svc.query();
              hasSvc = svc.next();
          }
          if (!hasSvc) {
              // If there are no services it should be assigned to a default assignent group
              return defaultAssignmentGroupID;
          } else {
              var serviceAssignmentGroup = hasSvc.getValue('support_group'); //Also consider managed_by_group, assignment_group, change_control
              return !gs.nil(serviceAssignmentGroup) ? serviceAssignmentGroup : defaultAssignmentGroupID; //Return the Service assignment group if it is not empty, return the default assignment group otherwise.
          }
      }
    6. Selecione Enviar.

    O que Fazer Depois

    Revisão Resposta a vulnerabilidades visão geral das regras de atribuição para obter mais informações gerais sobre regras de atribuição e Reapply all vulnerability assignment rulestrabalho agendado.