Hpfriends – ako zdieľať dáta z honeypotov

Hovorí sa, že zdieľaná radosť je dvojnásobná radosť. Rovnako rastie zdieľaním užitočnosť dát z honeypot systémov. Vďaka projektu hpfriends, súčasti The Honeynet Project, je zdieľanie týchto dát veľmi jednoduché a podnecuje k ďalšiemu využívaniu. My sme vďaka tomuto projektu vizualizovali útoky na náš honeynet. V tomto článku sa môžete pozrieť na našu skúsenosť so zapojením do hpfriends.

honeymap

Naša honeymapa

Systém hpfriends je evolúciou staršieho hpfeeds. Cieľom projektu je umožniť používateľom jednoducho rozhodovať o právach k odoberaniu ich udalostí. Podľa nich potom systém zaslané udalosti distribuuje na základe autentifikačných údajov k ďalšiemu spracovaniu.

Podrobný návod na použitie spísal Johannes ‚heipei‘ Gilger. V skratke – dá sa prihlásiť pomocou GitHubu, Googlu, alebo Facebooku. Užívateľ si vygeneruje svoj (jeden alebo niekoľko) autentifikačný kľúč a nastaví, do ktorých kanálov môže publikovať a ktoré môže odoberať (Sub). Potom v honeypote na jednej strane, alebo v software, ktorý spracováva prijate udalosti na druhej strane, použije tento kľúč.

Dá sa nastaviť zdieľanie kľúča s iným používateľom alebo skupinou. Tieto vzťahy sú uložené v grafovej databáze Neo4j. Viac o implementačných detailoch nájdete tu.

Hpfeeds vytvoril Mark ‚rep‘ Schloesser, sú dostupné implementácie v go, a ruby. Zdrojové kódy hpfriends nie sú verejné.

Kód v Pythone na publikovanie udalostí je veľmi jednoduchý:

import hpfeeds
import json
import sys

try:
    hpc = hpfeeds.new('hpfriends.honeycloud.net', 20000, "ident", "secret")
    print("Connected to {0}".format(hpc.brokername))
    channels = ["artillery", ]
    data = {"local_host": "168.192.1.1", "connection_protocol": "smbd",
        "remote_port": 2714, "local_port": 445, remote_host": "168.192.1.2"}

    hpc.publish(channels, json.dumps(data))
except:
    print format(sys.exc_info())

hpc.close()

Na odoberanie udalostí používame feed.py z redmine na honeynet.org :

python ./feed.py --host hpfriends.honeycloud.net -p 20000 -c test -c dionaea.capture
-i ident -s secret subscribe

Ak niečo nefunguje, najskôr sa treba pozrieť do logu na hpfriends, či kľúču nechýbajú práva.

Príkladom použitia je Honeymap. Žlté bodky na mape sú mestá so senzormi, červené sú zdroje útokov. Čím viac útokov pochádza z danej krajiny, tým je krajina viac modrá. V logu v dolnej časti stránky vidno informácie o real-time útokoch (čas, zdroj, cieľ, ich súradnice, typ senzoru, pri type dionaea.capture je uvedený aj MD5 hash súboru, ktorý použil útočník spolu s linkom na virustotal.com).

Naše senzory v Prahe sú tiež pridané do mapy, ale mapa nezobrazuje všetky udalosti z nich. Mapu udalostí len z našich senzorov nájdete tu. Databázy geolokácie nie sú nejak obzvlášť presné, tak máme Prahu nastavenú ako cieľ ručne. Inak by bol cieľ v strede republiky.

Ďalšie mapy:
Nemecký Telekom
Luxemburský CIRC (Computer Incident Response Center)

S hpfeeds komunikujú všetky naše honeypoty (Dionaea, Kippo, Glastopf, Artillery, Conpot). Počas tohtoročného Google Summer of Code sa podpora hpfeeds dostala aj do spampotu SHIVA. Viac na blogu.

Za zmienku stojí blogpost od Marka Schloessera, kde vysvetľuje základné otázky, ako „Odkiaľ sa berú dáta?“, „Sú dáta reprezentatívne?“, „Prečo sa zdá, že celý svet útočí na Aachen?“.

Z vlastnej skúsenosti môžeme povedať, že zapojenie so hpfriends je jednoduché. Napadá vás ďalšie zaujímave využitie živých dát okrem vizualizácie? Napíšte nám do komentárov.

Katarína Ďurechová, Jiří Machálek

Autor:

Komentáře (1)

Zanechte komentář