DeepPhish (browser extension)
#11
mojih 5cents, nisam analizirao kao Ivan, ovo je vise komentar iz nekog prosecnog user koriscenja.
Izgleda da svaku login formu prepoznaje kao sumnjivu? Pogotovu lokalne?
I jel mozes kad stignes naravno da ispises kako tacno ML dolazi do score-a? koje su mu sumnjive vrednosti na osnovu kojih donosi sud?
tnx.

p.s: svakako respect za ideju! ima potencijala, ne znam koliko korisnika ima ove ekstenzija, al` prijavljujem se da budem tester u smislu razvoja dalje, ovako nesto je i vise nego dobro doslo, sto za nas "smrtnike" pa do enterprise-a Smile
Reply
#12
Evo odgovora 2 u 1 - za Ivana i Yodu Smile

Sto se tice detekcije:

Machine learning model je treniran na jako malom broju sajtova ~2.5k i dataset je star (iz '95), ali je dovoljno dobar za proof of concept (citaj nisam nasao bolji):
https://archive.ics.uci.edu/ml/datasets/...g+websites

Ocekivano je da ce imati false positives, tj. sajtove za koje ce da misli da su sumnjivi, iako zapravo nisu. F1 score za model je 0.905 (90,5% accuracy).
Definitivno bi se accuracy mogao podici ukoliko bi se napravio veci i moderniji dataset, ali takvo prikupljanje podataka zahteva resorse i vreme.

Machine learning model je sacuvan u samoj extenziji u .json formatu. Ovaj model je odgovoran za notifikaciju tj. popup koji vam iskace:
https://github.com/Omodaka9375/DeepPhish...ifier.json

Featuri koje ML algoritam analizira su opisani u ovom papiru po kojem je celo resenje radjeno. Ovde su verovatno detalji koji vas najvise zanimaju:
https://github.com/Omodaka9375/DeepPhish...tures.docx

Pored ML modela radi se i non-ml analiza elemenata sajta koji se posecuje i svakom sajtu se na osnovu prisutnih featura u kodu dodeljuje score i tagovi u semafor bojama.
Oni ukazuju direktno na razloge zbog kojih je neki sajt dobio losu ocenu i notifikaciju od plugina da je 'suspicious'. Ovaj deo doprinosi transparentnosti i razumevanju samog algoritma (nije black box).

Evo fajla koji radi analizu strukture svakog sajta bas po gore pomenutom dokumentu.
https://github.com/Omodaka9375/DeepPhish...eatures.js

Svi su ovi fajlovi su unutar same extenzije tako da detekcija, skorovanje i analiza se rade iskljucivo lokalno i nema nikakvih requestova ka bilo kakvoj bazi ili serveru.

Sto se tice inspekcije:

Jedan deo je inspekcija live network trafika, crtanje dijagrama konekcija, trazenje adova, robota, cookies-a, iframe test itd. dok za druge su potrebni APIji, koji se btw stalno menjaju.
Na primer, Screenshots API je prestao da radi, pa sam morao da menjam 3rd party API provajdere nekoliko puta. 
Konkretno, HackerTarget ima najvise endpointa sa skoro svim infoima koji su potrebni, ali je i najskuplji. Evo koji se sve requestovi prave i za sta od strane extenzije:

- GeoIP: http://ip-api.com/
- Whois: https://api.hackertarget.com/whois/
- Subdomain search: https://api.hackertarget.com/hostsearch/
- DNSLookup: https://api.hackertarget.com/dnslookup/
- PageArchive: http://archive.org/wayback/
- DomainReputation: https://domain-reputation.whoisxmlapi.com/
- PhishTank: https://checkurl.phishtank.com/checkurl/
- Google SafeBrowsing: https://safebrowsing.googleapis.com/v4/threatMatches

Sav kod je open source i namerno sam ostavio da svako unese svoje kljuceve. Poenta ovog projekta je da se pokaze da se cak i ovakav software moze napraviti sa privatnoscu na umu i bez deljenja podataka sa sumnjivim kompanijama koje pre ili kasnije budu breach-ovane.

Pozdrav
“One of the symptoms of approaching nervous breakdown is the belief that one's work is terribly important"
Reply
#13
uuuu, respect za objasnjenje! hvala puno!
ovaj deo me najvise zanimao:
[Image: image.png]


Jel imas vec sve spremno za treniranje (da napravimo xyz phishing varijanti da ga dodatno istreniramo)?
I koliko je moguce da se sve zavrsava u lokalu (bez eksternih konekcija) sa nekim mega giga treniranim modelom da standalone funkcionise?
Barem za ove basic phishing page-ove...
Reply
#14
Sa moje strane je spremno, samo je potrebno prikupiti dataset velicine bar 10k sajtova (urlova) od kojih bi bilo dobro da su pola regularni, a druga polovina maliciozni sajtovi. Kako bi dataset bio balansiran.

Jedini limit kod lokalnog predvidjanja je velicina samog modela. Browseri tj. extenzije imaju limitiranu dostupnu memoriju, tako da sve sto je u nivoima stotina MB ili GB nije prakticno. Random Forest je samo varijacija Decision Tree-a algoritma koji je jako dobar i sa manjom kolicinom podataka i izvrsava se skoro linearno, sto znaci da je moguca predikcija u realnom vremenu, bez cekanja da model uradi neku kalkulaciju putem GPU. Da je u pitanju neki Deep Learning model, definitivno bi morao neki externi server da vozi model.

Padalo mi je na pamet da ubacim opcioni feature da moze rucno da se obelezi neki url kao problematican u samoj extenziji i to bi islo u neku bazu za treniranje novog modela.
Naravno ako neko vec ima gomilu malicioznih urlova to je jos lakse onda.
“One of the symptoms of approaching nervous breakdown is the belief that one's work is terribly important"
Reply
#15
Dal` bi moglo da se iskoristi sa ovog projekta: https://phishstats.info/
ili ne mora da se kupi njihova baza, izbacuju oni stalno kako se nadje phish sajt https://twitter.com/PhishStats pa da trenira u live-u par meseci...

ne znam za druge, ja ovde vidim veliki potencijal i ne znam da postoji neko resenje ovog tipa a da nije komercijalne prirode, ovo je svima i vise nego dobro doslo!


E sad, pitanje je kako je najbolje plasirati, dal` lokalno ili da postoji externi server sto povlaci neke druge stvari.... npr. jel bi mogao da povlaci model sa github-a? (gledam nesto sto je stalno dostupno)
Reply
#16
Da bi izbegli gomilu API za početak GeoAPI, Whois i DNSlookup može da se servira sa jednog servera (npr. ovog). I sviđa mi se predlog da se Phishing stranice vuku sa nekog javno dostupnog feeda (mada i Google SafeBrowsing je brz po ovom pitanju pa nisam siguran da su potrebni i ostali?).
“If you think you are too small to make a difference, try sleeping with a mosquito.” - Dalai Lama XIV
Reply
#17
Definitivno. Koliko vidim https://phishstats.info/ nudi besplatan sample koji zapravo ima oko 70k urlova u .csv formatu i koji se updatuju redovno. Ovo je i vise nego dovoljno. Smile

U originalu model jeste bio hostovan na githubu, ali githubu ne verujem od kako ga je kupio Microsoft. Vrlo lako mogu da pocnu da banuju (i vec to rade) razne repoe i infoSec researchere.

Izabrao sam da bude sve lokalno i da kod bude public, kako bi ljudi mogli sami da handluju svoje API kljuceve, troskove, pa i svoje modele koje koriste za detekciju.

U enterprise verziji bi morao biti paid extension, ali to je onda posao za sebe. Ja volim da pravim alate, ali ne bas i da se bakcem sa monetizacijom. To je skillset koji definitivno nemam.
“One of the symptoms of approaching nervous breakdown is the belief that one's work is terribly important"
Reply
#18
(10-11-2022, 07:53 AM)1van Wrote: Da bi izbegli gomilu API za početak GeoAPI, Whois i DNSlookup može da se servira sa jednog servera (npr. ovog). I sviđa mi se predlog da se Phishing stranice vuku sa nekog javno dostupnog feeda (mada i Google SafeBrowsing je brz po ovom pitanju pa nisam siguran da su potrebni i ostali?).

Jel se meni cini ili fali link u ovom postu? Rado bih napravio izmenu ako imas vec neki servis koji je proveren za ove tri stvari.
“One of the symptoms of approaching nervous breakdown is the belief that one's work is terribly important"
Reply
#19
Nema linka trenutno, ali mogu da napravim na ovom serveru takav API Smile
“If you think you are too small to make a difference, try sleeping with a mosquito.” - Dalai Lama XIV
Reply
#20
Ako imas vremena, let's do it Smile
“One of the symptoms of approaching nervous breakdown is the belief that one's work is terribly important"
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)