趋势科技服务器深度安全防护系统API-入侵防护规则-错误

问题描述

我有一个Python API查询来收集所有入侵防御规则以及与每个入侵防御规则相关联的计算机的ID,但是在大约14000条记录后出现错误

调用ComputerIntrusionPreventionRuleDetailsApi.lis时发生异常 t_intrusion_prevention_rules_on_computer:(500) 原因: HTTP响应标头:HTTPHeaderDict({'x-frame-options ::'SAMEORIGIN','X-XSS-P rotection”:“ 1; mode = block”,“ Cache-Control”:“ no-cache,no-store”,“ Pragma”:“ no- 缓存”,“ X-DSM版本”:“趋势科技服务器深度安全防护系统/12.0.296”,“内容类型”:“应用程序/ json”,“ Content-Length”:“ 35”,“ Date”:“ Fri,2020年10月16日14:04:02 GMT”,“连接 ion':'close'}) HTTP响应正文:{“ message”:“内部服务器错误”}

我的脚本如下:

# -*- coding: utf-8 -*-
from __future__ import print_function
import sys,warnings
import pymssql
import datetime
import deepsecurity
import json
import requests
import urllib3
from deepsecurity.rest import ApiException
from urllib3.exceptions import InsecureRequestWarning
from pprint import pprint
urllib3.disable_warnings(InsecureRequestWarning)
if not sys.warnoptions:
               warnings.simplefilter("ignore")
configuration = deepsecurity.Configuration()
configuration.host = "Server/api/"


# Authentication
configuration.api_key['api-secret-key'] = 'Key'

# Initialization
# Set Any required Values
conn = pymssql.connect("localhost","","DeepSecurity")
cursor = conn.cursor()
cursor2 = conn.cursor()
api_instance = deepsecurity.ComputerIntrusionPreventionRuleDetailsApi(deepsecurity.apiclient(configuration))
api_instance2 = deepsecurity.ComputersApi(deepsecurity.apiclient(configuration))
api_version = 'v1'

overrides = False

try:
        recorddt = datetime.datetime.Now()
        api_response2 = api_instance2.list_computers(api_version,overrides=overrides)

        for y in  api_response2.computers:
         
          api_response = api_instance.list_intrusion_prevention_rules_on_computer(y.id,api_version,overrides=overrides)
          for x in  api_response.intrusion_prevention_rules:


         
           strCVE=(x.cve)
           clean_cve=str(strCVE).replace("['","").replace("']","").replace("'","")

           
           
           cursor.executemany("INSERT INTO ip_rules VALUES (%d,%s,%s) ",[(x.id,x.name,clean_cve,recorddt,y.id)])
           conn.commit()
except ApiException as e:
               print("An exception occurred when calling ComputerIntrusionPreventionRuleDetailsApi.list_intrusion_prevention_rules_on_computer: %s\n" % e)
@H_404_14@ @H_404_14@

解决方法

我想这是在使用不同的计算机ID(例如y.id)循环(list_intrusion_prevention_rules_on_computer)时发生的。

趋势科技服务器深度安全防护系统管理中心似乎能够识别异常并返回500内部服务器错误(以及标头信息)。因此,您可能想要检查server0.log中是否有任何异常,从而获得一些提示。

您还希望确定哪些计算机未能分配预防规则,然后重试。