Ovo je stara izmjena dokumenta!
Tehnike strojnog učenja danas se primjenjuju na mnoga polja računarstva, medicine, poljoprivrede, ekonomije i drugih znanosti. Njihova prilagodljivost problemu, skalabilnost i mogućnost brze prilagodbe novim i nepoznatim problemima čini ih vrlo popularnim rješenjem. Brzi i veliki razvoj web tehnologija, mobilnog i web bankarstva, društvenih mreža i mobilnih okruženja uzrokovao je veću potrebu za razvojem rješenja za računalnu sigurnost. Već postoje neke metode strojnog učenja koje su razvijene za potrebe velikog broja problema u računalnoj sigurnosti. Naglasiti će se i objasniti neki od postojećih algoritama za prepoznavanje i osiguravanje od mrežnih napada, prikupljanja osobnih podataka, krađe identiteta i razbijanje dokaza ljudske interakcije.
Ključne riječi: računalna sigurnost; strojno učenje; napadi
U današnje doba najveći se dio podataka pohranjuje u računalima te se velik dio poslovanja i komunikacije odvija u računalnom okruženju, posebice u zadnjih godinu dana kada se broj ljudi koji rade od kuće uvišestručio. Gubitak ili zlouporaba podataka može prouzročiti velike štete, stoga je računalna sigurnost osobito važna.
Sigurnost podataka može se postići autentifikacijom i kriptiranjem. Poduzimanje mjera sigurnosti osobito je važno kod web trgovina, internetskog bankarstva i ostalih mjesta na kojima korisnik ostavlja osobne i druge osjetljive podatke.
Postavlja se pitanje kako u šumi informacija, bilo to mrežnog prometa ili ponašanja korisnika, prepoznati koji je napadač. Razvojem umjetne inteligencije tu se kao rješenje nameće strojno učenje. Algoritmi strojnog učenja upravo su oblikovani da bi se nosili s velikim količinama podataka i vrlo dobro u njima nalaze pravilnosti koje ljudi ne bi mogli prepoznati. Time dobivamo dodatno, korisno znanje o skupu informacija i lako možemo izdvojiti anomalije u ponašanju. To je temelj povezivanja računalne sigurnosti i metodologije strojnog učenja.
U nastavku biti će istaknuto i objašnjeno nekoliko primjera primjene strojnog učenja za rješavanje problema računalne sigurnosti, te se na kraju dotiče sigurnosti samog modela strojnog učenja.
Mrežna krađa identiteta (eng. phishing) je krađa osobnoh osjetljivih podataka. Kroz istraživanje identificirane su tri glavne grupe metoda za sprječavanje phishing-a:
Rezultati istraživanja pokazuju kako mnoga rješenja phishing detekcije imaju visoku stopu pogreške. Uspoređeno je šest klasifikatora strojnog učenja nad 1171 phishing e-mailova i 1718 legitimnih e-mailova. Pogreške su prikazane grafički na slici 1.
Slika 1. Logistička regresija (LR), Klasifikacijska i regresijska stabla odlučivanja (CART), Bayesovska aditivna regresijska stabla (BART), Stroj potpornih vektora (SVM), Slučajne šume (RF), Neuronske mreže (NNets)
Da bi rezultati bili bolji, trebalo je poboljšati i skup podataka - uklonjene su priložene datoteke, informacije zaglavlja i beznačajne riječi. Nakon ponovnog testiranja svi su klasifikatori sortirani prema preciznosti i odzivu.
Klasifikator | Preciznost | Odziv | F1 |
---|---|---|---|
LR | 95.11% | 82.96% | 88.59% |
CART | 92.32% | 87.07% | 89.59% |
SVM | 92.08% | 82.74% | 87.07% |
NNet | 94.15% | 78.28% | 85.45% |
CART | 94.18% | 81.08% | 87.09% |
SVM | 91.71% | 88.88% | 90.24% |
Tablica 1. Usporedba preciznosti, odziva i F1 za klasifikatore
Još jedan zanimljiv algoritam je automatski sustav za detekciju phishing-a kojeg su razvili Zhuang, Ye, Chen i Li. Sustav ima uspješnost od oko 85%. Proces započinje ekstrakcijom sličnih atributa iz skupa zlonamjernih software-a i skupa stranica kojima je namjera krađa mrežnog identiteta. Ti se podaci parsiraju kroz sustav automatske kategorizacije i spremaju u bazu koja je povezana na sustav.
Sustavi detekcije upada u mrežu (eng. NIDS - Network Intrusion Detection Systems) koriste se za identifikaciju zlonamjerne mrežne aktivnosti koja može dovesti do narušavanja dostupnosti, integriteta i/ili povjerljivosti sustava u mreži. On nadzire cijelu mrežu ili neki njen segment, ovisno o poziciji koja mu je dodijeljena u mrežnoj topologiji. Princip rada se temelji na hvatanju i analiziranju paketa koji putuju mrežom. Senzori razmješteni po mreži nadziru mrežni promet, te potom prijavljuju otkrivene napade centralnom čvoru. Mnogi su dizajnirani za skriveni način rada, kako bi napadaču bilo teže otkriti njihovu prisutnost. Mnogi sustavi detekcije upada upravo jesu temeljeni na strojnom učenju zbog svoje prilagodljivosti na nove i nepoznate napade. U sustavu to može izgledati kao na slici 2.
Slika 2. Primjer konfiguracije sustava za detekciju upada u mrežu
Sustavi detekcije upada u mrežu mogu se postaviti i u vanjski dio mreže prije vatrozida umjesto nakon njega kao na slici. Oba pristupa imaju svoje dobre i loše karakteristike, odluka ovisi o potrebama korisnika. Postavljanje sustava za detekciju nakon vatrozida analizirat će se samo uspješni napadi, a prije vatrozida sustav će detektirati sve (ili većinu) svih napada upućenih sustavu.
Genetičko mrežno programiranje (eng. Genetic Network Programming - GNP) je ujedinjeno učinkovito rješenje za detekciju zlouporabe i anomalija. Predložili su ga Lu, Mabu, Wang i Hirasawa 2013. godine. Spojeni su algoritam genetike i stupnja podudaranja tako da redundantna pravila mogu biti izbačena a ona korisna filtrirana. Sustav je testiran na KDDcup99 bazi podataka. Predloženi algoritam izbacivanja redundantnih pravila (eng. pruning algorithm) ne taži ulaz prethodno stečenog znanja nego se pravilo izbacuje ukoliko ne zadovoljava određeni prag stupnja podudaranja.
Sustav je treniran nad 8068 slučajno izabranih konekcija, od kojih je 4116 bilo normalnih, a 3952 primjeri štrumf (eng. smurf) i neptun (eng. neptune) napada. Nakon treniranja dobiveno rješenje je testirano na 4068 normalnih i 4000 zlonamjernih konekcija. Točnost je 94.91%, stopa lažno negativnih je bila 2.05%. Tablica 2 prikazuje usporedbu različitih algoritama i predloženog algoritma.
NIDS | Stopa detekcije | Točnost | FP | FN |
---|---|---|---|---|
Ujedinjena detekcija (sa 2 faze izbacivanja) | 97.75% | 94.91% | 2.01% | 2.05% |
Ujedinjena detekcija (bez 2 faze izbacivanja) | 95.79% | 90.17% | 4.41% | 3.75% |
GNP-bazirana detekcija anomalija | 86.89% | −−− | 18.4% | 0.75% |
GNP-bazirana detekcija zlouporabe | 94.71% | −−− | 3.95% | 8.54% |
Genetičko programiranje | 90.83% | −−− | 0.68% | −−− |
Stabla odluke | −−− | 89.70% | −−− | −−− |
Stroj potpornih vektora | 95.5% | −−− | 1.0% | −−− |
Subbulakshmi, Shalinie i Ramamoorthi 2010. godine razvili su sustav klasifikacije upozorenja (eng. Alert Classification System) koristeći neuronske mreže (NNs) i stroj potpornih vektora (SVM). Simulirali su distribuirani napad uskraćivanjem usluga (eng. Distributed Denial of Service attack - DDoS). Koristili su “Snort” alat za detekciju upada u mrežu i upozorenja koja je alat generirao proslijedili su kroz neuronsku mrežu i stroj potpornih vektora za klasifikaciju na istinski pozitivna i lažno pozitivna upozorenja. Tvrde da je ovim procesom broj upozorenja koji treba biti obrađen smanjen za 95%. Prosječna točnost klasifikacije neuronskom mrežom je 83%, a strojem potpornih vektora čak 99%. Usporedbom sa TBM (eng. Threshold Based Method) i FIS (eng. Fuzzy Inference System) algoritmom neuronska mreža je nešto bolja - oko 10% od TBM i 1-2% od FIS algoritma. Najtočniji se pokazao stroj potpornih vektora sa vrijednostima točnosti na isprobanim napadima (TCP, TCP SYN, ICMP, ICMP SMURF) iznad 98%. Time je od TBM bolji otprilike 25-28%, od FIS-a 15-20%, a od neuronskih mreža 14-17% što je značajno poboljšanje performansi.
Revet el al. predložili su primjenu probabilističke neuronske mreže (eng. Probabilistic Neural Network - PNN) za dinamiku tipkanja. Općenito, dinamika pritiska tipki je klasa ponašajne biometrike koja se bavi stilom tipkanja korisnika. Dinamika tipkanja nije jedinstvena za svakog pojedinca, ali je dovoljno karakteristična da omogući provjeru identiteta.
Sistem je evaluiran nad bazom podataka koja sadrži stilove tipkanja login podataka 50 ljudi. Promatrano je osam atributa tipkanja: digrafi (DG) - kombinacije 2 slova, trigrafi (TG) - kombinacije 3 slova, ukupno vrijeme za upisivanje korisničkog imena, ukupno vrijeme za upisivanje lozinke, ukupno vrijeme unosa, kod za skeniranje ( eng. scan code), brzina i udaljenost uređivanja (eng. edit distance). Zatim se umjesto 30 od 50 korisnika ulogirao 'uljez, te su snimani podaci za istih osam atributa.
Podaci su stavljeni na ulaz probabilističke neuronske mreže i točnost se pokazala oko 90%.
CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) sustav koristi se za razlikovanje ljudske od računalne interakcije. Oni štite web stranice od botova tako što generiraju testove koji su ljudima vrlo jednostavni, a računala ih ne znaju riješiti. CAPTCHA je nama vrlo blizak i čest primjer sustava za dokaz ljudske interakcije (eng. Human Interaction Proof - HIP), pa će se prikazi temeljiti na tom sustavu.
Malo jednostavnije sustave za dokaz ljudske interakcije moguće je razbiti korištenjem umjetne inteligencije. Metode strojnog učenja i računalnog vida omogućuju da CAPTCHA test podijelimo na segmente u kojima je po jedan znak, te pomoću neuronske mreže koja zna slova i brojeve dobivamo predikciju za svaki znak.
Slika 3. Razbijanje CPATCHA strojnim učenjem
http://jakov.kpu.edu.rs/bitstream/id/2634/503.pdf https://www.enciklopedija.hr/Natuknica.aspx?ID=68380 https://medium.com/@ageitgey/how-to-break-a-captcha-system-in-15-minutes-with-machine-learning-dbebb035a710