From bec9ad8d1d11f4e29389ec4792973e5d3a77aa92 Mon Sep 17 00:00:00 2001 From: luiscal4a <l.delacal@alumnos.upm.es> Date: Fri, 10 Feb 2023 13:15:10 +0100 Subject: [PATCH] Obtaining ML features through ONNX file metadata Modified CAD component to send ML features to DAD --- ...alizedattackdetectorServiceServicerImpl.py | 34 +++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py index 9017bec69..d694ac7df 100644 --- a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py +++ b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py @@ -22,7 +22,7 @@ import onnxruntime as rt import logging import time -from common.proto.l3_centralizedattackdetector_pb2 import Empty +from common.proto.l3_centralizedattackdetector_pb2 import Empty, AutoFeatures from common.proto.l3_centralizedattackdetector_pb2_grpc import L3CentralizedattackdetectorServicer from common.proto.l3_attackmitigator_pb2 import L3AttackmitigatorOutput @@ -59,11 +59,10 @@ class l3_centralizedattackdetectorServiceServicerImpl(L3Centralizedattackdetecto self.inference_results = [] self.model = rt.InferenceSession(MODEL_FILE) + # Load features metadata from onnx file self.meta = list(self.model.get_modelmeta().custom_metadata_map.values()) - self.meta = [int(x) for x in self.meta] + self.meta = [float(x) for x in self.meta] self.meta.sort() - LOGGER.debug(self.meta) - LOGGER.debug("Prueba onnx") self.input_name = self.model.get_inputs()[0].name self.label_name = self.model.get_outputs()[0].name @@ -455,23 +454,6 @@ class l3_centralizedattackdetectorServiceServicerImpl(L3Centralizedattackdetecto """ def make_inference(self, request): - '''x_data = np.array( - [ - [ - request.c_pkts_all, - request.c_ack_cnt, - request.c_bytes_uniq, - request.c_pkts_data, - request.c_bytes_all, - request.s_pkts_all, - request.s_ack_cnt, - request.s_bytes_uniq, - request.s_pkts_data, - request.s_bytes_all, - ] - ] - )''' - x_data = np.array( [ [feature.feature for feature in request.features] @@ -643,3 +625,13 @@ class l3_centralizedattackdetectorServiceServicerImpl(L3Centralizedattackdetecto logging.info("No attack detected") return Empty(message="Ok, information received (no attack detected)") + + """ + Send features allocated in the metadata of the onnx file to the DAD + -output: ONNX metadata as a list of integers + """ + def SendFeatures(self, request : Empty, context): + features = AutoFeatures() + for feature in self.meta: + features.autoFeatures.append(feature) + return features \ No newline at end of file -- GitLab