finding_addon.proto 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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.websecurityscanner.v1;
  16. option csharp_namespace = "Google.Cloud.WebSecurityScanner.V1";
  17. option go_package = "google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1;websecurityscanner";
  18. option java_multiple_files = true;
  19. option java_outer_classname = "FindingAddonProto";
  20. option java_package = "com.google.cloud.websecurityscanner.v1";
  21. option php_namespace = "Google\\Cloud\\WebSecurityScanner\\V1";
  22. option ruby_package = "Google::Cloud::WebSecurityScanner::V1";
  23. // ! Information about a vulnerability with an HTML.
  24. message Form {
  25. // ! The URI where to send the form when it's submitted.
  26. string action_uri = 1;
  27. // ! The names of form fields related to the vulnerability.
  28. repeated string fields = 2;
  29. }
  30. // Information reported for an outdated library.
  31. message OutdatedLibrary {
  32. // The name of the outdated library.
  33. string library_name = 1;
  34. // The version number.
  35. string version = 2;
  36. // URLs to learn more information about the vulnerabilities in the library.
  37. repeated string learn_more_urls = 3;
  38. }
  39. // Information regarding any resource causing the vulnerability such
  40. // as JavaScript sources, image, audio files, etc.
  41. message ViolatingResource {
  42. // The MIME type of this resource.
  43. string content_type = 1;
  44. // URL of this violating resource.
  45. string resource_url = 2;
  46. }
  47. // Information about vulnerable request parameters.
  48. message VulnerableParameters {
  49. // The vulnerable parameter names.
  50. repeated string parameter_names = 1;
  51. }
  52. // Information about vulnerable or missing HTTP Headers.
  53. message VulnerableHeaders {
  54. // Describes a HTTP Header.
  55. message Header {
  56. // Header name.
  57. string name = 1;
  58. // Header value.
  59. string value = 2;
  60. }
  61. // List of vulnerable headers.
  62. repeated Header headers = 1;
  63. // List of missing headers.
  64. repeated Header missing_headers = 2;
  65. }
  66. // Information reported for an XSS.
  67. message Xss {
  68. // Types of XSS attack vector.
  69. enum AttackVector {
  70. // Unknown attack vector.
  71. ATTACK_VECTOR_UNSPECIFIED = 0;
  72. // The attack comes from fuzzing the browser's localStorage.
  73. LOCAL_STORAGE = 1;
  74. // The attack comes from fuzzing the browser's sessionStorage.
  75. SESSION_STORAGE = 2;
  76. // The attack comes from fuzzing the window's name property.
  77. WINDOW_NAME = 3;
  78. // The attack comes from fuzzing the referrer property.
  79. REFERRER = 4;
  80. // The attack comes from fuzzing an input element.
  81. FORM_INPUT = 5;
  82. // The attack comes from fuzzing the browser's cookies.
  83. COOKIE = 6;
  84. // The attack comes from hijacking the post messaging mechanism.
  85. POST_MESSAGE = 7;
  86. // The attack comes from fuzzing parameters in the url.
  87. GET_PARAMETERS = 8;
  88. // The attack comes from fuzzing the fragment in the url.
  89. URL_FRAGMENT = 9;
  90. // The attack comes from fuzzing the HTML comments.
  91. HTML_COMMENT = 10;
  92. // The attack comes from fuzzing the POST parameters.
  93. POST_PARAMETERS = 11;
  94. // The attack comes from fuzzing the protocol.
  95. PROTOCOL = 12;
  96. // The attack comes from the server side and is stored.
  97. STORED_XSS = 13;
  98. // The attack is a Same-Origin Method Execution attack via a GET parameter.
  99. SAME_ORIGIN = 14;
  100. // The attack payload is received from a third-party host via a URL that is
  101. // user-controllable
  102. USER_CONTROLLABLE_URL = 15;
  103. }
  104. // Stack traces leading to the point where the XSS occurred.
  105. repeated string stack_traces = 1;
  106. // An error message generated by a javascript breakage.
  107. string error_message = 2;
  108. // The attack vector of the payload triggering this XSS.
  109. AttackVector attack_vector = 3;
  110. // The reproduction url for the seeding POST request of a Stored XSS.
  111. string stored_xss_seeding_url = 4;
  112. }
  113. // Information reported for an XXE.
  114. message Xxe {
  115. // Locations within a request where XML was substituted.
  116. enum Location {
  117. // Unknown Location.
  118. LOCATION_UNSPECIFIED = 0;
  119. // The XML payload replaced the complete request body.
  120. COMPLETE_REQUEST_BODY = 1;
  121. }
  122. // The XML string that triggered the XXE vulnerability. Non-payload values
  123. // might be redacted.
  124. string payload_value = 1;
  125. // Location within the request where the payload was placed.
  126. Location payload_location = 2;
  127. }