保護されていないコンピュータにパッチを適用する
Workload Security では、CVEのコンピュータにパッチを適用する 侵入防御 ルールを作成します。このAPIを使用して、 侵入防御 ルールで特定のCVEを保護するかどうかを判断したり、ルールがコンピュータに適用されているかどうかを判断したり、必要に応じてルールを適用したりできます。
IntrusionPreventionRulesApi
オブジェクトを使用して、検索を使用して侵入防御ルールを取得します。- コンピュータごとに、
IntrusionPreventionComputerExtension
オブジェクトを取得し、ルールがコンピュータに適用されているかどうかを判断します。 - コンピュータごとに、使用するポリシーを決定し、ポリシーにルールを追加して、コンピュータに変更を適用します。
例:CVEの 侵入防御 ルールを検索する
次の例では、特定のCVEを保護する 侵入防御 ルールを検索します。侵入防御 ルールオブジェクトには、ルールが適用されるCVEの名前を含むCVEフィールドが含まれます。CVEフィールドは検索可能なので、特定のCVEのルールを簡単に見つけることができます。検索から返されたルールから、ルールIDを取得します。
検索の詳細については、 Resources forの検索を参照してください。
# 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
APIレファレンス/参照情報の List Computers および Search 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呼び出しの認証の詳細については、 Workload Securityを参照してください。