Чтобы найти правила предотвращения вторжений (IPS / IDS), которые могут быть рекомендованы при сканировании рекомендаций, необходимо выполнить поиск в поле рекомендацииMode правил IPS (правила IPS не имеют рекомендуемого поля).
Имена и значения полей API не обязательно совпадают с тем, что вы видите в пользовательском интерфейсе. Чтобы увидеть имена полей в API Reference:
- Перейти к справке по API:
https://automation.deepsecurity.trendmicro.com/article/12_0/api-reference?platform=on-premise
- Элемент списка. Прокрутите вниз до области предотвращения вторжений и нажмите
Опишите правило предотвращения вторжений
- На центральной панели нажмите 200 успешных операций
- В схеме ответа найдите
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)