API глубокой безопасности — Правила предотвращения вторжений — Ошибка

#api #trend #deepsecurity

#API #тренд #deepsecurity

Вопрос:

У меня есть запрос API Python для сбора всех правил предотвращения вторжений и идентификаторов компьютеров, связанных с каждым, но я получаю сообщение об ошибке примерно после 14000 записей, которое :

При вызове ComputerIntrusionPreventionRuleDetailsApi возникло исключение.это t_intrusion_prevention_rules_on_computer: (500) Причина: заголовки HTTP-ответа: HTTPHeaderDict({‘X-Frame-Options’: ‘SAMEORIGIN’, ‘X-XSS-P rotection’: ‘1;mode=block’, ‘Cache-Control’: ‘нет-кэш, нет хранилища’, ‘Pragma’: ‘нет кэша’, ‘X-DSM-Version’: ‘Глубокая безопасность / 12.0.296’, ‘Content-Type’: ‘application / json’, ‘Content-Length’: ’35’, ‘Дата’: ‘Пятница, 16 октября 2020 14:04:02 по Гринвичу’, ‘Connect ion’: ‘закрыть’}) Тело HTTP-ответа: {«сообщение»:»Внутренняя ошибка сервера»}

Мой сценарий следующий :

 # -*- 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 ,%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: %sn" % e)  

Ответ №1:

Я предполагаю, что это произошло во время цикла (list_intrusion_prevention_rules_on_computer) с другим идентификатором компьютера (как y.id ).

Похоже, что Deep Security Manager может идентифицировать исключение и вернуть 500 внутренних ошибок сервера (и с информацией заголовка). Итак, вы можете проверить, есть ли какие-либо исключения в server0.log, где вы можете получить некоторые подсказки.

Вы также хотите определить, каким компьютерам не удалось назначить правила предотвращения, и повторить попытку снова.

Комментарии:

1. Спасибо, привет, я не думал, что это компьютеры, не имеющие никаких правил, большое спасибо!