ΠΡΠ»ΠΈ Π²Π΅ΡΠΈΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ΅, ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 50% ΠΊΠ°ΠΆΠ΄ΡΠΉ Π³ΠΎΠ΄. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ IDS/IPS. ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠ΅Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ, Π½ΠΎ Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄Π΅ΡΠ΅Π²Π»Π΅ β Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΡΠΈΡΠ°ΡΡ, Π±ΡΠ΄ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ IPS Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. Π ΡΠ»ΡΡΠ°Π΅ Ρ Suricata ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΠΎ β ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈ Π΅Π΅ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠΈΠΏΠΎΠ²ΡΠ΅ Π°ΡΠ°ΠΊΠΈ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΌΠΎΠΆΠ½ΠΎ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠΊΡΡΡΠ°Ρ IPS?
ΠΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΈΡΠ°Π²ΡΠ°ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ° Snort ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΡΠ° Π΄Π΅Π²ΡΠ½ΠΎΡΡΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ. ΠΠ° Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ Π² Π½Π΅ΠΉ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΠΊΠΈ, Π²ΡΠΎΠ΄Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ IPv6, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ Snort 2.X Π½Π°ΡΡΠΈΠ»ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΄ΡΠ°ΠΌΠΈ, Π½ΠΎ ΡΠ°ΠΊ ΠΈ ΠΎΡΡΠ°Π»ΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΡΠ΅ΡΠ΅Π½Π° Π² ΡΡΠ΅ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ Π΅Π΅ Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, ΡΡΠΎ Π½Π° ΡΡΠ½ΠΊΠ΅ ΡΡΠΏΠ΅Π»Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Ρ Π½ΡΠ»Ρ Suricata. Π 2009 Π³ΠΎΠ΄Ρ Π΅Π΅ Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Snort, ΠΎΠ±Π»Π°Π΄Π°ΡΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ IPS. ΠΠΎΠ΄ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2, Π½ΠΎ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΡΠ½Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΠΊΡΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄Π²ΠΈΠΆΠΊΠ°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ Π±ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½Ρ.
ΠΠΎΡΠ΅ΠΌΡ Suricata?
Π Suricata Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ΠΊΠ°ΠΊ ΠΈ Π² Snort): Π·Π°Ρ Π²Π°ΡΠ°, ΡΠ±ΠΎΡΠ°, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΠΉ ΡΡΠ°ΡΠΈΠΊ ΠΈΠ΄Π΅Ρ Π΄ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Ρ ΠΎΡΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌ β Suricata ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ, Ρ ΠΎΡΡ ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ ΡΡΠΎΠ²Π΅Π½Ρ HOWTO Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π‘ΡΠΎΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² Suricata ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ HTP ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ HTTP. ΠΠ½ΠΈ ΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° Π±Π΅Π· Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ IPv6, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ½Π½Π΅Π»ΠΈ IPv4-in-IPv6, IPv6-in-IPv6 ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), Π° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Unix Socket ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ½ΠΈΡΡΠ΅ΡΠΎΠΌ ΡΠ°ΠΉΠ»Ρ PCAP. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Suricata ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π·Π°Ρ Π²Π°ΡΠ°, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² Suricata Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ°ΡΠΈΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ»ΡΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π GNU/Linux Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ°Π±ΠΎΡΡ IPS: ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΅ΡΠ΅Π΄Ρ NFQUEUE (ΡΠ΅ΠΆΠΈΠΌ NFQ) ΠΈ ΡΠ΅ΡΠ΅Π· zero copy (ΡΠ΅ΠΆΠΈΠΌ AF_PACKET). Π ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Π² iptables ΠΏΠ°ΠΊΠ΅Ρ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ NFQUEUE, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. Suricata ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΈ Π²ΡΠ½ΠΎΡΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠ΅Ρ Π²Π΅ΡΠ΄ΠΈΠΊΡΠΎΠ²: NF_ACCEPT, NF_DROP ΠΈ NF_REPEAT. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ iptables. Π Π΅ΠΆΠΈΠΌ AF_PACKET ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ, Π½ΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ: ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ Π΄Π²Π° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»ΡΠ·Π°. ΠΠ°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠ°ΠΆΠ½Π°Ρ ΡΠΈΡΠΊΠ° Suricata β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ Π΄Π»Ρ Snort. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π°Π±ΠΎΡΡ ΠΏΡΠ°Π²ΠΈΠ» Sourcefire VRT ΠΈ OpenSource Emerging Threats, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ Emerging Threats Pro. Π£Π½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠ², ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ Π² PCAP ΠΈ Syslog. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ ΡΠΎΡΠΌΠ°ΡΠ° YAML, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ²ΠΈΠΆΠΎΠΊ Suricata ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊ Π½ΠΎΠΌΠ΅ΡΡ ΠΏΠΎΡΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°Ρ Suricata Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ flowbits. ΠΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΠΈ ΡΠ»Π°Π³ΠΈ. ΠΠ½ΠΎΠ³ΠΈΠ΅ IDS ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ, ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΎ Π½Π°ΡΠ°Π»Π΅ Π°ΡΠ°ΠΊΠΈ. Suricata ΡΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΠΊ. Π Π΅Π΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΡΠΆΠ΄Π°ΡΡ Π΄ΠΎΠ»Π³ΠΎ, ΠΌΡ Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ?
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Suricata Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ubuntu 18.04 LTS. ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (root). ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ SSH Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈΠ»ΠΈΡΡ sudo Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ:
sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Suricata:
sudo apt-get install suricata
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠΌΡ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ eth0 Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /etc/default/suricata, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ β Π² /etc/suricata/suricata.yaml. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° IDS ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΊΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π Π½Π΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈΠ· Snort. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ, Π½ΠΎ ΡΠ°ΠΉΠ» ΡΠΈΡΠ°ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ Snort, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΎΠ½ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½.
sudo nano /etc/default/suricata
ΠΈ
sudo nano /etc/suricata/suricata.yaml
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° vars.
Π§ΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ suricata-update Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ». Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update
ΠΠ°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ suricata-update Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π°Π±ΠΎΡΠ° ΠΏΡΠ°Π²ΠΈΠ» Emerging Threats Open:
sudo suricata-update
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠ°Π²ΠΈΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo suricata-update list-sources
ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»:
sudo suricata-update update-sources
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
sudo suricata-update list-sources
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ΡΠ΅ ΡΠ°Π· ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°:
sudo suricata-update
ΠΠ° ΡΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Suricata Π² Ubuntu 18.04 LTS ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΠΎΠΉ. ΠΠ°Π»ΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅: Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΊ ΠΎΡΠΈΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΡΠ΅ΡΠ΅Π· VPN ΠΈ Π½Π°ΡΠ½Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΡΠ°ΠΊ DDoS, Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΠ ΠΈ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΈΠ· ΡΠ΅ΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½Ρ Π°ΡΠ°ΠΊΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com