From 14bd06445561851fc874d62cbedfa34602122c8a Mon Sep 17 00:00:00 2001 From: mituga93 Date: Thu, 29 Dec 2016 01:45:43 +0100 Subject: [PATCH] Finished geolocat analisis and started geolocat/type one --- ISO27001effectiveness/R/ReportGraphs.R | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ISO27001effectiveness/Report.Rmd | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ ISO27001effectiveness/Report.html | 15 ++++++++++++++- ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-28-1.png | Bin 0 -> 10279 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-29-1.png | Bin 0 -> 11080 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-30-1.png | Bin 0 -> 10139 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-31-1.png | Bin 0 -> 11254 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-32-1.png | Bin 0 -> 10127 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-33-1.png | Bin 0 -> 10249 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-34-1.png | Bin 0 -> 10014 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-35-1.png | Bin 0 -> 10207 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-36-1.png | Bin 0 -> 12504 bytes ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-37-1.png | Bin 0 -> 12711 bytes ISO27001effectiveness/debug.log | 3 +++ 14 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-28-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-29-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-30-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-31-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-32-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-33-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-34-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-35-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-36-1.png create mode 100644 ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-37-1.png create mode 100644 ISO27001effectiveness/debug.log diff --git a/ISO27001effectiveness/R/ReportGraphs.R b/ISO27001effectiveness/R/ReportGraphs.R index c4d8152..b0e2e4d 100644 --- a/ISO27001effectiveness/R/ReportGraphs.R +++ b/ISO27001effectiveness/R/ReportGraphs.R @@ -501,6 +501,190 @@ GetCountriesCol <- function(Attacks, Cert_PerCountry){ } +GetCountriesAttacksTopEvolution <- function(Attacks){ + attacks.evol <- mutate(Attacks, Year = format(Attacks$Date, "%Y")) %>% group_by(Year, Country) + attacks.evol <- as.data.frame(table(attacks.evol$Year, attacks.evol$Country)) + attacks.evol <- setNames(attacks.evol, c("Year", "Country", "Count")) + attacks.evol <- attacks.evol[attacks.evol$Country != "",] + + attacks.evol <- spread(attacks.evol, "Country", "Count") + + graph1 <- ggplot(data = attacks.evol, + aes(x = Year, y = US, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("US") + + xlab("Years") + ylab("Attacks")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + graph2 <- ggplot(data = attacks.evol, + aes(x = Year, y = GB, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("GB") + + xlab("Years") + ylab("Attacks")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + graph3 <- ggplot(data = attacks.evol, + aes(x = Year, y = IN, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("IN") + + xlab("Years") + ylab("Attacks")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + graph4 <- ggplot(data = attacks.evol, + aes(x = Year, y = JP, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("JP") + + xlab("Years") + ylab("Attacks")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + + list(graph1, graph2, graph3, graph4) + +} + +GetCountriesCertsTopEvolution <- function(Attacks){ + + certs.evol <- gather(Cert_PerCountry, "Year", "Certs", 2:6) %>% group_by(country_short, Year) + + certs.evol <- rbind(certs.evol[certs.evol$country_short == "US",], + certs.evol[certs.evol$country_short == "GB",], + certs.evol[certs.evol$country_short == "IN",], + certs.evol[certs.evol$country_short == "JP",]) + + certs.evol <- summarise(certs.evol, + Certs = sum(Certs)) + certs.evol$Year <- substr(certs.evol$Year,2,5) + + certs.evol <- spread(certs.evol, "country_short", "Certs") + + graph1 <- ggplot(data = certs.evol, + aes(x = Year, y = US, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("US") + + xlab("Years") + ylab("Certifications")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + graph2 <- ggplot(data = certs.evol, + aes(x = Year, y = GB, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("GB") + + xlab("Years") + ylab("Certifications")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + graph3 <- ggplot(data = certs.evol, + aes(x = Year, y = IN, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("IN") + + xlab("Years") + ylab("Certifications")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + + graph4 <- ggplot(data = certs.evol, + aes(x = Year, y = JP, group = 1)) + + + geom_line() + + geom_point() + + + theme(plot.title = element_text(hjust = 0.5)) + + ggtitle("JP") + + xlab("Years") + ylab("Certifications")+ + stat_smooth(method = "lm", se = FALSE, aes(outfit=fit<<-..y..)) + + + list(graph1, graph2, graph3, graph4) + +} + + +#---------------------------------------------------------------- +#-------------------------gelocal/type--------------------------- +#---------------------------------------------------------------- + +GetContinentAttackPie <- function (Attacks){ + + attack.pie <- group_by(Attacks, Attack.standar, Country) + attack.pie <- as.data.frame(table(attack.pie$Country, attack.pie$Attack.standar)) + attack.pie <- setNames(attack.pie, c("Country", "Attack", "Count")) + + attack.pie <- attack.pie[attack.pie$Country != "",] + attack.pie <- attack.pie[attack.pie$Attack != "",] + + attack.pie$Attack <- as.character(attack.pie$Attack) + attack.pie[attack.pie$Attack != "DDoS" & + attack.pie$Attack != "Defacement" & + attack.pie$Attack != "Injection",]$Attack <- "Otros" + attack.pie$Attack <- as.factor(attack.pie$Attack) + + attack.pie <- group_by(attack.pie, Attack, Country) + attack.pie <- summarise(attack.pie, Count = sum(Count)) + + attack.pie.US <- attack.pie[attack.pie$Country == "US",] + attack.pie.JP <- attack.pie[attack.pie$Country == "JP",] + + + graph1 <- ggplot(data=attack.pie.US, + aes(x=factor(1), + y=Count, + fill=Attack)) + + geom_col(width = 1, color='black') + + geom_label(aes(label=paste(round(100 * attack.pie.US$Count / sum(attack.pie.US$Count), 2), "%")), + vjust=c(0), + hjust=c(0)) + + coord_polar(theta="y") + + scale_x_discrete(labels = c("")) + + scale_y_discrete(labels = c("")) + + theme(plot.title = element_text(hjust = 0.5), + axis.title.x=element_blank(), + axis.title.y=element_blank()) + + ggtitle("US") + + graph2 <- ggplot(data=attack.pie.JP, + aes(x=factor(1), + y=Count, + fill=Attack)) + + geom_col(width = 1, color='black') + + geom_label(aes(label=paste(round(100 * attack.pie.JP$Count / sum(attack.pie.JP$Count), 2), "%")), + vjust=c(0), + hjust=c(0)) + + coord_polar(theta="y") + + scale_x_discrete(labels = c("")) + + scale_y_discrete(labels = c("")) + + theme(plot.title = element_text(hjust = 0.5), + axis.title.x=element_blank(), + axis.title.y=element_blank()) + + ggtitle("JP") + + list(graph1, graph2) +} + #---------------------------------------------------------------- #---------------------------------------------------------------- #---------------------------------------------------------------- diff --git a/ISO27001effectiveness/Report.Rmd b/ISO27001effectiveness/Report.Rmd index f906f9f..2c1852e 100644 --- a/ISO27001effectiveness/Report.Rmd +++ b/ISO27001effectiveness/Report.Rmd @@ -234,8 +234,63 @@ top[[2]] Como se puede observar en la parte de certificaciones destaca de largo Japón sobre los demás, que se encuentra bastante bajo en la lista de ataques. Y al reves pasa algo parecido, en los ataques destaca Estados Unidos por mucho mientras que ese mismo pais está muy bajo en certificaciones. A continuación observaremos la evolución temporal del top 3 paises en ataques recibidos y en certificaciones obtenidas, varios de ellos coinciden, tenemos por la parte de las certificaciones a _Japón_, por la parte de los ataques a _Estados Unidos_, y común a ambas _Reino Unido_ e _India_. +```{r fig.width=4.5, fig.height=3,out.extra='style="float:left"'} +topAttacks <- ISO27001effectiveness::GetCountriesAttacksTopEvolution(Attacks) +topCerts <- ISO27001effectiveness::GetCountriesCertsTopEvolution(Cert_PerCountry) +topCerts[[1]] +slope_US_Cert <- (fit[5] - fit[1]) / 4 +``` +```{r fig.width=4.5, fig.height=3} +topAttacks[[1]] +slope_US_Att <- (fit[5] - fit[1]) / 4 +``` + +La pendiente de los ataques para _Estados Unidos_ es `r slope_US_Att` mientras que la pendiente de las certificaciones es `r slope_US_Cert`. + +```{r fig.width=4.5, fig.height=3,out.extra='style="float:left"'} +topCerts[[2]] +slope_GB_Cert <- (fit[5] - fit[1]) / 4 +``` +```{r fig.width=4.5, fig.height=3} +topAttacks[[2]] +slope_GB_Att <- (fit[5] - fit[1]) / 4 +``` + +La pendiente de los ataques para _Reino Unido_ es `r slope_GB_Att` mientras que la pendiente de las certificaciones es `r slope_GB_Cert`. + +```{r fig.width=4.5, fig.height=3,out.extra='style="float:left"'} +topCerts[[3]] +slope_IN_Cert <- (fit[5] - fit[1]) / 4 +``` +```{r fig.width=4.5, fig.height=3} +topAttacks[[3]] +slope_IN_Att <- (fit[5] - fit[1]) / 4 +``` + +La pendiente de los ataques para _India_ es `r slope_IN_Att` mientras que la pendiente de las certificaciones es `r slope_IN_Cert`. + +```{r fig.width=4.5, fig.height=3,out.extra='style="float:left"'} +topCerts[[4]] +slope_JP_Cert <- (fit[5] - fit[1]) / 4 +``` +```{r fig.width=4.5, fig.height=3} +topAttacks[[4]] +slope_JP_Att <- (fit[5] - fit[1]) / 4 +``` + +La pendiente de los ataques para _Japón_ es `r slope_JP_Att` mientras que la pendiente de las certificaciones es `r slope_JP_Cert`. + +### Evolución geográfica y tipo de ataque +Hasta ahora se han analizado por separado estas dos variables, pero la respuesta podria encontrarse en una combinacion de las mismas. Para ello se analizarán los tipos de ataque reportados en el pais en el que parece que la certificación es más efectiva, _Japón_, y en el que menos, _Estados Unidos_. +```{r fig.width=4.5, fig.height=3,out.extra='style="float:left"'} +graphs <- ISO27001effectiveness::GetContinentAttackPie(Attacks) +graphs[[1]] +``` +```{r fig.width=4.5, fig.height=3} +graphs[[2]] +``` # Viejo diff --git a/ISO27001effectiveness/Report.html b/ISO27001effectiveness/Report.html index 044d798..259af46 100644 --- a/ISO27001effectiveness/Report.html +++ b/ISO27001effectiveness/Report.html @@ -382,7 +382,20 @@ $(document).ready(function () {

Todas las pendientes podrían representar la relación que buscamos, en la que un aumento en las certificaciones produce un descenso en los ataques.

El análisis puede aumentar en profundidad estableciendo superficies geográficas más pequeñas y asi obtener más precisión, observemos lo que ocurre a nivel de paises. Se mostrarán a continuación los paises que superan aproximadamente un 2% de los ataques/certificaciones totales ya que la lista total de paises es demasiado extensa.

-

Como se puede observar en la parte de certificaciones destaca de largo Japón sobre los demás, que se encuentra bastante bajo en la lista de ataques. Y al reves pasa algo parecido, en los ataques destaca Estados Unidos por mucho mientras que ese mismo pais está muy bajo en certificaciones. A continuación observaremos la evolución temporal del top 3 paises en ataques recibidos y en certificaciones obtenidas.

+

Como se puede observar en la parte de certificaciones destaca de largo Japón sobre los demás, que se encuentra bastante bajo en la lista de ataques. Y al reves pasa algo parecido, en los ataques destaca Estados Unidos por mucho mientras que ese mismo pais está muy bajo en certificaciones. A continuación observaremos la evolución temporal del top 3 paises en ataques recibidos y en certificaciones obtenidas, varios de ellos coinciden, tenemos por la parte de las certificaciones a Japón, por la parte de los ataques a Estados Unidos, y común a ambas Reino Unido e India.

+

+

La pendiente de los ataques para Estados Unidos es -59.8 mientras que la pendiente de las certificaciones es 210.3.

+

+

La pendiente de los ataques para Reino Unido es -11.8 mientras que la pendiente de las certificaciones es 320.4.

+

+

La pendiente de los ataques para India es -8.7 mientras que la pendiente de las certificaciones es 268.3.

+

+

La pendiente de los ataques para Japón es -7.4 mientras que la pendiente de las certificaciones es 262.4.

+ +
+

Evolución geográfica y tipo de ataque

+

Hasta ahora se han analizado por separado estas dos variables, pero la respuesta podria encontrarse en una combinacion de las mismas. Para ello se analizarán los tipos de ataque reportados en el pais en el que parece que la certificación es más efectiva, Japón, y en el que menos, Estados Unidos.

+

diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-28-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-28-1.png new file mode 100644 index 0000000..7853323 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-28-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-29-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-29-1.png new file mode 100644 index 0000000..627a688 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-29-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-30-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-30-1.png new file mode 100644 index 0000000..ec674be Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-30-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-31-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-31-1.png new file mode 100644 index 0000000..b8e3639 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-31-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-32-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-32-1.png new file mode 100644 index 0000000..61c2915 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-32-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-33-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-33-1.png new file mode 100644 index 0000000..bea1448 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-33-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-34-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-34-1.png new file mode 100644 index 0000000..02c4ed4 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-34-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-35-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-35-1.png new file mode 100644 index 0000000..13cbcb1 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-35-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-36-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-36-1.png new file mode 100644 index 0000000..959d9c5 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-36-1.png differ diff --git a/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-37-1.png b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-37-1.png new file mode 100644 index 0000000..17e8477 Binary files /dev/null and b/ISO27001effectiveness/Report_files/figure-html/unnamed-chunk-37-1.png differ diff --git a/ISO27001effectiveness/debug.log b/ISO27001effectiveness/debug.log new file mode 100644 index 0000000..7abcf19 --- /dev/null +++ b/ISO27001effectiveness/debug.log @@ -0,0 +1,3 @@ +[1228/235522:ERROR:crash_report_database_win.cc(563)] CreateDirectory C:\Program Files (x86)\Junemike\Reports\Dump: El sistema no puede encontrar la ruta especificada. (0x3) +[1228/235522:ERROR:registration_protocol_win.cc(82)] TransactNamedPipe: Ha terminado la canalización. (0x6D) +[1228/235522:ERROR:crash_report_database_win.cc(563)] CreateDirectory C:\Program Files (x86)\Junemike\Reports\Dump: El sistema no puede encontrar la ruta especificada. (0x3) -- libgit2 0.22.2