Criar uma regra de atribuição Resposta a vulnerabilidades para suporte de serviço

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • Use o script a seguir para criar uma regra que atribui itens vulneráveis para correção com base nos serviços de negócio que eles 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 em codificação ou tiver 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 o quanto correspondem aos serviços de negócio 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 atribuídos incorretamente ou que permanecem não atribuídos após a conclusão de outras regras de atribuição.

    Procedimento

    1. Navegar até Todos > 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

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