Server & Workload Security保護 建立入侵防護規則,以修補您電腦上的 CVE。您可以使用 API 來確定哪個入侵防護規則可以防護特定的 CVE,確定該規則是否已應用於您的電腦,並在需要時應用該規則。
步驟
- 使用
IntrusionPreventionRulesApi
物件透過搜尋來獲取入侵防護規則。 - 對於每台電腦防護,獲取一個
IntrusionPreventionComputerExtension
對象,並確定該規則是否應用於該電腦防護。 - 對於每台具有弱點的電腦,確定其使用的政策,將規則添加到政策中,並使用更改更新電腦。
接下來需執行的動作
範例:尋找 CVE 的入侵防護規則
以下範例會搜尋針對特定 CVE 提供保護的入侵防護規則。入侵防護規則物件包含一個 CVE 欄位,其中包含該規則適用的 CVE 名稱。CVE 欄位是可搜尋的,因此您可以輕鬆找到針對特定
CVE 的規則。從搜尋返回的規則中,獲取規則 ID。
如需有關搜尋的詳細資訊,請參閱 搜尋資源。
# Set search criteria search_criteria = api.SearchCriteria() search_criteria.field_name = "CVE" search_criteria.string_value = "%" + cve_id + "%" search_criteria.string_test = "equal" # Create a search filter search_filter = api.SearchFilter() search_filter.search_criteria = [search_criteria] # 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) # Get the intrusion prevention rule IDs for the CVE from the results for rule in ip_rules_search_results.intrusion_prevention_rules: rule_id_s.append(rule.id) return rule_id_s
另請參閱 API 參考中的 搜尋入侵防護規則 操作。
範例:尋找未受 CVE 保護的電腦
以下範例會判斷清單中哪些電腦未套用入侵防護規則。對於每台電腦,會取得分配給該電腦的規則 ID。分配的規則 ID 會與防護 CVE 的規則 ID 進行比較。
unprotected_computers = [] for computer in computers_list.computers: computer_ip_list = computer.intrusion_prevention if computer_ip_list.rule_ids: if rule_id in computer_ip_list.rule_ids: unprotected_computers.append(computer) return unprotected_computers
範例:將入侵防護規則新增到電腦的政策中
以下範例將入侵防護規則新增到政策中。此範例所基於的源代碼還決定了分配給電腦的政策。一旦找到政策,如果該規則尚未分配,則將其分配給政策。必須小心保留已經應用的規則。
秘訣您也可以直接將規則指派給電腦防護。
|
# Get the current list of rules from the policy policies_api = api.PoliciesApi(api.ApiClient(configuration)) current_rules = policies_api.describe_policy(policy_id, api_version, overrides=False) # Add the rule_id if it doesn't already exist in current_rules if current_rules.intrusion_prevention.rule_ids == None: current_rules.intrusion_prevention.rule_ids = rule_id elif rule_id not in current_rules.intrusion_prevention.rule_ids: current_rules.intrusion_prevention.rule_ids.append(rule_id) # Add the new and existing intrusion prevention rules to a policy intrusion_prevention_policy_extension = api.IntrusionPreventionPolicyExtension() intrusion_prevention_policy_extension.rule_ids = current_rules.intrusion_prevention.rule_ids policy = api.Policy() policy.intrusion_prevention = intrusion_prevention_policy_extension
另請參閱 API 參考中的 修改政策 操作。有關 API 調用身份驗證的信息,請參閱 使用 Server & Workload Security保護 進行身份驗證