Skip to content

Commit efae79d

Browse files
Google APIscopybara-github
authored andcommitted
feat: added cloud provider field to list findings response
feat: added http configuration rule to ResourceValueConfig and ValuedResource API methods feat: added toxic combination field to finding docs: Updated comments for ResourceValueConfig PiperOrigin-RevId: 647117058
1 parent 4cba9f4 commit efae79d

12 files changed

Lines changed: 548 additions & 33 deletions

google/cloud/securitycenter/v2/BUILD.bazel

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ proto_library(
3030
"attack_path.proto",
3131
"backup_disaster_recovery.proto",
3232
"bigquery_export.proto",
33+
"cloud_armor.proto",
3334
"cloud_dlp_data_profile.proto",
3435
"cloud_dlp_inspection.proto",
3536
"compliance.proto",
@@ -41,6 +42,7 @@ proto_library(
4142
"external_system.proto",
4243
"file.proto",
4344
"finding.proto",
45+
"folder.proto",
4446
"group_membership.proto",
4547
"iam_binding.proto",
4648
"indicator.proto",
@@ -51,6 +53,7 @@ proto_library(
5153
"log_entry.proto",
5254
"mitre_attack.proto",
5355
"mute_config.proto",
56+
"notebook.proto",
5457
"notification_config.proto",
5558
"notification_message.proto",
5659
"org_policy.proto",
@@ -75,6 +78,7 @@ proto_library(
7578
"//google/iam/v1:iam_policy_proto",
7679
"//google/iam/v1:policy_proto",
7780
"//google/longrunning:operations_proto",
81+
"@com_google_protobuf//:duration_proto",
7882
"@com_google_protobuf//:empty_proto",
7983
"@com_google_protobuf//:field_mask_proto",
8084
"@com_google_protobuf//:struct_proto",
@@ -122,8 +126,8 @@ java_gapic_library(
122126
rest_numeric_enums = True,
123127
service_yaml = "securitycenter_v2.yaml",
124128
test_deps = [
125-
"//google/iam/v1:iam_java_grpc",
126129
":securitycenter_java_grpc",
130+
"//google/iam/v1:iam_java_grpc",
127131
],
128132
transport = "grpc+rest",
129133
deps = [
@@ -145,14 +149,14 @@ java_gapic_test(
145149
# Open Source Packages
146150
java_gapic_assembly_gradle_pkg(
147151
name = "google-cloud-securitycenter-v2-java",
152+
include_samples = True,
148153
transport = "grpc+rest",
149154
deps = [
150155
":securitycenter_java_gapic",
151156
":securitycenter_java_grpc",
152157
":securitycenter_java_proto",
153158
":securitycenter_proto",
154159
],
155-
include_samples = True,
156160
)
157161

158162
##############################################################################
@@ -194,6 +198,7 @@ go_gapic_library(
194198
"//google/longrunning:longrunning_go_proto",
195199
"@com_google_cloud_go_longrunning//:go_default_library",
196200
"@com_google_cloud_go_longrunning//autogen:go_default_library",
201+
"@io_bazel_rules_go//proto/wkt:duration_go_proto",
197202
"@io_bazel_rules_go//proto/wkt:struct_go_proto",
198203
],
199204
)
@@ -203,9 +208,9 @@ go_gapic_assembly_pkg(
203208
name = "gapi-cloud-securitycenter-v2-go",
204209
deps = [
205210
":securitycenter_go_gapic",
206-
":securitycenter_go_gapic_srcjar-test.srcjar",
207211
":securitycenter_go_gapic_srcjar-metadata.srcjar",
208212
":securitycenter_go_gapic_srcjar-snippets.srcjar",
213+
":securitycenter_go_gapic_srcjar-test.srcjar",
209214
":securitycenter_go_proto",
210215
],
211216
)
@@ -271,8 +276,8 @@ php_gapic_library(
271276
name = "securitycenter_php_gapic",
272277
srcs = [":securitycenter_proto_with_info"],
273278
grpc_service_config = None,
274-
rest_numeric_enums = True,
275279
migration_mode = "NEW_SURFACE_ONLY",
280+
rest_numeric_enums = True,
276281
service_yaml = "securitycenter_v2.yaml",
277282
transport = "grpc+rest",
278283
deps = [
@@ -326,8 +331,8 @@ nodejs_gapic_assembly_pkg(
326331
# buildifier: disable=same-origin-load
327332
load(
328333
"@com_google_googleapis_imports//:imports.bzl",
329-
"ruby_gapic_assembly_pkg",
330334
"ruby_cloud_gapic_library",
335+
"ruby_gapic_assembly_pkg",
331336
"ruby_grpc_library",
332337
"ruby_proto_library",
333338
)
@@ -387,7 +392,6 @@ load(
387392

388393
csharp_proto_library(
389394
name = "securitycenter_csharp_proto",
390-
extra_opts = [],
391395
deps = [":securitycenter_proto"],
392396
)
393397

google/cloud/securitycenter/v2/attack_path.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ message AttackPath {
3131
option (google.api.resource) = {
3232
type: "securitycenter.googleapis.com/AttackPath"
3333
pattern: "organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}/attackPaths/{attack_path}"
34+
pattern: "organizations/{organization}/locations/{location}/simulations/{simulation}/valuedResources/{valued_resource}/attackPaths/{attack_path}"
3435
plural: "attackPaths"
3536
singular: "attackPath"
3637
};
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
// Copyright 2024 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
syntax = "proto3";
16+
17+
package google.cloud.securitycenter.v2;
18+
19+
import "google/protobuf/duration.proto";
20+
21+
option csharp_namespace = "Google.Cloud.SecurityCenter.V2";
22+
option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb";
23+
option java_multiple_files = true;
24+
option java_outer_classname = "CloudArmorProto";
25+
option java_package = "com.google.cloud.securitycenter.v2";
26+
option php_namespace = "Google\\Cloud\\SecurityCenter\\V2";
27+
option ruby_package = "Google::Cloud::SecurityCenter::V2";
28+
29+
// Fields related to Google Cloud Armor findings.
30+
message CloudArmor {
31+
// Information about the [Google Cloud Armor security
32+
// policy](https://cloud.google.com/armor/docs/security-policy-overview)
33+
// relevant to the finding.
34+
SecurityPolicy security_policy = 1;
35+
36+
// Information about incoming requests evaluated by [Google Cloud Armor
37+
// security
38+
// policies](https://cloud.google.com/armor/docs/security-policy-overview).
39+
Requests requests = 2;
40+
41+
// Information about potential Layer 7 DDoS attacks identified by [Google
42+
// Cloud Armor Adaptive
43+
// Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview).
44+
AdaptiveProtection adaptive_protection = 3;
45+
46+
// Information about DDoS attack volume and classification.
47+
Attack attack = 4;
48+
49+
// Distinguish between volumetric & protocol DDoS attack and
50+
// application layer attacks. For example, "L3_4" for Layer 3 and Layer 4 DDoS
51+
// attacks, or "L_7" for Layer 7 DDoS attacks.
52+
string threat_vector = 5;
53+
54+
// Duration of attack from the start until the current moment (updated every 5
55+
// minutes).
56+
google.protobuf.Duration duration = 6;
57+
}
58+
59+
// Information about the [Google Cloud Armor security
60+
// policy](https://cloud.google.com/armor/docs/security-policy-overview)
61+
// relevant to the finding.
62+
message SecurityPolicy {
63+
// The name of the Google Cloud Armor security policy, for example,
64+
// "my-security-policy".
65+
string name = 1;
66+
67+
// The type of Google Cloud Armor security policy for example, 'backend
68+
// security policy', 'edge security policy', 'network edge security policy',
69+
// or 'always-on DDoS protection'.
70+
string type = 2;
71+
72+
// Whether or not the associated rule or policy is in preview mode.
73+
bool preview = 3;
74+
}
75+
76+
// Information about the requests relevant to the finding.
77+
message Requests {
78+
// For 'Increasing deny ratio', the ratio is the denied traffic divided by the
79+
// allowed traffic. For 'Allowed traffic spike', the ratio is the allowed
80+
// traffic in the short term divided by allowed traffic in the long term.
81+
double ratio = 1;
82+
83+
// Allowed RPS (requests per second) in the short term.
84+
int32 short_term_allowed = 2;
85+
86+
// Allowed RPS (requests per second) over the long term.
87+
int32 long_term_allowed = 3;
88+
89+
// Denied RPS (requests per second) over the long term.
90+
int32 long_term_denied = 4;
91+
}
92+
93+
// Information about [Google Cloud Armor Adaptive
94+
// Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).
95+
message AdaptiveProtection {
96+
// A score of 0 means that there is low confidence that the detected event is
97+
// an actual attack. A score of 1 means that there is high confidence that the
98+
// detected event is an attack. See the [Adaptive Protection
99+
// documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning)
100+
// for further explanation.
101+
double confidence = 1;
102+
}
103+
104+
// Information about DDoS attack volume and classification.
105+
message Attack {
106+
// Total PPS (packets per second) volume of attack.
107+
int32 volume_pps = 1;
108+
109+
// Total BPS (bytes per second) volume of attack.
110+
int32 volume_bps = 2;
111+
112+
// Type of attack, for example, 'SYN-flood', 'NTP-udp', or 'CHARGEN-udp'.
113+
string classification = 3;
114+
}

google/cloud/securitycenter/v2/finding.proto

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import "google/cloud/securitycenter/v2/access.proto";
2222
import "google/cloud/securitycenter/v2/application.proto";
2323
import "google/cloud/securitycenter/v2/attack_exposure.proto";
2424
import "google/cloud/securitycenter/v2/backup_disaster_recovery.proto";
25+
import "google/cloud/securitycenter/v2/cloud_armor.proto";
2526
import "google/cloud/securitycenter/v2/cloud_dlp_data_profile.proto";
2627
import "google/cloud/securitycenter/v2/cloud_dlp_inspection.proto";
2728
import "google/cloud/securitycenter/v2/compliance.proto";
@@ -40,6 +41,7 @@ import "google/cloud/securitycenter/v2/kubernetes.proto";
4041
import "google/cloud/securitycenter/v2/load_balancer.proto";
4142
import "google/cloud/securitycenter/v2/log_entry.proto";
4243
import "google/cloud/securitycenter/v2/mitre_attack.proto";
44+
import "google/cloud/securitycenter/v2/notebook.proto";
4345
import "google/cloud/securitycenter/v2/org_policy.proto";
4446
import "google/cloud/securitycenter/v2/process.proto";
4547
import "google/cloud/securitycenter/v2/security_marks.proto";
@@ -431,6 +433,12 @@ message Finding {
431433
// The load balancers associated with the finding.
432434
repeated LoadBalancer load_balancers = 50;
433435

436+
// Fields related to Cloud Armor findings.
437+
CloudArmor cloud_armor = 51;
438+
439+
// Notebook associated with the finding.
440+
Notebook notebook = 55;
441+
434442
// Contains details about a group of security issues that, when the issues
435443
// occur together, represent a greater risk than when the issues occur
436444
// independently. A group of such issues is referred to as a toxic
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright 2024 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
syntax = "proto3";
16+
17+
package google.cloud.securitycenter.v2;
18+
19+
option csharp_namespace = "Google.Cloud.SecurityCenter.V2";
20+
option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb";
21+
option java_multiple_files = true;
22+
option java_outer_classname = "FolderProto";
23+
option java_package = "com.google.cloud.securitycenter.v2";
24+
option php_namespace = "Google\\Cloud\\SecurityCenter\\V2";
25+
option ruby_package = "Google::Cloud::SecurityCenter::V2";
26+
27+
// Message that contains the resource name and display name of a folder
28+
// resource.
29+
message Folder {
30+
// Full resource name of this folder. See:
31+
// https://cloud.google.com/apis/design/resource_names#full_resource_name
32+
string resource_folder = 1;
33+
34+
// The user defined display name for this folder.
35+
string resource_folder_display_name = 2;
36+
}

google/cloud/securitycenter/v2/mitre_attack.proto

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ message MitreAttack {
7878

7979
// MITRE ATT&CK techniques that can be referenced by SCC findings.
8080
// See: https://attack.mitre.org/techniques/enterprise/
81-
// Next ID: 59
81+
// Next ID: 63
8282
enum Technique {
8383
// Unspecified value.
8484
TECHNIQUE_UNSPECIFIED = 0;
@@ -107,6 +107,9 @@ message MitreAttack {
107107
// T1059.004
108108
UNIX_SHELL = 7;
109109

110+
// T1059.006
111+
PYTHON = 59;
112+
110113
// T1069
111114
PERMISSION_GROUPS_DISCOVERY = 18;
112115

@@ -254,8 +257,17 @@ message MitreAttack {
254257
// T1595.001
255258
SCANNING_IP_BLOCKS = 2;
256259

260+
// T1613
261+
CONTAINER_ADMINISTRATION_COMMAND = 60;
262+
263+
// T1611
264+
ESCAPE_TO_HOST = 61;
265+
257266
// T1613
258267
CONTAINER_AND_RESOURCE_DISCOVERY = 57;
268+
269+
// T1649
270+
STEAL_OR_FORGE_AUTHENTICATION_CERTIFICATES = 62;
259271
}
260272

261273
// The MITRE ATT&CK tactic most closely represented by this finding, if any.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Copyright 2024 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
syntax = "proto3";
16+
17+
package google.cloud.securitycenter.v2;
18+
19+
import "google/protobuf/timestamp.proto";
20+
21+
option csharp_namespace = "Google.Cloud.SecurityCenter.V2";
22+
option go_package = "cloud.google.com/go/securitycenter/apiv2/securitycenterpb;securitycenterpb";
23+
option java_multiple_files = true;
24+
option java_outer_classname = "NotebookProto";
25+
option java_package = "com.google.cloud.securitycenter.v2";
26+
option php_namespace = "Google\\Cloud\\SecurityCenter\\V2";
27+
option ruby_package = "Google::Cloud::SecurityCenter::V2";
28+
29+
// Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise
30+
// notebook](https://cloud.google.com/colab/docs/introduction) file, that is
31+
// associated with a finding.
32+
message Notebook {
33+
// The name of the notebook.
34+
string name = 1;
35+
36+
// The source notebook service, for example, "Colab Enterprise".
37+
string service = 2;
38+
39+
// The user ID of the latest author to modify the notebook.
40+
string last_author = 3;
41+
42+
// The most recent time the notebook was updated.
43+
google.protobuf.Timestamp notebook_update_time = 4;
44+
}

0 commit comments

Comments
 (0)