DeepSpam v0.3 release - uj tokenizalo, uj dataset/model

Fórumok

Elkeszult az FSF.hu altal tamogatott neuralis halos spamszurom uj verzioja...

uj model: http://thot.banki.hu/deepspam/model_big_v3/

sokkal tobb, tobbszorosen ellenorzott mintabol epitve:
36172 mail.neg
45139 mail.pos
81311 total

uj milter: http://thot.banki.hu/deepspam/milter-v0.3/
vagy online teszteleshez postfix/main.cf-be: smtpd_milters = inet:193.224.38.187:1080

Changelog v0.3:
================
- html parser atirva, jobban kezeli az extrem eseteket
- kodlap kezeles javitasok, pl. hibas utf8...
- tokenizalas modositva, anonimizalja a cimeket (email/url), szamokat
emiatt javasolt az uj model (v3) hasznalata, mert az mar az uj parserrel keszult!
- mar nincs python 2.x support, de ha van ra igeny megnezem majd, viszont foleg a kodlap kezeles tok maskepp megy 3.x alatt...

A'rpi

Hozzászólások

Köszi!
-------------------------
Hivatásos pitiáner
neut @ présház

sub

(hatha meg iden ra tudok nezni:)

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Off: bocs, a model.png-t mivel rajzoltad?

Csináltam egy konténert a cuccosnak. Megosztom hátha valakinek hasznos. Ha lesz időm csinálok hozzá dockerfile-t is, de most egyelőre tesztelgetem.
Az ellenfél egy agyontanított dspam (még nem találtam jobbat). Első ránézésre partiban van vele, talán jobb is egy kicsit.
Ja, a tesztkörnyezet egy kb. 500 useres postfix egy tizenéves vason. AVX mutatóban sincs ennek ellenére 60ms/step az átlagos idő.


HOST:
docker run -it --name=dstemp debian:stretch

CONTAINER:
apt update
apt install dialog # csak hogy ne anyázzon az apt
apt upgrade # szúrta a szemem az 5 nem frissített csomag
apt install libmilter-dev # ez a pymilter-hez kell, hogy ne kelljen forrásból fordítani
apt install python3-pip

(if CPU AVX capable)

pip3 install tensorflow

(else)

apt install wget
wget https://files.pythonhosted.org/packages/43/aa/fe3e9d0b48db4adde9781658b…
pip3 install ./tensorflow-1.5.0-cp35-cp35m-manylinux1_x86_64.whl

(fi)

pip3 install pymilter html2text keras==2.2.5

# 'ctrl-d' kilépés a konténerből

HOST:
docker commit dstemp deepspam
docker rm -f dstemp

#összerendezgeted a file és könyvtár struktúrát (lásd: v0.2) vagy átírod a deepspam.py-t, aztán belépsz a deepspam.py könyvtárába, majd go:

docker run -it --rm --name=deepspam --hostname=deepspam -v $PWD:/tmp -w /tmp deepspam python3 ./deepspam.py

Kár, hogy ez nem hír lett, megérdemelte volna :D

Ki szerettem volna próbálni, de elakadtam python verzió problémával.

VPS-re telepítettem Debian 10-et. AVX nem támogatott.
Alapból 3.7-es python van, és a tensorflow 1.5 csak 3.6-os verzióig támogatott. Ha jól értelmeztem.

Várjak új verzióra?
Lehet telepíteni 3.6-os pythont debian 10-re? Nem sikerült, de nem értek a pythonhoz.
Mi az ajánlott distro?

ubuntu 16, 18 es centos7-en teszteltem, azokkal nem volt gond (python 3.5/3.6).
csodalkozom a debianon, mindig 5 evvel le vannak maradva, most meg naluk van a legujabb python? vagy ez valami sid/beta verzio? :)

amugy itt azt irjak 3.7-en is megy:
https://www.tensorflow.org/install/pip

A'rpi

2011 ota van avx... ha nem olyan regi akkor lehet csak a cpu flag-eket nem jol maszkoltak le a vps-nel. qemu-nal pl. meg lehet adni milyen cpu-t emulaljon...

vagy probald meg masik backend-el, a keras nem csak tensorflow-t tamogat, bar en csak azzal hasznaltam.

memoria lesz eleg? vps-ek nem arrol hiresek...

Tapasztalat:
AVX nélkül sem zabálja a procit, szinte észre sem lehet venni átlagosan 1 mail/s terhelésnél. Nagyobb gond a memória használat. A kezdeti 2 Gb körül értékről három hét alatt felkúszott több mint 4Gb-ra. Mivel csak 6 Gb van a gépben le is állítottam. Nézted mikor indítottad a memóriafoglalást? Nem lehet, hogy nálad is 2-ről ment fel 10-12-re? Nem ismerem az egész működését, de szerintem ez memória kezelési hiba lesz.

Egyébként kurva jó cucc. A három hét alatt fals-pozitívot nem találtam. Az angol nyelvű spamekre bőven 95% fölött volt a találat, a magyarokra kb. 80-85%.
Mikor jön a v0.4? Meg akartam csinálni a paraméterezhetőség (meg még egy két dolgot, pl. Subject hozzáadás), de mivel írtad, hogy hamarosan jön, ezért várakozó álláspontra helyezkedtem.

centos-en en is lattam ilyen memleak-elest a regi (0.2) verzional python2-vel. azt hittem valami bug, mert a 0.3+py3.6 ota nem tapasztalom ezt ott, ubuntun pedig regebben sem, vagy legalabbis nem ennyire durvan. amugy a pymilter-re gyanaxom, hogy a megszakadt smtp kapcsolatok beragadhatnak a memoriaban.
kell egy cron ami hetente restartolja es megoldva :)))

v0.4 lehet kimarad (beta fennvan, de az inkabb csak refaktor), mar a 0.5-on dolgozom :)

A'rpi

Pongyola voltam, nem találat volt 80-85%, hanem az elfogott levelek aránya. Ez annak köszönhető, hogy nem egy olyan spam volt amit egymásután 30-40 címre is küldtek. A találat a magyar leveleknél is 95% fölötti.
Nincsenek meg ezek a levelek, de ha újra beizzítom, akkor begyűjtöm és küldöm.

Eszembe jutottak az olcsóbbnál is olcsóbb VPS-t keresek topikok, és ott ráböktem az egyikre, ami támogatja az AVX-et.
https://contabo.com/?show=vps
VPS M SSD
6 mag, 16G ram.

Linux mx1....hu 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux


processor : 5
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
stepping : 2
microcode : 0x1
cpu MHz : 2399.996
cache size : 16384 KB
physical id : 0
siblings : 6
core id : 5
cpu cores : 6
apicid : 5
initial apicid : 5
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm cpuid_fault invpcid_single pti ssbd ibrs ibpb fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt arat umip
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs
bogomips : 4799.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual

Elég jó arányba szűri a leveleket, de azért akadnak hibák.

Szívesen visszajelzem ezeket, ha fel tudod használni. Viszont a GDPR miatt, vhogy anonimizálni kellene a leveleket. Esetleg amit a programban használsz erre a célra ki tudod emelni külön scriptbe?

vagy a deepspam.res filebol azokat a sorokat kuldd el ami tevedes, vagy a levelre/folderre kuldd ra a maildedup2.py-t, az mbox/eml filebol megcsinalja.

amugy ezt nem is ugy terveztem hogy csak onmagaban hasznalni, mert nem nez minden parametert a levelben, csak a body szoveget, sokkal inkabb kiegesziti az egyeb modszereket (greylist, header checks, spamassassin, clamav stb). pl. egy kepet vagy csak url-t tartalmazo levellel nem tud mit kezdeni, akkor sem ha az url vagy az ip rajta van 10 blacklisten mar.

en ugy latom (sok helyen hasznalom mar), hogy pont azokat fogja meg eleg jo hatekonysaggal, ami a spamassassin/clamav-on atcsuszik, mert amugy artalmatlan levelnek tunik (pl. feltort valid accounttal kuldik, ami nincs blacklisten, es betart minden smtp protokollt), de a szovege gyanus. elsosorban a phishing leveleket.

A'rpi

Nem is olyan egyszerű visszakeresni.

Saját fiókban ezt a kettőt látom most. Ilyen formában jó lesz?

Mindkettőben kevés a szöveg. Gondolom ez nehezít a dolgon.

Github értesítő:
99%:fwiw i just tried sbtprojectmatrix and hit on sbt sbtprojectmatrix ## . our build is structured like this mtagsinterfaces pure java mtags crossversion . full # . ## . ## # . ## . ## # . ## . # . depends on mtagsinterfaces you are receiving this because you are subscribed to this thread . reply to this email directly view it on github or unsubscribe .

Twitter értesítő:
100%:twitter httpurl ## aktualis ertesitesed van a twitteren nezd meg httpurl sugo httpurl beallitasok httpurl leiratkozas httpurl ; cn mtewote # mtqwomfjdgl # axr # x # rpz # vzdf ## axrox # hlywrsaw # lx # noyw # nzq # d # d sig ## eee # ebf ## df #### db ########## a # d # c # c ### c iid ### e # f ######### bbd # c # b #### e # e # e # uid ######## nid ### ## usbid ## elkuldtuk emailaddressalonak . leiratkozas httpurl ; cn mtewote # mtqwomfjdgl # axr # x # rpz # vzdf ## axrox # hlywrsaw # lx # noyw # nzq # d # d sig ## eee # ebf ## df #### db ########## a # d # c # c ### c iid ### e # f ######### bbd # c # b #### e # e # e # uid ######## nid ### ## usbid ## twitter inc . #### market street suite ### san francisco ca #####

hat, ez alapjan en is spamnak mondanam oket :) foleg a 2. eleg erdekes a sok ertelmetlen karakterekkel...

de az elso is eleg erdekesen nez igy ki...

amugy a maildedup2-vel elo tudod ujra allitani barmilyen emailbol vagy unix mailboxbol, sot az meg a duplikaciokat is kiszedi, az egyszerubb mint a logbol megtalalni :)

Gyakorlatilag a levél nagy része a két nagyon hosszú hivatkozás. De ettől még ezek hasznos értesítő levelek.

Sajnos nem mentettem ki rögtön, de ma volt két google levél (talán analitika értesítések), egy számla értesítő és egy KSH adatszolgáltatás levél, amit spamnek jelölt, na és észrevettem.

Megoldottam, hogy aránylag könnyen le tudjam szűrni az utolsó pár ezer levelet. Privátba fogok néha küldeni, ha hasznos lesz.

Most csak a ham/spam jelöléseket nézem. Ez alapján 1% alatt lehet a hiba.

Amit most írok azt inkább segítő szándékkal írnám.

Jó, és nagyon tetszik, amit csinálsz!

A dokumentáció lehetne beszédesebb. Kezdőknek, akik életükben nem csináltak ilyet nem evidensek a telepítés lépései.A telepítési leírásnál azt mondod,hogy elég letölteni a deepspam.py file-t, de utána meg ott van, hogy kell a milter.eml fájl is. 

Ha kaphatnék egy részletesebb (step-by-step) telepítési guide-ot szívesen csinálnék belőle egy Dockerfile-t, amit visszaosztanék a közösségnek. Jó lenne a kódot valahonnan egyszerűbben letölthetővé tenni, például GIT és a releaseket tar.gz-ben le lehetne tölteni stb.