Systémy detekce průniku (někdy také narušení, vniknutí) se řadí mezi mladší členy rodiny bezpečnostních produktů. Podstata jejich činnosti vychází z předpokladu, že úkony narušitele budou na základě přímých či nepřímých indicií odlišitelné od běžné činnosti uživatelů. Toto odlišení lze provést různými metodami, některé z nich jsou dále podrobněji rozebrány; v prvním přiblížení lze uvést analýzu záznamů o chodu systému nebo sledování provozu v síti.
V praxi by obvykle nemělo valný smysl nasadit systém detekce průniku samostatně, ale měl by vždy tvořit jeden z prvků celkového zabezpečení. Řada současných komerčně dostupných systémů detekce průniku je již navržena tak, aby byla možná jejich spolupráce s firewally nebo filtrujícími směrovači. Dále se vyznačují distribuovaností. Pak se skládají z vhodně rozmístěných agentů (sensorů), ovládaných manažery. Ke správě manažerů a tedy i celého distribuovaného systému detekce průniku slouží konsola operátora.
Ačkoli se první materiály týkající detekce průniků začaly objevovat již v šedesátých a sedmdesátých letech, za základ moderního přístupu jsou považovány příspěvky Dorothy Denningové, které byly publikovány v letech 1986 a 1987 na konferencích IEEE o bezpečnosti a důvěrnosti. Autorka zde navrhla schéma obecné struktury systému detekce průniku.
Obecná struktura systému detekce průniku
V současné době jsou rozpracovávány různé koncepce systémů detekce průniku, které se od sebe dosti podstatně liší. Proto se jeví jako užitečné pracovat s modelem, který by mohl vzít většinu jejich vlastností v úvahu. Hlavní části jsou:
- generátor událostí;
- analytický modul;
- ukládací mechanismus;
- modul protiopatření.
Komponenty obecné struktury systému mohou být představovány samostatnými programovými balíky nebo mohou být součástmi složitějšího celku.
Účelem generátoru událostí je poskytnout informaci o vzniku dané události ve zbytku systému. Událostí se rozumí jak interakce mezi aplikačními programy, tak aktivita na nižších vrstvách síťové architektury. Není zapotřebí, aby se jednalo o útok. Generátor událostí představuje čidlo systému detekce průniku. Bez něj by neměl žádné informace, ze kterých by mohl učinit závěry.
Analytický modul zpracovává podklady přicházející od generátoru událostí. Velká část výzkumu v oblasti detekce průniku je věnována hledání nových postupů pro rozbor. Některé analytické techniky využívají hledání statistické anomálie, jiné zase vycházejí z teorie grafů a jsou známy i pokusy inspirované biologickým imunitním systémem.
Generátory událostí a analytické moduly obvykle produkují veliký objem dat, se kterými v potřebné míře pracují příslušní administrátoři. Ukládací mechanismus systému detekce průniku vymezuje prostředky pro záznam bezpečnostních informací, aby byly později kdykoli dostupné. Nemusí se přitom jednat o úplný zápis, nýbrž například jen o jejich charakteristiku. Řada systémů detekce průniku je navržena v relativně jednoduché formě a jejich posláním je pouze poskytnutí výstražného hlášení.
Dělení systémů detekce průniku
Reálné systémy detekce průniku lze rozlišovat podle různých kritérií, například:
Podle umístění
- Systémy detekce průniku do hostitelských systémů (běží jako jedna z jeho úloh; někdy se dokonce vyčleňují systémy detekce průniku konkrétních aplikačních programů).
- Síťové systémy detekce průniku (monitorují provoz v přilehlé síti).
- Distribuované systémy detekce průniku.
Podle principu činnosti
- Detektory statistické anomálie (upozornění na podezřelé úchylky od dlouhodobým sledováním stanoveného „normálního“ chování).
- Systémy detekce průniku porovnávající vzory (signatury – vyhledávají sekvence charakteristické pro útok).
- Korelační systémy detekce průniku (vyhledávají souvislosti mezi jevy probíhajícími na několika místech).
Podle okamžiku vyhodnocování
- V reálném čase.
- Mimo reálný čas (zpracovávání záznamů o chodu systému).
Systémy detekce průniku do hostitelských počítačů
Tato klasická kategorie používá jako základní zdroj informací soubory obsahující záznamy o chodu daného výpočetního prostředku, poskytnuté jeho operačním systémem nebo aplikačními programy. Podezření na průnik je oznámeno v případě, že se profil chování uživatele začne výrazně lišit od předchozího „normálního“ profilu. Profilem může být například množina operací a jejich typický sled. Lze jej vytvářet automaticky na základě sledování uživatele po jisté období a je možno ho také adaptivně měnit.
Postup vytváření profilů rozhodně není snadný, jednotlivým operacím bývají přisuzovány váhy, údaje se agregují a na útok se usuzuje v okamžiku, kdy výsledná hodnota přesáhne stanovený práh.
Tato kategorie systémů detekce průniku rozlišuje mezi dvěma typy operací. Prvním typem jsou jednoznačně vymezené operace, které by běžný uživatel neměl bezdůvodně provádět. Patří k nim zkoumání záznamů o chodu systému nebo dokonce pokusy o změnu systémových dat. Ke druhému typu akcí náleží taková aktivita, která sice nepřekračuje oprávnění daného uživatele, ale budí podezření například neobvyklou posloupností úkonů.
Je zřejmé, že takto koncipované systémy detekce průniku budou ovlivněny řadou stochastických faktorů a nelze od nich očekávat stoprocentní úspěšnost. Na druhou stranu mohou upozornit na útoky, jejichž podstata není dosud známa.
Síťové systémy detekce průniku
Síťové systémy detekce se obvykle umisťují do míst, ve kterých se koncentruje síťový provoz, např. přístupových spojů nebo do páteřních sítí. Při své činnosti zpravidla využívají tzv. promiskuitního režimu práce síťového rozhraní, díky kterému mají dispozici všechna data, která se vyskytnou na síťovém rozhraní bez ohledu na to, komu jsou ve skutečnosti určena. Tyto systémy detekce průniku mohou být vůči sledované síti zcela pasivní. Komunikace s nimi se pak uskutečňuje pomocí speciální sítě, do které jsou připojeny dalším síťovým rozhraním.
Síťové systémy detekce průniku bývají velmi často řešeny jako distribuované, tj. skládají se z řady spolupracujících částí (agenti, manažer, řídicí konsola). V současné době například probíhá v rámci IETF (The Internet Engineering Task Force) proces normalizace týkající se protokolu pro výměnu informací mezi systémy detekce narušení (Intrusion Detection Exchange Protocol).
Síťové systémy detekce průniku jsou vhodným nástrojem pro zjišťování útoků (či pokusů o ně), které probíhají již na nižších vrstvách síťové architektury. Ty mohou být vedeny jak proti různým službám jednoho počítače, tak i proti stejným či různým službám několika strojů (např. útoky typu DoS, DDoS).
Nedostatky systémů detekce průniku
O relevantnosti informací, které se systém detekce průniku pokouší zjistit, rozhoduje zejména jeho nastavení. Pro systémy sledující jmennou službu (Domain Name Service, DNS) mohou být významná jména hostitelských počítačů, kterých se týkají kladené dotazy, a samozřejmě odpovědi na ně. Jiné systémy, které mají za úkol rozpoznat útoky proti FTP serverům, budou považovat za významná všechna TCP spojení na příslušný port. Některé útoky mohou být snadno poznány při rozboru IP paketů, například pokusy obejít paketový filtr pomocí IP fragmentace lze identifikovat důsledným zkoumáním příslušných polí jejich záhlaví. Jiné útoky, které se uskutečňují prostřednictvím většího počtu paketů, ovšem musejí být zjišťovány mimo kontext aktuálního protokolu.
Většina systémů takové útoky rozlišuje pomocí již zmíněné techniky nazývané analýza signatur. Analýza signatur odráží fakt, že systém detekce průniku vyhledává určité sekvence paketů nebo dat v nich přenášených a při nálezu je vyhodnotí jako útok. Například systém detekce průniku lze naprogramovat tak, aby vyhledával řetězec znaků „pgf“, což může být příznakem útoku využívajícího CGI programu.
Tyto systémy detekce průniku často používají jednoduché algoritmy porovnávání signatur, nejčastěji hledají znak po znaku zadaný řetězec v proudu dat, který je přenášen pakety v síti. Pokud jej naleznou (například řetězec „phf“ v příkazu „GET /cgi-bin/phf?“), identifikují tyto pakety jako nosiče útoku.
Přestože by se síťové systémy detekce průniku mohly na první pohled jevit jako univerzálnější a všeobecně lepší, není tomu tak ve všech případech. U nich hraje zvláště významnou roli věrohodnost jimi poskytovaných údajů. Nabízí se totiž několik způsobů, jak se pokusit o jejich oklamání, a to buď utajením skutečného útoku nebo naopak vyvoláním falešného poplachu.
V obou případech je možno usilovat o nekonsistentní vyhodnocení přijatých dat mezi systémem detekce průniku a cílovým systémem. Lze využít toho, že různé operační systémy mohou při zpracování záhlaví rámců, paketů a segmentů postupovat odlišně, což platí především při nestandardně nastavených polích. Pak může systém detekce průniku běžící např. pod Unixem pracovat s jinými podklady, nežli poskytne implementace stejného protokolu v operačním systému Novell NetWare nebo Windows. Navíc se některé systémy detekce průniku při ovládání síťového rozhraní nespoléhají na služby operačního systému, nýbrž si je zabezpečují samy.
Síťové systémy detekce průniku tedy nemohou stoprocentně říci, zda byla jimi zaznamenaná aktivita skutečně útokem vůči některému stroji a pokud ano, jak dopadl. V praxi je téměř nemožné přesně rekonstruovat činnost skutečně prováděnou cílovým systémem jen na základě sledování síťového provozu, například telnetové relace.
Naproti tomu systémy detekce průniku pracující v konkrétních počítačích, tedy obdobně jako běžné aplikační programy, mají k dispozici informace poskytnuté svým operačním systémem a zaznamenávají tedy události, ke kterým skutečně došlo.
Řada komerčně dostupných systémů detekce průniku je vybavena mechanismem, který je schopen spustit předem stanovený postup, tedy protiopatření. Rozsah těchto protiopatření je značně široký, počínaje přerušením spojení až po například úpravu filtrovacího pravidla směrovače (access list). Posledně uvedené protiopatření umožňuje například sebeobranu systému detekce průniku vůči útokům typu DoS či DDoS, ovšem při nevhodné konfiguraci lze takto k realizaci těchto typů útoků významně přispět.