Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: j 07. 03. 2015, 18:08:57

Název: Strojové učení z access logu
Přispěvatel: j 07. 03. 2015, 18:08:57
Hoj,

mam udelany script, ktery prochazi neco jako webovy accesslog a pomaha mi detekovat neobvykly provoz na me jedne konkretni webove app.
Bezny navstevnik se chova jinak nez vetsina nevitanych robotu/programu.

Spousta robotu se da detekovat automaticky pokud splni par predem definovanych podminek. Rekneme ze to odfiltruje tak 60% spatneho trafficu automaticky. Na zbytek mam udelany graficky vystup a prochazim to rucne, odskratavam checkboxy.

Za tu dobu, co jsem to odskrtaval rucne, jsem si u spatnych IP co nebyli lide(nebo delali bordel), vsiml spoustu vzoru - jakym zpusobem prochazeli ten web, jak casto apod.

O strojovem uceni zatim nic nevim, ale hrozne bych ho tu chtel zkusit pouzit abych to nemusel delat rucne.

Dival jsem se na ruzne Pythoni knihovny  PyBrain,Scikit-Learn to jejich pouziti se zda velmi primocare (na nekolik radku)

Zatim jen badam o jakou oblast bych se mel vlastne zajimat?
Bylo by na tento ukol vhodne neco z klasifikace  Linear SVC   nebo Naive Bayes?

A kolik bych radove potreboval predem oklasifikovanych dat(IP adres) clovekem, abych dosahl nejake zajimave uspesnosti detekce? Jde mi jen o tu moji webovou aplikaci ktera ma hodne stranek, rozhodne se nepokousim o nic univerzalniho

O datech:
(
Ke kazde IP mam datumy s adresami na webu.
Ty adresy v ramci webu bych prevedl na unikatni cisla
Mozna samostatne i datumy resp  jen hodiny + minuty +  sekundy
)
 
Název: Re:Strojové učení z access logu
Přispěvatel: lamarzocco 08. 03. 2015, 12:31:31
Nie som expert, takze "usual caveats apply" :)

Pristupy strojoveho ucenia ku klasifikacii sa v zasade rozdeluju na dva hlavne prudy:


Myslim ze tvoja uloha by sa dala ponat oboma pristupmi.

Kolko trenovacich dat potrebujes, tot otazka. Ale technikami podobnymi cross validation [1] si vies znazornit vyvin chyby aj v zavislosti na velkosti trenovacej mnoziny, a budes vidiet. Univerzalne odporucanie neexistuje a je to zavisle napriklad aj na konkretnom algoritme strojoveho ucenia. Urcite vsak bude dobre pokial v nich budu v rovnakej miere zastupene rozne "kategorie" navstevnikov tvojho webu.

Z toho co pises mi napada niekolko pristupov:


Co sa tyka scikit-learn a SVC, tak to je linearny Support Vector Machine (SVM), ktory je urceny na jednoduchsie ulohy (AFAIK linearne separovatelne) a nie som si isty ze by ti pre tvoje potreby stacil. V pripade SVM je dobre pouzit nejaky nelinearny kernel (ale obavam sa ze tu zachadzam asi uz do prilis velkych detailov) - na prvy pohlad vyzera zaujimavo skor trieda OneClassSVM - tvojou triedou by boli "normalni pouzivatelia" a vsetko co by "lezalo mimo" (outliers), by boli boti :)

To su len take prvoplanove napady, urcite som tu nevymyslel nic svetoborne :) Co sa tyka tvojho zamerania, da sa to ponat aj ako "anomaly detection" - mozes prip. skusit pogooglit tento termin a urcite najdes odbornejsie i uzitocnejsie clanky ako je moj prispevok :) Nejake algoritmy najdes spomenute i na wikipedii [2].

Uvedomujem si ze som to napisal dost ad-hoc, snad pomoze aspon trochu :)

[1] http://www.astroml.org/sklearn_tutorial/practical.html#cross-validation-and-testing
[2] http://en.wikipedia.org/wiki/Anomaly_detection#Popular_techniques
Název: Re:Strojové učení z access logu
Přispěvatel: j 08. 03. 2015, 18:35:59
Diky. Ted vim o cem si hledat informace.
Grafy aktivity v case si uz nejakou dobu pro kazdou IP kreslim ale jde z toho poznat okem miminum. Na tech grafech je akorat dobre videt pravidelna aktivita.
Název: Re:Strojové učení z access logu
Přispěvatel: ales 08. 03. 2015, 21:55:25
zdravim.
predem nechci zpochybnovat edukativni vyznam techto vlastnich bezpecnostnich barier. co me zajima je, zda jejich nasazeni vyrazne posili filtrovani kentusu v porovnanim s / v kombinaci s beznyma NIDS jako snort a fail2ban.
dik
Název: Re:Strojové učení z access logu
Přispěvatel: j 08. 03. 2015, 23:03:13
U vetsiny webu co mam takove veci vubec neresim.
Mam jeden, ktery poskytuje cerstva data a ty pomerne rychle starnou.
Kdybych to co mam ted vypl, tak bych mel denne 10x - 30x vetsi logy. Traffic v google analytics by zustal stejny.

V mem pripade by fail2ban nebo snort nic nevyresil
Název: Re:Strojové učení z access logu
Přispěvatel: Niekto 08. 03. 2015, 23:23:42
No neviem ale tvoje kroky by maly smerovat smerom k ludom a sluzbam ktore analyzuju spravanie zakaznikov. Myslim ze to bude to co hladas
Název: Re:Strojové učení z access logu
Přispěvatel: karel 09. 03. 2015, 08:05:47
fail2ban je v dobe ipv6 skvela vec jak si nechat sestrelit server
Název: Re:Strojové učení z access logu
Přispěvatel: Alibaba 09. 03. 2015, 14:54:37
nerozmýšľali ste nad zmenou prístupu k riešeniu - blacklist vs. whitelist? Teraz polo-automatizovane vytvárate blacklisty zakaždým ako reakciu na nejakú nevhodnú aktivitu, teda ste stále o krok pozadu oproti "útočníkom". Ak si aj tento proces zautomatizujete, tak sa nič nezmení stále to bude kolotoč "problém" -> "analýza" -> "zápis do BL". Blacklist narastá a vám šedivejú vlasy :-)

skôr by som to videl na riešenie niečo ako web aplikačný firewall alebo proxy, ktorý pustí len požadované URL. Myslím že vytvorením whitelistu strávite rádovo menej času ako s backlistom.