l3_centralizedattackdetector.proto 2.34 KB
Newer Older
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

ldemarcosm's avatar
ldemarcosm committed
syntax = "proto3";
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
package l3_centralizedattackdetector;
ldemarcosm's avatar
ldemarcosm committed

import "context.proto";

ldemarcosm's avatar
ldemarcosm committed
service L3Centralizedattackdetector {
  // Analyze single input to the ML model in the CAD component
  rpc AnalyzeConnectionStatistics (L3CentralizedattackdetectorMetrics) returns (StatusMessage) {}
  // Analyze a batch of inputs to the ML model in the CAD component
  rpc AnalyzeBatchConnectionStatistics (L3CentralizedattackdetectorBatchInput) returns (StatusMessage) {}
  // Get the list of features used by the ML model in the CAD component
  rpc GetFeaturesIds (context.Empty) returns (AutoFeatures) {}
Lluis Gifre Renom's avatar
Lluis Gifre Renom committed
  // Sets the list of attack IPs in order to be used to compute the prediction accuracy of the
  // ML model in the CAD component in case of testing the ML model.
  rpc SetAttackIPs (AttackIPs) returns (context.Empty) {}
message Feature {
	float feature = 1;
}

message L3CentralizedattackdetectorMetrics {
delacal's avatar
delacal committed
	// Input sent by the DAD compoenent to the ML model integrated in the CAD component.
ldemarcosm's avatar
ldemarcosm committed

	// Machine learning model features
	repeated Feature features = 1;	
	ConnectionMetadata connection_metadata = 2;
ldemarcosm's avatar
ldemarcosm committed

message ConnectionMetadata {
	string ip_o = 1;
	string port_o = 2;
	string ip_d = 3;
	string port_d = 4;
	string flow_id = 5;
	context.ServiceId service_id = 6;
	context.EndPointId endpoint_id = 7;
	string protocol = 8;
	float time_start = 9;
	float time_end = 10;
// Collection of values representing ML features
// Collection (batch) of model inputs that will be sent to the model
message L3CentralizedattackdetectorBatchInput {
delacal's avatar
delacal committed
	repeated L3CentralizedattackdetectorMetrics metrics = 1;
delacal's avatar
delacal committed
	string message = 1;
ldemarcosm's avatar
ldemarcosm committed
}

message AttackIPs {
	repeated string attack_ips = 1;
}