保護されていないコンピュータにパッチを適用する

Workload Security では、CVEのコンピュータにパッチを適用する 侵入防御 ルールを作成します。このAPIを使用して、 侵入防御 ルールで特定のCVEを保護するかどうかを判断したり、ルールがコンピュータに適用されているかどうかを判断したり、必要に応じてルールを適用したりできます。

  1. IntrusionPreventionRulesApi オブジェクトを使用して、検索を使用して侵入防御ルールを取得します。
  2. コンピュータごとに、 IntrusionPreventionComputerExtension オブジェクトを取得し、ルールがコンピュータに適用されているかどうかを判断します。
  3. コンピュータごとに、使用するポリシーを決定し、ポリシーにルールを追加して、コンピュータに変更を適用します。

例: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を参照してください。