Criar uma regra de atribuição Vulnerability Response para suporte de serviço

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 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 eles afetam.

    Antes de Iniciar

    Função necessária: sn_vul.vulnerability_admin

    Por Que e Quando Desempenhar Esta Tarefa

    Talvez você prefira executar esta tarefa somente se tiver experiência avançada em codificação ou conhecimento profundo sobre o Now Platform e como as regras de atribuição funcionam.

    Com esta regra, os IVs são atribuídos de acordo com a correspondência com os serviços de negócios listados no seu CMDB. Se nenhum serviço, departamento ou grupo de suporte relacionado for correspondido, os IVs serão atribuídos ao grupo de analistas de vulnerabilidade.

    Esta regra pode ajudar a reduzir o número de IVs que são atribuídos incorretamente ou permanecem não atribuídos após a conclusão de outras regras de atribuição.

    Procedimento

    1. Navegar até Todos > Vulnerability Response > Administração > Regras de atribuição.
    2. Selecione Novo.
    3. Preencha os campos no formulário, conforme apropriado.
      Consulte Criar ou editar Vulnerability Response 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

    Revise Vulnerability Response visão geral de regras de atribuição para obter informações mais gerais sobre regras de atribuição e o trabalho programado Reapply all vulnerability assignment rules.