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.
=Informe_de_virus%>%select(`Object type`)%>%group_by(`Object type`)%>%summarise(n_incidencias = n())
Pie_tipopie3D(Pie_tipo$n_incidencias,labels = Pie_tipo$`Object type`,explode = 0.2,border = "white", main = "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)
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)
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.
=Informe_de_virus%>%select(`Detected at`,Device,Account,`Object type`,`Path to file`,Details,Action)
tiempo_detectado=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM")
fecha_tiempo=as.data.frame(fecha_tiempo)
ft$fecha=date(ft$fecha_tiempo)
ft$tiempo=format(ft$fecha_tiempo,format = "%H:%M")
ft
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`.
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.
=Informe_de_virus%>%select(`Detected at`,Device,Account,`Object type`,`Path to file`,Details,Action)
tiempo_detectado
##glimpse(tiempo_detectado)
=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM")
fecha_tiempo
=as.data.frame(fecha_tiempo)
ft$fecha=date(ft$fecha_tiempo)
ft
$tiempo=format(ft$fecha_tiempo,format = "%H:%M")
ft
=tiempo_detectado%>%mutate(fecha_hora=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM"))%>%
tseleccionfilter(fecha_hora>= as.Date('2022-04-27'),
<= as.Date('2022-05-05'))%>%
fecha_horagroup_by(horas=floor_date(fecha_hora,unit = 'hour'))%>%
summarise(conteo=n())
=data.frame(
horas_completashoras=seq(floor_date(min(tseleccion$horas),unit = 'hour'),
floor_date(max(tseleccion$horas),unit = 'hour'),
by='hour'))
=horas_completas%>%group_by(horas_redondeadas=floor_date(horas,unit = 'hour'))%>%
tseleccion_horaleft_join(tseleccion)%>%
mutate(conteo= ifelse(is.na(conteo),0,conteo))
## Joining, by = "horas"
ggplot(data=tseleccion_hora,aes(x=horas,y=conteo)) + geom_line()
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
=tiempo_detectado%>%mutate(fecha_hora10=parse_date_time(tiempo_detectado$`Detected at`,"dmy HM"))%>%
tseleccion10group_by(horas10=floor_date(fecha_hora10,unit = 'hour'))%>%
summarise(conteo10=n())
## rellenando lo ceros
=data.frame(
horas_completas10horas10=seq(floor_date(min(tseleccion10$horas10),unit = 'hour'),
floor_date(max(tseleccion10$horas10),unit = 'hour'),
by='hour'))
##left join con horas
=horas_completas10%>%group_by(horas_redondeadas10=floor_date(horas10,unit = 'hour'))%>%
tseleccion_hora10left_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
##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.
=ts(tseleccion_hora$conteo,
conteo_tsstart = 1,
frequency = 24)
=auto.arima(y=conteo_ts)
ajuste
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
=forecast(ajuste)
predicciones
min(predicciones[['lower']])
## [1] -1.436072
max(predicciones[['upper']])
## [1] 2.784813
##grafica de predicciones
=autoplot(predicciones)
p_predict
p_predict