1*d5c09012SAndroid Build Coastguard Worker// Copyright 2019 The Grafeas Authors. All rights reserved. 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage grafeas.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/grafeas/v1;grafeas"; 20*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 21*d5c09012SAndroid Build Coastguard Workeroption java_package = "io.grafeas.v1"; 22*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "GRA"; 23*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "CVSSProto"; 24*d5c09012SAndroid Build Coastguard Worker 25*d5c09012SAndroid Build Coastguard Worker// Common Vulnerability Scoring System version 3. 26*d5c09012SAndroid Build Coastguard Worker// For details, see https://www.first.org/cvss/specification-document 27*d5c09012SAndroid Build Coastguard Workermessage CVSSv3 { 28*d5c09012SAndroid Build Coastguard Worker // The base score is a function of the base metric scores. 29*d5c09012SAndroid Build Coastguard Worker float base_score = 1; 30*d5c09012SAndroid Build Coastguard Worker 31*d5c09012SAndroid Build Coastguard Worker float exploitability_score = 2; 32*d5c09012SAndroid Build Coastguard Worker 33*d5c09012SAndroid Build Coastguard Worker float impact_score = 3; 34*d5c09012SAndroid Build Coastguard Worker 35*d5c09012SAndroid Build Coastguard Worker // Base Metrics 36*d5c09012SAndroid Build Coastguard Worker // Represents the intrinsic characteristics of a vulnerability that are 37*d5c09012SAndroid Build Coastguard Worker // constant over time and across user environments. 38*d5c09012SAndroid Build Coastguard Worker AttackVector attack_vector = 5; 39*d5c09012SAndroid Build Coastguard Worker AttackComplexity attack_complexity = 6; 40*d5c09012SAndroid Build Coastguard Worker PrivilegesRequired privileges_required = 7; 41*d5c09012SAndroid Build Coastguard Worker UserInteraction user_interaction = 8; 42*d5c09012SAndroid Build Coastguard Worker Scope scope = 9; 43*d5c09012SAndroid Build Coastguard Worker Impact confidentiality_impact = 10; 44*d5c09012SAndroid Build Coastguard Worker Impact integrity_impact = 11; 45*d5c09012SAndroid Build Coastguard Worker Impact availability_impact = 12; 46*d5c09012SAndroid Build Coastguard Worker 47*d5c09012SAndroid Build Coastguard Worker enum AttackVector { 48*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_UNSPECIFIED = 0; 49*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_NETWORK = 1; 50*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_ADJACENT = 2; 51*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_LOCAL = 3; 52*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_PHYSICAL = 4; 53*d5c09012SAndroid Build Coastguard Worker } 54*d5c09012SAndroid Build Coastguard Worker 55*d5c09012SAndroid Build Coastguard Worker enum AttackComplexity { 56*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_UNSPECIFIED = 0; 57*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_LOW = 1; 58*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_HIGH = 2; 59*d5c09012SAndroid Build Coastguard Worker } 60*d5c09012SAndroid Build Coastguard Worker 61*d5c09012SAndroid Build Coastguard Worker enum PrivilegesRequired { 62*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_UNSPECIFIED = 0; 63*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_NONE = 1; 64*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_LOW = 2; 65*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_HIGH = 3; 66*d5c09012SAndroid Build Coastguard Worker } 67*d5c09012SAndroid Build Coastguard Worker 68*d5c09012SAndroid Build Coastguard Worker enum UserInteraction { 69*d5c09012SAndroid Build Coastguard Worker USER_INTERACTION_UNSPECIFIED = 0; 70*d5c09012SAndroid Build Coastguard Worker USER_INTERACTION_NONE = 1; 71*d5c09012SAndroid Build Coastguard Worker USER_INTERACTION_REQUIRED = 2; 72*d5c09012SAndroid Build Coastguard Worker } 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker enum Scope { 75*d5c09012SAndroid Build Coastguard Worker SCOPE_UNSPECIFIED = 0; 76*d5c09012SAndroid Build Coastguard Worker SCOPE_UNCHANGED = 1; 77*d5c09012SAndroid Build Coastguard Worker SCOPE_CHANGED = 2; 78*d5c09012SAndroid Build Coastguard Worker } 79*d5c09012SAndroid Build Coastguard Worker 80*d5c09012SAndroid Build Coastguard Worker enum Impact { 81*d5c09012SAndroid Build Coastguard Worker IMPACT_UNSPECIFIED = 0; 82*d5c09012SAndroid Build Coastguard Worker IMPACT_HIGH = 1; 83*d5c09012SAndroid Build Coastguard Worker IMPACT_LOW = 2; 84*d5c09012SAndroid Build Coastguard Worker IMPACT_NONE = 3; 85*d5c09012SAndroid Build Coastguard Worker } 86*d5c09012SAndroid Build Coastguard Worker} 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker// Common Vulnerability Scoring System. 89*d5c09012SAndroid Build Coastguard Worker// For details, see https://www.first.org/cvss/specification-document 90*d5c09012SAndroid Build Coastguard Worker// This is a message we will try to use for storing various versions of CVSS 91*d5c09012SAndroid Build Coastguard Worker// rather than making a separate proto for storing a specific version. 92*d5c09012SAndroid Build Coastguard Workermessage CVSS { 93*d5c09012SAndroid Build Coastguard Worker // The base score is a function of the base metric scores. 94*d5c09012SAndroid Build Coastguard Worker float base_score = 1; 95*d5c09012SAndroid Build Coastguard Worker 96*d5c09012SAndroid Build Coastguard Worker float exploitability_score = 2; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker float impact_score = 3; 99*d5c09012SAndroid Build Coastguard Worker 100*d5c09012SAndroid Build Coastguard Worker // Base Metrics 101*d5c09012SAndroid Build Coastguard Worker // Represents the intrinsic characteristics of a vulnerability that are 102*d5c09012SAndroid Build Coastguard Worker // constant over time and across user environments. 103*d5c09012SAndroid Build Coastguard Worker AttackVector attack_vector = 4; 104*d5c09012SAndroid Build Coastguard Worker AttackComplexity attack_complexity = 5; 105*d5c09012SAndroid Build Coastguard Worker Authentication authentication = 6; 106*d5c09012SAndroid Build Coastguard Worker PrivilegesRequired privileges_required = 7; 107*d5c09012SAndroid Build Coastguard Worker UserInteraction user_interaction = 8; 108*d5c09012SAndroid Build Coastguard Worker Scope scope = 9; 109*d5c09012SAndroid Build Coastguard Worker Impact confidentiality_impact = 10; 110*d5c09012SAndroid Build Coastguard Worker Impact integrity_impact = 11; 111*d5c09012SAndroid Build Coastguard Worker Impact availability_impact = 12; 112*d5c09012SAndroid Build Coastguard Worker 113*d5c09012SAndroid Build Coastguard Worker enum AttackVector { 114*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_UNSPECIFIED = 0; 115*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_NETWORK = 1; 116*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_ADJACENT = 2; 117*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_LOCAL = 3; 118*d5c09012SAndroid Build Coastguard Worker ATTACK_VECTOR_PHYSICAL = 4; 119*d5c09012SAndroid Build Coastguard Worker } 120*d5c09012SAndroid Build Coastguard Worker 121*d5c09012SAndroid Build Coastguard Worker enum AttackComplexity { 122*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_UNSPECIFIED = 0; 123*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_LOW = 1; 124*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_HIGH = 2; 125*d5c09012SAndroid Build Coastguard Worker ATTACK_COMPLEXITY_MEDIUM = 3; 126*d5c09012SAndroid Build Coastguard Worker } 127*d5c09012SAndroid Build Coastguard Worker 128*d5c09012SAndroid Build Coastguard Worker enum Authentication { 129*d5c09012SAndroid Build Coastguard Worker AUTHENTICATION_UNSPECIFIED = 0; 130*d5c09012SAndroid Build Coastguard Worker AUTHENTICATION_MULTIPLE = 1; 131*d5c09012SAndroid Build Coastguard Worker AUTHENTICATION_SINGLE = 2; 132*d5c09012SAndroid Build Coastguard Worker AUTHENTICATION_NONE = 3; 133*d5c09012SAndroid Build Coastguard Worker } 134*d5c09012SAndroid Build Coastguard Worker 135*d5c09012SAndroid Build Coastguard Worker enum PrivilegesRequired { 136*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_UNSPECIFIED = 0; 137*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_NONE = 1; 138*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_LOW = 2; 139*d5c09012SAndroid Build Coastguard Worker PRIVILEGES_REQUIRED_HIGH = 3; 140*d5c09012SAndroid Build Coastguard Worker } 141*d5c09012SAndroid Build Coastguard Worker 142*d5c09012SAndroid Build Coastguard Worker enum UserInteraction { 143*d5c09012SAndroid Build Coastguard Worker USER_INTERACTION_UNSPECIFIED = 0; 144*d5c09012SAndroid Build Coastguard Worker USER_INTERACTION_NONE = 1; 145*d5c09012SAndroid Build Coastguard Worker USER_INTERACTION_REQUIRED = 2; 146*d5c09012SAndroid Build Coastguard Worker } 147*d5c09012SAndroid Build Coastguard Worker 148*d5c09012SAndroid Build Coastguard Worker enum Scope { 149*d5c09012SAndroid Build Coastguard Worker SCOPE_UNSPECIFIED = 0; 150*d5c09012SAndroid Build Coastguard Worker SCOPE_UNCHANGED = 1; 151*d5c09012SAndroid Build Coastguard Worker SCOPE_CHANGED = 2; 152*d5c09012SAndroid Build Coastguard Worker } 153*d5c09012SAndroid Build Coastguard Worker 154*d5c09012SAndroid Build Coastguard Worker enum Impact { 155*d5c09012SAndroid Build Coastguard Worker IMPACT_UNSPECIFIED = 0; 156*d5c09012SAndroid Build Coastguard Worker IMPACT_HIGH = 1; 157*d5c09012SAndroid Build Coastguard Worker IMPACT_LOW = 2; 158*d5c09012SAndroid Build Coastguard Worker IMPACT_NONE = 3; 159*d5c09012SAndroid Build Coastguard Worker IMPACT_PARTIAL = 4; 160*d5c09012SAndroid Build Coastguard Worker IMPACT_COMPLETE = 5; 161*d5c09012SAndroid Build Coastguard Worker } 162*d5c09012SAndroid Build Coastguard Worker} 163*d5c09012SAndroid Build Coastguard Worker 164*d5c09012SAndroid Build Coastguard Worker// CVSS Version. 165*d5c09012SAndroid Build Coastguard Workerenum CVSSVersion { 166*d5c09012SAndroid Build Coastguard Worker CVSS_VERSION_UNSPECIFIED = 0; 167*d5c09012SAndroid Build Coastguard Worker CVSS_VERSION_2 = 1; 168*d5c09012SAndroid Build Coastguard Worker CVSS_VERSION_3 = 2; 169*d5c09012SAndroid Build Coastguard Worker} 170