Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Come CHAT GPT può aiutare nella difesa contro le mail di phishing. Definizione del Common Phishing Scoring System 1.0 (CPSS 1.0)

Giuseppe Longobardi : 4 Aprile 2023 09:10

AutoreGiuseppe Longobardi Cybersecurity Manager di WorkersBadge.

Nell’articolo precedente, disponibile a questo link, abbiamo visto come l’intelligenza artificiale può essere usata per generare in automatico delle mail di phishing volte ad attaccare i sistemi di milioni di utenti senza il minimo sforzo da parte degli hacker

Oggi vedremo come possiamo contrastare ad armi pari questa inarrestabile forza esplosiva. Salteremo le premesse sull’intelligenza artificiale e tutti i concetti propedeutici, già ampiamente discussi nell’articolo precedente, progetteremo la soluzione difensiva e proporremo alcuni casi d’uso concreti.

Le funzionalità di CHAT GPT per il self content reconnaissance

FINO AL 31 DICEMBRE, sconti estremi sui corsi Red Hot Cyber

Affrettati!

Fino al 31 dicembre potrai acquistare a prezzi scontati i nostri corsi cliccando sui seguenti coupon:

  • NIS2 : Network and Information system 2 scontato del 25%
  • Dark Web & Cyber Threat Intelligence scontato del 50%

  • Per ulteriori informazioni, scrivi a [email protected] oppure su Whatsapp al 379 163 8765


    Supporta RHC attraverso:


    Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.

    Tutti sappiamo bene cos’è CHAT GPT, tutti ne abbiamo ampiamente capito le potenzialità e buona parte dei casi d’uso. Pochi conoscono a fondo questo potente motore e tutte le funzionalità che si celano al suo interno. Oggi vedremo come sfruttare una funzionalità nascosta di CHAT GPT, che permette agli utenti di interrogare la rete neurale sulla paternità di un contenuto. In sostanza possiamo chiedergli se è o meno responsabile della scrittura di un determinato contenuto. Vediamo qualche Esempio!

    1)Chiediamo a CHAT GPT di scriverci una storia:

    2)Chiediamo a CHAT GPT se è stata lei a scrivere questa storia:

    Come vediamo l’ha riconosciuta! 

    3)Adesso proviamo a chiedergli se ha scritto un passo della bibbia.

    Grandioso! Come vediamo ci ha dato esattamente la risposta che ci aspettavamo. Però io sono un po’ diffidente, ed ho pensato che riuscisse a riconoscere il contenuto solo se interrogato sulla paternità dallo stesso account dai cui ha creato il contenuto, così ho creato un altro account per verificare questa ipotesi. Vediamo!

    4)Creiamo un altro account e da quello chiediamo se la storia di Luca ,che abbiamo scritto da un altro account, è stata scritta da CHAT GPT

    Ecco confermate le mie ipotesi! Come possiamo vedere dal nostro reverse engineering ad ogni account è associata un’area di memoria che limita lo scope (con scope si intende insieme di esistenza, ambito di ricerca) ai soli contenuti prodotti dall’account. In sostanza possiamo verificare la paternità solo di contenuti che sono stati scritti da CHAT GPT usando il nostro account. Questo non ci permette di usare la funzionalità di Self Content Reconnaissance integrata a CHAT GPT per identificare mail di phishing prodotte con la soluzione precedente. Non Demordiamo, cerchiamo una strada alternativa!

    Ricerca della soluzione, troviamo la chiave primaria delle mail di phishing

    Per poter cercare qualcosa o identificare qualcosa dobbiamo definire una chiave primaria strutturata che ci permette di distinguere mail di phishing da mail standard. In sostanza una serie di caratteristiche comuni. Ad esempio riconosciamo una Ferrari dal tipico colore rosso, dal rombo dei mitici motori benzina e dalle inconfondibili linee aerodinamiche.  Per questo elenchiamo le caratteristiche comuni alle e-mail di phishing:

    • Autorevolezza
    • Intimidazione
    • Consensus-based (social proof)
    • Scarsità
    • Familiarity-based
    • Fiducia
    • Urgenza

    Queste caratteristiche sono state individuate dopo un attenta ricerca empirica ed analisi che ho condiviso nel mio corso di “Cyber Security Awareness”, disponibile su WorkersBadge.

    Analizziamo adesso un esempio di mail di phishing mirato che ho ricevuto qualche tempo fa alla ricerca dei parametri che abbiamo appena analizzato ,metto in grassetto quelli riscontrati.

    La mail che sto per mostrarvi è un reale tentativo di attacco!

    In questa mail come vediamo l’attaccante si finge una persona che io conosco, l’amministratore di una società per cui curo alcuni progetti di consulenza ICT. Come potete vedere, sta provando a chiedermi di acquistare delle carte regalo, il cui riscatto non è tracciabile. 

    In sostanza: 

    1. Mi chiede di farlo in 15 minuti (Urgenza)
    2. Si finge l’amministratore delegato di un’azienda mia cliente (Autorevolezza, Fiducia ed intimidazione)
    3. Mi contatta direttamente in quanto sa che sono una persona disponibile e che fa affidamento su di me (Familiarity-Based)
    4. Non l’ho inserito nella lista di parametri ma come possiamo osservare lo scrittore è MOLTO sgrammaticato, una caratteristica comune ma non sempre presente nelle mail di phishing 

    Come vedete abbiamo trovato 5 attributi su 7, più 1 dalla lista di parametri generali. Quindi diciamo che possiamo prendere quella lista per buona ed iniziare a progettare il nostro algoritmo basato su AI per riconoscere mail di phishing.

    In sostanza gli attributi che andiamo a verificare per identificare una mail di phishing sono:

    • Autorevolezza
    • Intimidazione
    • Consensus-based (social proof)
    • Scarsità
    • Familiarity-based
    • Fiducia
    • Urgenza
    • Grammatica

    Progettiamo l’algoritmo per l’identificazione di mail di phishing, CPSS

    Nel mondo della CyberSecurity Esistono le CVE (common vulnerabilities and exposures) che non sono altro che dei documenti tecnici pubblici che descrivono delle vulnerabilità scoperte dai ricercatori di sicurezza informatica. Ogni CVE ha un punteggio che viene calcolato con il sistema CVSS (Common Vulnerabilities Scoring System). Quello che proveremo a fare adesso è creare un nostro sistema di punteggio per le mail di phishing ed in base al punteggio ottenuto si definirà una scala di indicatori che permetteranno agli utenti di regolare il loro livello di allerta in base all’analisi automatica del tool AI Based. Si tenga presente che l’algoritmo appena descritto è altamente sperimentale e in futuro sarà sicuramente ottimizzato.

    L’algoritmo porterà al calcolo del CPSS 1.0 (Common Phishing Scoring System), che viene presentato per la prima volta in questo articolo tecnico.

    Prima di presentare la matematica dietro questo algoritmo, ci tengo a dire che non sono un maestro della scrittura matematica formale!

    IndicatoreVariabilePresenza(x)ParametroPesoPunteggio(z)
    AutorevolezzaAUTK1AUTp
    IntimidazioneINTIMK2INTIMp
    Consensus-based (social proof)SOCIALK3SOCIALp
    ScarsitàSCARCK4SCARCp
    Familiarity-basedFAMK5FAMp
    FiduciaTRUSTK6TRUSTp
    UrgenzaURGK7URGp
    GrammaticaGRAMK8GRAMp

    Definiamo un C.E. (Campo di esistenza per le variabili)

    C.E. : ∀x∈I1, t.c. I1=-1,1

    C.E. : ∀z∈I2, t.c. I2={ z | z ∈N , 0 ≤z≤10 }

    C.E. : ∀KiI3, t.c.  I3={ Ki | Ki ∈R , 1 ≤Ki≤2 }  

    In sostanza le variabili presenza AUT, INTIM, etc. sono equiparabili alla nostra x e quindi queste ultime avranno un valore o pari a -1 o pari a 1. In altre parole, se viene riscontrata la presenza di autorevolezza a variabile presenza viene posta a 1, se non viene riscontrata allora viene posta a -1

    Il Parametro peso definisce il peso dell’indicatore, questo viene definito staticamente una sola volta. Secondo me questi potrebbero essere dei valori intelligenti ma successivamente a questo articolo apriremo un dibattito per vedere cosa ne pensa la community (Tabella Sotto)

    ParametroPesoValore
    K11,2
    K21,5
    K31,1
    K41,1
    K51,1
    K61,3
    K71,5
    K81,7

    Più è alto il valore del parametro, maggiore sarà il peso che l’indicatore associato avrà. Quindi praticamente se viene riscontrata “intimidazione”, parametro K2 questa avrà un punteggio finale (la nostra y) maggiore a parità di punteggio. Il punteggio finale è diverso dal punteggio.

    Le variabili Presenza (AUTp, INTIMp, etc) avranno dei valori generati da CHAT GPT. Chiederemo all’intelligenza artificiale di stampare “-1” se pensa non ci sia la presenza di un indicatore, viceversa stamperà “1” se pensa ci sia l’indicatore nel testo somministrato.

    Le variabili Punteggio (AUTp, INTIMp, etc) avranno dei valori generati da CHAT GPT. Chiederemo all’intelligenza artificiale di dare un punteggio ai nostri indicatori.

    Definiamo adesso la funzione che porta al punteggio finale:

    y= yp+Smax

    y ∈ I4, I4=[0,2Smax]

    yp è un punteggio parziale totale, frutto della sommatoria di tutti i punteggi parziali, calcolati in base ai valori delle variabili presenza (x)

    P0 è un punteggio di default assegnato nel caso in cui si rilevi la non presenza di un indicatore 

    Smax è il valore massimo di yp con i valori di xi tutti a 1 e i valori di zi tutti a 10

    La y costituisce il valore finale per il CPSS 1.0, Common Phishing Scoring System

    Definizione Range CPSS 1.0 (Common Phishing Scoring System 1.0) 

    Range valori CPSS 1.0Probabilità Phishing
    0 – 31Low
    31,5 – 62Medium
    62,5 – 93High
    93,5 – 124Critical

    Si invita a ricordare che i range variano significativamente in base alla scelta dei Parametri Peso, quindi la tabella che si sta visualizzando è un esempio numerico che comunque permette di definire una legge matematica lineare atta a definire i vari scaglioni. In questa prima elaborazione ho deciso di definire gli scaglioni con la seguente formula:

    FondoScalaScaglione= SmaxNScaglioni

    In questo caso gli scaglioni sono 4 come per il CVSS, con la stessa nomenclatura, l’Smax è descritto sopra.

    Definizione dei prompt per ottenimento valori

    In questa sezione proveremo a definire dei prompt da passare a CHAT GPT per poi ottenere i valori desiderati. 

    IndicatorePromptOutput DesideratoVariabile
    AutorevolezzaDato il seguente testo “$TESTO” Restituisci “1” se pensi che il contenuto sia scritto in modo autoritario, Restituisci “-1” se invece pensi che non sia autoritario. Rispondi solo con “1” o “-1” senza fornire spiegazioni.∀x∈I1, t.c. I1=-1,1X1
    IntimidazioneDato il seguente testo ”$TESTO” Restituisci “1” se pensi che il contenuto sia scritto in modo intimidatorio, Restituisci “-1” se invece pensi che non sia intimidatorio. Rispondi solo con “1” o “-1” senza fornire spiegazioni.∀x∈I1, t.c. I1=-1,1X2
    Consensus-based (social proof)Dato il seguente testo “$TESTO” Restituisci “1” se si fa riferimento al fatto che altre persone hanno fatto quello che viene richiesto, altrimenti Restituisci “-1”. Rispondi solo con “1” o “-1” senza fornire spiegazioni.∀x∈I1, t.c. I1=-1,1X3
    ScarsitàDa Implementare∀x∈I1, t.c. I1=-1,1X4
    Familiarity-basedDa Implementare∀x∈I1, t.c. I1=-1,1X5
    FiduciaDato il seguente testo “$TESTO” Restituisci “1” se sono presenti parole e/o frasi volte a forzare l’incremento della fiducia di chi legge, altrimenti Restituisci “-1”. Rispondi solo con “1” o “-1” senza fornire spiegazioni.∀x∈I1, t.c. I1=-1,1X6
    UrgenzaDato il seguente testo “$TESTO” Restituisci “1” se chi scrive ha dettato delle scadenze entro cui effettuare una certa azione, altrimenti Restituisci “-1”. Rispondi solo con “1” o “-1” senza fornire spiegazioni.∀x∈I1, t.c. I1=-1,1X7
    GrammaticaDato il seguente testo “$TESTO” Restituisci “1” se il testo contiene errori grammaticali o risulta poco fluido, o ci siano parole troppo ripetute Restituisci “-1” se invece pensi che il testo sia corretto grammaticalmente e fluido∀x∈I1, t.c. I1=-1,1X8

    Interroghiamo l’intelligenza artificiale applicando l’algoritmo di calcolo del CPSS 1.0 (Common Phishing Scoring System)

    Prompt 1

    Quindi non rileva autorevolezza, ci siamo, x1 = -1

    Prompt 2

    Quindi non rileva intimidazione, corretto. X2 = -1

    Prompt 3

    Ottimo, nessuna social proof. X3 = -1

    Prompt 4

    Si è vero, niente che possa farci pensare ad un raggiro psicologico specifico (al di là della pratica di phishing stessa). X6 = -1

    Prompt 5

    Bingo! Come vediamo abbiamo il primo 1, ci siamo! X7=1

    Prompt 6

    Bingo! Bingo! Bingo! Come vediamo ha riconosciuto che il testo è sgrammaticato! X8 = 1!

    Benissimo Adesso abbiamo lo stato delle Variabili Presenza, che riportiamo qui di seguito:

    IndicatoreAliasValore
    AutorevolezzaX1-1
    IntimidazioneX2-1
    Consensus-based (social proof)X3-1
    ScarsitàX4-1
    Familiarity-basedX5-1
    FiduciaX6-1
    UrgenzaX71
    GrammaticaX81

    Per le variabili X3 ed X4 abbiamo assegnato il valore momentaneo -1. Stiamo ancora lavorando ad un prompt che funzioni e dia risultati coerenti. Dato che nella formula che abbiamo presentato prima, quando la variabile presenza è “-1” il punteggio non necessità di essere calcolato perché è definito staticamente dalla variabile P0. Che di Default abbiamo impostato a “-3”. 

    Prompt 1

    Perfetto quindi Z7 = 10, ci siamo!

    Prompt 2

    Perfetto, quindi Z8 = 10

    Facendo un riepilogo delle variabili Z quindi abbiamo:

    IndicatorePunteggioPunteggio Parziale
    AutorevolezzaZ18.333333333
    IntimidazioneZ26.666666667
    Consensus-based (social proof)Z39.090909091
    ScarsitàZ49.090909091
    Familiarity-basedZ59.090909091
    FiduciaZ67.692307692
    UrgenzaZ76.666666667
    GrammaticaZ85.882352941

    Questo ci porta a:

    Quindi in generale il punteggio di questa mail è 34.4490, arrotondiamo a 35. Il rischio quindi è “Medium”. Ovviamente se riceviamo più mail dallo stesso soggetto con alert sempre crescenti, allora questo genererà sicuramente un pericolo molto maggiore

    Precisazioni sull’algoritmo

    L’algoritmo appena descritto è in grado di analizzare e-mail generiche, tuttavia potrebbe non essere in grado di riconoscere attacchi molto più evidenti come questo illustrato sotto.

    Infatti sarebbe bene raccogliere tutti gli esempi possibili di questo tipo di attacchi ed inserirli in un database di “firme” note, laddove la soluzione IT analizzi una mail e non ritrovi un occorrenza può fare riferimento al nostro algoritmo per il calcolo del CPSS 1.0 (Common Phishing Scoring System).

    Progettiamo Kassandra, Il software definitivo per il riconoscimento automatico di mail di phishing con il supporto dell’AI.

    Nel flow chart appena illustrato si mostra come possiamo ingegnerizzare una soluzione di riconoscimento per le mail di phishing adoperando un integrazione con CHAT GPT e l’algoritmo che abbiamo appena presentato. In sostanza funziona così:

    1)Ho una mail di phishing nota, segnala subito all’utente

    2)Ho una mail che non corrisponde ad una mail di phishing nota, uso l’algoritmo di scoring e mostro all’utente il grado di probabilità che quella sia una mail di phishing

    Giuseppe Longobardi
    CyberSecurity Manager e ICT Trainer, specializzato in Networking e CyberSecurity. Inventore della web app "OnionCert", registrata alla SIAE con N. Registrazione D000016744, ideatore del "Metodo Longobardi" per il Subnetting ed autore di svariati corsi di formazione in ambito Networking e CyberSecurity. Da sempre seguo progetti di ricerca e sviluppo in ambito Industry 4.0 , Smart City e Blockchain. Credo nello sviluppo continuo di nuove competenze, tecnologie e soluzioni open source. La mia filosofa di vita: "Se i tuoi progetti hanno come obiettivo 1 anno pianta del riso, 20 anni pianta un albero, un secolo insegna a degli uomini"
    Visita il sito web dell'autore