% !TEX encoding = IsoLatin

% La riga soprastante serve per configurare gli editor TeXShop, TeXWorks
% e TeXstudio per gestire questo file con la codifica IsoLatin o Latin 1
% o ISO 8859-1.

% per commentare una riga mettere % al suo inizio
% per s-commentare una riga (ossia attivarla) togliere il % al suo inizio
%
% \documentclass[pdfa% formato PDF/A, obbligatorio per l'archiviazione delle tesi di Polito
% ,cucitura%lascia margine per la rilegatura
% %,twoside% per stampa fronte-retro (fortemente consigliato per tesi voluminose, opzionale per le altre)
% %,12pt% font più grande (12pt) rispetto a quello normalmente usato (11pt)
% classica, evenboxes % relatori e candidati allineati
% ]{toptesi}

\documentclass[cucitura, evenboxes]{toptesi}


%
\usepackage{hyperref}
\hypersetup{%
    pdfpagemode={UseOutlines},
    bookmarksopen,
    pdfstartview={FitH},
    colorlinks,
    linkcolor={blue},
    citecolor={red},
    urlcolor={blue}
  }
% \documentclass[11pt,twoside,oldstyle,autoretitolo,classica,greek]{toptesi}
% \usepackage[or]{teubner}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Esempio di composizione di tesi di laurea.
%
% Questo esempio e' stato preparato inizialmente 13-marzo-1989
% e poi e' stato modificato via via che TOPtesi andava
% arricchendosi di altre possibilita'.
%
% Nel seguito laurea "quinquennale" sta anche per "specialistica" o "magistrale"

% Cambiare encoding a piacere; oppure non caricare nessun encoding se si usano
% solo caratteri a 7 bit (ASCII) nei file d'entrata.
%
\usepackage[latin1]{inputenc}% IMPORTANTE! usare codifica ISO-8859-1 per le lettere accentate
\usepackage{float}
\usepackage{subcaption} 
\usepackage{tabularx}

\usepackage{amsmath}
\usepackage{amssymb}

\usepackage{listings}
\lstset{
  breaklines=true,        % allow line breaks
  breakatwhitespace=false % even break long words
}

\input{commands.tex}

\begin{document}
\selectlanguage{english}

\ateneo{Politecnico di Torino}

%%% scegliere la propria facoltà (solo PRIMA dell'AA 2012-2013)
%
%\facolta[III]{Ingegneria dell'Informazione}
%\facolta[IV]{Organizzazione d'Impresa\\e Ingegneria Gestionale}
%\Materia{Remote sensing}% uso sconsigliato

%\monografia{Gestione informatizzata di un magazzino ricambi}% per la laurea triennale
\titolo{HTTP Request Clustering for Automated Threat Detection}% per la laurea quinquennale e il dottorato
%\sottotitolo{Metodo dei satelliti medicei}% NON obbligatorio, per la laurea quinquennale e il dottorato

%%% scegliere il proprio corso
%
%\corsodilaurea{Ingegneria dell'Organizzazione d'Impresa}% per la laurea di primo e secondo livello
%\corsodilaurea{Ingegneria Logistica e della Produzione}% per la laurea di primo e secondo livello
%\corsodilaurea{Ingegneria Gestionale}% per la laurea di primo e secondo livello
\corsodilaurea{Cybersecurity}% per la laurea di primo e secondo livello
%\corsodidottorato{Meccanica}% per il dottorato
\relatore{prof.\ Andrea Atzeni}
\candidato{Lorenzo \textsc{Ferretti}}% per tutti i percorsi
%\secondocandidato{Evangelista \textsc{Torricelli}}% per la laurea magistrale solamente
%\direttore{prof. Albert Einstein}% per il dottorato
%\coordinatore{prof. Albert Einstein}% per il dottorato
\relatore{prof.\ Andrea Atzeni}% per la laurea e il dottorato
% \secondorelatore{dipl.~ing.~Werner von Braun}% per la laurea magistrale
%\terzorelatore{{\tabular{@{}l}dott.\ Neil Armstrong\\prof. Maria Rossi\endtabular}}% per la laurea magistrale
%\tutore{ing.~Karl Von Braun}% per il dottorato
% \tutoreaziendale{dott.\ ing.\ Giovanni Giacosa} % solo per la laurea di secondo livello con tesi svolta in azienda
%\NomeTutoreAziendale{Supervisore aziendale\\Centro Ricerche FIAT}
%\sedutadilaurea{Agosto 1615}% per la laurea quinquennale
%\esamedidottorato{Novembre 1610}% per il dottorato
\sedutadilaurea{\textsc{December} 2025}% per la laurea triennale
%\sedutadilaurea{\textsc{Anno~accademico} 1615-1616}% per la laurea magistrale
%\annoaccademico{1615-1616}% solo con l'opzione classica
%\annoaccademico{2006-2007}% idem
%\ciclodidottorato{XV}% per il dottorato
\logosede{logopolito}
%
%\chapterbib %solo per vedere che cosa succede; e' preferibile comporre una sola bibliografia
%\AdvisorName{Supervisors}
%\newtheorem{osservazione}{Osservazione}% Standard LaTeX

%\usepackage[a-1b]{pdfx}
%\hypersetup{%
%    pdfpagemode={UseOutlines},
%    bookmarksopen,
%    pdfstartview={FitH},
%    colorlinks,
%    linkcolor={blue},
%    citecolor={green},
%    urlcolor={blue}
%  }

%
% per numerare e far comparire nell'indice anche le sezioni di quarto livello
% SCONSIGLIATO! da usarsi solo in caso di estrema necessità
%\setcounter{secnumdepth}{4}% section-numbering-depth
%\setcounter{tocdepth}{4}% TOC-numbering-depth (TOC=Table-Of-Content)

%\setbindingcorrection{3mm}

\errorcontextlines=9

\iflanguage{english}{
    \DottoratoIn{PhD Course in\space}
    \CorsoDiLaureaIn{Master degree course in\space}
    \NomeMonografia{Bachelor Degree Final Work}
    \TesiDiLaurea{Master Degree Thesis}
    \NomeDissertazione{PhD Dissertation}
    \InName{in}
    \CandidateName{Candidate}
    \AdvisorName{Supervisor}
    \TutorName{Tutor}
    \NomeTutoreAziendale{Internship Tutor}
    \CycleName{cycle}
    \NomePrimoTomo{First volume}
    \NomeSecondoTomo{Second Volume}
    \NomeTerzoTomo{Third Volume}
    \NomeQuartoTomo{Fourth Volume}
}{}

\frontespizio
\paginavuota
\newpage
%per sfruttare meglio lo spazio nella pagina
\advance\voffset -5mm
\advance\textheight 30mm

% opzionale, solo se si vuole dedicare la tesi a delle persone care
\begin{dedica}
Alla mia famiglia
\end{dedica}

\sommario
This thesis explores whether HTTP sessions reconstructed from server-side logs can be grouped according to behavioral similarities using unsupervised learning.  
The motivation comes from the limitations of rule-based Web Application Firewalls, which focus on individual requests and struggle to detect threats that develop progressively within a session.  
By examining sequences of requests instead of isolated events, it becomes possible to detect anomalies, understand usage patterns, and distinguish automated actors from genuine users. \\[6pt]
The work begins with an analysis of session identification techniques.
Approaches based on IP addresses, User-Agent strings, browser fingerprints, favicon-based identifiers, and cookies are examined.
This study adopts a simpler combination of IP addresses and User-Agent strings since the main objective is clustering rather than persistent user tracking. \\[6pt]
A central contribution of the thesis is the construction of a feature set designed to describe session behavior.  
Existing research provides numerical indicators such as request frequency, error rates, distribution of HTTP methods or ratios of HTML to static resources.  
These classical features are expanded with additional signals derived from traffic inspection, including Sec-Fetch metadata, temporal dynamics, and response content categories.  
Such features help differentiate normal navigation from scripted actions or stealth scanning activities. \\[6pt]
Because clustering techniques are meaningful only when the underlying data exhibit multimodal structure, the thesis evaluates clusterability through the Dip Test.  
Both dimensionality-reduction and distance-based formulations are examined.  
The analysis highlights situations where data do not clearly support partitioning, at which preprocessing becomes essential. \\[6pt]
Deep clustering is discussed briefly, but the focus remains on Self-Organizing Maps and K-Means, which are appropriate given the moderate dimensionality of the dataset.  
For SOMs, training parameters, weight interpretation, and methods for evaluating the quality of the map are examined.
For K-Means, attention is given to initialization, convexity assumptions, and the need to determine the number of clusters.  
Internal validation metrics such as the Davies-Bouldin coefficient, the Silhouette score, the Dunn-OWA index, and the WB index are compared, noting that numerical measures do not always reflect expert intuition. \\[6pt]
The dataset is obtained from Elasticsearch, and sessions are assembled by grouping requests originating from the same IP address and User-Agent when their timestamps fall within a 60-minute window.
Sessions that contain too few interactions or requests blocked due to ASN reputation are discarded.  
Features are first expressed as ratios and then normalized to avoid dominance by features with larger ranges. \\[6pt]
At the current stage, the thesis covers both the exploratory analysis and the unsupervised learning phase. The labeled dataset produced from cluster inspection provides a semantic grounding of the session groups and enables a meaningful interpretation of behavioral patterns. Future work will aim to strengthen the session identification process and to develop supervised classifiers trained on the labeled sessions, with the objective of improving robustness and detection performance and potentially deploying the trained models in a production environment.

% \ringraziamenti

% Opzionali, solo nel caso si sia ricevuto un aiuto speciale e particolarmente rilevante.

%% inserire sempre nella tesi per la laurea di I livello, perché il nome dei tutori non è indicato sul frontespizio.
%Il lavoro descritto in questa monografia è stato svolto sotto la supervisione
%del Prof. Antonio Lioy (tutore accademico)% inserire sempre il nome del tutore accademico
% e dell'Ing. Mario Rossi (tutore aziendale)% inserire solo se la monografia è relativa ad un tirocinio.
%.

%\tablespagetrue % normalmente questa riga non serve ed e' commentata
%\figurespagetrue % normalmente questa riga non serve ed e' commentata

\indici

\mainmatter

\chapter{Introduction}
\label{introduction}
\input{introduction}

\chapter{Related Work}
\label{related-work}
\input{related-work}

\chapter{Infrastructure and Operational Context}
\label{infrastructure}
\input{infrastructure}

\chapter{Implementation Approach}
\label{implementation-approach}
\input{implementation-approach}

\chapter{Conclusion}
\label{conclusion}
\input{conclusion}

% bibliografia scritta "a mano"
% \input{biblio.tex}

% se la bibliografia è stata scritta (usando Bibtex) nel file biblio.bib allora commentare la riga precedente e scommentare le due righe seguenti
\bibliographystyle{torsec}
\bibliography{biblio}


\end{document}
