Toon posts:

[ALG] Emailbericht te identificeren alsmede ID te geven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Als hobby ben ik een eigen spamfilter aan het maken voor Outlook 2003.

Principe dat ik wil nabouwen is bekend. Installeert een add-in voor outlook. Deze scan't je inkomende mailtjes, en kijkt in een lijst op een server of deze daar als spam bekend staan. Iedereen kan via de add-in een mailtje als spam classificeren en zo helpt iedereen om elkaar's mailbox schoon te houden.

Alles gaat prima, alleen weet ik voor een onderdeel niet wat de beste oplossing is.

Hoe maak ik een 'vingerafdruk' van een emailtje?

Als ik een md5 hash van de body van de mail maak, komt deze vaak niet overeen met dezelfde mail naar andere gebruikers als de naam van de persoon gebruikt wordt in de body (bv Dear Philip).

Ik kan zoeken op dear en hi en die regels schrappen, maar dan kan er nog steeds ergens in de body een random iets staan om zo'n hash om zeep te helpen.

Ik wil graag iets van een hash gebruiken omdat dit lekker snel is.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 14:59

pjvandesande

GC.Collect(head);

Ik zou inderdaad filteren, dus alleen de body en bijvoorbeeld links die in de mail staan. In spam mail staan vaak links waar je op moet klikken. Deze kun je verzamelen en met het adres van de verzender zou het een oplossing zijn.

Of je de verzender erbij wilt betrekken, spam word namelijk altijd veel verzonden met allemaal verschillende verzenders. Dus ik weet niet of dat nou echt wat is.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 18 oktober 2004 @ 09:33:
[...]
Ik wil graag iets van een hash gebruiken omdat dit lekker snel is.
En toch heb je daar niet veel aan. 90% van de spam heeft al een random string om zo zulk soort filters te passeren. Een optie zou het zijn om alle woorden door lspell of een vergelijkende library heen te halen en alleen de gevalideerde woorden in je hash betrekken, echter de keywords waar het om gaat (viagra etc) zijn vaak misspelled.

Ik zou meer zien in een (naive) Bayes algoritme. Dit AI-algoritme gebruikt spamasssasin ook afaik.

Verwijderd

Topicstarter
Ja, elke mail heeft dan andere hash en om nog spellchecker te gebruiken, dan moet ik iets van 3de gaan gebruiken (woordenboeken). En lijkt me ook weer niet bevoordelijk voor de snelheid.

Maar zoals gezegd kan ik naar de links in een mail kijken.

Die zullen waarschijnlijk allemaal wel ID's bevatten in de url die variabel zijn, maar dat moet er uit te filteren zijn.

Dan zou de benadering zijn om een database met links bij te houden. Die gemarkeerd staan als spam.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 14:59

pjvandesande

GC.Collect(head);

Verwijderd schreef op 18 oktober 2004 @ 10:21:
Ja, elke mail heeft dan andere hash en om nog spellchecker te gebruiken, dan moet ik iets van 3de gaan gebruiken (woordenboeken). En lijkt me ook weer niet bevoordelijk voor de snelheid.

Maar zoals gezegd kan ik naar de links in een mail kijken.

Die zullen waarschijnlijk allemaal wel ID's bevatten in de url die variabel zijn, maar dat moet er uit te filteren zijn.

Dan zou de benadering zijn om een database met links bij te houden. Die gemarkeerd staan als spam.
Je zou het even moeten testen, maar het valt mij altijd wel aardig op. Verder kost het scannen op keywoorden niet superveel extra tijd.

Hoewel er wel heel veel keywoorden zijn en je daar nog verder kwa hash niets mee opschiet.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 18 oktober 2004 @ 10:21:
Dan zou de benadering zijn om een database met links bij te houden. Die gemarkeerd staan als spam.
Uit m'n spam DB, twee identieke spammails:
code:
1
2
http://qhpykfdahgf.ggg-apple.com/free/?gagabob
http://bimtqzcdbkpd.ggg-apple.com/free/?gagabob

Probeer gewoon nog wat meer kenmerken voor spam te vinden (high priority, outlook forge ed)

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 14:59

pjvandesande

GC.Collect(head);

Glimi schreef op 18 oktober 2004 @ 10:31:
[...]
Uit m'n spam DB, twee identieke spammails:
code:
1
2
http://qhpykfdahgf.ggg-apple.com/free/?gagabob
http://bimtqzcdbkpd.ggg-apple.com/free/?gagabob

Probeer gewoon nog wat meer kenmerken voor spam te vinden (high priority, outlook forge ed)
Je zou idd wat moeten filteren en bijschaven. Maar uigaan van links lijkt mij nog best een simpelen en snelle oplossing. Verder als het html mail is kun je filteren op urls van plaatjes.

[ Voor 23% gewijzigd door pjvandesande op 18-10-2004 10:57 . Reden: Er stond een rare quote extra bij, niets waard... O+ ]


  • ATS
  • Registratie: September 2001
  • Laatst online: 12-02 13:46

ATS

Om even terug te komen op de vraag van de TS, namelijk het maken van een fingerprint van een message:

Misschien moet je een systeem verzinnen dat niet met een echte hash werkt (zoals md5) maar meer een soort histogram van het bericht maakt. Een histogram geeft aan hoe vaak een bepaalde waarde voorkomt in een dataset (bijvoorbeeld: hoe vaak een een bepaalde kleur pixel voorkomt in een plaatje). Misschien kan je iets dergelijks verzinnen voor je email, en voor een match geen 100% overeenkomst eisen maar een andere waarde die "groot genoeg" is (99% bijvoorbeeld). Aan waardes die je kan meten voor je histrogram zou je kunnen denken aan de frequentie van elk karakter, de gemiddelde woordlengte, de afstanden tussen twee dezelfde letters, etc. (en combinaties daarvan natuurlijk).

Het zou overigens wel kunnen helpen om te proberen voordat je je histogram maakt zoveel mogelijk rommel uit je bericht te filteren.

De andere suggesties die gedaan worden voor spam herkenning zijn op zich natuurlijk erg nuttig, maar ik denk dat de beste manier van detectie ligt in een zo breed mogelijke benadering. Dus niet of/of maar en/en. Gebruik alle methodes die je kan verzinnen tegelijk, en gebruik het gecombineerde resultaat. Dit is veel en veel moeilijker te omzeilen dan een enkelvoudige methode voor spamherkenning. Spamassassin doet dit bijvoorbeeld. Jouw methode kan binnen zo'n systeem zeer waardevol zijn, dus wat mij betreft gewoon voor je gekozen aanpak gaan!

My opinions may have changed, but not the fact that I am right. -- Ashleigh Brilliant

Pagina: 1