indicator.proto 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // Copyright 2022 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. syntax = "proto3";
  15. package google.cloud.securitycenter.v1;
  16. option csharp_namespace = "Google.Cloud.SecurityCenter.V1";
  17. option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1;securitycenter";
  18. option java_multiple_files = true;
  19. option java_outer_classname = "IndicatorProto";
  20. option java_package = "com.google.cloud.securitycenter.v1";
  21. option php_namespace = "Google\\Cloud\\SecurityCenter\\V1";
  22. option ruby_package = "Google::Cloud::SecurityCenter::V1";
  23. // Represents what's commonly known as an Indicator of compromise (IoC) in
  24. // computer forensics. This is an artifact observed on a network or in an
  25. // operating system that, with high confidence, indicates a computer intrusion.
  26. // Reference: https://en.wikipedia.org/wiki/Indicator_of_compromise
  27. message Indicator {
  28. // Indicates what signature matched this process.
  29. message ProcessSignature {
  30. // A signature corresponding to memory page hashes.
  31. message MemoryHashSignature {
  32. // Memory hash detection contributing to the binary family match.
  33. message Detection {
  34. // The name of the binary associated with the memory hash
  35. // signature detection.
  36. string binary = 2;
  37. // The percentage of memory page hashes in the signature
  38. // that were matched.
  39. double percent_pages_matched = 3;
  40. }
  41. // The binary family.
  42. string binary_family = 1;
  43. // The list of memory hash detections contributing to the binary family
  44. // match.
  45. repeated Detection detections = 4;
  46. }
  47. // A signature corresponding to a YARA rule.
  48. message YaraRuleSignature {
  49. // The name of the YARA rule.
  50. string yara_rule = 5;
  51. }
  52. oneof signature {
  53. // Signature indicating that a binary family was matched.
  54. MemoryHashSignature memory_hash_signature = 6;
  55. // Signature indicating that a YARA rule was matched.
  56. YaraRuleSignature yara_rule_signature = 7;
  57. }
  58. }
  59. // List of ip addresses associated to the Finding.
  60. repeated string ip_addresses = 1;
  61. // List of domains associated to the Finding.
  62. repeated string domains = 2;
  63. // The list of matched signatures indicating that the given
  64. // process is present in the environment.
  65. repeated ProcessSignature signatures = 3;
  66. // The list of URIs associated to the Findings.
  67. repeated string uris = 4;
  68. }