google-backstory 0.a → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,694 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: backstory/entity.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'backstory/entity_risk_pb'
8
+ require 'backstory/udm_pb'
9
+ require 'google/protobuf/struct_pb'
10
+ require 'google/protobuf/timestamp_pb'
11
+ require 'google/type/interval_pb'
12
+
13
+
14
+ descriptor_data = "\n\x16\x62\x61\x63kstory/entity.proto\x12\x10google.backstory\x1a\x1b\x62\x61\x63kstory/entity_risk.proto\x1a\x13\x62\x61\x63kstory/udm.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1agoogle/type/interval.proto\"\x85\x08\n\x0e\x45ntityMetadata\x12\x19\n\x11product_entity_id\x18\x01 \x01(\t\x12\x37\n\x13\x63ollected_timestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x12\x63reation_timestamp\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x08interval\x18\t \x01(\x0b\x32\x15.google.type.Interval\x12\x13\n\x0bvendor_name\x18\x03 \x01(\t\x12\x14\n\x0cproduct_name\x18\x04 \x01(\t\x12\x0c\n\x04\x66\x65\x65\x64\x18\x0e \x01(\t\x12\x17\n\x0fproduct_version\x18\x05 \x01(\t\x12@\n\x0b\x65ntity_type\x18\x06 \x01(\x0e\x32+.google.backstory.EntityMetadata.EntityType\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t\x12\x30\n\x06threat\x18\n \x03(\x0b\x32 .google.backstory.SecurityResult\x12@\n\x0bsource_type\x18\x0b \x01(\x0e\x32+.google.backstory.EntityMetadata.SourceType\x12.\n\rsource_labels\x18\x0c \x03(\x0b\x32\x17.google.backstory.Label\x12\x32\n\x0e\x65vent_metadata\x18\r \x01(\x0b\x32\x1a.google.backstory.Metadata\x12\x36\n\x11structured_fields\x18\x0f \x01(\x0b\x32\x17.google.protobuf.StructB\x02\x18\x01\x12*\n\textracted\x18\x10 \x01(\x0b\x32\x17.google.protobuf.Struct\x12?\n\x12\x61ti_prioritization\x18\x11 \x01(\x0b\x32#.google.backstory.AtiPrioritization\"\xaf\x01\n\nEntityType\x12\x16\n\x12UNKNOWN_ENTITYTYPE\x10\x00\x12\t\n\x05\x41SSET\x10\x01\x12\t\n\x04USER\x10\x90N\x12\n\n\x05GROUP\x10\x91N\x12\x0c\n\x08RESOURCE\x10\x02\x12\x0e\n\nIP_ADDRESS\x10\x03\x12\x0e\n\nCIDR_BLOCK\x10\t\x12\x08\n\x04\x46ILE\x10\x04\x12\x0f\n\x0b\x44OMAIN_NAME\x10\x05\x12\x07\n\x03URL\x10\x06\x12\t\n\x05MUTEX\x10\x07\x12\n\n\x06METRIC\x10\x08\"f\n\nSourceType\x12\x1b\n\x17SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x45NTITY_CONTEXT\x10\x01\x12\x13\n\x0f\x44\x45RIVED_CONTEXT\x10\x02\x12\x12\n\x0eGLOBAL_CONTEXT\x10\x03\"\x9e\x04\n\x11\x41tiPrioritization\x12\x13\n\x0bgti_verdict\x18\x01 \x01(\x05\x12\x14\n\x0cgti_severity\x18\x02 \x01(\x05\x12\x18\n\x10gti_threat_score\x18\x03 \x01(\x05\x12#\n\x1bmandiant_analyst_confidence\x18\x04 \x01(\x05\x12\x33\n\x0fgti_update_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tactive_ir\x18\x06 \x01(\x08\x12?\n\x1b\x61\x63tive_ir_first_tagged_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1d\n\x15global_customer_count\x18\x08 \x01(\x03\x12\x18\n\x10global_hit_count\x18\t \x01(\x03\x12\x11\n\texclusive\x18\n \x01(\x08\x12\r\n\x05osint\x18\x0b \x01(\x08\x12\x0f\n\x07scanner\x18\x0c \x01(\x08\x12\x10\n\x08reviewed\x18\r \x01(\x08\x12H\n\x12\x61ttributed_malware\x18\x0e \x03(\x0b\x32,.google.backstory.SecurityResult.Association\x12N\n\x18\x61ttributed_threat_actors\x18\x0f \x03(\x0b\x32,.google.backstory.SecurityResult.Association\"\xb0\x02\n\x06\x45ntity\x12\x32\n\x08metadata\x18\x01 \x01(\x0b\x32 .google.backstory.EntityMetadata\x12&\n\x06\x65ntity\x18\x02 \x01(\x0b\x32\x16.google.backstory.Noun\x12-\n\trelations\x18\x04 \x03(\x0b\x32\x1a.google.backstory.Relation\x12+\n\nadditional\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x35\n\nrisk_score\x18\x05 \x01(\x0b\x32\x1c.google.backstory.EntityRiskH\x00\x88\x01\x01\x12(\n\x06metric\x18\x06 \x01(\x0b\x32\x18.google.backstory.MetricB\r\n\x0b_risk_score\"\xb0\x05\n\x08Relation\x12&\n\x06\x65ntity\x18\x01 \x01(\x0b\x32\x16.google.backstory.Noun\x12@\n\x0b\x65ntity_type\x18\x02 \x01(\x0e\x32+.google.backstory.EntityMetadata.EntityType\x12=\n\x0crelationship\x18\x03 \x01(\x0e\x32\'.google.backstory.Relation.Relationship\x12<\n\tdirection\x18\x04 \x01(\x0e\x32).google.backstory.Relation.Directionality\x12\x0b\n\x03uid\x18\x05 \x01(\x0c\x12<\n\x0c\x65ntity_label\x18\x06 \x01(\x0e\x32&.google.backstory.Relation.EntityLabel\"\x84\x01\n\x0cRelationship\x12\x1c\n\x18RELATIONSHIP_UNSPECIFIED\x10\x00\x12\x08\n\x04OWNS\x10\x01\x12\x0f\n\x0b\x41\x44MINISTERS\x10\x02\x12\n\n\x06MEMBER\x10\x03\x12\x0c\n\x08\x45XECUTES\x10\x04\x12\x13\n\x0f\x44OWNLOADED_FROM\x10\x05\x12\x0c\n\x08\x43ONTACTS\x10\x06\"W\n\x0e\x44irectionality\x12\x1e\n\x1a\x44IRECTIONALITY_UNSPECIFIED\x10\x00\x12\x11\n\rBIDIRECTIONAL\x10\x01\x12\x12\n\x0eUNIDIRECTIONAL\x10\x02\"\x91\x01\n\x0b\x45ntityLabel\x12\x1c\n\x18\x45NTITY_LABEL_UNSPECIFIED\x10\x00\x12\r\n\tPRINCIPAL\x10\x01\x12\n\n\x06TARGET\x10\x02\x12\x0c\n\x08OBSERVER\x10\x03\x12\x07\n\x03SRC\x10\x04\x12\x0b\n\x07NETWORK\x10\x05\x12\x13\n\x0fSECURITY_RESULT\x10\x06\x12\x10\n\x0cINTERMEDIARY\x10\x07\"\xc4\x15\n\x06Metric\x12.\n\nfirst_seen\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\tlast_seen\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x0bsum_measure\x18\x03 \x01(\x0b\x32 .google.backstory.Metric.Measure\x12\x14\n\x0ctotal_events\x18\x04 \x01(\x03\x12\x38\n\x0bmetric_name\x18\x05 \x01(\x0e\x32#.google.backstory.Metric.MetricName\x12\x36\n\ndimensions\x18\x06 \x03(\x0e\x32\".google.backstory.Metric.Dimension\x12\x15\n\rexport_window\x18\x07 \x01(\x03\x12\x14\n\x0c\x64isplay_name\x18\x08 \x01(\t\x12<\n\x11outcome_variables\x18\t \x03(\x0b\x32!.google.backstory.FindingVariable\x12:\n\x0fmatch_variables\x18\n \x03(\x0b\x32!.google.backstory.FindingVariable\x12)\n\ntime_range\x18\x0b \x01(\x0b\x32\x15.google.type.Interval\x1a`\n\x07Measure\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x46\n\x12\x61ggregate_function\x18\x02 \x01(\x0e\x32*.google.backstory.Metric.AggregateFunction\"r\n\x11\x41ggregateFunction\x12\"\n\x1e\x41GGREGATE_FUNCTION_UNSPECIFIED\x10\x00\x12\x07\n\x03MIN\x10\x01\x12\x07\n\x03MAX\x10\x02\x12\t\n\x05\x43OUNT\x10\x03\x12\x07\n\x03SUM\x10\x04\x12\x07\n\x03\x41VG\x10\x05\x12\n\n\x06STDDEV\x10\x06\"\xf1\x08\n\nMetricName\x12\x1b\n\x17METRIC_NAME_UNSPECIFIED\x10\x00\x12\x19\n\x15NETWORK_BYTES_INBOUND\x10\x01\x12\x1a\n\x16NETWORK_BYTES_OUTBOUND\x10\x02\x12\x17\n\x13NETWORK_BYTES_TOTAL\x10\x03\x12\x19\n\x15\x41UTH_ATTEMPTS_SUCCESS\x10\x04\x12\x16\n\x12\x41UTH_ATTEMPTS_FAIL\x10\x05\x12\x17\n\x13\x41UTH_ATTEMPTS_TOTAL\x10\x06\x12\x16\n\x12\x44NS_BYTES_OUTBOUND\x10\x07\x12\x19\n\x15NETWORK_FLOWS_INBOUND\x10\x08\x12\x1a\n\x16NETWORK_FLOWS_OUTBOUND\x10\t\x12\x17\n\x13NETWORK_FLOWS_TOTAL\x10\n\x12\x17\n\x13\x44NS_QUERIES_SUCCESS\x10\x0b\x12\x14\n\x10\x44NS_QUERIES_FAIL\x10\x0c\x12\x15\n\x11\x44NS_QUERIES_TOTAL\x10\r\x12\x1b\n\x17\x46ILE_EXECUTIONS_SUCCESS\x10\x0e\x12\x18\n\x14\x46ILE_EXECUTIONS_FAIL\x10\x0f\x12\x19\n\x15\x46ILE_EXECUTIONS_TOTAL\x10\x10\x12\x18\n\x14HTTP_QUERIES_SUCCESS\x10\x11\x12\x15\n\x11HTTP_QUERIES_FAIL\x10\x12\x12\x16\n\x12HTTP_QUERIES_TOTAL\x10\x13\x12\x1f\n\x1bWORKSPACE_EMAILS_SENT_TOTAL\x10\x14\x12$\n WORKSPACE_TOTAL_DOWNLOAD_ACTIONS\x10\x15\x12\"\n\x1eWORKSPACE_TOTAL_CHANGE_ACTIONS\x10\x16\x12!\n\x1dWORKSPACE_AUTH_ATTEMPTS_TOTAL\x10\x17\x12$\n WORKSPACE_NETWORK_BYTES_OUTBOUND\x10\x18\x12!\n\x1dWORKSPACE_NETWORK_BYTES_TOTAL\x10\x19\x12\x1a\n\x16\x41LERT_EVENT_NAME_COUNT\x10\x1a\x12\x1b\n\x17RESOURCE_CREATION_TOTAL\x10\x1b\x12\x1d\n\x19RESOURCE_CREATION_SUCCESS\x10\x1c\x12\x19\n\x15RESOURCE_READ_SUCCESS\x10\x1d\x12\x16\n\x12RESOURCE_READ_FAIL\x10\x1e\x12\x1d\n\x19RESOURCE_DELETION_SUCCESS\x10\x1f\x12\x1a\n\x16RESOURCE_CREATION_FAIL\x10 \x12\x1a\n\x16RESOURCE_DELETION_FAIL\x10!\x12\x1b\n\x17RESOURCE_DELETION_TOTAL\x10\"\x12\x17\n\x13RESOURCE_READ_TOTAL\x10#\x12\x19\n\x15RESOURCE_WRITTEN_FAIL\x10$\x12\x1c\n\x18RESOURCE_WRITTEN_SUCCESS\x10%\x12\x1a\n\x16RESOURCE_WRITTEN_TOTAL\x10&\x12\x1d\n\x19UDM_DATA_PRESENCE_SUMMARY\x10\'\"\xff\x06\n\tDimension\x12\x19\n\x15\x44IMENSION_UNSPECIFIED\x10\x00\x12\x14\n\x10PRINCIPAL_DEVICE\x10\x01\x12\x0f\n\x0bTARGET_USER\x10\x02\x12\x11\n\rTARGET_DEVICE\x10\x03\x12\x12\n\x0ePRINCIPAL_USER\x10\x04\x12\r\n\tTARGET_IP\x10\x05\x12\x17\n\x13PRINCIPAL_FILE_HASH\x10\x06\x12\x15\n\x11PRINCIPAL_COUNTRY\x10\x07\x12\x15\n\x11SECURITY_CATEGORY\x10\x08\x12\x0f\n\x0bNETWORK_ASN\x10\t\x12\x1b\n\x17\x43LIENT_CERTIFICATE_HASH\x10\n\x12\x12\n\x0e\x44NS_QUERY_TYPE\x10\x0b\x12\x0e\n\nDNS_DOMAIN\x10\x0c\x12\x13\n\x0fHTTP_USER_AGENT\x10\r\x12\x0e\n\nEVENT_TYPE\x10\x0e\x12\x10\n\x0cPRODUCT_NAME\x10\x0f\x12\x16\n\x12PRODUCT_EVENT_TYPE\x10\x10\x12\x16\n\x12PARENT_FOLDER_PATH\x10\x11\x12\x18\n\x14TARGET_RESOURCE_NAME\x10\x12\x12\x19\n\x15PRINCIPAL_APPLICATION\x10\x13\x12\x16\n\x12TARGET_APPLICATION\x10\x14\x12\x14\n\x10\x45MAIL_TO_ADDRESS\x10\x15\x12\x16\n\x12\x45MAIL_FROM_ADDRESS\x10\x16\x12\x0b\n\x07MAIL_ID\x10\x17\x12\x10\n\x0cPRINCIPAL_IP\x10\x18\x12\x13\n\x0fSECURITY_ACTION\x10\x19\x12\x14\n\x10SECURITY_RULE_ID\x10\x1c\x12$\n TARGET_NETWORK_ORGANIZATION_NAME\x10\x1d\x12\'\n#PRINCIPAL_NETWORK_ORGANIZATION_NAME\x10\x1e\x12\x1f\n\x1bPRINCIPAL_PROCESS_FILE_PATH\x10\x1f\x12\x1f\n\x1bPRINCIPAL_PROCESS_FILE_HASH\x10 \x12\x1d\n\x19SECURITY_RESULT_RULE_NAME\x10!\x12\x1d\n\x19TARGET_RESOURCE_LABEL_KEY\x10\"\x12\x0f\n\x0bVENDOR_NAME\x10#\x12\x18\n\x14TARGET_RESOURCE_TYPE\x10$\x12\x18\n\x14TARGET_LOCATION_NAME\x10%\x12\x0c\n\x08LOG_TYPE\x10&\x12\x13\n\x0fTARGET_HOSTNAME\x10\'B\x9a\x01\n\x14\x63om.google.backstoryB\x0b\x45ntityProtoP\x01Z9google.golang.org/genproto/googleapis/backstory;backstory\xaa\x02\x10Google.Backstory\xca\x02\x10Google\\Backstory\xea\x02\x11Google::Backstoryb\x06proto3"
15
+
16
+ pool = Google::Protobuf::DescriptorPool.generated_pool
17
+
18
+ begin
19
+ pool.add_serialized_file(descriptor_data)
20
+ rescue TypeError
21
+ # Compatibility code: will be removed in the next major version.
22
+ require 'google/protobuf/descriptor_pb'
23
+ parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
24
+ parsed.clear_dependency
25
+ serialized = parsed.class.encode(parsed)
26
+ file = pool.add_serialized_file(serialized)
27
+ warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
28
+ imports = [
29
+ ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"],
30
+ ["google.type.Interval", "google/type/interval.proto"],
31
+ ["google.backstory.SecurityResult", "backstory/udm.proto"],
32
+ ["google.protobuf.Struct", "google/protobuf/struct.proto"],
33
+ ["google.backstory.EntityRisk", "backstory/entity_risk.proto"],
34
+ ]
35
+ imports.each do |type_name, expected_filename|
36
+ import_file = pool.lookup(type_name).file_descriptor
37
+ if import_file.name != expected_filename
38
+ warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
39
+ end
40
+ end
41
+ warn "Each proto file must use a consistent fully-qualified name."
42
+ warn "This will become an error in the next major version."
43
+ end
44
+
45
+ module Google
46
+ module Backstory
47
+ EntityMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.EntityMetadata").msgclass
48
+ EntityMetadata::EntityType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.EntityMetadata.EntityType").enummodule
49
+ EntityMetadata::SourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.EntityMetadata.SourceType").enummodule
50
+ AtiPrioritization = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.AtiPrioritization").msgclass
51
+ Entity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Entity").msgclass
52
+ Relation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Relation").msgclass
53
+ Relation::Relationship = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Relation.Relationship").enummodule
54
+ Relation::Directionality = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Relation.Directionality").enummodule
55
+ Relation::EntityLabel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Relation.EntityLabel").enummodule
56
+ Metric = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Metric").msgclass
57
+ Metric::Measure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Metric.Measure").msgclass
58
+ Metric::AggregateFunction = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Metric.AggregateFunction").enummodule
59
+ Metric::MetricName = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Metric.MetricName").enummodule
60
+ Metric::Dimension = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.backstory.Metric.Dimension").enummodule
61
+ end
62
+ end
63
+
64
+ #### Source proto file: backstory/entity.proto ####
65
+ #
66
+ # // Copyright 2026 Google LLC
67
+ # //
68
+ # // Licensed under the Apache License, Version 2.0 (the "License");
69
+ # // you may not use this file except in compliance with the License.
70
+ # // You may obtain a copy of the License at
71
+ # //
72
+ # // http://www.apache.org/licenses/LICENSE-2.0
73
+ # //
74
+ # // Unless required by applicable law or agreed to in writing, software
75
+ # // distributed under the License is distributed on an "AS IS" BASIS,
76
+ # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
77
+ # // See the License for the specific language governing permissions and
78
+ # // limitations under the License.
79
+ #
80
+ # syntax = "proto3";
81
+ #
82
+ # package google.backstory;
83
+ #
84
+ # import "backstory/entity_risk.proto";
85
+ # import "backstory/udm.proto";
86
+ # import "google/protobuf/struct.proto";
87
+ # import "google/protobuf/timestamp.proto";
88
+ # import "google/type/interval.proto";
89
+ #
90
+ # option csharp_namespace = "Google.Backstory";
91
+ # option go_package = "google.golang.org/genproto/googleapis/backstory;backstory";
92
+ # option java_multiple_files = true;
93
+ # option java_outer_classname = "EntityProto";
94
+ # option java_package = "com.google.backstory";
95
+ # option php_namespace = "Google\\Backstory";
96
+ # option ruby_package = "Google::Backstory";
97
+ #
98
+ # // Information about the Entity and the product where the entity was created.
99
+ # message EntityMetadata {
100
+ # // Describes the type of entity.
101
+ # // An unknown event type.
102
+ # enum EntityType {
103
+ # // @hide_from_doc
104
+ # UNKNOWN_ENTITYTYPE = 0;
105
+ #
106
+ # // An asset, such as workstation, laptop, phone, virtual machine, etc.
107
+ # ASSET = 1;
108
+ #
109
+ # // User.
110
+ # USER = 10000;
111
+ #
112
+ # // Group.
113
+ # GROUP = 10001;
114
+ #
115
+ # // Resource.
116
+ # RESOURCE = 2;
117
+ #
118
+ # // An external IP address.
119
+ # IP_ADDRESS = 3;
120
+ #
121
+ # // A CIDR block.
122
+ # CIDR_BLOCK = 9;
123
+ #
124
+ # // A file.
125
+ # FILE = 4;
126
+ #
127
+ # // A domain.
128
+ # DOMAIN_NAME = 5;
129
+ #
130
+ # // A url.
131
+ # URL = 6;
132
+ #
133
+ # // A mutex.
134
+ # MUTEX = 7;
135
+ #
136
+ # // A metric.
137
+ # METRIC = 8;
138
+ # }
139
+ #
140
+ # // Describes the source of an entity.
141
+ # enum SourceType {
142
+ # // Default source type
143
+ # SOURCE_TYPE_UNSPECIFIED = 0;
144
+ #
145
+ # // Entities ingested from customers (e.g. AD_CONTEXT, DLP_CONTEXT)
146
+ # ENTITY_CONTEXT = 1;
147
+ #
148
+ # // Entities derived from customer data such as prevalence, artifact
149
+ # // first/last seen, or asset/user first seen stats.
150
+ # DERIVED_CONTEXT = 2;
151
+ #
152
+ # // Global contextual entities such as WHOIS or Safe Browsing.
153
+ # GLOBAL_CONTEXT = 3;
154
+ # }
155
+ #
156
+ # // A vendor-specific identifier that uniquely identifies the entity
157
+ # // (e.g. a GUID, LDAP, OID, or similar).
158
+ # string product_entity_id = 1;
159
+ #
160
+ # // GMT timestamp when the entity information was collected by the vendor's
161
+ # // local collection infrastructure.
162
+ # google.protobuf.Timestamp collected_timestamp = 2;
163
+ #
164
+ # // GMT timestamp when the entity described by the product_entity_id was
165
+ # // created on the system where data was collected.
166
+ # google.protobuf.Timestamp creation_timestamp = 8;
167
+ #
168
+ # // Valid existence time range for the version of the entity represented by
169
+ # // this entity data.
170
+ # google.type.Interval interval = 9;
171
+ #
172
+ # // Vendor name of the product that produced the entity information.
173
+ # string vendor_name = 3;
174
+ #
175
+ # // Product name that produced the entity information.
176
+ # string product_name = 4;
177
+ #
178
+ # // Vendor feed name for a threat indicator feed.
179
+ # string feed = 14;
180
+ #
181
+ # // Version of the product that produced the entity information.
182
+ # string product_version = 5;
183
+ #
184
+ # // Entity type.
185
+ # // If an entity has multiple possible types, this specifies the most specific
186
+ # // type.
187
+ # EntityType entity_type = 6;
188
+ #
189
+ # // Human-readable description of the entity.
190
+ # string description = 7;
191
+ #
192
+ # // Metadata provided by a threat intelligence feed that identified the
193
+ # // entity as malicious.
194
+ # repeated SecurityResult threat = 10;
195
+ #
196
+ # // The source of the entity.
197
+ # SourceType source_type = 11;
198
+ #
199
+ # // Entity source metadata labels.
200
+ # repeated Label source_labels = 12;
201
+ #
202
+ # // Metadata field from the event.
203
+ # Metadata event_metadata = 13;
204
+ #
205
+ # // Structured fields extracted from the log.
206
+ # google.protobuf.Struct structured_fields = 15 [deprecated = true];
207
+ #
208
+ # // Flattened fields extracted from the log.
209
+ # google.protobuf.Struct extracted = 16;
210
+ #
211
+ # // Prioritization factors used by ATI curated rules.
212
+ # AtiPrioritization ati_prioritization = 17;
213
+ # }
214
+ #
215
+ # // AtiPrioritization contains various fields used to calculate a priority score
216
+ # // for an entity identified as a threat.
217
+ # message AtiPrioritization {
218
+ # // The confidence score from "GTI verdict" source.
219
+ # int32 gti_verdict = 1;
220
+ #
221
+ # // The confidence score from "GTI severity" source.
222
+ # int32 gti_severity = 2;
223
+ #
224
+ # // The confidence score from "GTI threat score" source.
225
+ # int32 gti_threat_score = 3;
226
+ #
227
+ # // The confidence score from "Mandiant Analyst Intel" source.
228
+ # int32 mandiant_analyst_confidence = 4;
229
+ #
230
+ # // Timestamp of the latest update for GTI verdict, severity, or threat score.
231
+ # google.protobuf.Timestamp gti_update_time = 5;
232
+ #
233
+ # // Whether one or more Mandiant incident response customers had this indicator
234
+ # // in their environment.
235
+ # bool active_ir = 6;
236
+ #
237
+ # // The timestamp of the first time an active IR was applied to this entity.
238
+ # google.protobuf.Timestamp active_ir_first_tagged_time = 7;
239
+ #
240
+ # // Global customer count over the last 30 days
241
+ # int64 global_customer_count = 8;
242
+ #
243
+ # // Global hit count over the last 30 days
244
+ # int64 global_hit_count = 9;
245
+ #
246
+ # // Whether the indicator is being used by a maximum of one threat actor.
247
+ # bool exclusive = 10;
248
+ #
249
+ # // Whether the indicator details are available in open source.
250
+ # bool osint = 11;
251
+ #
252
+ # // Whether the indicator is a scanner.
253
+ # bool scanner = 12;
254
+ #
255
+ # // Whether the indicator verdict has passed review.
256
+ # bool reviewed = 13;
257
+ #
258
+ # // Malware families associated with this indicator.
259
+ # repeated SecurityResult.Association attributed_malware = 14;
260
+ #
261
+ # // Threat actors associated with this indicator.
262
+ # repeated SecurityResult.Association attributed_threat_actors = 15;
263
+ # }
264
+ #
265
+ # // An Entity provides additional context about an item in a UDM event. For
266
+ # // example, a PROCESS_LAUNCH event describes that user 'abc@example.corp'
267
+ # // launched process 'shady.exe'.
268
+ # // The event does not include information that user 'abc@example.com' is a
269
+ # // recently terminated employee who administers a server storing finance data.
270
+ # // Information stored in one or more Entities can add this additional context.
271
+ # message Entity {
272
+ # // Entity metadata such as timestamp, product, etc.
273
+ # EntityMetadata metadata = 1;
274
+ #
275
+ # // Noun in the UDM event that this entity represents.
276
+ # Noun entity = 2;
277
+ #
278
+ # // One or more relationships between the entity (a) and other entities,
279
+ # // including the relationship type and related entity.
280
+ # repeated Relation relations = 4;
281
+ #
282
+ # // Important entity data that cannot be adequately represented within
283
+ # // the formal sections of the Entity.
284
+ # google.protobuf.Struct additional = 3;
285
+ #
286
+ # // Stores information related to the entity's risk score.
287
+ # optional EntityRisk risk_score = 5;
288
+ #
289
+ # // Stores statistical metrics about the entity. Used if metadata.entity_type
290
+ # // is METRIC.
291
+ # Metric metric = 6;
292
+ # }
293
+ #
294
+ # // Defines the relationship between the entity (a) and another entity (b).
295
+ # message Relation {
296
+ # // Type of relationship between the primary entity (a) and related entity (b).
297
+ # enum Relationship {
298
+ # // Default value
299
+ # RELATIONSHIP_UNSPECIFIED = 0;
300
+ #
301
+ # // Related entity is owned by the primary entity (e.g. user owns device
302
+ # // asset).
303
+ # OWNS = 1;
304
+ #
305
+ # // Related entity is administered by the primary entity (e.g. user
306
+ # // administers a group).
307
+ # ADMINISTERS = 2;
308
+ #
309
+ # // Primary entity is a member of the related entity (e.g. user is a member
310
+ # // of a group).
311
+ # MEMBER = 3;
312
+ #
313
+ # // Primary entity may have executed the related entity.
314
+ # EXECUTES = 4;
315
+ #
316
+ # // Primary entity may have been downloaded from the related entity.
317
+ # DOWNLOADED_FROM = 5;
318
+ #
319
+ # // Primary entity contacts the related entity.
320
+ # CONTACTS = 6;
321
+ # }
322
+ #
323
+ # // Describes the relationship model as directed or undirected.
324
+ # enum Directionality {
325
+ # // Default value.
326
+ # DIRECTIONALITY_UNSPECIFIED = 0;
327
+ #
328
+ # // Modeled in both directions. Primary entity (a) to related entity (b) and
329
+ # // related entity (b) to primary entity (a).
330
+ # BIDIRECTIONAL = 1;
331
+ #
332
+ # // Modeled in a single direction. Primary entity (a) to related entity (b).
333
+ # UNIDIRECTIONAL = 2;
334
+ # }
335
+ #
336
+ # // Entity label of the relation.
337
+ # enum EntityLabel {
338
+ # // Default value.
339
+ # ENTITY_LABEL_UNSPECIFIED = 0;
340
+ #
341
+ # // The Noun represents a principal type object.
342
+ # PRINCIPAL = 1;
343
+ #
344
+ # // The Noun represents a target type object.
345
+ # TARGET = 2;
346
+ #
347
+ # // The Noun represents an observer type object.
348
+ # OBSERVER = 3;
349
+ #
350
+ # // The Noun represents src type object.
351
+ # SRC = 4;
352
+ #
353
+ # // The Noun represents a network type object.
354
+ # NETWORK = 5;
355
+ #
356
+ # // The Noun represents a SecurityResult object.
357
+ # SECURITY_RESULT = 6;
358
+ #
359
+ # // The Noun represents an intermediary type object.
360
+ # INTERMEDIARY = 7;
361
+ # }
362
+ #
363
+ # // Entity (b) that the primary entity (a) is related to.
364
+ # Noun entity = 1;
365
+ #
366
+ # // Type of the related entity (b) in this relationship.
367
+ # EntityMetadata.EntityType entity_type = 2;
368
+ #
369
+ # // Type of relationship.
370
+ # Relationship relationship = 3;
371
+ #
372
+ # // Directionality of relationship between primary entity (a) and the
373
+ # // related entity (b).
374
+ # Directionality direction = 4;
375
+ #
376
+ # // UID of the relationship.
377
+ # bytes uid = 5;
378
+ #
379
+ # // Label to identify the Noun of the relation.
380
+ # EntityLabel entity_label = 6;
381
+ # }
382
+ #
383
+ # // Stores precomputed aggregated analytic data for an entity.
384
+ # message Metric {
385
+ # // Mathematic function used to calculate the value.
386
+ # enum AggregateFunction {
387
+ # // Default value.
388
+ # AGGREGATE_FUNCTION_UNSPECIFIED = 0;
389
+ #
390
+ # // Minimum.
391
+ # MIN = 1;
392
+ #
393
+ # // Maximum.
394
+ # MAX = 2;
395
+ #
396
+ # // Count.
397
+ # COUNT = 3;
398
+ #
399
+ # // Sum.
400
+ # SUM = 4;
401
+ #
402
+ # // Average.
403
+ # AVG = 5;
404
+ #
405
+ # // Standard Deviation.
406
+ # STDDEV = 6;
407
+ # }
408
+ #
409
+ # // Describes the precomputed measure.
410
+ # message Measure {
411
+ # // Value of the aggregated measure.
412
+ # double value = 1;
413
+ #
414
+ # // Function used to calculate the aggregated measure.
415
+ # AggregateFunction aggregate_function = 2;
416
+ # }
417
+ #
418
+ # // The name of the precomputed analytic.
419
+ # enum MetricName {
420
+ # // Default
421
+ # METRIC_NAME_UNSPECIFIED = 0;
422
+ #
423
+ # // Total received network bytes.
424
+ # NETWORK_BYTES_INBOUND = 1;
425
+ #
426
+ # // Total network sent bytes.
427
+ # NETWORK_BYTES_OUTBOUND = 2;
428
+ #
429
+ # // Total network sent bytes and received bytes.
430
+ # NETWORK_BYTES_TOTAL = 3;
431
+ #
432
+ # // Successful authentication attempts.
433
+ # AUTH_ATTEMPTS_SUCCESS = 4;
434
+ #
435
+ # // Failed authentication attempts.
436
+ # AUTH_ATTEMPTS_FAIL = 5;
437
+ #
438
+ # // Total authentication attempts.
439
+ # AUTH_ATTEMPTS_TOTAL = 6;
440
+ #
441
+ # // Total number of sent bytes for DNS events.
442
+ # DNS_BYTES_OUTBOUND = 7;
443
+ #
444
+ # // Total number of events having non-null received bytes.
445
+ # NETWORK_FLOWS_INBOUND = 8;
446
+ #
447
+ # // Total number of events having non-null sent bytes.
448
+ # NETWORK_FLOWS_OUTBOUND = 9;
449
+ #
450
+ # // Total events having non-null sent or received bytes.
451
+ # NETWORK_FLOWS_TOTAL = 10;
452
+ #
453
+ # // DNS query success count - Number of events with response_code = 0.
454
+ # DNS_QUERIES_SUCCESS = 11;
455
+ #
456
+ # // Number of events with response_code != 0.
457
+ # DNS_QUERIES_FAIL = 12;
458
+ #
459
+ # // Total number of DNS queries made.
460
+ # DNS_QUERIES_TOTAL = 13;
461
+ #
462
+ # // Number of successfule file executions.
463
+ # FILE_EXECUTIONS_SUCCESS = 14;
464
+ #
465
+ # // Number of failed file executions.
466
+ # FILE_EXECUTIONS_FAIL = 15;
467
+ #
468
+ # // Total number file executions.
469
+ # FILE_EXECUTIONS_TOTAL = 16;
470
+ #
471
+ # // Number of successful HTTP queries.
472
+ # HTTP_QUERIES_SUCCESS = 17;
473
+ #
474
+ # // Number of failed HTTP queries.
475
+ # HTTP_QUERIES_FAIL = 18;
476
+ #
477
+ # // Total number of HTTP queries.
478
+ # HTTP_QUERIES_TOTAL = 19;
479
+ #
480
+ # // Total number of emails sent in Google Workspace.
481
+ # WORKSPACE_EMAILS_SENT_TOTAL = 20;
482
+ #
483
+ # // Total number of download actions in Google Workspace.
484
+ # WORKSPACE_TOTAL_DOWNLOAD_ACTIONS = 21;
485
+ #
486
+ # // Total number of change actions in Google Workspace.
487
+ # WORKSPACE_TOTAL_CHANGE_ACTIONS = 22;
488
+ #
489
+ # // Total number of authentication attempts in Google Workspace.
490
+ # WORKSPACE_AUTH_ATTEMPTS_TOTAL = 23;
491
+ #
492
+ # // Number of outbound network bytes (total sent) in Google Workspace.
493
+ # WORKSPACE_NETWORK_BYTES_OUTBOUND = 24;
494
+ #
495
+ # // Total number of network bytes (both sent and received) in Google
496
+ # // Workspace.
497
+ # WORKSPACE_NETWORK_BYTES_TOTAL = 25;
498
+ #
499
+ # // Track number of alerts fired by EDR/SENTINEL/MICROSOFT_GRAPH.
500
+ # ALERT_EVENT_NAME_COUNT = 26;
501
+ #
502
+ # // Analytic tracking successful resource creations.
503
+ # RESOURCE_CREATION_TOTAL = 27;
504
+ #
505
+ # // Analytic tracking successful resource creations.
506
+ # RESOURCE_CREATION_SUCCESS = 28;
507
+ #
508
+ # // Analytic tracking successful resource reads.
509
+ # RESOURCE_READ_SUCCESS = 29;
510
+ #
511
+ # // Analytic tracking failed resource reads.
512
+ # RESOURCE_READ_FAIL = 30;
513
+ #
514
+ # // Analytic tracking successful resource deletions.
515
+ # RESOURCE_DELETION_SUCCESS = 31;
516
+ #
517
+ # // Analytic tracking failed resource creations.
518
+ # RESOURCE_CREATION_FAIL = 32;
519
+ #
520
+ # // Analytic tracking failed resource deletions.
521
+ # RESOURCE_DELETION_FAIL = 33;
522
+ #
523
+ # // Analytic tracking total resource deletions.
524
+ # RESOURCE_DELETION_TOTAL = 34;
525
+ #
526
+ # // Analytic tracking total resource reads.
527
+ # RESOURCE_READ_TOTAL = 35;
528
+ #
529
+ # // Analytic tracking failed resource writes.
530
+ # RESOURCE_WRITTEN_FAIL = 36;
531
+ #
532
+ # // Analytic tracking successful resource writes.
533
+ # RESOURCE_WRITTEN_SUCCESS = 37;
534
+ #
535
+ # // Analytic tracking total resource writes.
536
+ # RESOURCE_WRITTEN_TOTAL = 38;
537
+ #
538
+ # // UDM data summary tracking unique values of dimensions.
539
+ # UDM_DATA_PRESENCE_SUMMARY = 39;
540
+ # }
541
+ #
542
+ # // Describes field used as the dimension when grouping data to calculate the
543
+ # // aggregate metric.
544
+ # enum Dimension {
545
+ # // Default
546
+ # DIMENSION_UNSPECIFIED = 0;
547
+ #
548
+ # // Principal Device
549
+ # PRINCIPAL_DEVICE = 1;
550
+ #
551
+ # // Target User
552
+ # TARGET_USER = 2;
553
+ #
554
+ # // Target Device
555
+ # TARGET_DEVICE = 3;
556
+ #
557
+ # // Principal User
558
+ # PRINCIPAL_USER = 4;
559
+ #
560
+ # // Target IP
561
+ # TARGET_IP = 5;
562
+ #
563
+ # // Principal File Hash
564
+ # PRINCIPAL_FILE_HASH = 6;
565
+ #
566
+ # // Principal Country
567
+ # PRINCIPAL_COUNTRY = 7;
568
+ #
569
+ # // Security Category
570
+ # SECURITY_CATEGORY = 8;
571
+ #
572
+ # // Network ASN
573
+ # NETWORK_ASN = 9;
574
+ #
575
+ # // Client Certificate Hash
576
+ # CLIENT_CERTIFICATE_HASH = 10;
577
+ #
578
+ # // DNS Query Type
579
+ # DNS_QUERY_TYPE = 11;
580
+ #
581
+ # // DNS Domain
582
+ # DNS_DOMAIN = 12;
583
+ #
584
+ # // HTTP User Agent
585
+ # HTTP_USER_AGENT = 13;
586
+ #
587
+ # // Event Type
588
+ # EVENT_TYPE = 14;
589
+ #
590
+ # // Product Name
591
+ # PRODUCT_NAME = 15;
592
+ #
593
+ # // Product Event Type
594
+ # PRODUCT_EVENT_TYPE = 16;
595
+ #
596
+ # // Parent Folder Path
597
+ # PARENT_FOLDER_PATH = 17;
598
+ #
599
+ # // Target resource Name
600
+ # TARGET_RESOURCE_NAME = 18;
601
+ #
602
+ # // Principal Application.
603
+ # PRINCIPAL_APPLICATION = 19;
604
+ #
605
+ # // Target Application.
606
+ # TARGET_APPLICATION = 20;
607
+ #
608
+ # // Email To Address.
609
+ # EMAIL_TO_ADDRESS = 21;
610
+ #
611
+ # // Email From Address.
612
+ # EMAIL_FROM_ADDRESS = 22;
613
+ #
614
+ # // Mail Id.
615
+ # MAIL_ID = 23;
616
+ #
617
+ # // Principal IP.
618
+ # PRINCIPAL_IP = 24;
619
+ #
620
+ # // Security Action.
621
+ # SECURITY_ACTION = 25;
622
+ #
623
+ # // Security Rule Id.
624
+ # SECURITY_RULE_ID = 28;
625
+ #
626
+ # // Target Network Organization name.
627
+ # TARGET_NETWORK_ORGANIZATION_NAME = 29;
628
+ #
629
+ # // Principal Network Organization name.
630
+ # PRINCIPAL_NETWORK_ORGANIZATION_NAME = 30;
631
+ #
632
+ # // Principal Process File Path.
633
+ # PRINCIPAL_PROCESS_FILE_PATH = 31;
634
+ #
635
+ # // Principal Process File SHA256 Hash.
636
+ # PRINCIPAL_PROCESS_FILE_HASH = 32;
637
+ #
638
+ # // Security Result rule name.
639
+ # SECURITY_RESULT_RULE_NAME = 33;
640
+ #
641
+ # // Target Resource label key.
642
+ # TARGET_RESOURCE_LABEL_KEY = 34;
643
+ #
644
+ # // Vendor name.
645
+ # VENDOR_NAME = 35;
646
+ #
647
+ # // Target Resource type.
648
+ # TARGET_RESOURCE_TYPE = 36;
649
+ #
650
+ # // Target Location name.
651
+ # TARGET_LOCATION_NAME = 37;
652
+ #
653
+ # // Log type.
654
+ # LOG_TYPE = 38;
655
+ #
656
+ # // Target Hostname.
657
+ # TARGET_HOSTNAME = 39;
658
+ # }
659
+ #
660
+ # // Timestamp of the first time the entity was seen in the environment.
661
+ # google.protobuf.Timestamp first_seen = 1;
662
+ #
663
+ # // Time stamp of the last time last time the entity was seen in the
664
+ # // environment.
665
+ # google.protobuf.Timestamp last_seen = 2;
666
+ #
667
+ # // Sum of all precomputed measures for the given metric.
668
+ # Measure sum_measure = 3;
669
+ #
670
+ # // Total number of events used to calculate the given precomputed metric.
671
+ # int64 total_events = 4;
672
+ #
673
+ # // Name of the analytic.
674
+ # MetricName metric_name = 5;
675
+ #
676
+ # // All group by clauses used to calculate the metric.
677
+ # repeated Dimension dimensions = 6;
678
+ #
679
+ # // Export window for which the metric was exported.
680
+ # int64 export_window = 7;
681
+ #
682
+ # // Display name of the custom metric. Google-authored metrics do not have a
683
+ # // display name.
684
+ # string display_name = 8;
685
+ #
686
+ # // List of outcome variables used in the custom metric.
687
+ # repeated FindingVariable outcome_variables = 9;
688
+ #
689
+ # // List of match variables used in the custom metric.
690
+ # repeated FindingVariable match_variables = 10;
691
+ #
692
+ # // Time range for which the custom metric was calculated.
693
+ # google.type.Interval time_range = 11;
694
+ # }