Vis enkel innførsel

dc.contributor.authorNordhaug, Kristian
dc.date.accessioned2012-10-29T08:14:59Z
dc.date.available2012-10-29T08:14:59Z
dc.date.issued2012
dc.identifier.urihttp://hdl.handle.net/11250/143990
dc.description.abstractENGELSK: Network Intrusion Detection System (NIDS) analyzes network traffic for malicious activities and report’s findings from events that intend to compromise the security of the computers and other equipment. NIDS looks into both headers and payloads of the network packets to identify possible intrusions. NIDS models that only use Central Processing Units (CPU) such as the IDS Snort, have in the last decade struggled with the CPU as the bottleneck of the system. Network traffic has been increasing more rapidly than the clock-speed of CPUs. The CPUs have gained more cores, but lack implementation for utilizing multi-core CPUs and are unable to cope with the bandwidth throughput we are starting to see in high-tech network infrastructure that they are set to protect. The massive flows of data packets overload the NIDS and lead to packet loss which makes them pass by unchecked for malware and intrusion attempts, increasing the false-negative rate. The main cause of this is the network packet inspection module in the detection engine of the NIDS. The detection engine consists of numerous functions and ultimately contains an algorithm for string searching. This thesis will focus on accelerating the NIDS by parallelizing this algorithm. In the recent years modern GPUs have evolved from being a tool that only displays highend graphics for games, to be used for general-purpose scientific and engineering computing across a range of platforms [35]. GPU computing is the short term used when ordering the GPU to take over and accelerate the computationally-intensive calculations normally done by the CPU, and instead let the CPU take care of the more sequential parts of the application. They then work together solving tasks in a heterogeneous co-processing computing model. Using Graphics Processing Units (GPU) for general-purpose scientific and engineering computing has grown exponentially the last few years. This has happened mostly from the work Nvidia has put into their CUDA platform and programming model. Some of the most common areas for use of GPU is fluid dynamics, seismic processing, molecular dynamics, computational chemistry, finance and supercomputing. Programs need to be specifically designed to run optimized on a GPU, and special programming APIs have been designed explicitly for GPU computing. The most well known ones are CUDA and OpenCL. In the recent year’s modern GPUs have evolved from being the tool that displays high-end graphics for games, to be the tool used in general-purpose scientific and engineering computing across a range of platforms. The goal of this project was to harness the power within GPUs and use it to accelerate NIDS such as Snort, by using CUDA technology. Several papers have been published on the topic of GPU acceleration, however only a handful of them targeted NIDS with varying results. We believe this can be improved dramatically by further research in how different hardware components interact and how to exploit the components and their APIs in new ways for creating high-performance algorithm solutions. We present our implementations of known string search algorithms programmed in C++ and CUDA, with analysis of these algorithms and conclude with contributions from our experiments and theoretical analysis.no_NO
dc.description.abstractNORSK: NIDS analyserer nettverkstrafikk for ondsinnede aktiviteter og rapporterer funn fra hendelser som har til hensikt å kompromittere sikkerheten til datamaskiner og annet utstyr. En NIDS ser inn både header og payload av nettverkspakker og identifiserer mulige inntrengere i systemer. NIDS modeller som kun benytter hovedprosessoren (CPU) som produktet Snort, har i det siste tiåret kjempet med CPU som flaskehalsen i systemet. Nettverks trafikken har økt raskere enn klokke-hastigheten til CPU. Selv om CPU har fått flere kjerner, mangler det implementering for å utnytte multi-core prosessorer i NIDS De klarer ikke lenger å takle mengden av trafikk gjennomstrømming vi ser i high-tech nettverksinfrastruktur der de er satt for å beskytte. De massive strømmene av datapakker overbelaster NIDS, som gjør at de krysser forbi uten å bli sjekket for malware og innbruddsforsøk. Den viktigste årsaken til dette er modulen for inspeksjon av nettverk pakker i deteksjon motoren på NIDS. Deteksjons motoren består av mange funksjoner og inneholder en algoritme for streng søk. Denne oppgaven vil fokusere på å aksellerere NIDS ved å parallelisere denne algoritmen. GPU databehandling er slang uttrykket for å bruke GPU til å overta og aksellerere intensive beregninger, normalt gjort av CPU. CPU vil istedet få frihet til å ta seg av den mer sekvensielle delen av søknaden. De arbeider deretter sammen for å løse oppgavene i en heterogen coprosessor databehandlings modell. Bruken av Graphical Processing Units (GPU) for generell vitenskapelig og teknisk databehandling har vokst eksponentielt de siste årene. Dette har skjedd hovedsakelig på grunn av arbeidet Nvidia har lagt inn i sin CUDA plattform og programmerings modell. Noen av de vanligste områdene for bruk av GPU er veskedynamikk, seismisk prosessering, molekylær dynamikk, beregningsorientert kjemi, økonomi og supercomputing. Programmer må være spesielt designet for å kjøre optimalisert på en GPU, og spesielle programmerings APIer har blitt designet eksplisitt for GPU databehandling. De mest kjente er CUDA og OpenCL. I de siste årene har moderne GPUer utviklet seg fra å være verktøyet som viser high-end grafikk for spill, til å være et verktøy som brukes i generell vitenskapelig og teknisk databehandling på en rekke plattformer. Målet med dette prosjektet er å utnytte kraften i GPU og bruke den til å akselerere NIDS som Snort, ved hjelp av CUDA-teknologi. Flere artikler er publisert om temaet GPU-akselerasjon, men bare en håndfull målrettet mot NIDS, med varierende resultater. Vi tror dette kan forbedres dramatisk ved videre forskning på hvordan ulike maskinvarekomponenter samhandler, og hvordan man best utnytter komponentene og deres APIer på nye måter for å skape nye høyder for ytelse i algoritmiske løsninger. Vi presenterer våre implementasjoner av kjente streng søk algoritmer, programmert i C++ og CUDA, samt analyse av disse algoritmene og konluderer med bidrag fra våre eksperimenter og teroretiske analyse.no_NO
dc.language.isoengno_NO
dc.subjectNetwork Intrusion Detection Systemno_NO
dc.subjectGraphics Processing Unitsno_NO
dc.subjectCUDA technologyno_NO
dc.titleGPU Accelerated NIDS Searchno_NO
dc.typeMaster thesisno_NO
dc.subject.nsiVDP::Mathematics and natural science: 400::Information and communication science: 420::Security and vulnerability: 424no_NO
dc.source.pagenumberXIII, 98no_NO


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel