• Non ci sono risultati.

Architettura del sistema per la fase di pre-processing

5.3 Pre-processing dei dati

5.3.6 Architettura del sistema per la fase di pre-processing

La figura 5.1 illustra la fase di pre-processing. Di seguito proponiamo una descrizione sintetica delle fasi di cui la stessa di compone:

1. Lettura delle sequenze da DB: le sequenze di attacco di una specifica minaccia vengono estratte dal DB.

2. Filtraggio attacchi fake da sequenze: da ogni sequenza di attacco vengono eliminati gli attacchi fake.

3. Mappatura degli attacchi sulla tupla completa: tutti gli attacchi di ogni sequenza, in ordine, vengono mappati sugli elementi della tupla.

Figura 5.1: Architettura del sistema per la fase di pre-processing.

4. Ricodifica delle tuple di attacchi di tutte le sequenze: tutte le tuple risultanti dal passo precedente vengono ricodificate.

5. Calcolo della distribuzione degli elementi: per ciascun elemento della tupla viene calcolata la frequenza di occorrenza.

6. Scrittura del file di input per il miner: scrittura del file che contiene le sequenze di attacco secondo il formato richiesto dal miner. In questo file le sequenze sono formate da attacchi che sono descritti dalla tupla specificata. Gli elementi della tupla e/o le sequenze sono sottoposti ai filtri se specificati.

Capitolo 6

RANKING DI PATTERN

SEQUENZIALI E INSIEMI DI

COPERTURA

In questo capitolo vengono presentati due problemi di ragionamento sull’insie- me dei pattern sequenziali estratti, entrambi motivati dal fatto che questi sono tipicamente in numero tale da non poter essere direttamente utili. Il primo pro- blema, noto come ranking, consiste nel fornire all’utente una o più metriche che permettano di ordinare i pattern estratti in base al loro potenziale interesse per l’analista. Il secondo problema, noto come insieme di copertura, consiste nel trovare un sottoinsieme minimale dei pattern che permetta, globalmente, di caratterizzare tutte od una determinata percentuale delle sequenze in un dataset. I due problemi sono istanziati per il caso studio delle sequenze di attacco fornendo metriche e un algoritmo di copertura specifici per il dominio di analisi.

6.1

Strategie di ranking

I pattern sequenziali estratti possono essere ordinati secondo uno o più criteri, in modo da evidenziare quelli più significativi, importanti o ricchi dal punto di vista del contenuto informativo. Di seguito indichiamo le diverse strategie che abbiamo preso in considerazione. È possibile operare una suddivisione delle metriche che abbiamo definito in due diverse categorie: metriche oggettive e metriche domain based ovvero basate sullo specifico dominio di riferimento.

Metriche oggettive

Per quanto concerne le misure oggettive ne abbiamo a disposizione due che sono il supporto e la lunghezza di un pattern:

• Supporto: si utilizza come parametro di ordinamento dei pattern il supporto degli stessi ovvero il numero di sequenze che li soddisfano. Il supporto di ogni pattern è calcolato automaticamente dall’algoritmo di estrazione e viene restituito nel file di output insieme al relativo pattern.

• Lunghezza: si utilizza come parametro di ordinamento la lunghezza del pattern definita come il numero di itemset di cui si compone. La lunghezza di ogni pattern è calcolata con un semplice conteggio degli itemset dei relativi pattern leggendo il file di output.

Le due metriche sopra definite risentono di alcune debolezze. L’ordinamento in base al solo supporto darebbe maggior risalto ai pattern più corti che per ovvie ragioni sono supportati da un maggior numero di sequenze. Si tratterebbe quindi di pattern con un contenuto informativo di scarso valore. L’ordinamento in base alla lunghezza del pattern affronta il problema speculare: sarebbero evidenziati i pattern più lunghi anche se coperti da un numero di sequenze più basso.

L’ideale è definire una funzione calcolata su entrambi i parametri, supporto e lunghezza, che tenga conto del numero di sequenze che supportano il pattern e che allo stesso tempo penalizzi i pattern più corti. Chiameremo questa funzione Score che è così definita:

Score(SPx) = Sup(SPx) · 2L(SPx)−1

dove SPx è un generico pattern sequenziale e Sup(SPx)e L(SPx) sono rispetti-

vamente il supporto e la lunghezza del pattern SPx.

Metriche specifiche di dominio

La definizione di queste metriche è stata concordata con gli esperti del dominio di riferimento che sono interessati a valutare i pattern in funzione della quantità di lavoro residuo che una minaccia deve ancora svolgere per giungere all’obiettivo. Queste misure sono definite sull’insieme delle sequenze che supportano un pattern e segnatamente sono:

• attacks distance: Per ogni sequenza che copre il pattern viene conteggiato il numero di attacchi che residuano dall’ultimo attacco descritto nel pattern all’ultimo attacco descritto nella sequenza. Si calcolano infine il valore medio

CAPITOLO 6. RANKING DI PATTERN SEQUENZIALI E INSIEMI DI COPERTURA e lo scarto quadratico medio di questi valori su tutto l’insieme delle sequenze. Consideriamo:

SP = hP1, P2, P3, . . . , Pti

dove SP è un pattern sequenziale e Pl è un pattern, con l ∈ [1..t], t ∈ N.

C = {S1, S2, S3, . . . , Sn}

dove C è l’insieme delle sequenze che sono soddisfatte dal pattern sequenziale SP e Si rappresenta una sequenza di attacco, con i ∈ [1..n], i ∈ N.

S = hatk1, atk2, atk3, . . . , atkmi

dove S è una sequenza di attacco e atkj rappresenta un attacco elementare,

con j ∈ [1..m], j ∈ N.

Definiamo con len(Si)una funzione che restituisce la lunghezza della sequen-

za (il numero di attacchi elementari che la compongono ovvero m) e con P OSSP(Si)una funzione che restituisce un indice numerico che rappresenta la

posizione dell’ultimo attacco descritto di SP nella sequenza Si. La differenza

tra i due valori restituiti è il numero di attacchi residui da effettuare per proseguire fino all’obiettivo. Per facilitare la lettura delle formule seguenti introduciamo quindi la funzione Diff(i) che incapsula la differenza tra le due precedenti, ovvero DiffAtt(i) = len(Si) − P OSpt(Si)

M eanAttacksDistance = 1 n n X i=1 Dif f Att(i) ST DAttacksDistance = r Pn

i=1(Dif f Att(i) − M eanAttacks)2

n

• rights distance: Per ogni sequenza che copre il pattern viene conteggiato il numero di diritti mancanti dall’ultimo attacco descritto nel pattern all’ultimo attacco nella sequenza. Questo numero è la somma delle postcondizioni acquisite da ogni attacco residuo nella sequenza per raggiungere l’obiettivo. Si calcolano infine il valore medio e lo scarto quadratico medio di questi valori su tutto l’insieme delle sequenze. Definiamo con RGT (atkj) una funzione

che restituisce il numero di diritti che si acquisiscono con l’attacco atkj

T otSeqRgt(i) =

m

X

j=P OSSP(Si)+1

M eanRightsDistance = 1 n n X i=1 T otSeqRgt(i) ST DRightsDistance = r Pn

i=1(T otSeqRgt(i) − M eanRights)2

n

Attraverso le metriche che abbiamo definito è possibile operare un ordinamento dei pattern sequenziali in funzione di uno o più di questi parametri. Quale tipo di ordinamento operare, crescente o decrescente, e rispetto a quali metriche dipende dal tipo di contenuto informativo che di volta in volta in ogni analisi si renderà necessario evidenziare.