From 95fee2a4947b7ecbfc3f934d43912a569d517fd9 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Wed, 23 Nov 2022 12:14:18 +0100 Subject: Conslusion chapter --- docs/chapters/conclusion.tex | 23 +++++++++++++++++++++++ docs/conf.tex | 3 ++- docs/m6.tex | 5 ++++- docs/refs.bib | 13 +++++++++++++ 4 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 docs/chapters/conclusion.tex (limited to 'docs') 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}" +} -- cgit v1.2.3-18-g5258