Webové Rozhraní IDS Systému Snort Snort IDS Web Interface
Total Page:16
File Type:pdf, Size:1020Kb
VŠB – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Webové rozhraní IDS systému Snort Snort IDS Web Interface 2019 Dominik Raška Na tomto místˇebych rád podˇekoval hlavnˇeMgr. Ing. Michalu Krumniklovi, Ph.D. za jeho rady a pˇri- pomínky, které mi pomohly pˇritéto práci, a ještˇepom˚užou pˇripracích budoucích. Abstrakt Úˇcelem této práce je vytvoˇritnástavbu aplikace Snort umožˇnující pˇrehlednouanalýzu log˚uprostˇred- nictvím webového rozhraní, které bude schopné provozu i na routerech s relativnˇemalým výkonem. V úvodu práce je ˇctenáˇrseznámen s nejznámˇejšími systémy pro odhalení pr˚uniku, jejich funkcemi a konfigurací. Následuje porovnání již existujících rozhraní pro systém Snort a návrh vlastní imple- mentace webové rozhraní. Vlastní implementace je potom ˇrádnˇezdokumentovaná a otestovaná na více zaˇrízeních. Klíˇcová slova: IDS, Snort rozhraní, webové rozhraní, sít’ové zabezpeˇcení Abstract This thesis objective was to implement a Snort extension allowing for convenient analysis of Snort alerts through a web interface. At first, reader is being presented with the theory of intrusion detec- tion systems, how they work and what are some commonly used alternatives. After that, the existing Snort interfaces are being compared while proposing the vision for my own implementation. My application is then thorougly documented and deployed in a couple of testing enviroments. Key Words: IDS, Snort interface, web interface, network security Obsah Seznam použitých zkratek a symbol˚u 9 Seznam obrázk˚u 10 Seznam tabulek 11 Seznam výpis˚uzdrojového kódu 12 1 Úvod 13 2 Co je to intrusion detection system? 14 2.1 NIDS ................................................. 14 2.2 HIDS ................................................. 14 2.3 Intrusion prevention system . 15 2.4 IDS Snort . 15 2.5 IDS Suricata . 21 2.6 Zeek.................................................. 22 3 Rešerše webových a grafických rozhraní pro IDS Snort 23 3.1 SnortAlog............................................... 23 3.2 BASE ................................................. 23 3.3 Snorby ................................................ 24 3.4 Sguil.................................................. 25 3.5 Shrnutí ................................................ 27 4 Vlastní implementace webového rozhraní - Snort.NET 30 4.1 Návrh................................................. 30 4.2 Datová vrstva . 31 4.3 Aplikaˇcní vrstva . 32 4.4 Architektura systému . 33 4.5 Testování a hardwarové požadavky . 35 4.6 Instalace . 35 5 Srovnání 38 5.1 Úvodní stránka . 38 5.2 Detail útoku . 39 5.3 Graf rozdˇelení použitých protokol˚u . 39 5.4 Mapa distribuce p˚uvodu útok˚u. 40 6 Závˇer 42 7 Literatura 43 Pˇrílohy 44 A Návod k instalaci Snort.NET pro Debian 9.8 45 A.1 Instalace Snortu ze zdroje . 45 A.2 Instalace programu Barnyard2 a MySQL . 46 A.3 Instalace webového rozhraní Snort.NET . 48 B Úvodní stránka Snort.NET 49 8 Seznam použitých zkratek a symbol˚u AJAX – Asynchronous JavaScript and XML API – Application Programming Interface ARP – Address Resolution Protocol ASCII – American Standard Code For Information Interchange BSD – Berkeley Software Distribution CPU – Central Processing Unit CSV – Comma Separated Values CUDA – Compute Unified Device Architectur DDoS – Distributed Denial Of Service DNS – Domain Name System GUI – Graphical User Interface HTML – Hypertext Markup Language HTTP – HyperText Transfer Protocol ICMP – Internet Control Message Protocol IDS – Intrusion Detection System IP – Internet Protocol IPS – Intrusion Prevention System JIT – Just In Time JSON – JavaScript Object Notation MD5 – Message-Digest Algorithm 5 OS – Operating System PDF – Portable Document Format PHP – Hypertext Preprocessor RAM – Random Access Memory SANCP – Security Analyst Network Connection Profiler SCD – Self-contained Deployment SMTP – Simple Mail Transfer Protocol SQL – Structured Query Language SSH – Secure Shell SVG – Scalable Vector Graphics TCL – Tool Command Language TCP – Transmission Control Protocol UDP – User Datagram Protocol VM – Virtual Machine XML – Extensible Markup Language 9 Seznam obrázk˚u 1 Postup zpracování dat Snortem v režimu NIDS . 17 2 BASE interface . 24 3 Snorby interface . 25 4 Sguil: 3-vrstvá architektura . 26 5 Entitnˇevztahový model datové domény . 32 6 Sekvenˇcní diagram požadavku na stránku zobrazující geografická data . 34 7 Diagram nasazení a vztah˚ujednotlivých komponent systému . 34 8 Graf rozdˇelení použitých protokol˚u . 40 9 Mapa distribuce p˚uvodu útok˚u. 41 10 Snímek úvodní stránky Snort.NET – 1. ˇcást . 49 11 Snímek úvodní stránky Snort.NET – 2. ˇcást . 50 10 Seznam tabulek 1 Pˇrehledrozhraní pro IDS Snort a jejich funkcí . 29 2 Doba zpracování dotazu v závislosti na systému a poˇctu databázových záznam˚u . 36 3 Doporuˇcené systémové požadavky . 36 11 Seznam výpis˚uzdrojového kódu 1 Pˇríkazy ke spuštˇení Snortu . 17 2 Pˇríklad pravidla pro IDS Snort . 21 3 Pˇríklad pravidla pro IDS Suricata . 22 4 Pˇríklad pravidla pro IDS Suricata demonstrující detekci protokol˚uaplikaˇcní vrstvy . 22 5 Pˇríklad pravidla pro IDS Suricata demonstrující využití buffer˚uaplikaˇcní vrstvy . 22 12 1 Úvod Obor poˇcítaˇcové bezpeˇcnosti pˇrišel paralelnˇese vznikem informaˇcních technologií. Základní model informaˇcní bezpeˇcnosti zmiˇnuje tˇri funkce k zajištˇeníochrany informací – d˚uvˇeryhodnost, integrita a dostupnost. Po dlouhou dobu byla tato bezpeˇcnost ˇcasto pˇrehlížena, rizika byla nízká a v tom smyslu bylo uˇcinˇeno mnoho bezpeˇcnostních kompromis˚u. S nástupem internetu na pˇrelomu tisíciletí se ale radikálnˇezmˇenila situace. Náš svˇetje dnes propojen jako nikdy dˇríve. Máme instantní pˇrístupk informacím a poˇcetuživatel˚ua chytrých za- ˇrízení, které komunikují prostˇrednictvím poˇcítaˇcových sítí, se stále zvyšuje [1]. Stejnˇetak se ale zvy- šují finanˇcní škody zp˚usobené r˚uznými sít’ovými útoky, které poškozují pilíˇre informaˇcní bezpeˇcnosti (DDoS, phishing, malware atd.). Poˇcítaˇcová bezpeˇcnost a speciálnˇeoblast sít’ového zabezpeˇceníse tak stává velkou výzvou moderní doby. Jak prohlásil odborník na poˇcítaˇcovou bezpeˇcnost Bruce Schneier: „You can’t defend. You can’t prevent. The only thing you can do is detect and respond.“ Velké ˇcásti slabin v systému zneužitelných k útoku, jinak ˇreˇceno zranitelností, se nedá úplnˇepˇred- cházet. Castoˇ m˚uže dojít k pochybení uživatele vlivem sociálního inženýrství, špatné konfiguraci soft- waru apod. Nˇekterétypy útok˚uzase vyžadují jejich detekci v reálném ˇcase a rychlou reakci, aby nedo- šlo k narušení systému (útoky typu DDoS, útoky hrubou silou). Složitost v této oblasti a neustálý vývoj nových technologií sebou pˇrináší také nové zranitelnosti, které se dají jen tˇežko pˇredpovídat pˇredem. Efektivním zp˚usobem,jak bojovat s podobnými útoky je použitím systém˚upro odhalení pr˚uniku, zkrácenˇeIDS (Intrusion detection system). Pˇrestože takový program má své nástroje k odhalování hrozeb, vyžaduje také pr˚ubˇežné intervence ze strany administrátora. V tempu, v jakém se objevují nové útoky, vzniká potˇrebaje postupnˇepˇridávat do zvoleného IDS. Zároveˇnne každá hrozba, kterou IDS identifikuje, je nutnˇehrozbou. Proto je dobré systém vyladit a podle svých potˇrebminimalizovat poˇcet falešnˇepozitivních útok˚ua nastavit akci proti skuteˇcným útok˚um.Takový proces ˇcasto vyža- duje hloubkovou analýzu vzniklého incidentu. Mým úkolem je implementovat webové rozhraní jako nástavbu IDS Snort, která bude sloužit k této analýze potenciálních útok˚uadministrátorem. V následující kapitole rozeberu obecné funkce a ˇcásti IDS. Rozdˇelím je podle oblasti, kterou moni- torují a podle zp˚usobu jakým detekují útoky. V druhé ˇcásti kapitoly se budu vˇenovat konkrétním im- plementacím IDS, zejména potom IDS Snort, který je stˇežejní pro tuto práci. Dále, v kapitole 3 popíšu významné volnˇedostupné rozhraní pro IDS Snort, pˇredstavím jejich architekturu a specifické vlast- nosti. Aplikace mezi sebou porovnám, identifikuji nˇekteré jejich nedostatky a pˇredstavím vizi vlastní implementace webového rozhraní. Kapitola 4 dokumentuje vlastní implementaci rozhraní Snort.NET od jejího návrhu až po testování. Nakonec provedu srovnání funkˇcních požadavk˚usvé implementace s ostatními na jejich pˇríkladném praktickém využití sít’ovým analytikem. 13 2 Co je to intrusion detection system? Jako IDS m˚užeme oznaˇcitzaˇrízení nebo software, který má za úkol odhalit sít’ové ˇci systémové akti- vity, které pˇredstavují možné napadení hostitelské sítˇeˇci systému, nebo akce, které takovému napa- dení pˇredcházejí. Hlavním prvkem softwarových ˇrešení,které lze oznaˇcitjako IDS, je senzor. Jde o pasivní souˇcást obsahující mechanismy pro detekci podezˇrelých aktivit na základˇedat poskytnutých hostitelským systémem. V závislosti na topologii sítˇese urˇcuje umístˇení pˇrípadnˇepoˇcetpotˇrebných senzor˚una ochranu sítˇeproti externím, v nˇekterých pˇrípadech i interním hrozbám. Typickým ˇrešenímje umístit senzory za každý router, který je na rozhraní chránˇenésítˇes ned˚uvˇeryhodnou externí sítí [2]. IDS systémy lze dále rozdˇelit podle metody detekce událostí narušující bezpeˇcnost na dva hlavní typy: 1. Podle signatury – Souˇcástí systému je množina pravidel, jenž pˇredstavuje vzory známých útok˚u. Pozorovaná data jsou porovnávána s tˇemitovzory. Takovým zp˚usobem lze dobˇreurˇcit,o jaký typ útok˚use jedná. Efektivita odhalení útok˚uspoˇcívá ve spektru použitých pravidel a jejich aktuálnosti. Riziko pˇredstavují tzv. zero-day exploity (bezpeˇcností hrozby, které zatím nejsou obecnˇeznámé).