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

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

    시작하기 전에

    필요한 역할: sn_vul.vulnerability_admin

    취약성 대응v30.0부터는 의 관리 콘솔 보안 노출 관리 작업 공간 을 사용하면 담당 규칙, 분류 규칙 및 정정 대상을 포함하여 모든 통합 보안 노출 관리 애플리케이션에 대해 원스톱 구성을 사용할 수 있습니다. , 애플리케이션 취약성 대응, 컨테이너 취약성 대응구성 준수 애플리케이션 전반에 걸쳐 취약성 대응일관된 워크플로우를 제공합니다. 자세한 내용은 찾기를 관리하도록 규칙 구성 문서를 참조하십시오.

    이 태스크 정보

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

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