==== ==== ====== Detekcija DDoS napada na IoT uređajima strojnim učenjem ====== ===== Sadržaj ===== Sve više //Internet of Things// (IoT) uređaja se spaja na internet, a većina tih uređaja je nesigurno te se time internet izlaže raznim napadima. Razni //Botnet //sustavi koristili su nesigurne IoT uređaje kako bi prouzročili //distributed denial of service// (DDoS) napade. To je potaknulo razvoj programa za detekciju takvih napada u svrhu prevencije istih. U ovome radu će se pokazati kako se odabirom bitnih značajki u detekciji DDoS napada može postići velika preciznost korištenjem strojnog učenja. Rezultati ukazuju kako bi trebalo biti moguće otkriti napade u vatrozidu ili ruteru uz korištenjem male količine resursa. Ključne riječi: Internet of Things(IoT), //distributed denial of service// (DDoS), detekcija napada, strojno učenje ===== Uvod ===== Broj IoT uređaja je u zadnjih godinama narasla na preko 20 milijardi te se ispostavilo kako oni sadržavaju brojne propuste koji se mogu iskoristiti u zlonamjerne svrhe. Vođeno time se počelo pojavljivati sve više i više napada koji koriste te uređaje, pa je tako nastala i potražnja za razvojem tehnike koja bi mogla otkriti te napade te se obraniti od njih. Istraživanja u detekciji anomalija su pokazala kako bi se strojno učenje moglo pokazati korisnim pri otkrivanju zlonamjernog prometa na internetu. U ovom seminarskom radu se sagleda algoritam strojnog učenja koji gradi cjevovod sadržan od skupljanja podataka, izdvajanja značajki i konačno binarne klasifikacije. Značajke su napravljene upravo s pretpostavkom da napadi dolaze s IoT uređaja te iskorištavaju njihov specifičan način ponašanja u mreži. ===== Cjevovod ===== U ovome odjeljku je prikazan cjevovod(slika 2) korišten za detekciju anomalija, sastoji se od 4 dijela. - Prikupljanje podataka (//Network packet capture//) - Grupiranje paketa po vremenu i uređaju - Izvlačenje značajki (//Feature extraction//) - Binarna klasifikacija (//Binary Classification//) {{:racfor_wiki:mrezna_forenzika:screenshot2020-01-07at22.26.40.png?nolink&500x172}} //Slika 1 cjevovod algoritma[1]// ===== Prikupljanje podataka ===== Test je izveden na nekoliko različitih IoT uređaja koji su funkcionirali na svoj predviđen napad 10 minuta te su se podatci spremali. Nakon toga su se izvele 3 vrste napada, TCP SYN flood, UDP flood i HTTP GET flood. Konačno su se u idućih 10 minuta uz normalan rad uređaja u nasumičnim trenutcima te pod nasumičnim trajanjem izvodili napadi te je tako stvoren skup podataka od oko 500,000 paketa ===== Izvlačenje značajki ===== Broj značajki bi trebao biti relativno malih proporcija kako bi algoritam zahtijevao dovoljno malo računalne snage i memorije jer se on izvodi na uređajima kao što su ruteri kojima to nije glavni zadatak te nemaju veliku količinu memorije niti računalne snage. Značajke bez stanja se izvlače iz karakteristika pojedinih paketa pri tome ne gledajući na ostatak mrežnog prometa. **1) Veličina paketa:** više od 90% paketa iz napada su malih veličina do 100 bytea, dok normalni paketi većinom imaju veličine od 100 do 1200 bytea. Do toga dolazi jer napadač želi uputiti što više paketa, a slanje manje količine podataka će mu omogućiti veću količinu poslanih paketa u jedinici vremena, dok normalni paketi mogu sadržavati bilo što od običnog pinga pa do video streamanja. **2) Interval između paketa: **Dok većina normalnih paketa od strana IoT uređaja budu slani u regularnim intervalima, paketi u napadu se šalju jedni za drugima te je vremenski interval između 2 paketa istog uređaja gotovo nikakav. **3) Protocol:** Normalni paketi se često pojavljuju u cijelom spektru protokola te najveća količina odlazi na UDP zbog streamanja videa, a napadi se većinom izvode TCP, UDP ili HTTP protokolima među kojima je najzastupljeniji TCP. Značajke sa stanjem promatraju kako se mijenja mrežni promet s vremenom. **4) Broj odredišnih portova korištenih od uređaja:** Uređaji u normalnom načinu rada koriste određeni relativno mali broj portova te bi veći iznos portova kao i povećanje tog broja u kratkom vremenskom razdoblju moglo značiti da je u pitanju napad. ===== Klasifikacija i rezultati ===== Korišteno je 5 algoritama strojnog učenja: - K najbližih susjeda (KN) - Stroj potpornih vektora s linearnim kernelom (LSVM) - Stabla odluke (DT) - Nasumične šume (RF) - Duboke neuronske mreže (NN) Treniranje se izvodilo na 85% podataka, a ostatak je korišten za testiranje te su dobivene preciznosti od 0.91 do 0.99 s visokim f1 mjerama(Slika 2). Od značajki su najviše pridonijele značajke bez stanja, dok su one sa stanjem manje pridonijele no i dalje povećale preciznost. {{:racfor_wiki:mrezna_forenzika:screenshot2020-01-08at01.24.34.png?nolink&400x145}} //Slika 2 rezultati[1]// ===== Zaključak ===== U seminaru je pokazano da se DDoS napadi s IoT uređaja mogu raspoznati s velikom preciznošću, korišten je ograničena količina značajki kako bi se računalna snaga i prostor sačuvali pošto se detekcija mora izvoditi na ruterima i vatrozidima. Isprobano je 5 različitih algoritama od kojih su svi imali preciznost veću od 0.99 te bi se poučeno time trebalo voditi još istraživanja na ovu temu. ===== Literatura ===== [1] [[https://arxiv.org/pdf/1804.04159.pdf|R. Doshi, N. Apthorpe, and N. Feamster, "Machine Learning DDoS Detection for Consumer Internet of Things Devices," arXiv preprint arXiv:1804.04159, 2018.]] [2] [[http://www.diva-portal.org/smash/get/diva2:1360486/FULLTEXT02|Saeedi, Kubra. "Machine Learning for Ddos Detection in Packet Core Network for IoT." (2019).]] [3] //[[https://en.wikipedia.org/wiki/Denial-of-service_attack|“Denial-of-service attack” Wikipedia: The Free Encyclopedia//, Wikimedia Foundation, 6. Jan. 2020]]// [4] //[[https://en.wikipedia.org/wiki/Botnet|“Botnet” Wikipedia: The Free Encyclopedia//, Wikimedia Foundation, 3. Jan. 2020]]//