Skip to content

Estensione per Firefox che aiuta l'utente a contrastare attacchi di phishing servendosi delle predizioni di un modello di machine learning. Partendo dal Cap 5 del paper https://ceur-ws.org/Vol-3260/paper13.pdf, utilizza il modello di Machine Learning del Prof. Ranaldi

Notifications You must be signed in to change notification settings

CampominosiMarco/ItalianPhishingDetectionAdd-ons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Estensione Firefox per rilevamento di phishing con modello di machine learning

Con questo progetto viene sviluppata un'estensione per Firefox che aiuta l'utente a contrastare attacchi di phishing servendosi delle predizioni di un modello di machine learning. L'idea nasce dal capitolo 5 del paper e utilizza il modello di Machine Learning creato dal Prof. Leonardo Ranaldi.

Il suo funzionamento è il seguente:

  • All'avvio del browser, l'estensione chiede ad un endpoint, in ascolto sul server, la lista dei siti legittimi.
  • Quando l'utente desidera visualizzare una pagina, l'estensione verifica se il domino è contenuto nella lista.
    1. In caso affermativo, il sistema permette la corretta visualizzazione del sito.
    2. Nel caso invece che non sia tra i domini  controllati, procede a bloccare il contenuto della pagina con i relativi script, chiedendo al modello una valutazione dell'URL.
      1. Se la previsione ha un valore inferiore allo 0.5, l'estensione presenterà a video una pagina per avere la conferma dell'utente.
      2. Se la predizione è tra 0.5 e 0.7, siamo in un range delicato dove potrebbero essere presenti dei falsi positivi e quindi, all'utente, viene richiesto di validare il dato con un'altra schermata.
      3. Infine, nel caso di valutazione maggiore di 0.7, le opzioni sono tra reale minaccia e falso positivo.

Ogni scelta da parte dell'utente viene trasmessa al server che deve aggiornare le proprie liste.

L'estensione offre anche un comodo popup per fare inferenza sul modello, aggiungere domini alle varie liste e consultare i dati sul server.


Endpoint:

Gli endpoint attivi sul server accettano richieste anche se non provengono dall'estensione, basta che rispettino i formati riportati di seguito:

Metodi GET

{ "reliableList": "['google.it','cm-innovationlab.it']" }
{ "maliciousList": "['google.com','cm-innovationlab.com']" }
  • Per avere un array JSON contenente i domini indicati come falsi positivi @ /api/v2/list/fp
{ "falsePositiveList": "['google.it','cm-innovationlab.it']" }
  • Per avere un array JSON contenente tutte le liste: black, white e falsi positivi @ /api/v2/list/all
{ "reliableList": "['google.it','cm-innovationlab.it']",
  "maliciousList": "['google.com','cm-innovationlab.com']",
  "falsePositiveList": "['google.it','cm-innovationlab.it']" }  

Metodi POST

POST { "domain" : "google.com" }
RESPONSE { "predict": "0.123456789" }
POST { "add" : "google.com" }
RESPONSE { "reliableList": "['google.com',...]" }
POST { "add" : "google.com" }
RESPONSE { "maliciousList": "['google.com',...]" }
  • Per correggere un dominio trasferendolo dalla lista dei malevoli a quella dei legittimi @ /api/v2/url/correction
POST { "add" : "google.com" }
RESPONSE { "reliableList": "['google.it',...]",
  		   "maliciousList": "['google.com',...]" }  

Repository folders:

  1. extension: contiene tutti i file dell'estensione e una guida per l'installazione.
  2. model: contiene un file Jupyter Notebook con il modello utilizzato partendo da quello del Prof. Ranaldi.
  3. server-side: contiene il codice da utilizzare lato server con una guida dettagliata sulla configurazione necessaria.

Video Tutorial:


Screenshots:

Popup Popup 2

Popup 3 Popup 4

ext 2 ok ext 1 ko


Phishing Detection Add-ons for Firefox with machine learning model

With this project, an extension for Firefox is developed to help users to against phishing attacks using the predictions of a machine learning model. The idea comes from chapter 5 of the paper and uses the Machine Learning model created by Prof. Leonardo Ranaldi.

How does it work:

  • At browser opening, the extension asks an endpoint on server for the list of legitimate sites.
  • When user wants to view a page, the extension checks if the domain is included in the list.
    1. If so, the system allows the correct visualization of the site.
    2. If, on the other hand, it is not among the controlled domains, it proceeds to block the page content with the relative scripts, asking the model for an evaluation of the URL.
      1. If the prediction has a value lower than 0.5, the extension will display a page for user confirmation.
      2. If the prediction is between 0.5 and 0.7, we are in a delicate range where there may be false positives and therefore the user is asked to validate the data with another screen.
      3. Finally, in the case of evaluation greater than 0.7, the options are between real threat and false positive.

Each choice by the user is transmitted to the server which must update its lists.

The extension also offers a popup to make inferences on the model, add domains to the lists and consult the data on the server.


Endpoint:

Active endpoints on server accept requests beyond the extension, as long as respect the following formats:

GET Methods

{ "reliableList": "['google.it','cm-innovationlab.it']" }
{ "maliciousList": "['google.com','cm-innovationlab.com']" }
{ "falsePositiveList": "['google.it','cm-innovationlab.it']" }
{ "reliableList": "['google.it','cm-innovationlab.it']",
  "maliciousList": "['google.com','cm-innovationlab.com']",
  "falsePositiveList": "['google.it','cm-innovationlab.it']" }  

POST Methods

POST { "domain" : "google.com" }
RESPONSE { "predict": "0.123456789" }
POST { "add" : "google.com" }
RESPONSE { "reliableList": "['google.com',...]" }
POST { "add" : "google.com" }
RESPONSE { "maliciousList": "['google.com',...]" }
POST { "add" : "google.com" }
RESPONSE { "reliableList": "['google.it',...]",
             "maliciousList": "['google.com',...]" }  

Repository folders:

  1. extension: contains all the extension files and an installation guide.
  2. model: contains a Jupyter Notebook file with the model used starting from Prof. Ranaldi's one.
  3. server-side: contains the code to be used on server side with a guide on configuration.

About

Estensione per Firefox che aiuta l'utente a contrastare attacchi di phishing servendosi delle predizioni di un modello di machine learning. Partendo dal Cap 5 del paper https://ceur-ws.org/Vol-3260/paper13.pdf, utilizza il modello di Machine Learning del Prof. Ranaldi

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published