рекомендуется не для поиска - PullRequest
0 голосов
/ 27 июня 2019

Поиск по CVE. Я могу получить данные из глубокой безопасности для уникальной политики и со многих компьютеров, но не могу отфильтровать по полю Рекомендовано.

recom="no"

при выполнении

find_rules_for_recom(api, configuration, api_version, api_exception, recom))

Терминал говорит:

Отображение policesException: (400) Причина: заголовки ответа HTTP: HTTPHeaderDict ({'Cache-Control': 'no-cache, no-store, no-cache = "set-cookie" ',' Content-Type ':' application / json ',' Date ': 'Чт, 27 июня 2019 г. 08:28:45 GMT', 'Pragma': 'n o-cache', 'Set-Cookie': «AWSELB = 8121890904A881CF1D6DF15EFDA53CC511612D62EB2B0749F6B1D0FE96DF2375AF5AB194BB3A0FCE0D676C1691AC480BB7AA104DD3549FC5F5C8B49F73540C9295DA200417; PATH = /; MAX-AGE = 180 0 ',' Strict-Transport-Security ':' max-age = 31536000; IncludeSubdomains; preload ',' X-DSM-Version ':' Deep Security / 12.5.85 ',' X-Frame-Options ': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode = block', 'Content-Length': '76', 'Connection': 'keep-alive'}) Тело HTTP-ответа: {"message": "Неверный SearchFilter: рекомендуется не для поиска Поле ".} * +1010 *

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Чтобы найти правила предотвращения вторжений (IPS / IDS), которые могут быть рекомендованы при сканировании рекомендаций, необходимо выполнить поиск в поле рекомендацииMode правил IPS (правила IPS не имеют рекомендуемого поля).

Имена и значения полей API не обязательно совпадают с тем, что вы видите в пользовательском интерфейсе. Чтобы увидеть имена полей в API Reference:

  1. Перейти к справке по API: https://automation.deepsecurity.trendmicro.com/article/12_0/api-reference?platform=on-premise
  2. Элемент списка. Прокрутите вниз до области предотвращения вторжений и нажмите Опишите правило предотвращения вторжений
  3. На центральной панели нажмите 200 успешных операций
  4. В схеме ответа найдите recommendationsMode:

Указывает, учитывает ли правило проверки правило. Избежать ошибки в существующих правилах, только изменить значение между включенными (правило включен в сканирование рекомендаций) и игнорируется (правило игнорируется рекомендации сканирования). Другие значения (отключены или игнорируются) указывают что правило не поддерживается проверками рекомендаций. Для поиска как Выбор.

Итак, вы хотите выполнить поиск выбора для правил, у которых recommendationsMode равно ignored.

def find_rules_for_recommendable(api, configuration, api_version, api_exception):

    rule_id_s = []

    # Set search criteria
    search_criteria = api.SearchCriteria()
    search_criteria.field_name = "recommendationsMode"
    search_criteria.choice_value = "ignored"
    search_criteria.choice_test = "equal"

    # Create a search filter
    search_filter = api.SearchFilter()
    search_filter.search_criteria = [search_criteria]

    try:
        # Search for all intrusion prevention rules for the CVE
        ip_rules_api = api.IntrusionPreventionRulesApi(api.ApiClient(configuration))
        ip_rules_search_results = ip_rules_api.search_intrusion_prevention_rules(api_version,
                                                                             search_filter=search_filter)
        print(ip_rules_search_results)
        for rule in ip_rules_search_results.intrusion_prevention_rules:
            rule_id_s.append(rule.id)

        return rule_id_s

    except api_exception as e:
        return "Exception: " + str(e)`

В качестве бонуса и ожидая, куда вы пойдете дальше, вот как вы должны назначить список правил для политики:

def apply_intrusion_prevention_recommendations(api, configuration, api_version, api_exception, policy_id, rule_ids):
    rule_ids_obj = api.models.RuleIDs(rule_ids)
    ips_recommendations_api = api.PolicyIntrusionPreventionRuleAssignmentsRecommendationsApi(api.ApiClient(configuration))
    try:
        ip_assignments = ips_recommendations_api.add_intrusion_prevention_rule_ids_to_policy(policy_id, api_version, intrusion_prevention_rule_ids=rule_ids_obj, overrides=False)
        return ip_assignments

    except api_exception as e:
        return "Exception: " + str(e)

Надеюсь, это поможет! (Кстати, я разработчик контента DS)

0 голосов
/ 27 июня 2019

Конкретная ошибка, которую вы видите («Неверный SearchFilter: рекомендуемый не для поиска».), Потому что «рекомендуемый» не является полем какого-либо объекта в DSM / api. (источник: нигде не упоминается в спецификации DSM swagger)

Как сказал Скотт, если вы можете обновить свой вопрос, указав свою цель (на какой объект вы смотрите, на какое поле вы хотите фильтровать) и код, который вы используете (какую функцию python вы вызываете, и параметры), мы можем ответить на него более полно.

P.S. Я работаю в R & D над Deep Security

...