サービスサポートの 脆弱性対応 アサインルールの作成

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:4分
  • 次のスクリプトを使用して、影響を受けるビジネスサービスに基づいて、修復のために脆弱性一致アイテムをアサインするルールを作成します。

    始める前に

    必要なロール:sn_vul.vulnerability_admin

    このタスクについて

    高度なコーディング経験がある場合、または Now Platform とアサインルールの仕組みに関する詳細な知識がある場合にのみ、このタスクを実行することをお勧めします。

    このルールを使用すると、CMDB にリストされているビジネスサービスと VI の一致度に応じて VI がアサインされます。関連するサービス、部門、またはサポートグループが一致しない場合、VI は脆弱性アナリストグループにアサインされます。

    このルールは、他のアサインルールが既に完了した後で誤ってアサインされている VI の数を減らすのに役立ちます。

    手順

    1. 移動先 すべて > 脆弱性対応 > 管理 > Assignment Rules (アサインルール).
    2. [新規] を選択します。
    3. 必要に応じて、フォームのフィールドに入力します。
      これらのフィールドの詳細については、「脆弱性対応 アサインルールの作成または編集」を参照してください。
    4. [次を使用してアサイン (Assign using)] 選択リストから [スクリプト] を選択します。
    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 スケジュール済みジョブに関する一般的な情報については、「脆弱性対応 アサインルールの概要」を確認してください。