summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/chapters/conclusion.tex23
-rw-r--r--docs/conf.tex3
-rw-r--r--docs/m6.tex5
-rw-r--r--docs/refs.bib13
4 files changed, 42 insertions, 2 deletions
diff --git a/docs/chapters/conclusion.tex b/docs/chapters/conclusion.tex
new file mode 100644
index 0000000..7dda5d9
--- /dev/null
+++ b/docs/chapters/conclusion.tex
@@ -0,0 +1,23 @@
+In conclusione si può dire che questo attacco è riuscito perché ci siamo trovati sotto alcuni prerequisiti:
+\begin{enumerate}
+ \item Abbiamo l'APK dell'applicazione per cui abbiamo potuto fare profiling direttamente da Android Studiio.
+ \item Il server non è su HTTPS.
+ \item L'API non prevede un JWK con sistemi di sicurezza come il JTI \cite{JTI}.
+ \item Non si controlla l'autenticazione, anzi, JWT viene usato simil-modo per far entrambi.
+ \item Il secret molto semplice.
+\end{enumerate}
+
+Anche se si ignorasse il punto 1, questa analisi si potrebbe replicare sul browser. Anzi, in modo molto più semplice, si potrebbe vedere la successione di richieste al backend con annesse risposte. Ignorando quindi il punto 1, anche il punto 2 sarebbe facilmente aggirabile, dato che abbiamo proprio la richiesta con l'URL.
+
+Per la questione dei 3 e 4 si risolve semplicemente tenendo aggiornato il sistema oppure non inserendo dei dati come l'user\_id dentro il payload.
+
+L'ultimo punto si risolve usando un secret più robusto e non presente dentro un dizionario.
+
+In un articolo di Okta \cite{OKTA:1} si discute sul come usare JWT per fare autenticazione e il perché è utile usare i token di autorizzazione e usarli sempre insieme.
+
+Prendendo uno snippet dall'articolo "Authentication vs. Authorization"\cite{OKTA:2}:
+\begin{displayquote}
+In secure environments, authorization must always follow authentication. Users should first prove that their identities are genuine before an organization’s administrators grant them access to the requested resources.
+\end{displayquote}
+
+ \ No newline at end of file
diff --git a/docs/conf.tex b/docs/conf.tex
index 07abcd9..3483dfa 100644
--- a/docs/conf.tex
+++ b/docs/conf.tex
@@ -4,12 +4,13 @@
\usepackage{url}
\usepackage{listings}
\usepackage{color}
+\usepackage{csquotes}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
- language=C,
+ language=Java,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
diff --git a/docs/m6.tex b/docs/m6.tex
index 895ec09..298466e 100644
--- a/docs/m6.tex
+++ b/docs/m6.tex
@@ -5,7 +5,7 @@
\includegraphics[scale=0.2]{data/unict-logo.png}
\end{center}
\small\textsc{Dipartimento di Matematica e Informatica\\Corso di Internet Security}\\
- \Huge\textbf{M6: Insecure Authorization\\Attack side}\\
+ \Huge\textbf{M6: Insecure Authorization}\\
\author{Santo Cariotti}
\date{5 dicembre 2022}
}
@@ -30,6 +30,9 @@
\chapter{Traffico di rete}
\input{chapters/network}
+\chapter{Conclusione}
+\input{chapters/conclusion}
+
\bibliography{refs}
\bibliographystyle{ieeetr}
diff --git a/docs/refs.bib b/docs/refs.bib
index 58799dd..4227f01 100644
--- a/docs/refs.bib
+++ b/docs/refs.bib
@@ -51,6 +51,13 @@
MONTH="May",
YEAR=2015,
}
+@MISC{JTI,
+ HOWPUBLISHED="\url{https://www.rfc-editor.org/rfc/rfc7519#section-4.1.7}",
+ AUTHOR="M. Jones",
+ TITLE="jti (JWT ID) Claim",
+ MONTH="May",
+ YEAR=2015,
+}
@MISC(XHR:1,
HOWPUBLISHED="\url{https://developer.mozilla.org/en-US/docs/Glossary/XHR_(XMLHttpRequest)}"
}
@@ -72,3 +79,9 @@
TITLE="APK vs AAB",
YEAR=2021,
}
+@MISC{OKTA:1,
+ HOWPUBLISHED="\url{https://www.okta.com/identity-101/what-is-token-based-authentication/}"
+}
+@MISC{OKTA:2,
+ HOWPUBLISHED="\url{https://www.okta.com/identity-101/authentication-vs-authorization}"
+}