2012
01.26

Wie parse ich X-ARF Reports automatisch (DE)?

Wie parst man X-ARF-Reports?

X-ARF-Repors sind als erstes einmal nur normale E-Mails.
Einen X-ARF-Report erkennt man im Header an dem Tag:
X-Arf: yes

Dann kann man anfangen die Mail zu parsen, also Attachment 1 und 2 laden.
Der eigentliche Report ist im ersten Anhang als Yaml-Dokument und kann mit verschiedenen Yaml-Parsern eingelesen werden oder einfach Zeilenweise…

Da erhält man dann alle Daten. Wichtig ist dann das JSON-Schema von dem Key „schema-url“ geladen und dann gecached wird.
Gehen wir wieder von einer SSH-Attacke aus, so ist das Schema z.B. hier abgebildet:
http://www.x-arf.org/schema/abuse_login-attack_0.1.2.json

Man liest dieses dann z.B. über php als Array ein. Dann kann man prüfen alles was im Schema nicht als „optional“ gekennzeichnet ist, ist Pflicht (den Rest mit optional verwerfen wir, falls wir ihn nicht brauchen).

Es gibt im Yaml-Report den Key „report-type“, „category“ usw. Sollte ein Feld nicht im Report sein, kann man entscheiden ob man den Report verwirft, manuell verarbeitet oder ob der Wert überhaupt benötigt wird.
Als Teamleiter von einem Abuse-Team, ist es für uns nicht wichtig, ob die Version des X-ARF-Generators enthalten ist oder das Angriffs-Ziel (sieht bei Nat/Proxy anders aus).

Wenn nun alles geprüft wurde (bei dem PHP-Xarf-Parser kann dies mit $parsexarf->checkreport($typ, $report) durchgeführt werden…. $typ kann man auch entfernen), kann man dann die Daten mit $parsexarf->data durchgehen und verarbeiten.

Hier einmal noch kurz anhand des Skripts von mir:
http://www.blocklist.de/downloads/validatexarf-php.tar.gz

$parsexarf = new parsexarf($config);
$mail = $parsexarf->getmails();

Wir erstellen ein neues Object übergeben dabei die Config-Daten (Postfach, Zugangsdaten usw…)
Dann laden wir mit $parsexarf->getmails(); alle Mails.


foreach($mail as $key => $value)
{
# Check Structru from Mail.
if($parsexarf->checkstructur('x-arf', $value) == 0)
{
# Check Yaml-Report (checkreport($typ, $report))
if($parsexarf->checkreport('x-arf', $value['report']) == 0)
{
$text = $value['all']->subject'

';
$text .= 'Data:
';
foreach($parsexarf->data as $key => $value)
{
$text .= ''.$key.':   '.$value.'
';
}
$text .= '

';
$errormsg = '
Good, NO Error! :-)
';
echo $errormsg;
echo $text;
}

diese gehen wir dann in der Schleife durch und prüfen jede einzelne Mail.
Man kann dies natürlich bei $object->getmails() anpassen, das z.B. nur Mails mit bestimmten Absendern usw. geholt werden.

Dann wird mit:
if($parsexarf->checkstructur('x-arf', $value) == 0)
geprüft, ob die Structur der Mail ein X-ARF-Report ist (wenn nicht 0, kein X-ARF).
Da x-ARF und ARF fast gleich sind, kann man dies beim Typ noch übergeben, das man x-arf und arf in einem macht…..
Wenn also x-arf-Report, dann prüfen wir den Yaml-Report:
if($parsexarf->checkreport('x-arf', $value['report']) == 0)
Wenn keine 0 zurück gegeben wird, ist ein Fehler aufgetreten. Hier könnte man auch mit Exeptions arbeiten, oder dann die Fehler über $parsexarf->data durchgehen.

Die ist nur ein Beispiel dafür. Es ist relativ einfach X-Arf Reports zu verarbeiten.
Man hat dazu dann die Möglichkeit ein sehr feines Scoring zu setzten:

Reported-From Ergibt je nach Versender schon mal 200 Punkte

Category gibt für SSH 500, für mail 100 usw.

Report-Type für login-attack 200, für malware 500

usw. Damit kann man dann die IP automatisch sperren, das Abuse-Team informieren oder oder…..

Somit kann man z.B. automatisch die Reports an die entsprechenden Kunden/Reseller weiterleiten, falls die IP nicht aus dem eigenen Netz/Benutzung ist.

Dies ist jetzt relativ viel Text. Am einfachsten Ihr schaut euch einfach mal die Tools von X-ARF.org an:
http://www.x-arf.org/tools.html
und testet dann mit den Beispiel-Reports eure Skripte.

Bei Fragen, könnt Ihr euch gerne an xarf.org oder blocklist.de wenden.

Download: http://www.blocklist.de/downloads/validatexarf-php.tar.gz

-google-ads-
2012
01.26

Die Attacken des Typs Reg-Bot und BadBot sind rückgängig, da wohl mittlerweile viele VPN- und Proxy-Betreiber die User, welche den Dienst missbrauchen, sperren/kündigen.

Dazu kommt ein Gerücht, das die verwendeten Honeypots keine Reports generieren, wenn man in diese Foren nur alle 2 Stunden einen Beitrag schreibt 🙂

Wenn die Spamer sich mal die Seite von www.blocklist.de durchlesen würden, würden sie wissen, das ein Report nur erstellt wird, wenn der letzte über 24 Stunden her ist.

Mein Tipp an euch „SEO“-Money-Maker. Verwendet keine Domains von *.blocklist.de wie in der Sperrliste von xrchat 🙂 LOL!!! 🙂

-google-ads-
2012
01.24

Wie erstellt man X-ARF-Reports (DE)

Wie erstellt man X-ARF-Reports?

Um einen Report erstellen zu können, ist es nötig das dieser über ein Schema abgebildet werden kann.

Eigentlich können alle Angriffsarten von Brute-Force-Login bis über dDOS-Angriffe oder nur Harvesting (unknown-User) über X-Arf abgebildet werden.

Es gibt aktuell bei x-arf.org folgende Schemas:

Login-Attack (Brute-Force, ssh, imap, smtp, ftp…..)

Malware-Attack (Honeypots, Trojaner….)

Fraud (Phishing-URLs, Malware-URLs….)

 

Wir haben für blocklist unter http://www.blocklist.de/downloads/schema/ noch ein eigenes Schema des Typ „info“, wo wir z.b. Harvesting, BadBot/RegBot usw. drin haben. Da diese ja ansonsten wieder ein eigenes wären.

 

Gehen wir nun einmal von einer SSH-Brute-Force-Attacke aus:

Dann benötigen wir zum generieren des Reports folgende Daten:

  • Reported-From =Absender-Adresse vom Melder
  • Category =wie im Schema, z.B. Abuse
  • Report-Type =z.B. login-attack oder info
  • Service =der Dienst wie z.B. ssh, imap, ftp….
  • Version =Version des Skripts/Software, die diesen Report erstellt hat
  • User-Agent =Name der Software/Skript
  • Date =Zeitpunkt des Angriffs nach RFC rfc2822 (möglich korrekt per ntp gesynct)
  • Source-Type =ip-adresse, ipv4, ipv6, url….
  • Source = Angreifer IP oder URL
  • Port = Der Port (bei ssh ist es normalerweise 22, smtp 25, apache 80 usw.)
  • Report-ID = die ID gefolgt von @domain-des-reporters.tld (sollte man sich speichern um den Report später mal wieder zu finden.)
  • Schema-URL = Die URL zum JSON-Schema wie z.B. http://www.x-arf.org/schema/abuse_login-attack_0.1.2.json)
  • Attachment = Typ des Anhangs (normalerweise Text/Plain)

Wenn wir all diese Daten haben, können wir daraus den Report (2nd Part) als Yaml-Document generieren:

---
Reported-From: autogenerated[AT]blocklist.de
Category: abuse
Report-Type: login-attack
Service: ssh
Version: 0.1
User-Agent: blocklist.de V0.1
Date: Mar  3 2010 02:13:35 +0100
Source-Type: ipv4
Source: 85.25.xxx.xx
Port: 22
Report-ID: 12675788150797@blocklist.de
Schema-URL: http://www.x-arf.org/schema/abuse_login-attack_0.1.1.json
Attachment: text/plain

Dazu benötigen wir dann noch den dritten Part mit den Logfiles und den ersten Part mit einem kleinen Text für die manuelle Lesung von Abuse-Mitarbeitern.

Das ganze sieht dann fertig so aus:

http://www.x-arf.org/examples/ssh-report.txt

 

Man kann zum generieren auch die Classe von blocklist verwenden, welche unter den Downloads zu finden ist:

http://www.blocklist.de/downloads/genxarf-php.tar.gz

 

Um seine generierten E-Mails, kann man z.B. unseren XARF-Validator unter folgender URL verwenden:

http://www.blocklist.de/en/xarf-validator.html

 

Weitere Tools und Infos zu X-ARF gibts auf www.x-arf.org und http://www.x-arf.org/tools.html

Im nächsten Teil erklären wir, wie man sehr einfach einen X-ARF-Report automatisch einliest und bewertet.

-google-ads-
2012
01.20

Bruteforce Attacken auf den Login von blocklist.de

Seit einigen Wochen, versuchen immer wieder IP-Adressen aus China sich bei blocklist einzuloggen.

Dabei ist es doch so einfach einen neuen Account zu erstellen.

Einige haben auch erfolgreich das Captcha geschafft und auch die E-Mail angenommen, aber nie den Link bestätigt, wodurch natürlich dann kein Account erstellt wird.

Warum versuchen diese nun sich einzuloggen? Was will man dann erreichen, wenn man z.B. den Account von blocklist geknackt hat? Es gibt keinen Admin-Account und User können nur Whitelistung/Replacing auf eigene Reports erstellen. Wenn ein User  A die IP eines Servers von Users B reported, greift der Whitelist-Eintrag von User B natürlich nicht.

 

Die einzelnen Aufruf der IP-Adressen werden aktuell für 10 Minuten gespeichert und die Seiten dazu verglichen. Wenn nun auf der Login-Seite mehr als 4 Aufrufe statt gefunden haben, kann man sich für 10 Stunden nicht mehr einloggen.

Mit False-Positives rechnen wir nicht. Falls doch bitte mit uns Kontakt aufnehmen!

-google-ads-
2012
01.17

Suchanfragen laut Google-Webmastertools stark angestiegen.

Blocklist ist bei den WebmasterTools von Google eingetragen. Dort schauen wir ab und zu die Statistiken, Suchtrends, Leistung usw. ein.

Seit dem 13.01.2012 sind die Suchanfragen sehr stark angestiegen, die Klicks allerdings nicht:

 

Wer oder wodurch dies ausgelöst wurde, ist bisher noch unbekannt. Über mehr richtigen Traffic, freuen wir uns natürlich 🙂

-google-ads-
2012
01.14

IP-Adressen die bei blocklist gelistet sind für POST-Requests blockieren mit mod_spamhaus

Um die IP-Adressen, die auf den Listen von blocklist.de gelistet sind zu sperren, gibt es das Modul mod_spamhaus.

Mod_Spamhaus kann man über den Packetmanager installieren oder selbst compilieren. Beide Anleitungen finden sich hier:

Auf der Seite von suckup.de

 

Dann kann man die Konfiguration vom Apache anpassen:

/etc/apache2/mods-enabled/mod_spamhaus.conf

<IfModule mod_spamhaus.c>
MS_METHODS POST,PUT,OPTIONS,CONNECT
MS_WhiteList /etc/apache2/spamhaus.wl
MS_DNS apache.bl.blocklist.de
MS_CacheSize 256
</IfModule>

Danke an Jens für die Info.

Bei Fragen, Vorschläge oder anderen Alternativen einfach hier posten oder in unserem Forum

-google-ads-
2012
01.12

wordpress kommentar spam und sql-injections

Die Spam-Kommentare im Blog haben seit einigen Tagen enorm zugenommen. Täglich sind mehr als 15 Spamkommentare enthalten.

Wir werden WordPress aufhacken und diese dann über badbot reporten, wenn wir diese als Spam markieren.

Das ist dann eine gute, weitere Quelle für mehr BadBot-Angriffe.

 

 

Dazu haben wir neue Dienste wie „sql-injection“ aufgenommen. Auf blocklist.de gehen wöchentlich ca. 5 bis 10 SQL-Injection Angriffe ein, die wir damit nun auch reporten.

Ich hab nichts gegen „hacken“, allerdings muss man dafür dann ein bulletproof-System nutzen oder so hacken, das die verwendete IP (gehackter Server) nicht gemeldet wird 🙂

-google-ads-
2012
01.04

Aktuelle Zahlen und Traffic von blocklist.de

Aktuell hat blocklist folgende Zahlen/Statistiken:

User: 369

Server: 458

Angriffe: 8.789.643

Reports: 2.303.109

Tägliche Mails: 50.000 bis 119.000

Web-Traffic: ~43 GB

RBL-/API-Traffic: ~160 GB

Mail (In/Out)-Traffic: ~30 GB

Dazu kommen dann noch einmal ungefähr 64GB interner Traffic zwischen dem Mail-/Web- und MySQL-Server.

 

-google-ads-
Translate »