TIPCommon.base

TIPCommon.base.action.action_parser.parse_case_attachment

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

Analyse une pièce jointe JSON et renvoie un objet CaseAttachment.

Paramètres

Paramètres
attachment Objet JSON de réponse représentant la pièce jointe.

Renvoie

Objet CaseAttachment analysé.

Type renvoyé

CaseAttachment

TIPCommon.base.action.action_parser.parse_case_comment

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

Analyse un commentaire JSON et renvoie un objet CaseComment.

Paramètres

Paramètres
comment Objet JSON de réponse représentant le commentaire.

Renvoie

Objet CaseComment analysé.

Type renvoyé

CaseComment

class TIPCommon.base.action.base_action.Action

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

Bases : ABC, Generic[ApiClient]

Implémentation d'infrastructure générique unifiée pour le développement d'actions Google SecOps.

La classe de base Action fournit des méthodes abstraites de modèle à remplacer dans les classes d'action héritées, des propriétés génériques et des flux généraux en tant que méthodes exécutées lors de l'appel de la méthode d'exécution de l'action.

Paramètres

Paramètres
name str

Nom du script de l'action.

Attributs

Attributs
_soar_action Objet SDK SiemplifyAction.

Type : SiemplifyAction

_api_client Client API de l'intégration.

Type : Apiable

_name Nom du script utilisant cette action.

Type : str

_action_start_time Heure de début de l'action.

Type : int

_logger Objet de journalisation utilisé pour la journalisation des actions.

Type : SiemplifyLogger

_params Conteneur de paramètres pour cette action.

Type : Container

global_context Dictionnaire permettant de stocker le contexte, si nécessaire.

Type : dict

_entity_types Types d'entités acceptés par l'action.

Type : list[EntityTypesEnum]

_entities_to_update Entités à mettre à jour lorsque l'action se termine.

Type : list[Entity]

json_results Résultats JSON de l'action.

Type : JSON

_attachments Pièces jointes à ajouter au résultat de la demande.

Type : list[Attachment]

_contents Contenu des résultats de la demande à ajouter.

Type : list[Content]

_data_tables Tables de données des résultats des cas à ajouter.

Type : list[DataTable]

_html_reports Rapports HTML sur les résultats des tests à ajouter.

Type : list[HTMLReport]

Liens vers les résultats de la demande à ajouter.

Type : list[Link]

_entity_insights Insights sur l'entité de demande à ajouter.

Type : list[EntityInsight]

_case_insights Insights sur les demandes à ajouter.

Type : list[CaseInsight]

_execution_state État d'exécution final de l'action.

Type : ExecutionState

_result_value Valeur du résultat final de l'action.

Type : bool

_output_message Message de résultat de l'action en cas de réussite.

Type : str

_error_output_message Message de sortie de l'action en cas d'échec.

Type : str

Méthodes

- run() Exécute l'action.
- _get_adjusted_json_results() Ajuste le résultat JSON à une structure particulière.

Méthodes abstraites

Méthodes abstraites
_validate_params() Valide les paramètres de cette action.
_init_managers() Initialise et renvoie un objet gestionnaire.
_perform_action() Exécute la logique principale de l'action.

Autres méthodes

Il s'agit de méthodes appelées lors de l'exécution de l'action et qui affectent la phase de traitement des alertes, mais qui ne sont pas obligatoires à remplacer.

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

Méthodes d'encapsulation du SDK

  • _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()

Exemple

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

Renvoie un int représentant l'heure de début de l'action au format Unix.

property api_client

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

Renvoie un objet Apiable.

Pièces jointes propriété

property attachments: list[Attachment]

Par défaut, toutes les pièces jointes de la liste sont envoyées au résultat de la demande.

Renvoie une liste d'objets Attachment représentant les insights pour cette demande.

property case_insights

property case_insights: list[CaseInsight]

Par défaut, tous les insights sur les cas de la liste sont envoyés au résultat du cas.

Renvoie une liste d'objets CaseInsight représentant les insights pour cette demande.

Contenu de la propriété

property contents: list[Content]

Par défaut, tout le contenu de la liste est envoyé au résultat de la demande.

Renvoie une liste d'objets Content représentant les insights pour cette demande.

property data_tables

property data_tables: list[DataTable]

Par défaut, tous les tableaux de données de la liste sont envoyés au résultat de la fiche.

Renvoie une liste d'objets DataTable représentant les insights pour cette demande.

property entities_to_update

property entities_to_update: list[DomainEntityInfo]

Toutes les entités de la liste sont envoyées à la plate-forme pour être mises à jour.

Renvoie une liste d'objets Entity représentant les entités à mettre à jour dans la demande.

property entity_insights

property entity_insights: list[EntityInsight]

Par défaut, tous les insights sur les entités de la liste sont envoyés au résultat de la demande.

Renvoie une liste d'objets EntityInsight représentant les insights pour cette demande.

Types d'entités property

property entity_types: list[EntityTypesEnum]

Si l'action fonctionne avec des entités, elle ne traite que celles dont le type figure dans la liste entity_types. Sinon, l'action ignore l'entité.

Renvoie une liste d'objets EntityTypesEnum représentant les types d'entités que l'action peut traiter.

property error_output_message

property error_output_message: str

Message de sortie de l'action en cas d'échec de l'exécution.

Message de sortie qui doit s'afficher en cas d'échec lors de l'exécution de l'action. La valeur par défaut est ActionSCRIPT_NAMEfailed.

property execution_state

property execution_state: ExecutionState

État d'exécution de l'action : indicateur d'état représenté par un nombre entier à renvoyer à la plate-forme.

Voici les états possibles :

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

Renvoie l'objet ExecutionState représentant l'état d'exécution actuel.

property html_reports

property html_reports: list[HTMLReport]

Par défaut, tous les rapports HTML de la liste sont envoyés au résultat du cas.

Renvoie une liste d'objets HTMLReport représentant les insights pour cette demande.

property is_first_run

property is_first_run: bool

Indique s'il s'agit de la première exécution.

Renvoie :

True s'il s'agit de la première exécution, False dans le cas contraire.

property json_results

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

Renvoie le résultat JSON de l'action à envoyer à la section "Dossier".

property links: list[Link]

Par défaut, tous les liens de la liste sont envoyés dans le résultat de la demande.

Renvoie une liste d'objets Link représentant les insights pour cette demande.

Journaliseur property

property logger: NewLineLogger

Renvoie l'objet NewLineLogger pour les actions.

Nom de la propriété

property name: str

property output_message

property output_message: str

Message de sortie de l'action en cas d'exécution réussie.

Message de sortie qui résume le résultat de l'action.

Paramètres property

property params: [Container]

Renvoie un objet Container qui décrit les paramètres de l'action, chaque paramètre étant exposé en tant qu'attribut snake_case.

property result_value

property result_value: bool

Valeur du résultat de l'action à renvoyer à la plate-forme.

Valeurs possibles :

  • True : l'action a réussi
  • False : Échec de l'action

property soar_action

property soar_action: SiemplifyAction

Renvoie l'objet SiemplifyAction du SDK.

class TIPCommon.base.action.base_enrich_action.EnrichAction

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

Bases : Action

Classe représentant une action d'enrichissement d'entité.

Cette classe hérite de la classe TIPCommon.base.actions.base_action::Action.

Paramètres

Paramètres
name str

Nom de l'action.

Attributs

Attributs
enrichment_data

Cet attribut contient les données d'enrichissement pour l'entité actuelle dans chacune des itérations d'entité. À la fin de chaque itération, l'attribut additional_properties de l'entité est mis à jour avec self.enrichment_data, ce qui signifie que cette valeur est définie à chaque fois avec la nouvelle valeur.

Type : dict

entity_results Résultats d'entité inclus dans la sortie JSON pour cet objet.

Type : Tout

global_context

Dictionnaire permettant de stocker le contexte si nécessaire.

Type : dict

Méthodes abstraites

Méthodes abstraites
_get_entity_types() Obtient le type d'entités sur lesquelles l'action s'exécute.
_perform_enrich_action() Exécutez la logique d'enrichissement principale sur une entité.

Méthodes privées

Méthodes privées
_perform_action()

Cette méthode combine les autres méthodes abstraites avec une logique d'enrichissement OOTB plus importante et la transmet à la classe parente pour l'utiliser dans la méthode 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)

Bases : Enum

Constantes

  • 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)

Bases : objet

Pièce jointe de résultat de script d'action.

Cette classe est immuable : une fois créée, ses attributs ne peuvent pas être modifiés. Il est compatible avec le hachage (par exemple, l'utilisation dans des ensembles ou en tant que clés de dictionnaire) et la comparaison d'égalité à l'aide de l'opérateur ==.

Attributs

Attributs
title Titre de la pièce jointe.

Type : str | None

filename Nom du fichier de la pièce jointe.

Type : str

file_contents Contenu du fichier joint.

Type : bytes

additional_data Données supplémentaires.

Type : 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)

Bases : objet

Pièce jointe d'une demande.

Cette classe est immuable. Une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
attachment_id int

ID de la pièce jointe.

attachment_type str

Type de pièce jointe.

description str

Description de la pièce jointe.

is_favorite bool

Indique si la pièce jointe est marquée comme favorite.

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)

Bases : objet

Commentaire sur une demande.

Cette classe est immuable. Une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
comment str

Le commentaire.

comment_for_client str | None

Commentaire destiné au client.

modification_time_unix_time_in_ms_for_client int

Date et heure de modification de comment_for_client.

last_editor str

ID du dernier éditeur, tel que 77bdb7a4-8484-481d-9482-2449e33f9518.

last_editor_full_name str

Nom complet du dernier utilisateur ayant effectué une modification, par exemple admin admin.

is_deleted bool

Indique si le commentaire a déjà été supprimé.

creator_user_id str

ID utilisateur du créateur, tel que 77bdb7a4-8484-481d-9482-2449e33f9518.

creator_full_name str

Nom complet du créateur, tel que Système.

comment_id int

ID du commentaire.

comment_type int

Type du commentaire.

case_id int

ID de la demande.

is_favorite bool

Indique si le commentaire est marqué comme favori.

modification_time_unix_time_in_ms int

Date et heure de la dernière modification du commentaire au format Unix, par exemple 1686040471269.

creation_time_unix_time_in_ms int

Heure de création du commentaire au format Unix, par exemple 1686040471269.

alert_identifier str

Identifiant de l'alerte, tel que 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)

Bases : objet

Informations sur une demande.

Cette classe est immuable : une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
title str

Titre de l'insight.

triggered_by str

Nom de l'intégration.

content str

Message d'insight.

severity InsightSeverity

Gravité de l'insight. Les valeurs possibles sont les suivantes :

  • info
  • warning
  • error
insight_type InsightType

Type d'insight. Les valeurs possibles sont les suivantes :

  • general
  • entity
entity_identifier str | None

Identifiant de l'entité.

additional_data Any | None

Données supplémentaires.

additional_data_type Any | None

Type de données supplémentaires.

additional_data_title str | None

Titre des données supplémentaires.

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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

### Constantes

  • 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')

Bases : objet

Contenu du résultat du script d'une action.

Cette classe est immuable : une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
title str | None

Titre du contenu.

content str

Contenu à ajouter aux résultats du script.

class TIPCommon.base.action.data_models.DataTable

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

Bases : objet

Table de données des résultats du script d'action.

Cette classe est immuable. Une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
title str | None

Titre du tableau.

data_table list[str]

Liste des lignes CSV qui constituent le tableau.

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)

Bases : objet

Insight sur une entité.

Cette classe est immuable : une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
entity Entity

Objet d'entité.

message str

Message de l'insight.

triggered_by str | None

Nom de l'intégration.

original_requesting_user str | None

Utilisateur d'origine.

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)

Bases : Enum

Constantes

  • 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)

Bases : Enum

Constantes

  • 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])

Bases : objet

Objet de paramètre de script général.

Attributs

Attributs
full_dict dict[str, Any]

Dictionnaire d'origine reçu de l'API.

id int | None

ID du paramètre.

integration_identifier str

Identifiant de l'intégration, tel que VirusTotalV3.

creation_time int

Heure de création du paramètre.

modification_time int

Heure à laquelle le paramètre a été modifié pour la dernière fois.

is_mandatory bool

Indiquez si le paramètre est obligatoire ou non.

description str | None

Description du paramètre.

name str

Nom du paramètre.

display_name str

Nom à afficher du paramètre.

value Any

Valeur par défaut du paramètre.

type IntegrationParamType

Type du paramètre.

optional_values list

DDL de valeurs facultatives pour le type LDD.

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')

Bases : objet

Lien vers le résultat du script d'action.

Cette classe est immuable : une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
title str | None

Titre du lien.

report_name str

Nom du rapport.

report_contents str

Contenu HTML du rapport.

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)

Bases : Enum

Constantes

  • 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')

Bases : objet

Lien vers le résultat du script d'action.

Cette classe est immuable : une fois les valeurs attribuées et l'objet créé, de nouvelles valeurs ne peuvent pas être attribuées aux attributs. La classe est compatible avec le hachage (stocké dans un ensemble ou en tant que clé de dictionnaire) et l'opérateur ==.

Attributs

Attributs
title str | None

Titre du lien.

link str

Le lien.

class TIPCommon.base.action.data_models.ScriptParameter

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

Bases : objet

Objet de paramètre de script général.

Attributs

Attributs
full_dict dict[str, Any]

Dictionnaire d'origine reçu de l'API.

id int | None

ID du paramètre.

creation_time int

Heure à laquelle le paramètre a été créé.

modification_time int

Heure de la dernière modification du paramètre.

custom_action_id int | None

ID de l'action.

is_mandatory bool

Indique si le paramètre est obligatoire ou non.

default_value Any

Valeur par défaut du paramètre.

Ce paramètre est prioritaire sur le paramètre value dans les playbooks.

description str | None

Description du paramètre.

name str | None

Nom du paramètre.

value Any

Valeur du paramètre.

Cette valeur est prioritaire sur le paramètre default_value dans les actions manuelles.

type ActionParamType

Type du paramètre.

optional_values list

LDD des valeurs facultatives pour le LDD de type.

class TIPCommon.base.interfaces.apiable.Apiable

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

Bases : ABC, Generic[ApiParams]

Interface pour les classes qui gèrent les appels d'API vers des services externes.

class TIPCommon.base.interfaces.authable.Authable

class TIPCommon.base.interfaces.authable.Authable

Bases : ABC, Generic[AuthParams]

Interface pour les classes qui gèrent l'authentification avec des services externes.

Méthodes abstraites

Méthodes abstraites
authenticat_session(params: Authparams) → None Authentifiez l'attribut self.session de la classe à l'aide de params.

Cette méthode vous authentifie auprès du service avec lequel la session interagit, après la création d'un objet à l'aide de cette session.

Attributs

Attributs
params object, dataclass, TypedDict, namedtuple ou tout autre élément contenant tous les paramètres d'authentification.

Paramètres d'authentification.

class TIPCommon.base.interfaces.logger.Logger

class TIPCommon.base.interfaces.logger.Logger

Bases : ABC

Interface de journalisation conçue pour les scripts Marketplace, qui vérifie la compatibilité lorsque le journaliseur transmis est remplacé ou simulé.

Méthodes abstraites

Méthodes abstraites
debug(msg: str, *args, **kwargs) → None Consigne un message de débogage.
error(error_msg: str, *args, **kwargs) → None Enregistre un message d'erreur.
exception(ex: Exception, *args, **kwargs) → None Enregistre un message d'exception.
info(msg: str, *args, **kwargs) → None Enregistre un message d'information.
warn(warning_msg: str, *args, **kwargs) → None Consigne un message d'avertissement.

class TIPCommon.base.interfaces.session.Session

class TIPCommon.base.interfaces.session.Session

Bases : ABC, Generic[_R]

Cette classe gère les sessions d'API à l'aide d'un objet de session. Il est compatible avec différents types de sessions et de simulations avec des bibliothèques telles que requests ou httpx.

Attributs

Attributs
headers dict
verify bool

Méthodes abstraites

Méthodes abstraites
delete(url: str, *args, **kwargs)→ _R Supprime une ressource du serveur.
get(url: str, *args, **kwargs)→ _R Récupère une ressource à partir du serveur.
patch(url: str, *args, **kwargs) → _R Applique un correctif à une ressource sur le serveur.
post(url: str, *args, **kwargs) → _R Publie une ressource sur le serveur.
put(url: str, *args, **kwargs) → _R Place (met à jour ou crée) une ressource sur le serveur.
request(method: str, *args, **kwargs) → _R Envoie une requête au serveur.

class TIPCommon.base.job.base_job.Job

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

Bases : ABC, Generic[ApiClient]

Classe représentant un script de job dans Google Security Operations SOAR.

Méthodes

  • start(**kwargs) → None

property api_client

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

Fournit le ou les clients API pour interagir avec les services externes.

property error_msg

property error_msg: str

Stocke tout message d'erreur rencontré lors de l'exécution du job.

property job_start_time

property job_start_time: int

Représente le code temporel du début du job.

Journaliseur property

property logger: ScriptLogger

Fournit une fonctionnalité de journalisation pour le script du job.

Nom de la propriété

property name: str

Contient le nom du script de job.

Paramètres property

property params: Container

Contient les paramètres de configuration fournis à la tâche.

property soar_job

property soar_job: SiemplifyJob

Représente l'instance de job Google Security Operations SOAR sous-jacente.

class TIPCommon.base.job.base_job_refresh_token.RefreshTokenRenewalJob

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

Bases : Job, Generic[ApiClient]

Cette section décrit les méthodes de cycle de vie qui influencent le traitement des jobs. Les sous-classes ne sont pas tenues de les remplacer.

property api_client

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

Contient le ou les clients d'API utilisés pour les interactions avec les services externes.

class TIPCommon.base.job.base_job_refresh_token.SuccessFailureTuple

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

Bases : tuple

Attributs

Attributs
success_list Alias pour le champ numéro 0.
failure_list Alias pour le champ numéro 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]

Valide et analyse une valeur de paramètre séparée par une virgule pour la convertir en liste d'éléments uniques. Cette fonction gère les valeurs uniques, les chaînes entre guillemets et les formats mixtes.

Paramètres

Paramètres
param_name Clé du paramètre.
param_csv_value Valeur du paramètre fournie dans le paramètre job. Si la valeur est None, une liste vide est renvoyée.

Génère

ValueError : le nombre de guillemets n'est pas valide, certaines valeurs ne sont pas valides ou certaines valeurs comportent des guillemets non concordants.

Renvoie

Liste des valeurs uniques fournies dans le paramètre du job. Si aucune valeur valide n'est trouvée, une liste vide est renvoyée.

Type renvoyé

list[str]

class TIPCommon.base.job.data_models.JobParameter

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

Bases : objet

Objet de paramètre de script général.

Attributs

Attributs
full_dict dict[str, Any]

Dictionnaire d'origine reçu de l'API.

id int | None

ID du paramètre.

is_mandatory bool

Indiquez si le paramètre est obligatoire ou non.

Remarque : Cet attribut est prioritaire par rapport à value dans les playbooks.

name str | None

Nom du paramètre.

type ActionParamType

Type du paramètre.

value Any

Valeur par défaut du paramètre.

Remarque : Cet attribut est prioritaire par rapport à default_value dans les actions manuelles.

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)

Bases : objet

Représente la sortie JSON structurée pour une action.

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' = '')

Bases : objet

Représente la structure de sortie complète d'une action.

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>)

Bases : objet

Représente la sortie JSON structurée d'un connecteur.

class TIPCommon.base.data_models.ConnectorOutput

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

Bases : objet

Représente la structure de sortie complète d'un connecteur.

TIPCommon.base.data_models.alert_info_from_json

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

Crée un objet AlertInfo à partir d'un JSON d'attributs.

Renvoie

Objet AlertInfo créé.

Type renvoyé

AlertInfo

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.