通过CVE进行搜索,我可以从深度安全性中检索用于唯一策略的数据,也可以从许多计算机中检索数据,但是不能按“推荐”字段进行过滤。
recom="no"
执行时
find_rules_for_recom(api, configuration, api_version, api_exception, recom))
终端说:
显示policysException:(400)原因:HTTP响应标头: HTTPHeaderDict({'Cache-Control':'no-cache,no-store, no-cache =“ set-cookie”,'Content-Type':'application / json','Date': '星期四,2019年6月27日08:28:45 GMT','Pragma':'n o-cache','Set-Cookie': 'AWSELB = 8121890904A881CF1D6DF15EFDA53CC511612D62EB2B0749F6B1D0FE96DF2375AF5AB194BB3A0FCE0D676C1691AC480BB7AA104DD3549FC5F5C8B49F73540C9295DA200417; PATH = /; MAX-AGE = 180 0”,“严格运输安全”:“ max-age = 31536000; includeSubDomains; preload”,“ X-DSM版本”:“趋势科技服务器深度安全防护系统/12.5.85”、“X-Frame-Options”: 'SAMEORIGIN','X-XSS-Protection':'1; mode = block','Content-Length': '76','Connection':'keep-alive'})HTTP响应正文: {“ message”:“无效的SearchFilter:推荐不是可搜索的 字段。”}
答案 0 :(得分:0)
您看到的特定错误(“无效的SearchFilter:recommableable不是可搜索的字段。”)是因为'recommendable'不是DSM / api中任何对象的字段。 (来源:在DSM全面规范中未提及)
如Scott所说,如果您可以根据目标(正在查看的对象,要过滤的字段)和正在使用的代码(要调用的python函数,以及参数),我们可以对其进行更全面的回答。
P.S。我从事趋势科技服务器深度安全防护系统的研发工作
答案 1 :(得分:0)
要查找推荐扫描可以推荐的入侵防御(IPS / IDS)规则,您需要搜索IPS规则的RecommendationMode字段(IPS规则没有可推荐的字段)。
API字段名称和值不一定与您在UI中看到的相同。要在API参考中查看字段名称:
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内容开发人员)