취약성 대응 서비스 지원을 위한 할당 규칙 생성

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 4분
  • 다음 스크립트를 사용하여 영향을 받는 비즈니스 서비스에 따라 정정할 취약한 항목을 할당하는 규칙을 생성합니다.

    시작하기 전에

    필요한 역할: sn_vul.vulnerability_admin

    이 태스크 정보

    고급 코딩 경험이 있거나 담당 규칙의 작동 방식에 대한 ServiceNow AI Platform 심층적인 지식이 있는 경우에만 이 작업을 수행하는 것이 좋습니다.

    이 규칙을 사용하면 CMDB에 나열된 비즈니스 서비스와 얼마나 밀접하게 일치하는지에 따라 VI가 할당됩니다. 관련 서비스, 부서 또는 지원 그룹이 일치하지 않으면 VI가 취약성 분석가 그룹에 할당됩니다.

    이 규칙은 다른 할당 규칙이 이미 완료된 후 잘못 할당되거나 할당되지 않은 VI 수를 줄이는 데 도움이 될 수 있습니다.

    프로시저

    1. 다음으로 이동 모두 > 취약성 대응 > 관리 > 담당 규칙.
    2. 새로 만들기를 선택합니다.
    3. 양식의 필드에 적절히 입력합니다.
      이러한 필드에 대한 자세한 내용은 을 참조하십시오 담당 규칙 생성 또는 편집 취약성 대응 .
    4. 선택 사용 할당 목록에서 스크립트를 선택합니다.
    5. 편집기에서 다음 스크립트를 복사하여 붙여넣습니다.
      /*
      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. 제출을 선택합니다.

    다음에 수행할 작업

    담당 규칙 및 예약된 작업에 대한 보다 일반적인 정보는 검토하십시오 취약성 대응 할당 규칙 개요Reapply all vulnerability assignment rules .