Snowman: a complete, effective and secure rule management system for Snort
Bachelor thesis
Permanent lenke
http://hdl.handle.net/11250/284588Utgivelsesdato
2014Metadata
Vis full innførselSamlinger
Sammendrag
ENGLISH: In today’s technological world, the Internet has become an integral part of businesses and organisations. However, the Internet brings a large amount of threats against computer networks, as individuals and organisations seek to exploit them for monetary gain, information superiority or political and social activism. In order to properly protect a computer network, it is vital to be able to detect these threats, which is commonly done by using an intrusion detection system (IDS). An IDS will normally operate by analysing the network traffic by comparing it to threat-patterns defined in signatures, and raising alerts when threats are detected. Given the number of possible threats to a computer network, an IDS often has a large amount of signatures that must be properly managed in order to maintain both a secure and usable network. Signature management therefore involves enabling and disabling the signatures, as well as keeping them up to date.
This can be a challenging task for even small-sized organisations, as the IDS might operate on multiple parts of the network simultaneously. This thesis presents a software which facilitates signature management in environments with multiple instances of the IDS, called sensors, by using a central server which automatically updates and distributes signatures to the sensors. Furthermore, the software introduces a novel way of automatic management of signatures on each sensor. The software is controlled with a simple and intuitive graphical user interface which supports multiple users. This thesis also compares the functionality and efficiency of the software with similar signature management systems through a theoretical analysis of performance, complemented with practical tests. The testing has also demonstrated the importance of conducting performance tests during software development, in order to identify and improve inefficient code in the software. NORSK: Dagens samfunn er helt avhengig av internett for kommunikasjon og samhandling. Dette gjelder ikke minst for bedrifter og organisasjoner, hvor internett blandt annet brukes til å nå ut til, og kommunisere med, kunder og partnere. Et stort problem med bruken av internett er at det gjør datamaskiner og interne datanettverk sårbare for eksterne angrep, da disse kan inneholde, eller gi tilgang til, sensitiv informasjon som kan utnyttes av organisasjoner og enkeltpersoner med hensikter som for eksempel økonomisk vinning. Oppdagelse av potensielle angrep er avgjørende for å best mulig kunne beskytte datanettverk, noe som normalt gjøres ved hjelp av et såkalt intrusion detection system (IDS). Et IDS opererer vanligvis ved å overvåke og analysere nettverkstrafikk, som sammenlignes med mønstre definert i signaturer og sender en advarsel når en trussel blir gjenkjent. Mengden av potensielle angrep som kan utføres er enorm, noe som gjør at et IDS inneholder en stor mengde signaturer som må vedlikeholdes daglig for å kunne møte et trusselbilde i stadig endring. Vedlikeholdet av signaturer kan være krevende selv for små bedrifter, da IDS-et vanligvis opererer flere steder på datanettverket samtidig.
Denne rapporten presenterer en programvare for enkel og effektiv håndtering av signaturer for systemer med flere instanser, kalt sensorer, av et IDS. Dette gjøres ved å ha en sentral tjener som håndterer automatisk oppdatering og distribuering av signaturer til sensorene. Programvaren inneholder også et klient-program som kjører på hver sensor og muliggjør en effektiv og automatisk håndtering av signaturer på hver enkelt sensor. Programvaren styres av et enkelt og intuitivt grafisk brukergrensesnitt med støtte for flere brukere. Rapporten inneholder også en studie av programmets ytelse sammenlignet med lignende programvare, i form av en teoretisk og praktisk analyse. Den praktiske analysen gir i tillegg et innblikk i hvor viktig ytelsestesting under programvareutvikling er for å identifisere og forbedre ineffektiv kode i programvaren.