System wykrywania włamań (ang. intrusion detection system, IDS) – oprogramowanie lub urządzenie automatyzujące monitorowanie zdarzeń zachodzących w systemie komputerowym lub sieci i analizowanie ich pod kątem oznak problemów z bezpieczeństwem[1]. System zapobiegania włamaniom (ang. intrusion prevention system, IPS) ma wszystkie możliwości systemu wykrywania włamań, a dodatkowo może próbować powstrzymywać wykryte incydenty. Ponieważ obie technologie oferują w dużej mierze te same możliwości, a funkcje zapobiegania w produktach IPS zwykle można wyłączyć, wytyczne NIST opisują je łącznie jako systemy wykrywania i zapobiegania włamaniom (ang. intrusion detection and prevention systems, IDPS)[2].
Systemy te służą przede wszystkim do identyfikowania możliwych incydentów, rejestrowania informacji o nich, prób ich powstrzymania i powiadamiania administratorów. Pomagają też m.in. wykrywać problemy z politykami bezpieczeństwa i dokumentować istniejące zagrożenia[2].
NIST wyróżnia trzy główne klasy metod wykrywania. Większość systemów łączy kilka z nich, aby wykrywanie było szersze i dokładniejsze[2]:
NIST wyróżnia cztery rodzaje systemów IDS/IPS[2]:
Typowy system składa się z sond (w systemach sieciowych) lub agentów (w systemach hostowych), serwera zarządzającego, który zbiera informacje z sond i agentów oraz nimi zarządza, serwera bazy danych przechowującego zarejestrowane zdarzenia oraz konsoli służącej użytkownikom i administratorom do obsługi systemu[2][3].
Sondy systemów sieciowych mogą działać w trybie inline, w którym cały monitorowany ruch przechodzi przez sondę, albo w trybie pasywnym, w którym sonda analizuje kopię ruchu, otrzymywaną np. z portu monitorującego przełącznika lub z rozgałęźnika sieciowego (ang. network tap)[2]. Głównym powodem stosowania trybu inline jest możliwość blokowania ataków. Większość technik zapobiegania wymaga właśnie tego trybu, a tryb pasywny nie zapewnia niezawodnego sposobu blokowania ruchu[3].
Sonda pasywna może próbować zerwać połączenie TCP, wysyłając do obu jego stron sfałszowane pakiety z flagą RST, tak aby każda ze stron uznała, że to druga kończy połączenie. Pakiety te często docierają jednak za późno, bo atak musi zostać najpierw wykryty, a metoda nie działa dla ruchu innego niż TCP, np. UDP czy ICMP. Sondy inline mogą filtrować ruch jak zapora sieciowa, ograniczać wykorzystanie przepustowości lub modyfikować złośliwą zawartość. Sondy obu rodzajów mogą też zmieniać konfigurację innych urządzeń zabezpieczających, np. zapór sieciowych[2].
Systemy IDS/IPS nie zapewniają w pełni dokładnego wykrywania. Mogą uznać nieszkodliwą aktywność za złośliwą (fałszywy alarm, ang. false positive) albo nie wykryć złośliwej (ang. false negative). Nie da się wyeliminować wszystkich błędów obu rodzajów, a ograniczanie jednych zwykle zwiększa liczbę drugich[2]. Systemy sieciowe historycznie cechowały się wysokim odsetkiem obu rodzajów błędów[3]. Nie mogą też analizować aktywności w szyfrowanych połączeniach, którą mogą natomiast badać systemy hostowe[3].
Do popularnych otwartych systemów należą Snort i Suricata, które mogą działać zarówno jako IDS, jak i IPS, oraz Zeek (do 2018 roku pod nazwą Bro), który nie oferuje blokowania ruchu w trybie inline[4]. Przykładem systemu hostowego jest OSSEC.