建議掃描會識別應分配或移除的入侵防護、完整性監控和日誌檢查規則,適用於電腦防護或政策。API 通過以下類別提供對每個保護模組在電腦防護和政策層級的建議掃描結果的訪問:
電腦入侵防護分配建議API
ComputerIntegrityMonitoringAssignmentsRecommendationsApi
ComputerLogInspectionAssignmentsRecommendationsApi
PolicyIntrusionPreventionAssignmentsRecommendationsApi
PolicyIntegrityMonitoringAssignmentsRecommendationsApi
PolicyLogInspectionAssignmentsRecommendationsApi
這些類別的方法和函數返回的物件包含最新的建議和掃瞄資訊。以下的 JSON 代表返回物件的資料結構:
{ "assignedRuleIDs": [], "recommendationScanStatus": "valid", "lastRecommendationScanDate": "1562702362438", "recommendedToAssignRuleIDs": [], "recommendedToUnassignRuleIDs": [] }
要使用 API 執行推薦掃瞄,您需要使用排程任務。請參閱 使用排程任務維護保護 指南。
如需有關建議掃描的詳細資訊,請參閱 管理和執行建議掃描。
查找建議掃描上次運行的時間
當您想確保您的電腦防護最近已被掃瞄時,請取得上次推薦掃瞄的日期。例如,如果電腦在預定執行推薦掃瞄時處於離線狀態,則該電腦未被掃瞄。您可以運行一個腳本,來發現您環境中的每台電腦上次掃瞄的時間。根據結果,您可以根據需要運行推薦掃瞄。
請使用以下一般步驟來獲取一台或多台電腦的最後建議掃瞄日期:
步驟
- 創建一個
ComputersApi
物件以獲取要檢查的電腦 ID。 - 建立一個
ComputerIntrusionPreventionAssignmentsRecommendationsApi
物件,並使用它來列出入侵防護規則分配和建議。 - 從返回的
IntrusionPreventionAssignments
物件中獲取上次掃瞄的日期。
接下來需執行的動作
秘訣當建議掃瞄執行時,它會為入侵防護、完整性監控和日誌檢查安全模組確定建議。因此,
ComputerIntrusionPreventionAssignmentsRecommendationsApi 、ComputerIntegrityMonitoringAssignmentsRecommendationsApi 和 ComputerLogInspectionAssignmentsRecommendationsApi 的方法和功能會返回相同的日期和最後一次掃瞄的狀態值。 |
例如,獲取您環境中所有電腦的列表(您只需要 ID,因此將
expand
參數設置為 none
以返回最少的信息):expand = api.Expand(api.Expand.none) computers_api = api.ComputersApi(api.ApiClient(configuration)) computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False)
對每台電腦防護,獲取應用的規則和建議的掃瞄結果:
computer_ips_assignments_recommendations_api = ( api.ComputerIntrusionPreventionRuleAssignmentsRecommendationsApi(api.ApiClient(configuration))) intrusion_prevention_assignments = ( computer_ips_assignments_recommendations_api.list_intrusion_prevention_rule_ids_on_computer( computer.id, api_version, overrides=False)
最後,提取上次掃瞄的日期。請注意,當沒有執行建議掃瞄時,該屬性為
None
:reco_scan_info = list() if intrusion_prevention_assignments.last_recommendation_scan_date is not None: d = datetime.datetime.utcfromtimestamp(intrusion_prevention_assignments.last_recommendation_scan_date/1000) reco_scan_info.append(d.strftime('%Y-%m-%d %H:%M:%S')) else: reco_scan_info.append("No scan on record")
另請參閱 API 參考中的 列出入侵防護規則 ID 操作。
範例:獲取所有電腦的最後建議掃瞄日期
以下範例會檢索所有電腦防護的列表,並確定最後一次推薦掃瞄的日期和狀態。這些資訊連同電腦防護主機名稱將以逗號分隔值 (CSV) 格式返回,可作為試算表打開。
# Include minimal information in the returned Computer objects expand = api.Expand(api.Expand.none) # Get the list of computers and iterate over it computers_api = api.ComputersApi(api.ApiClient(configuration)) computers = computers_api.list_computers(api_version, expand=expand.list(), overrides=False) computer_ips_assignments_recommendations_api = ( api.ComputerIntrusionPreventionRuleAssignmentsRecommendationsApi(api.ApiClient(configuration))) for computer in computers.computers: # Get the recommendation scan information intrusion_prevention_assignments = ( computer_ips_assignments_recommendations_api.list_intrusion_prevention_rule_ids_on_computer( computer.id, api_version, overrides=False)) reco_scan_info = list() # Computer name reco_scan_info.append(computer.host_name) # Scan date if intrusion_prevention_assignments.last_recommendation_scan_date is not None: d = datetime.datetime.utcfromtimestamp(intrusion_prevention_assignments.last_recommendation_scan_date/1000) reco_scan_info.append(d.strftime('%Y-%m-%d %H:%M:%S')) else: reco_scan_info.append("No scan on record") # Scan status reco_scan_info.append(intrusion_prevention_assignments.recommendation_scan_status) # Add to the CSV string csv += format_for_csv(reco_scan_info) return csv
套用建議
該 API 提供對電腦完整性監控、入侵防護和日誌檢查模組的推薦掃瞄結果的訪問。使用
ComputerIntrusionPreventionAssignmentsRecommendationsApi
物件來獲取電腦的 IntrusionPreventionAssignments
物件。IntrusionPreventionAssignments
物件包含並提供對該電腦推薦的訪問:- 建議指派和未指派的入侵防護規則
- 掃瞄狀態
- 上次掃瞄發生時間
在您獲取規則建議後,您可以將它們應用到電腦防護政策,如將入侵防護規則新增到電腦防護政策範例所示。
秘訣當未在電腦防護上執行推薦掃瞄時,
ComputerIntrusionPreventionAssignmentsRecommendationsApi 將對規則 ID 和最後一次掃瞄發生返回 null 。 |
為完整性監控和日誌檢查模組提供了類似的類別:
ComputerIntegrityMonitoringAssignmentsRecommendationsApi
和IntegrityMonitoringAssignments
ComputerLogInspectionAssignmentsRecommendationsApi
和LogInspectionAssignments
以下範例獲取電腦防護的入侵防護建議。
ip_recommendations_api = api.ComputerIntrusionPreventionRuleAssignmentsRecommendationsApi(api.ApiClient(configuration)) ip_assignments = None ip_assignments = ip_recommendations_api.list_intrusion_prevention_rule_ids_on_computer(computer_id, api_version, overrides=False) return ip_assignments.recommended_to_assign_rule_ids
另請參閱 API 參考中的 列出入侵防護規則 ID 操作。 有關 API 認證的資訊,請參閱 使用 Server & Workload Security保護 認證。