• No se han encontrado resultados

 3.3.1 ATAQUE DE DEAUTENTICACIÓN 

6.  DISEÑO DE LAS PRUEBAS 

6.3.  ANÁLISIS MULTIVARIANTE 

Una  vez  se  obtienen  las  observaciones  de  las  distintas  variables,  es  momento  de  analizar  el  gráfico de dispersión, y realizar un estudio de las dependencias con PCA, MEDA y oMEDA. Este  análisis se lleva a cabo con la herramienta Matlab y con una serie de códigos que se presentan  en el anexo x.  

Para poder realizar el estudio con PCA primero se hace un pre‐procesamiento a los datos para  que  queden  centrados    en  la  media,  para  lo  que  se  usa  el  código  “preprocess2D.m”.  De  la  ejecución de dicho código se obtienen los datos pre‐procesados con los que se puede realizar  el  estudio  de  dependencias.  En  primer  lugar  se  observan  los  gráficos  de  dispersión  con  el  código  “plot_scores_pca.m”  que  muestra  un  gráfico  como  el  que  se  ha  explicado  anteriormente.  Si  no  hay  una  diferenciación  clara  en  el  gráfico  de  los  distintos  grupos  de  tráficos  quiere  decir  que  las  variables  utilizadas  no  tienen  poder  discriminativo,  por  lo  que  habrá  que  rediseñar  el  conjunto  de  variables  capturadas.  Si  se  obtienen  los  tráficos  bien  diferenciados se puede proceder con el estudio de MEDA. Para obtener el diagrama MEDA se  usa  el  código  “meda_pca.m”  al  que  hay  que  introducirle  como  argumento  los  datos  pre‐ procesados,  las  componentes  principales  a  tener  en  cuenta,  el  tipo  de  pre‐procesamiento  utilizado, un umbral para la discretización de la matriz MEDA, el tipo de gráfico a mostrar y las  variables.  El  tipo  de  gráfico  a  mostrar  podrá  ser  en  niveles  de  grises  dependiendo  si  existe  mayor  o  menor  dependencia  o  también  puede  ser  directamente  discretizado  de  forma  que  aparezca blanco donde no hay dependencia y negro donde sí la hay. En el gráfico obtenido con  este código se pueden obtener resultados para la compresión del experimento 

Finalmente, una vez se ha caracterizado el experimento, se puede continuar con oMEDA, cuyo  código es “omeda_pca.m”, de forma que se realice un estudio concreto de algún aspecto de  relevancia  para  el  experimento.  En  el  caso  de  este  proyecto  será  interesante  observar  qué  variables  se  incrementan  desde  el  tráfico  normal  al  producido  con  un  ataque,  de  forma  que  quede bien claro la variable a tener en cuenta. También se puede ver la tendencia general de  alguna agrupación en concreto o la comparación entre dos tipos de tráficos de ataques. Para la  ejecución de oMEDA, se introduce por argumento un vector con el que se dan distintos pesos  a  las  observaciones  dependiendo  desde  donde  hacia  dónde  se  quiere  ver  la  variación  en  las  variables. Por ejemplo, si se quiere ver lo que cambia del tráfico normal al tráfico del ataque 1,  se asignaría ‐1 a las observaciones de tráfico normal, 1 a las observaciones de tráfico de ataque  1  y  0  al  resto  de  observaciones.  Al  ejecutarlo  se  obtiene  el  diagrama  de  bandas  aclaratorio.   Todos  los  códigos  correspondientes  tanto  al  análisis  PCA,  MEDA  y  oMEDA  pertenecen  a  la  “Exploratory Data Analysis Toolbox” de Matlab [9]”.  

 

6.4. CLASIFICADORES  

Una  vez  hemos  explorado  los  datos  y  considerado  que  las  variables  capturadas  tienen  información discriminativa, se hace uso de una serie de códigos de Matlab para la aplicación  de los clasificadores explicados anteriormente en este documento. A continuación se muestra  el  procedimiento  a  seguir  en  cada  caso  dependiendo  del  clasificador  a  utilizar.  Primero  se 

realiza  un  entrenamiento  del  clasificador  procediendo  después  a  clasificar  nuevas  observaciones de la red. Una vez clasificadas las nuevas observaciones se realiza un estudio del  error  producido  por  cada  uno  de  los  clasificadores  pudiendo  así  comparar  la  efectividad  de  unos y otros. La métrica del error es bastante sencilla pero efectiva y consiste en realizar una  comparación entre la clase asignada por el clasificador a la nueva observación y la clase que  debería  haber sido asignada. Se suman todos los casos en los que el  clasificador haya hecho  bien  su  trabajo  y  se  divide  por  el  número  total  de  nuevas  observaciones  clasificadas,  obteniendo  así  un  porcentaje  de  error  del  total.  Siendo  M  el  número  total  de  nuevas  observaciones a clasificar y C el número de nuevas observaciones bien clasificadas, el cálculo  del error se realiza con la siguiente expresión: 

  %   100 

Para  el  algoritmo  del  vecino  más  próximo  y  para  el  del  K  vecinos  más  próximos  se  utiliza  el  mismo código Matlab “knnclassify.m” (códigos correspondientes a los algoritmos basados en  vecindad en el anexo III). A este código hay que introducir por argumento tanto los datos para  la  calibración  (observaciones  y  etiquetas  indicando  la  clase  a  la  que  pertenecen)  como  el  número  K  y  las  nuevas  observaciones  a  ser  clasificadas  con  lo  que  se  obtiene  un  vector  que  contiene las clases correspondientes a las nuevas observaciones clasificadas. Para la distinción  de clases se va a utilizar el valor 1 para el tráfico normal, 2 para el tráfico correspondiente al  ataque de deautenticación, 3 para el de re‐inyección de peticiones ARP y 4 para el de man‐in‐ the‐middle.  Con  este  mismo  código  se  puede  realizar  un  estudio  y  comparación  de  los  dos  algoritmos  simplemente  cambiando  los  valores  de  K.  Para  K=1  se  estará  trabajando  con  el  algoritmo  del  vecino  más  próximo  y  con  un  valor  de  K  superior  se  estará  trabajando  con  el  algoritmo  de  los  K  vecinos  más  próximos  por  votación.  Para  el  caso  de  los  K  vecinos  más  próximos se debería dividir las observaciones en dos grupos, uno para comprobar qué K es el  más  adecuado  para  este  experimento  y  otro  para  el  entrenamiento  del  clasificador.  La  importancia de ver qué valor de K es el óptimo para este experimento es fundamental porque  la efectividad de la clasificación va a depender directamente de la elección de dicho valor y no  hay  un  valor  generalizado,  ya  que  dependerá  de  la  distribución  de  las  observaciones.  Se  utilizará un conjunto de observaciones para el entrenamiento del clasificador. A continuación  se  tomará  otro  conjunto  de  observaciones  con  las  que  se  evaluará  el  valor  óptimo  de  K  al  realizar la clasificación gracias al estudio del error. Finalmente se procederá a la clasificación de  una  tercera  tanda  de  observaciones,  con  las  que,  usando  el  valor  óptimo  obtenido  de  K  se  llegará al cálculo final del error. 

En  el  caso  del  árbol  de  clasificación  (códigos  correspondientes  en  el  anexo  IV)  primero  se  utiliza un comando para el entrenamiento del clasificador obteniendo así el árbol y después se  hace uso de otro para la clasificación. El código para el entrenamiento es “classregtree.m” y el  de clasificación “eval.m”, que usa el árbol obtenido por el anterior código para la clasificación  de las nuevas observaciones. 

Para  el  análisis  discriminante  lineal  (códigos  correspondientes  en  el  anexo  VI)  se  usa  “classify.m”  indicando  “linear”  entre  los  argumentos,  y  para  el  cuadrático  simplemente  se  cambia  “linear”  por  “quadratic”.  Si  el  clasificador  a  utilizar  es  el  bayesiano,  la  función  es  “NaiveBayes.fit.m”  obteniendo  así  la  red  de  Bayes  (anexo  VII)  y  evaluándola  posteriormente 

para las nuevas observaciones con la función “predict.m”. Si el clasificador a utilizar es pls‐da,  se utiliza más de un código Matlab. El código para la creación del modelo pls‐da se encuentra  bajo el nombre de “clasiPlsda.m” (anexo V) y de ese código se obtiene el modelo pls‐da de los  datos  de  entrenamiento.  Para  poder  evaluar  las  nuevas  observaciones  obteniendo  la  clasificación se usa el código “plspred.m” (perteneciente a la  toolbox PLS‐DA [11])al que hay  que  introducir  por  argumento  las  nuevas  observaciones    y  el  modelo  pls‐da  obtenido  con  la  función  anterior.  A  la  clasificación  obtenida  se  le  puede  calcular  el  error  pero  de  forma  adicional  se  puede  introducir  como  argumento  a  la  función  “plspred.m”  las  clases  correspondientes de las nuevas observaciones y el código calcula el porcentaje de éxito, por lo  que el de error será 100‐% (éxito).                                             

               

CAPÍTULO III 

 PRUEBAS 

                           

                 

Una  vez  realizadas  todas  las  pruebas  explicadas  en  el  capítulo  anterior  se  procede  a  la  presentación de los resultados y conclusiones obtenidas con las correspondientes correcciones  a lo largo del proceso.  

 

Documento similar