TIPCommon.base

TIPCommon.base.action.action_parser.parse_case_attachment

TIPCommon.base.action.action_parser.parse_case_attachment(attachment: MutableMapping[str, Any]) → CaseAttachment

מנתח קובץ JSON מצורף ומחזיר אובייקט CaseAttachment.

פרמטרים

פרמטרים
attachment אובייקט JSON של תגובה שמייצג את הקובץ המצורף.

מחזירה

אובייקט CaseAttachment שנותח.

סוג הערך שמוחזר

CaseAttachment

TIPCommon.base.action.action_parser.parse_case_comment

TIPCommon.base.action.action_parser.parse_case_comment(comment: MutableMapping[str, Any]) → CaseComment

מנתח תגובה ב-JSON ומחזיר אובייקט CaseComment.

פרמטרים

פרמטרים
comment אובייקט JSON של תגובה שמייצג את התגובה.

מחזירה

אובייקט CaseComment שנותח.

סוג הערך שמוחזר

CaseComment

class TIPCommon.base.action.base_action.Action

class TIPCommon.base.action.base_action.Action(name: str)

בסיסים: ABC, ‏ Generic[ApiClient]

יישום מאוחד של תשתית כללית לפיתוח פעולות ב-Google SecOps.

מחלקת הבסיס Action מספקת שיטות מופשטות של תבניות שאפשר לשנות במחלקות הפעולה שעוברות בירושה, מאפיינים גנריים וזרימות כלליות כשיטות שמופעלות כשקוראים לשיטת ההפעלה של הפעולה.

פרמטרים

פרמטרים
name str

שם הסקריפט של הפעולה.

מאפיינים

מאפיינים
_soar_action אובייקט SiemplifyAction SDK.

סוג: SiemplifyAction

_api_client לקוח ה-API של השילוב.

סוג: Apiable

_name שם הסקריפט שמשתמש בפעולה הזו.

סוג: str

_action_start_time שעת ההתחלה של הפעולה.

סוג: int

_logger אובייקט היומן שמשמש לרישום פעולות.

סוג: SiemplifyLogger

_params מאגר הפרמטרים של הפעולה הזו.

סוג: Container

global_context מילון לאחסון ההקשר, אם צריך.

סוג: dict

_entity_types סוגי הישויות שנתמכים על ידי הפעולה.

סוג: list[EntityTypesEnum]

_entities_to_update הישויות לעדכון כשהפעולה מסתיימת.

סוג: list[Entity]

json_results תוצאות ה-JSON של הפעולה.

סוג: JSON

_attachments הקבצים המצורפים לתוצאת הפנייה שרוצים להוסיף.

סוג: list[Attachment]

_contents תוכן התוצאה של הכלי להוספה.

סוג: list[Content]

_data_tables טבלאות הנתונים של תוצאות המקרים שרוצים להוסיף.

סוג: list[DataTable]

_html_reports דוחות ה-HTML של תוצאות הפנייה שרוצים להוסיף.

סוג: list[HTMLReport]

הקישורים לתוצאות של בקשת התמיכה שרוצים להוסיף.

סוג: list[Link]

_entity_insights התובנות לגבי ישות הפנייה שרוצים להוסיף.

סוג: list[EntityInsight]

_case_insights התובנות לגבי הפנייה שרוצים להוסיף.

סוג: list[CaseInsight]

_execution_state מצב הביצוע הסופי של הפעולה.

סוג: ExecutionState

_result_value ערך התוצאה הסופית של הפעולה.

סוג: bool

_output_message הודעת הפלט של הפעולה כשהיא מצליחה.

סוג: str

_error_output_message הודעת הפלט של הפעולה אם היא נכשלת.

סוג: str

Methods

- run() מריצים את ביצוע הפעולה.
- _get_adjusted_json_results() התאמת תוצאת ה-JSON למבנה מסוים.

שיטות מופשטות

שיטות מופשטות
_validate_params() מאמת את הפרמטרים של הפעולה הזו.
_init_managers() יוצר אובייקט של מנהל ומחזיר אותו.
_perform_action() מבצע את הלוגיקה העיקרית של הפעולה.

שיטות נוספות

אלה שיטות שמופעלות במהלך ביצוע הפעולה ומשפיעות על שלב העיבוד של ההתראות, אבל לא חובה לבטל את ההגדרה שלהן.

  • _get_entity_types()
  • _finalize_action_on_success()
  • _finalize_action_on_failure()
  • _on_entity_failure()
  • _handle_timeout()
  • _extract_action_parameters()
  • _finalize()

שיטות SDK wrapper

  • _add_attachment_to_current_case()
  • _get_current_case_attachments()
  • _add_comment_to_case()
  • _get_current_case_comments()
  • _assign_case_to_user()
  • _add_tag_to_case()
  • _attach_playbook_to_current_alert()
  • _get_similar_cases_to_current_case()
  • _get_alerts_ticket_ids_from_cases_closed_since_timestamp()
  • _change_current_case_stage()
  • _change_current_case_priority()
  • _close_current_case()
  • _close_alert()
  • _escalate_case()
  • _mark_case_as_important()
  • _raise_incident()
  • _add_entity_to_case()
  • _update_alerts_additional_data()
  • _get_current_integration_configuration()
  • _any_alert_entities_in_custom_list()
  • _add_alert_entities_to_custom_list()
  • _remove_alert_entities_from_custom_list()

דוגמה

from TIPCommon.base.actions.action_base import Action
from TIPCommon.validation import ParameterValidator

SOME_ACTION_SCRIPT_NAME = 'Some Integration - Some Action'

class SomeAction(Action):

    def _validate_params(self) -> None:
        validator = ParameterValidator(self.soar_action)
        ...  # validation logic

    def _perform_action(self, entity: Entity) -> None:
        try:
            self.logger.info('Querying Api client')
            data = self.api_client.do_something(
                param=self.params.query,
                entity=entity.original_identifier
            )

            ...  # Some logic to process the data

        except SomeCustomException as err:
            self.error_output_message = (
                "Action wasn't able to successfully do its thing."

            )
            raise err from err


def main() -> None:
    SomeAction(SEARCH_GRAPHS_SCRIPT_NAME).run()


if __name__ == '__main__':
    main()

property action_start_time

property action_start_time: int

הפונקציה מחזירה int שמייצג את זמן ההתחלה של הפעולה ב-Unix.

property api_client

propertyapi_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None

מחזירה אובייקט Apiable.

קבצים מצורפים של נכס

property attachments: list[Attachment]

כברירת מחדל, כל הקבצים המצורפים ברשימה נשלחים לתוצאת הבקשה.

מחזירה רשימה של אובייקטים מסוג Attachment שמייצגים את התובנות לגבי המקרה הזה.

property case_insights

property case_insights: list[CaseInsight]

כל התובנות לגבי בקשת התמיכה שמופיעות ברשימה נשלחות כברירת מחדל לתוצאות בקשת התמיכה.

מחזירה רשימה של אובייקטים מסוג CaseInsight שמייצגים את התובנות לגבי המקרה הזה.

תוכן העניינים של נכס

property contents: list[Content]

כברירת מחדל, כל התוכן ברשימה נשלח לתוצאת התיק.

מחזירה רשימה של אובייקטים מסוג Content שמייצגים את התובנות לגבי הפנייה הזו.

property data_tables

property data_tables: list[DataTable]

כברירת מחדל, כל טבלאות הנתונים ברשימה נשלחות לתוצאת הכרטיסייה.

הפונקציה מחזירה רשימה של אובייקטים מסוג DataTable שמייצגים את התובנות לגבי המקרה הזה.

property entities_to_update

property entities_to_update: list[DomainEntityInfo]

כל הישויות ברשימה נשלחות לפלטפורמה לצורך עדכון.

מחזירה רשימה של אובייקטים מסוג Entity שמייצגים את הישויות שצריך לעדכן בבקשת התמיכה.

property entity_insights

property entity_insights: list[EntityInsight]

כברירת מחדל, כל התובנות לגבי הישויות ברשימה נשלחות לתוצאת בקשת התמיכה.

מחזירה רשימה של אובייקטים מסוג EntityInsight שמייצגים את התובנות לגבי המקרה הזה.

property entity_types

property entity_types: list[EntityTypesEnum]

אם הפעולה פועלת עם ישויות, היא מעבדת רק ישויות שהסוג שלהן מופיע ברשימה entity_types. אחרת, הפעולה מדלגת על הישות.

מחזירה רשימה של אובייקטים מסוג EntityTypesEnum שמייצגים סוגי ישויות שהפעולה יכולה לעבד.

property error_output_message

property error_output_message: str

הודעת הפלט של הפעולה במקרה של הפעלה שנכשלה.

הודעת פלט שצריכה להופיע במקרה של כשל במהלך זמן הריצה של הפעולה. ערך ברירת המחדל הוא ActionSCRIPT_NAMEfailed.

property execution_state

property execution_state: ExecutionState

מצב הביצוע של הפעולה – אינדיקטור של סטטוס שמיוצג על ידי מספר שלם שמוחזר לפלטפורמה.

אלו הסטטוסים האפשריים:

  • ExecutionState.COMPLETED = 0
  • ExecutionState.IN_PROGRESS = 1
  • ExecutionState.FAILED = 2
  • ExecutionState.TIMED_OUT = 3

מחזירה את האובייקט ExecutionState שמייצג את מצב ההפעלה הנוכחי.

property html_reports

property html_reports: list[HTMLReport]

כל דוחות ה-HTML שברשימה יישלחו כברירת מחדל לתוצאות בקשת התמיכה.

מחזירה רשימה של אובייקטים מסוג HTMLReport שמייצגים את התובנות לגבי המקרה הזה.

property is_first_run

property is_first_run: bool

מציין אם זו ההפעלה הראשונה.

החזרות:

True אם זו ההפעלה הראשונה, False אחרת.

property json_results

property json_results: Dict[str, Any] | List[Dict[str, Any]]

הפונקציה מחזירה את תוצאת ה-JSON של הפעולה כדי לשלוח אותה לקיר של הפנייה.

property links: list[Link]

כל הקישורים ברשימה יישלחו לתוצאת הבדיקה כברירת מחדל.

מחזירה רשימה של אובייקטים מסוג Link שמייצגים את התובנות לגבי המקרה הזה.

יומן רישום property

property logger: NewLineLogger

מחזירה את האובייקט NewLineLogger של פעולות.

שם הנכס

property name: str

הודעת הפלט של הנכס

property output_message: str

הודעת הפלט של הפעולה במקרה של הפעלה מוצלחת.

הודעת הפלט שמסכמת את תוצאת הפעולה.

פרמטרים של נכס

property params: [Container]

מחזירה אובייקט Container שמתאר את הפרמטרים של הפעולה, כאשר כל פרמטר מוצג כמאפיין בפורמט snake_case.

property result_value

property result_value: bool

ערך התוצאה של הפעולה שיועבר חזרה לפלטפורמה.

ערכים אפשריים:

  • True: הפעולה הושלמה בהצלחה
  • False: הפעולה נכשלה

property soar_action

property soar_action: SiemplifyAction

מחזירה את אובייקט ה-SDK‏ SiemplifyAction.

class TIPCommon.base.action.base_enrich_action.EnrichAction

class TIPCommon.base.action.base_enrich_action.EnrichAction(name: str)

בסיסים: פעולה

מחלקה שמייצגת פעולה של העשרת ישות.

הכיתה הזו עוברת בירושה מהכיתה TIPCommon.base.actions.base_action::Action.

פרמטרים

פרמטרים
name str

שם הפעולה.

מאפיינים

מאפיינים
enrichment_data

המאפיין הזה מכיל את נתוני ההעשרה של הישות הנוכחית בכל אחת מהאיטרציות של הישות. בסוף כל איטרציה, המאפיין additional_properties של הישות מתעדכן בערך self.enrichment_data, כלומר הערך הזה מוגדר בכל פעם עם הערך החדש.

סוג: dict

entity_results תוצאות של ישויות שנכללות בפלט JSON של האובייקט הזה.

סוג: כלשהו

global_context

מילון לאחסון ההקשר, אם צריך.

סוג: dict

שיטות מופשטות

שיטות מופשטות
_get_entity_types() קבלת סוג הישויות שהפעולה מופעלת עליהן.
_perform_enrich_action() ביצוע הלוגיקה העיקרית של ההעשרה על ישות.

‫methods פרטיות

‫methods פרטיות
_perform_action()

השיטה הזו משלבת את השיטות המופשטות האחרות עם לוגיקה עשירה יותר של OOTB ומעבירה אותה למחלקת האב לשימוש בשיטה start().

class TIPCommon.base.action.data_models.ActionParamType

class TIPCommon.base.action.data_models.ActionParamType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • BOOLEAN = 1

  • CASE_PRIORITIES = 7

  • CLOSE_CASE_REASONS = 5

  • CLOSE_ROOT_CAUSE = 6

  • CODE = 20

  • CONTENT = 11

  • DDL = 15

  • EMAIL_CONTENT = 10

  • ENTITY_TYPE = 13

  • MULTI_VALUES = 14

  • NULL = -1

  • PASSWORD = 12

  • PLAYBOOK_NAME = 2

  • STAGE = 4

  • STRING = 0

  • USER = 3

class TIPCommon.base.action.data_models.Attachment

class TIPCommon.base.action.data_models.Attachment(filename: str, file_contents: bytes, title: str = 'Script Result Attachment', additional_data: dict | None = None)

בסיסים: object

קובץ מצורף של תוצאת סקריפט של פעולה.

הסיווג הזה הוא בלתי ניתן לשינוי: אחרי שיוצרים אותו, אי אפשר לשנות את המאפיינים שלו. הוא תומך בגיבוב (למשל, שימוש בערכות או כמפתחות מילון) ובהשוואת שוויון באמצעות האופרטור ==.

מאפיינים

מאפיינים
title שם הקובץ המצורף.

סוג: str | None

filename שם הקובץ המצורף.

סוג: str

file_contents התוכן של הקובץ המצורף.

סוג: bytes

additional_data נתונים נוספים.

סוג: dict | None

class TIPCommon.base.action.data_models.CaseAttachment

class TIPCommon.base.action.data_models.CaseAttachment(attachment_id: int, attachment_type: str, description: str, is_favorite: bool)

בסיסים: object

קובץ מצורף לבקשת תמיכה.

הסיווג הזה הוא קבוע. אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
attachment_id int

מזהה הקובץ המצורף.

attachment_type str

סוג הקובץ המצורף.

description str

תיאור הקובץ המצורף.

is_favorite bool

מציין אם הקובץ המצורף מסומן כמועדף.

class TIPCommon.base.action.data_models.CaseComment

class TIPCommon.base.action.data_models.CaseComment(comment: str, creator_user_id: str, comment_id: int, comment_type: int, case_id: int, is_favorite: bool, modification_time_unix_time_in_ms: int, creation_time_unix_time_in_ms: int, alert_identifier: str, creator_full_name: str | None = None, is_deleted: bool | None = None, last_editor: str | None = None, last_editor_full_name: str | None = None, modification_time_unix_time_in_ms_for_client: int | None = None, comment_for_client: str | None = None)

בסיסים: object

תגובה לבקשת תמיכה.

הסיווג הזה הוא בלתי ניתן לשינוי. אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
comment str

התגובה.

comment_for_client str | None

התגובה ללקוח.

modification_time_unix_time_in_ms_for_client int

זמן השינוי של comment_for_client.

last_editor str

המזהה של העורך האחרון, למשל 77bdb7a4-8484-481d-9482-2449e33f9518.

last_editor_full_name str

השם המלא של המשתמש האחרון שערך את המסמך, למשל admin admin.

is_deleted bool

מציין אם התגובה כבר נמחקה.

creator_user_id str

מזהה המשתמש של היוצר, למשל 77bdb7a4-8484-481d-9482-2449e33f9518.

creator_full_name str

השם המלא של היוצר, למשל System.

comment_id int

המזהה של התגובה.

comment_type int

סוג התגובה.

case_id int

המזהה של הפנייה.

is_favorite bool

מציין אם התגובה סומנה כמועדפת.

modification_time_unix_time_in_ms int

השעה האחרונה שבה בוצע שינוי בתגובה בפורמט Unix, למשל 1686040471269.

creation_time_unix_time_in_ms int

הזמן שבו התגובה נוצרה ביוניקס, למשל 1686040471269.

alert_identifier str

המזהה של ההתראה, למשל SUSPICIOUS PHISHING EMAIL_83765943-9437-4771-96F6-BD0FB291384E.

class TIPCommon.base.action.data_models.CaseInsight

class TIPCommon.base.action.data_models.CaseInsight(triggered_by: str, title: str, content: str, severity: InsightSeverity, insight_type: InsightType, entity_identifier: str = '', additional_data: Any | None = None, additional_data_type: Any | None = None, additional_data_title: str | None = None)

בסיסים: object

תובנה לגבי בקשת תמיכה.

המחלקות האלה הן בלתי ניתנות לשינוי: אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
title str

הכותרת של התובנה.

triggered_by str

שם השילוב.

content str

הודעת התובנה.

severity InsightSeverity

חומרת התובנה. הערכים שאפשר לבחור הם:

  • info
  • warning
  • error
insight_type InsightType

סוג התובנה. הערכים שאפשר לבחור הם:

  • general
  • entity
entity_identifier str | None

המזהה של היישות.

additional_data Any | None

נתונים נוספים.

additional_data_type Any | None

סוג הנתונים הנוספים.

additional_data_title str | None

השם של הנתונים הנוספים.

class TIPCommon.base.action.data_models.CasePriority

class TIPCommon.base.action.data_models.CasePriority(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • CRITICAL = 100

  • HIGH = 80

  • INFORMATIONAL = 0

  • LOW = 40

  • MEDIUM = 60

class TIPCommon.base.action.data_models.CaseStage

class TIPCommon.base.action.data_models.CaseStage(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • ASSESSMENT = 'Assessment'

  • IMPROVEMENT = 'Improvement'

  • INCIDENT = 'Incident'

  • INVESTIGATION = 'Investigation'

  • RESEARCH = 'Research'

  • TRIAGE = 'Triage'

class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertInconclusiveRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • NO_CLEAR_CONCLUSION = 'No clear conclusion'

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaintenanceRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • LAB_TEST = 'Lab test'

  • OTHER = 'Other'

  • RULE_UNDER_CONSTRUCTION = 'Rule under construction'

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaliciousRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertMaliciousRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • EXTERNAL_ATTACK = 'External attack'

  • INFRASTRUCTURE_ISSUE = 'Infrastructure issue'

  • IRRELEVANT_TCP_UDP_PORT = 'Irrelevant TCP/UDP port'

  • MISCONFIGURED_SYSTEM = 'Misconfigured system'

  • OTHER = 'Other'

  • SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION = 'Similar case is already under investigation'

  • SYSTEM_APPLICATION_MALFUNCTION = 'System/application malfunction'

  • SYSTEM_CLOCKED_THE_ATTACK = 'System blocked the attack'

  • UNFORESEEN_EFFECTS_OF_CHANGE = 'Unforeseen effects of change'

  • UNKNOWN = 'Unknown'

class TIPCommon.base.action.data_models.CloseCaseOrAlertNotMaliciousRootCauses

class TIPCommon.base.action.data_models.CloseCaseOrAlertNotMaliciousRootCauses(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • EMPLOYEE_ERROR = 'Employee error'

  • HUMAN_ERROR = 'Human error'

  • LAB_TEST = 'Lab test'

  • LEGIT_ACTION = 'Legit action'

  • MISCONFIGURED_SYSTEM = 'Misconfigured system'

  • NONE = 'None'

  • NORMAL_BEHAVIOR = 'Normal behavior'

  • OTHER = 'Other'

  • PENETRATION_TEST = 'Penetration test'

  • RULE_UNDER_CONSTRUCTION = 'Rule under construction'

  • SIMILAR_CASE_IS_ALREADY_UNDER_INVESTIGATION = 'Similar case is already under investigation'

  • UNKNOWN = 'Unknown'

  • USER_MISTAKE = 'User mistake'

class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons

class TIPCommon.base.action.data_models.CloseCaseOrAlertReasons(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

### Constants

  • INCONCLUSIVE = 3

  • MAINTENANCE = 2

  • MALICIOUS = 0

  • NOT_MALICIOUS = 1

class TIPCommon.base.action.data_models.Content

class TIPCommon.base.action.data_models.Content(content: str, title: str = 'Script Result Content')

בסיסים: object

תוכן של תוצאת סקריפט של פעולה.

המחלקות האלה הן בלתי ניתנות לשינוי: אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
title str | None

הכותרת של התוכן.

content str

התוכן שיוסף לתוצאות הסקריפט.

class TIPCommon.base.action.data_models.DataTable

class TIPCommon.base.action.data_models.DataTable(data_table: list[str], title: str = 'Script Result Data Table')

בסיסים: object

טבלת נתונים של תוצאות סקריפט של פעולה.

הסיווג הזה הוא בלתי ניתן לשינוי. אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
title str | None

השם של הטבלה.

data_table list[str]

רשימה של שורות CSV שמרכיבות את הטבלה.

class TIPCommon.base.action.data_models.EntityInsight

class TIPCommon.base.action.data_models.EntityInsight(entity: DomainEntityInfo, message: str, triggered_by: str | None = None, original_requesting_user: str | None = None)

בסיסים: object

תובנה לגבי ישות.

המחלקות האלה הן בלתי ניתנות לשינוי: אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
entity Entity

אובייקט הישות.

message str

ההודעה של התובנה.

triggered_by str | None

השם של השילוב.

original_requesting_user str | None

המשתמש המקורי.

class TIPCommon.base.action.data_models.EntityTypesEnum

class TIPCommon.base.action.data_models.EntityTypesEnum(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • ADDRESS = 'ADDRESS'

  • ALERT = 'ALERT'

  • APPLICATION = 'APPLICATION'

  • CHILD_HASH = 'CHILDHASH'

  • CHILD_PROCESS = 'CHILDPROCESS'

  • CLUSTER = 'CLUSTER'

  • CONTAINER = 'CONTAINER'

  • CREDIT_CARD = 'CREDITCARD'

  • CVE = 'CVE'

  • CVE_ID = 'CVEID'

  • DATABASE = 'DATABASE'

  • DEPLOYMENT = 'DEPLOYMENT'

  • DESTINATION_DOMAIN = 'DESTINATIONDOMAIN'

  • DOMAIN = 'DOMAIN'

  • EMAIL_MESSAGE = 'EMAILSUBJECT'

  • EVENT = 'EVENT'

  • FILE_HASH = 'FILEHASH'

  • FILE_NAME = 'FILENAME'

  • GENERIC = 'GENERICENTITY'

  • HOST_NAME = 'HOSTNAME'

  • IP_SET = 'IPSET'

  • MAC_ADDRESS = 'MacAddress'

  • PARENT_HASH = 'PARENTHASH'

  • PARENT_PROCESS = 'PARENTPROCESS'

  • PHONE_NUMBER = 'PHONENUMBER'

  • POD = 'POD'

  • PROCESS = 'PROCESS'

  • SERVICE = 'SERVICE'

  • SOURCE_DOMAIN = 'SOURCEDOMAIN'

  • THREAT_ACTOR = 'THREATACTOR'

  • THREAT_CAMPAIGN = 'THREATCAMPAIGN'

  • THREAT_SIGNATURE = 'THREATSIGNATURE'

  • URL = 'DestinationURL'

  • USB = 'USB'

  • USER = 'USERUNIQNAME'

class TIPCommon.base.action.data_models.ExecutionState

class TIPCommon.base.action.data_models.ExecutionState(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • COMPLETED = 0

  • FAILED = 2

  • IN_PROGRESS = 1

  • TIMED_OUT = 3

class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter

class TIPCommon.base.action.data_models.FullDetailsConfigurationParameter(input_dict: dict[str, Any])

בסיסים: object

אובייקט פרמטר כללי של סקריפט.

מאפיינים

מאפיינים
full_dict dict[str, Any]

המילון המקורי שהתקבל מה-API.

id int | None

המזהה של הפרמטר.

integration_identifier str

מזהה השילוב, כמו VirusTotalV3.

creation_time int

השעה שבה הפרמטר נוצר.

modification_time int

השעה שבה הפרמטר השתנה לאחרונה.

is_mandatory bool

מגדירים אם הפרמטר הוא חובה או לא.

description str | None

תיאור הפרמטר.

name str

שם הפרמטר.

display_name str

השם המוצג של הפרמטר.

value Any

ערך ברירת המחדל של הפרמטר.

type IntegrationParamType

סוג הפרמטר.

optional_values list

DDL של ערכים אופציונליים ל-DDL של הסוג.

class TIPCommon.base.action.data_models.HTMLReport

class TIPCommon.base.action.data_models.HTMLReport(report_name: str, report_contents: str, title: str = 'Script Result HTML Report')

בסיסים: object

קישור לתוצאה של סקריפט פעולה.

המחלקות האלה הן בלתי ניתנות לשינוי: אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
title str | None

הכותרת של הקישור.

report_name str

שם הדוח.

report_contents str

תוכן ה-HTML של הדוח.

class TIPCommon.base.action.data_models.IntegrationParamType

class TIPCommon.base.action.data_models.IntegrationParamType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

בסיסים: Enum

קבועים

  • BOOLEAN = 0

  • EMAIL = 8

  • INTEGER = 1

  • IP = 4

  • NULL = -1

  • PASSWORD = 3

  • STRING = 2

class TIPCommon.base.action.data_models.Link(link: str, title: str = 'Script Result Link')

בסיסים: object

קישור לתוצאה של סקריפט פעולה.

המחלקות האלה הן בלתי ניתנות לשינוי: אחרי שמקצים ערכים ויוצרים את האובייקט, אי אפשר להקצות ערכים חדשים למאפיינים. הכיתה תומכת בגיבוב (שנשמר בקבוצה או כמפתח מילון) ובאופרטור ==.

מאפיינים

מאפיינים
title str | None

הכותרת של הקישור.

link str

הקישור.

class TIPCommon.base.action.data_models.ScriptParameter

class TIPCommon.base.action.data_models.ScriptParameter(input_dict: dict[str, Any]

בסיסים: object

אובייקט פרמטר כללי של סקריפט.

מאפיינים

מאפיינים
full_dict dict[str, Any]

המילון המקורי שהתקבל מה-API.

id int | None

המזהה של הפרמטר.

creation_time int

השעה שבה הפרמטר נוצר.

modification_time int

השעה שבה הפרמטר השתנה לאחרונה.

custom_action_id int | None

מזהה הפעולה.

is_mandatory bool

מציין אם הפרמטר הוא חובה או לא.

default_value Any

ערך ברירת המחדל של הפרמטר.

הפרמטר הזה מקבל עדיפות על פני הפרמטר value ב-Playbook.

description str | None

תיאור הפרמטר.

name str | None

שם הפרמטר.

value Any

הערך של הפרמטר.

הערך הזה מקבל עדיפות על פני הפרמטר default_value בפעולות ידניות.

type ActionParamType

סוג הפרמטר.

optional_values list

DDL של ערכים אופציונליים ל-DDL של הסוג.

class TIPCommon.base.interfaces.apiable.Apiable

class TIPCommon.base.interfaces.apiable.Apiable(authenticated_session: AuthenticatedSession, configuration: ApiParams)

בסיסים: ABC, ‏ Generic[ApiParams]

ממשק למחלקות שמנהלות קריאות ל-API לשירותים חיצוניים.

class TIPCommon.base.interfaces.authable.Authable

class TIPCommon.base.interfaces.authable.Authable

בסיסים: ABC, ‏ Generic[AuthParams]

ממשק למחלקות שמנהלות אימות עם שירותים חיצוניים.

שיטות מופשטות

שיטות מופשטות
authenticat_session(params: Authparams) → None מאמתים את מאפיין self.session של הכיתה באמצעות params.

בשיטה הזו מתבצע אימות מול השירות שהסשן מתקשר איתו, אחרי שנוצר אובייקט באמצעות הסשן הזה.

מאפיינים

מאפיינים
params object, dataclass, TypedDict, namedtuple או כל דבר אחר שמכיל את כל פרמטרי האימות.

פרמטרים של אימות.

class TIPCommon.base.interfaces.logger.Logger

class TIPCommon.base.interfaces.logger.Logger

בסיסים: ABC

ממשק של כלי לרישום פעולות שנועד לסקריפטים של Marketplace, שמאמת את התאימות כשמחליפים או מדמים את הכלי לרישום פעולות שהועבר.

שיטות מופשטות

שיטות מופשטות
debug(msg: str, *args, **kwargs) → None מתעד הודעת ניפוי באגים.
error(error_msg: str, *args, **kwargs) → None מתעד הודעת שגיאה.
exception(ex: Exception, *args, **kwargs) → None הודעת חריג שנרשמת ביומן.
info(msg: str, *args, **kwargs) → None מתעד הודעת מידע.
warn(warning_msg: str, *args, **kwargs) → None מתעד הודעת אזהרה.

class TIPCommon.base.interfaces.session.Session

class TIPCommon.base.interfaces.session.Session

בסיסים: ABC, ‏ Generic[_R]

המחלק הזה מנהל סשנים של API באמצעות אובייקט סשן. היא תומכת בסוגים שונים של סשנים וב-mocks עם ספריות כמו requests או httpx.

מאפיינים

מאפיינים
headers dict
verify bool

שיטות מופשטות

שיטות מופשטות
delete(url: str, *args, **kwargs)→ _R מוחק משאב מהשרת.
get(url: str, *args, **kwargs)→ _R שליפת משאב מהשרת.
patch(url: str, *args, **kwargs) → _R תיקון משאב בשרת.
post(url: str, *args, **kwargs) → _R שולח משאב לשרת.
put(url: str, *args, **kwargs) → _R הפעולה PUT מעדכנת משאב בשרת או יוצרת משאב חדש.
request(method: str, *args, **kwargs) → _R שולח בקשה לשרת.

class TIPCommon.base.job.base_job.Job

class TIPCommon.base.job.base_job.Job(name: str)

בסיסים: ABC, ‏ Generic[ApiClient]

מחלקת נתונים שמייצגת סקריפט של משימה ב-Google SecOps.

Methods

  • start(**kwargs) → None

property api_client

property api_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None

מספק את לקוח ה-API או הלקוחות של ה-API לאינטראקציה עם שירותים חיצוניים.

property error_msg

property error_msg: str

מאחסן את כל הודעות השגיאה שנתקלו בהן במהלך הביצוע של העבודה.

property job_start_time

property job_start_time: int

חותמת הזמן שבה התחילה העבודה.

יומן רישום property

property logger: ScriptLogger

מספק פונקציונליות של רישום ביומן עבור סקריפט העבודה.

שם הנכס

property name: str

מכיל את השם של סקריפט העבודה.

פרמטרים של נכס

property params: Container

מכיל את פרמטרי ההגדרה שסופקו לעבודה.

property soar_job

property soar_job: SiemplifyJob

מייצג את מופע העבודה הבסיסי של Google SecOps.

class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob

class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob(name: str, integration_identifier: str)

בסיסים: Job, ‏ Generic[ApiClient]

בקטע הזה מתוארות שיטות של מחזור חיים שמשפיעות על עיבוד המשימות. לא נדרש להגדיר מחדש את המחלקות האלה במחלקות משנה.

property api_client

property api_client: ApiClient | Collection[ApiClient] | Type[Tuple[ApiClient, ...]] | None

מחזיק את לקוח ה-API או הלקוחות שמשמשים לאינטראקציות עם שירותים חיצוניים.

class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple

class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple(success_list, failure_list)

בסיסים: tuple

מאפיינים

מאפיינים
success_list שם חלופי לשדה מספר 0.
failure_list שם חלופי לשדה מספר 1.

TIPCommon.base.job.base_job_refresh_token.validate_param_csv_to_multi_value

TIPCommon.base.job.base_job_refresh_token.validate_param_csv_to_multi_value(param_name: str, param_csv_value: str | None, delimiter: str = ',') → list[str]

הפונקציה הזו מאמתת ומנתחת ערך פרמטר שמופרד בפסיקים לרשימה של רכיבים ייחודיים. הפונקציה מטפלת בערכים בודדים, במחרוזות במירכאות ובפורמטים מעורבים.

פרמטרים

פרמטרים
param_name מפתח הפרמטר.
param_csv_value ערך הפרמטר שצוין בפרמטר job. אם None, מוחזרת רשימה ריקה.

העלאות

ValueError – אם מספר המירכאות הכפולות לא תקין, אם חלק מהערכים לא תקינים או אם יש מירכאות כפולות לא תואמות בחלק מהערכים.

מחזירה

רשימה של ערכים ייחודיים שסופקו בפרמטר של העבודה. אם לא נמצאו ערכים תקינים, הפונקציה מחזירה רשימה ריקה.

סוג הערך שמוחזר

list[str]

class TIPCommon.base.job.data_models.JobParameter

class TIPCommon.base.job.data_models.JobParameter(input_dict: MutableMapping[str, Any])

בסיסים: object

אובייקט פרמטר כללי של סקריפט.

מאפיינים

מאפיינים
full_dict dict[str, Any]

המילון המקורי שהתקבל מה-API.

id int | None

המזהה של הפרמטר.

is_mandatory bool

מגדירים אם הפרמטר הוא חובה או לא.

הערה: למאפיין הזה יש עדיפות על פני value בחוברות הפעלה.

name str | None

שם הפרמטר.

type ActionParamType

סוג הפרמטר.

value Any

ערך ברירת המחדל של הפרמטר.

הערה: למאפיין הזה יש עדיפות על פני default_value בפעולות ידניות.

class TIPCommon.base.data_models.ActionJsonOutput

class TIPCommon.base.data_models.ActionJsonOutput(title: 'str' = 'JsonResult', content: 'str' = '', type: 'str | None' = None, is_for_entity: 'bool' = False, json_result: 'JSON | None' = None)

בסיסים: object

מייצג את פלט ה-JSON המובנה של פעולה.

class TIPCommon.base.data_models.ActionOutput

class TIPCommon.base.data_models.ActionOutput(output_message: 'str', result_value: 'str | bool', execution_state: 'ExecutionState', json_output: 'ActionJsonOutput | None', debug_output: 'str' = '')

בסיסים: object

מייצג את מבנה הפלט המלא של פעולה.

class TIPCommon.base.data_models.ConnectorJsonOutput

class TIPCommon.base.data_models.ConnectorJsonOutput(alerts: 'list[AlertInfo | CaseInfo]', overflow_alerts: 'list[OverflowAlertDetails]' = <factory>, log_items: 'list' = <factory>, log_rows: 'list[str]' = <factory>, variables: 'dict' = <factory>)

בסיסים: object

ייצוג של פלט JSON מובנה למחבר.

class TIPCommon.base.data_models.ConnectorOutput

class TIPCommon.base.data_models.ConnectorOutput(json_output: 'ConnectorJsonOutput | None', debug_output: 'str' = '')

בסיסים: object

מייצג את מבנה הפלט המלא של מחבר.

TIPCommon.base.data_models.alert_info_from_json

TIPCommon.base.data_models.alert_info_from_json(json_: MutableMapping[str, Any])→ AlertInfo

יוצר אובייקט AlertInfo מ-JSON של מאפיינים.

מחזירה

אובייקט AlertInfo שנוצר.

סוג הערך שמוחזר

AlertInfo

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.