推荐的不是可搜索的字段

时间:2019-06-27 08:37:21

标签: api deepsecurity

通过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:推荐不是可搜索的   字段。”}

2 个答案:

答案 0 :(得分:0)

您看到的特定错误(“无效的SearchFilter:recommableable不是可搜索的字段。”)是因为'recommendable'不是DSM / api中任何对象的字段。 (来源:在DSM全面规范中未提及)

如Scott所说,如果您可以根据目标(正在查看的对象,要过滤的字段)和正在使用的代码(要调用的python函数,以及参数),我们可以对其进行更全面的回答。

P.S。我从事趋势科技服务器深度安全防护系统的研发工作

答案 1 :(得分:0)

要查找推荐扫描可以推荐的入侵防御(IPS / IDS)规则,您需要搜索IPS规则的RecommendationMode字段(IPS规则没有可推荐的字段)。

API字段名称和值不一定与您在UI中看到的相同。要在API参考中查看字段名称:

  1. 转到API参考: https://automation.deepsecurity.trendmicro.com/article/12_0/api-reference?platform=on-premise
  2. 列表项向下滚动到Intrusion Prevention区域,然后单击 描述入侵防御规则
  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内容开发人员)