5 PREGUNTAS

PREGUNTA 1: ¿CUÁL ES LA PROPORCIÓN DE INCIDENTES POR TIPO DE MALWARE?

Se realizó este analisis para evaluar los distintos tipos de malware detectados en un periodo de tiempo establecido de 10 semanas. El gráfico nos muestra que la mayor cantidad de virus detectados fueron del tipo Adware, seguido por el Trojan. See Figure 5.1.

Pie_tipo=Informe_de_virus%>%select(`Object type`)%>%group_by(`Object type`)%>%summarise(n_incidencias = n())
pie3D(Pie_tipo$n_incidencias,labels = Pie_tipo$`Object type`,explode = 0.2,border = "white", main = "Proporcion de inc. por tipo de malware")
Gráfico Circular Malware.

Figure 5.1: Proporcion de inc. por tipo de malware!

PREGUNTA 2: ¿QUÉ DISPOSITIVOS SON LOS MÁS INFECTADOS Y DE QUÉ?

Según el análisis realizado, se obtuvo como resultado los siguiente: los dispositivos dispositivo_1022 y dispositivo_1043 resultaron ser los más infectados. En cada uno se detectó más de 600 y más de 300 incidentes de adware respectivamente. Y en el dispositivo dispositivos_1048 se detecto mas de 100 incidentes de troyano

LÍNEAS DE CÓDIGO

Se creo un nuevo dataframe llamado dis_masinfectados utilizando el dataframe Informe_de_virus del cual solo se seleccionó las columnas Device y Object Type, agrupando, sumarizando y ordenando de mayor a menor cada uno de sus filas, para finalmente solo mostrar los primeros 15 elementos.

Para la gráfica se hizo uso del paguete ggplot, además de las columnas Device , n_incidencias , Object type del dataframe dis_masinfectados. See Figure 5.2.

(dis_masinfectados=Informe_de_virus%>%select(Device,`Object type`)%>%group_by(Device,`Object type`)%>%summarise(n_incidencias = n())%>%arrange(desc(n_incidencias))%>%head(5))
## `summarise()` has grouped output by 'Device'. You can override using the `.groups` argument.
## # A tibble: 5 × 3
## # Groups:   Device [5]
##   Device            `Object type` n_incidencias
##   <chr>             <chr>                 <int>
## 1 dispositivos_1022 AdWare                  609
## 2 dispositivos_1043 AdWare                  348
## 3 dispositivos_1013 AdWare                  158
## 4 dispositivos_1048 Trojan                  116
## 5 dispositivos_1053 Trojan                   45
ggplot(dis_masinfectados, aes(x=Device, y=n_incidencias,color=`Object type`)) + geom_count(size=7)
Gráfico de puntos.

Figure 5.2: # Incidencias por dispositivos!

PREGUNTA 3: ¿CUALES SON LOS USUARIOS CON MAYOR NUMERO DE INCIDENTES?

Los usuarios internos negligentes son la causa principal de la mayoría de los incidentes en una empresa. De acuerdo a las estadísticas el 56% de las amenazas internas notificadas son consecuencia de la acción de un empleado o proveedor descuidado, y normalmente experimentan un costo alto por incidente. Esto puede ser resultado de una variedad de factores, como no asegurarse de que los dispositivos están protegidos, no seguir la política de seguridad de la empresa u olvidar instalar parches y actualizaciones.

Por otro lado existen usuarios internos maliciosos que son personas autorizadas que utilizan su acceso a los datos para actividades dañinas, poco éticas o ilegales. Dado que los usuarios tienen cada vez más acceso a la información para mejorar su productividad ,son más difíciles de detectar que los atacantes externos y los hackers.

Realizar un análisis de los usuarios con mayor cantidad de incidentes nos ayudará a focalizar el tipo de usuario y encontrar algún patrón tal como tipo de dispositivo, horarios, tipo de malware etc, para lograr este análisis hemos ejecutado los siguientes comandos:

Que nos permite sumarizar y ordenar las filas de nuestro dataset de acuerdo a la columna de incidentes. See Figure 5.3.

(devuserinfectados=Informe_de_virus%>%select(Device,`Object type`,Action,Details,Account)%>%group_by(Device,`Object type`,Action,Account)%>%summarise(n_incidencias = n())%>%arrange(desc(n_incidencias))%>%head(4))
## `summarise()` has grouped output by 'Device', 'Object type', 'Action'. You can override using the `.groups` argument.
## # A tibble: 4 × 5
## # Groups:   Device, Object type, Action [4]
##   Device            `Object type` Action       Account                     n_incidencias
##   <chr>             <chr>         <chr>        <chr>                               <int>
## 1 dispositivos_1022 AdWare        Bloqueado    "PC-AB935JU\\​mipyme"                  609
## 2 dispositivos_1043 AdWare        Bloqueado    "dispositivos_1043\\​mipyme"           348
## 3 dispositivos_1013 AdWare        Bloqueado    "minegocio\\usuarioc"                 158
## 4 dispositivos_1048 Trojan        Desinfectado "dispositivos_1048\\​mipyme"           116
ggplot(devuserinfectados, aes(x=Account, y=n_incidencias,color=`Object type`)) + geom_count(size=7)
Gráfico de puntos.

Figure 5.3: # Incidencias por usuario!

PREGUNTA 4: ¿CUÁL ES EL MAYOR NUMERO DE INCIDENTES POR DÍA?

Permite determinar el número de incidentes diarios y visualizar el mayor pico generado. See Figure 5.4.

tiempo_detectado=Informe_de_virus%>%select(`Detected at`,Device,Account,`Object type`,`Path to file`,Details,Action)
fecha_tiempo=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM")
ft=as.data.frame(fecha_tiempo)
ft$fecha=date(ft$fecha_tiempo)
ft$tiempo=format(ft$fecha_tiempo,format = "%H:%M")

qplot(data=ft, x=ft$fecha)
## Warning: Use of `ft$fecha` is discouraged. Use `fecha` instead.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Gráfico de puntos.

Figure 5.4: # Incidencias por días!

PREGUNTA 5: ¿CUÁL ES EL NÚMERO DE INCIDENTES QUE SE PRESENTARAN EN LOS DÍAS CERCANOS AL 05/05?

De la grafica podemos concluir que el numero de incidentes por hora producidos entre el 27/04 y el 05/05 no pasan de cinco.

Para lo cual se utilizó las siguientes líneas de código:

En primer lugar se utiliza el dataframe tiempo_detectado, se crea la variable fecha_hora que contendrá una variable en un solo formato la fecha y hora, para ello se utiliza la función dmy de lubridate. Luego se utilizará las funciones filter, group by y summarise para seleccionar, agrupar y realizar un conteo en el rango de fechas de interés.

Cuando se ejecuta las líneas de código anteriores, se puede observar que solo se muestran los resultados de las horas en los que detecto un incidente, si en una determinada hora de un día no se detecto un incidente este no se mostrara. Para rellenar esas horas con ceros se ejecuta el siguiente código.

Para unir las tablas tseleccion con la tabla horas_completas se utilizará la función LEFT_JOIN.

Para la gráfica se hará uso del paquete ggplot y el dataframe tseleccion_hora. See Figure 5.5.

tiempo_detectado=Informe_de_virus%>%select(`Detected at`,Device,Account,`Object type`,`Path to file`,Details,Action)
 
##glimpse(tiempo_detectado)
 
fecha_tiempo=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM")
 
ft=as.data.frame(fecha_tiempo)
ft$fecha=date(ft$fecha_tiempo)
 
ft$tiempo=format(ft$fecha_tiempo,format = "%H:%M")

tseleccion=tiempo_detectado%>%mutate(fecha_hora=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM"))%>%
  filter(fecha_hora>= as.Date('2022-04-27'),
         fecha_hora<= as.Date('2022-05-05'))%>%
  group_by(horas=floor_date(fecha_hora,unit = 'hour'))%>%
  summarise(conteo=n())

horas_completas=data.frame(
  horas=seq(floor_date(min(tseleccion$horas),unit = 'hour'),
            floor_date(max(tseleccion$horas),unit = 'hour'),
            by='hour'))

tseleccion_hora=horas_completas%>%group_by(horas_redondeadas=floor_date(horas,unit = 'hour'))%>%
  left_join(tseleccion)%>%
  mutate(conteo= ifelse(is.na(conteo),0,conteo))
## Joining, by = "horas"
ggplot(data=tseleccion_hora,aes(x=horas,y=conteo)) + geom_line()
Gráfico de puntos.

Figure 5.5: # Incidencias por horas!

REPRESENTACIÓN DINÁMICA PREGUNTA 5: NÚMERO DE INCIDENTES POR HORA QUE SE HA PRESENTADO EN EL TIEMPO

Se coloca una gráfico dinámico que representa el número de incidente por hora.

Se coloca un gráfico de predicción basado en el pronostico ARIMA, el cuál describe un modelo autoregresivo integrado de media móvil estacional que hace regresión sobre si mismo, es decir que va a predecir, en el sentido de la regresión, lo que pasa hoy utilizando como predictor lo que pasó ayer por ejemplo.

#####comprobando la prediccion 

tseleccion10=tiempo_detectado%>%mutate(fecha_hora10=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM"))%>%
  group_by(horas10=floor_date(fecha_hora10,unit = 'hour'))%>%
  summarise(conteo10=n())

## rellenando lo ceros
horas_completas10=data.frame(
  horas10=seq(floor_date(min(tseleccion10$horas10),unit = 'hour'),
             floor_date(max(tseleccion10$horas10),unit = 'hour'),
             by='hour'))

##left join con horas
tseleccion_hora10=horas_completas10%>%group_by(horas_redondeadas10=floor_date(horas10,unit = 'hour'))%>%
  left_join(tseleccion10)%>%
  mutate(conteo10= ifelse(is.na(conteo10),0,conteo10))
## Joining, by = "horas10"
##grafica inicial
ggplot(data=tseleccion_hora10,
       aes(x=horas10,
           y=conteo10)) +
  geom_line() + transition_reveal(horas10)
## 
Rendering [=>---------------------------------------------------------------------------------------------------------] at 8.2 fps ~ eta: 12s
Rendering [==>--------------------------------------------------------------------------------------------------------] at 7.5 fps ~ eta: 13s
Rendering [===>---------------------------------------------------------------------------------------------------------] at 7 fps ~ eta: 14s
Rendering [====>------------------------------------------------------------------------------------------------------] at 6.9 fps ~ eta: 14s
Rendering [=====>-----------------------------------------------------------------------------------------------------] at 6.7 fps ~ eta: 14s
Rendering [======>----------------------------------------------------------------------------------------------------] at 6.6 fps ~ eta: 14s
Rendering [========>--------------------------------------------------------------------------------------------------] at 6.4 fps ~ eta: 14s
Rendering [=========>-------------------------------------------------------------------------------------------------] at 6.4 fps ~ eta: 14s
Rendering [==========>------------------------------------------------------------------------------------------------] at 6.4 fps ~ eta: 14s
Rendering [===========>-----------------------------------------------------------------------------------------------] at 6.3 fps ~ eta: 14s
Rendering [============>----------------------------------------------------------------------------------------------] at 6.3 fps ~ eta: 14s
Rendering [=============>---------------------------------------------------------------------------------------------] at 6.3 fps ~ eta: 14s
Rendering [==============>--------------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 14s
Rendering [===============>-------------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 14s
Rendering [================>------------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 14s
Rendering [=================>-----------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 13s
Rendering [==================>----------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 13s
Rendering [===================>---------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 13s
Rendering [====================>--------------------------------------------------------------------------------------] at 6.2 fps ~ eta: 13s
Rendering [=====================>-------------------------------------------------------------------------------------] at 5.9 fps ~ eta: 13s
Rendering [=======================>-----------------------------------------------------------------------------------] at 5.9 fps ~ eta: 13s
Rendering [========================>----------------------------------------------------------------------------------] at 5.9 fps ~ eta: 13s
Rendering [=========================>---------------------------------------------------------------------------------] at 5.9 fps ~ eta: 13s
Rendering [==========================>--------------------------------------------------------------------------------] at 5.8 fps ~ eta: 13s
Rendering [===========================>-------------------------------------------------------------------------------] at 5.7 fps ~ eta: 13s
Rendering [============================>------------------------------------------------------------------------------] at 5.7 fps ~ eta: 13s
Rendering [=============================>-----------------------------------------------------------------------------] at 5.7 fps ~ eta: 13s
Rendering [==============================>----------------------------------------------------------------------------] at 5.7 fps ~ eta: 12s
Rendering [===============================>---------------------------------------------------------------------------] at 5.7 fps ~ eta: 12s
Rendering [================================>--------------------------------------------------------------------------] at 5.7 fps ~ eta: 12s
Rendering [=================================>-------------------------------------------------------------------------] at 5.7 fps ~ eta: 12s
Rendering [==================================>------------------------------------------------------------------------] at 5.7 fps ~ eta: 12s
Rendering [===================================>-----------------------------------------------------------------------] at 5.7 fps ~ eta: 12s
Rendering [====================================>----------------------------------------------------------------------] at 5.7 fps ~ eta: 11s
Rendering [======================================>--------------------------------------------------------------------] at 5.7 fps ~ eta: 11s
Rendering [=======================================>-------------------------------------------------------------------] at 5.7 fps ~ eta: 11s
Rendering [========================================>------------------------------------------------------------------] at 5.7 fps ~ eta: 11s
Rendering [=========================================>-----------------------------------------------------------------] at 5.8 fps ~ eta: 11s
Rendering [==========================================>----------------------------------------------------------------] at 5.8 fps ~ eta: 10s
Rendering [===========================================>---------------------------------------------------------------] at 5.8 fps ~ eta: 10s
Rendering [============================================>--------------------------------------------------------------] at 5.8 fps ~ eta: 10s
Rendering [=============================================>-------------------------------------------------------------] at 5.8 fps ~ eta: 10s
Rendering [==============================================>------------------------------------------------------------] at 5.8 fps ~ eta: 10s
Rendering [===============================================>-----------------------------------------------------------] at 5.8 fps ~ eta: 10s
Rendering [================================================>----------------------------------------------------------] at 5.8 fps ~ eta:  9s
Rendering [=================================================>---------------------------------------------------------] at 5.8 fps ~ eta:  9s
Rendering [==================================================>--------------------------------------------------------] at 5.8 fps ~ eta:  9s
Rendering [===================================================>-------------------------------------------------------] at 5.8 fps ~ eta:  9s
Rendering [=====================================================>-----------------------------------------------------] at 5.8 fps ~ eta:  9s
Rendering [======================================================>----------------------------------------------------] at 5.8 fps ~ eta:  8s
Rendering [=======================================================>---------------------------------------------------] at 5.8 fps ~ eta:  8s
Rendering [========================================================>--------------------------------------------------] at 5.8 fps ~ eta:  8s
Rendering [=========================================================>-------------------------------------------------] at 5.8 fps ~ eta:  8s
Rendering [==========================================================>------------------------------------------------] at 5.8 fps ~ eta:  8s
Rendering [===========================================================>-----------------------------------------------] at 5.8 fps ~ eta:  8s
Rendering [============================================================>----------------------------------------------] at 5.8 fps ~ eta:  7s
Rendering [=============================================================>---------------------------------------------] at 5.8 fps ~ eta:  7s
Rendering [==============================================================>--------------------------------------------] at 5.8 fps ~ eta:  7s
Rendering [===============================================================>-------------------------------------------] at 5.7 fps ~ eta:  7s
Rendering [================================================================>------------------------------------------] at 5.6 fps ~ eta:  7s
Rendering [=================================================================>-----------------------------------------] at 5.5 fps ~ eta:  7s
Rendering [==================================================================>----------------------------------------] at 5.5 fps ~ eta:  7s
Rendering [===================================================================>---------------------------------------] at 5.5 fps ~ eta:  7s
Rendering [=====================================================================>-------------------------------------] at 5.4 fps ~ eta:  6s
Rendering [======================================================================>------------------------------------] at 5.4 fps ~ eta:  6s
Rendering [=======================================================================>-----------------------------------] at 5.4 fps ~ eta:  6s
Rendering [========================================================================>----------------------------------] at 5.4 fps ~ eta:  6s
Rendering [=========================================================================>---------------------------------] at 5.4 fps ~ eta:  6s
Rendering [==========================================================================>--------------------------------] at 5.4 fps ~ eta:  6s
Rendering [===========================================================================>-------------------------------] at 5.4 fps ~ eta:  5s
Rendering [============================================================================>------------------------------] at 5.4 fps ~ eta:  5s
Rendering [=============================================================================>-----------------------------] at 5.4 fps ~ eta:  5s
Rendering [==============================================================================>----------------------------] at 5.3 fps ~ eta:  5s
Rendering [===============================================================================>---------------------------] at 5.3 fps ~ eta:  5s
Rendering [================================================================================>--------------------------] at 5.3 fps ~ eta:  4s
Rendering [=================================================================================>-------------------------] at 5.3 fps ~ eta:  4s
Rendering [==================================================================================>------------------------] at 5.3 fps ~ eta:  4s
Rendering [====================================================================================>----------------------] at 5.3 fps ~ eta:  4s
Rendering [=====================================================================================>---------------------] at 5.3 fps ~ eta:  4s
Rendering [======================================================================================>--------------------] at 5.2 fps ~ eta:  4s
Rendering [=======================================================================================>-------------------] at 5.2 fps ~ eta:  3s
Rendering [========================================================================================>------------------] at 5.1 fps ~ eta:  3s
Rendering [===========================================================================================>-----------------] at 5 fps ~ eta:  3s
Rendering [============================================================================================>----------------] at 5 fps ~ eta:  3s
Rendering [===========================================================================================>---------------] at 4.9 fps ~ eta:  3s
Rendering [==============================================================================================>--------------] at 5 fps ~ eta:  3s
Rendering [=============================================================================================>-------------] at 4.9 fps ~ eta:  2s
Rendering [================================================================================================>------------] at 5 fps ~ eta:  2s
Rendering [=================================================================================================>-----------] at 5 fps ~ eta:  2s
Rendering [================================================================================================>----------] at 4.9 fps ~ eta:  2s
Rendering [=================================================================================================>---------] at 4.9 fps ~ eta:  2s
Rendering [===================================================================================================>-------] at 4.9 fps ~ eta:  1s
Rendering [====================================================================================================>------] at 4.9 fps ~ eta:  1s
Rendering [=====================================================================================================>-----] at 4.9 fps ~ eta:  1s
Rendering [======================================================================================================>----] at 4.9 fps ~ eta:  1s
Rendering [=======================================================================================================>---] at 4.9 fps ~ eta:  1s
Rendering [========================================================================================================>--] at 4.9 fps ~ eta:  0s
Rendering [=========================================================================================================>-] at 4.9 fps ~ eta:  0s
Rendering [===========================================================================================================] at 4.9 fps ~ eta:  0s
                                                                                                                                             
Gráfico de puntos.

Figure 5.6: # Eventos por horas!

##Creando el objeto ts para el modelo
##Realizando la ejecución del siguiente código, se puede concluir que el numero de incidentes para los días cercanos al día 05/05 no llegaran a tres.
conteo_ts=ts(tseleccion_hora$conteo,
             start = 1,
             frequency = 24)
 

ajuste=auto.arima(y=conteo_ts)
 
summary(ajuste)
## Series: conteo_ts 
## ARIMA(1,0,0)(0,0,1)[24] with non-zero mean 
## 
## Coefficients:
##          ar1    sma1    mean
##       0.2528  0.1638  0.5292
## s.e.  0.0723  0.0786  0.0996
## 
## sigma^2 = 0.8239:  log likelihood = -251.37
## AIC=510.73   AICc=510.95   BIC=523.74
## 
## Training set error measures:
##                        ME      RMSE      MAE  MPE MAPE     MASE        ACF1
## Training set -0.002830162 0.9005324 0.648376 -Inf  Inf 1.021498 -0.01584617
predicciones=forecast(ajuste)
 
min(predicciones[['lower']])
## [1] -1.436072
max(predicciones[['upper']])
## [1] 2.784813
##grafica de predicciones
p_predict=autoplot(predicciones)
 
p_predict
Gráfico de puntos.

Figure 5.7: # Eventos por horas!