Π‘ΠΏΠΎΡΠ΅Π΄ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° ΠΎΠ±Π΅ΠΌΡΡ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ°ΡΠΈΠΊ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Ρ ΠΎΠΊΠΎΠ»ΠΎ 50% Π²ΡΡΠΊΠ° Π³ΠΎΠ΄ΠΈΠ½Π°. Π’ΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ΡΠΎ ΠΈ ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° IDS / IPS. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΊΡΠΏΠΈΡΠ΅ ΡΠΊΡΠΏ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Ρ Π°ΡΠ΄ΡΠ΅Ρ, Π½ΠΎ ΠΈΠΌΠ° ΠΈ ΠΏΠΎ-Π΅Π²ΡΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ - Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄Π½Π° ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ Π΅ ΡΡΡΠ΄Π½ΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Ρ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ IPS. Π ΡΠ»ΡΡΠ°Ρ ΡΡΡ Suricata ΡΠΎΠ²Π° Π½Π΅ Π΅ ΡΡΠ²ΡΠ΅ΠΌ Π²ΡΡΠ½ΠΎ - ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΎΡΠ±Π»ΡΡΠΊΠ²Π°ΡΠ΅ ΡΠΈΠΏΠΈΡΠ½ΠΈ Π°ΡΠ°ΠΊΠΈ Ρ Π½Π°Π±ΠΎΡ ΠΎΡ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΡΡΠΈ.
ΠΠ°ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ Π΄ΡΡΠ³ ΠΎΡΠ²ΠΎΡΠ΅Π½ IPS?
ΠΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠΌΡΡΠ°Π½ Π·Π° ΡΡΠ°Π½Π΄Π°ΡΡ, Snort ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΎΡ ΠΊΡΠ°Ρ Π½Π° Π΄Π΅Π²Π΅ΡΠ΄Π΅ΡΠ΅ΡΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ Π±ΠΈΠ» Π΅Π΄Π½ΠΎΠΏΠΎΡΠΎΡΠ΅Π½. ΠΡΠ΅Π· Π³ΠΎΠ΄ΠΈΠ½ΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° Π²ΡΠΈΡΠΊΠΈ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° IPv6, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ» Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» Snort 2.X ΡΠ΅ Π΅ Π½Π°ΡΡΠΈΠ» Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΄ΡΠ°, Π½ΠΎ Π΅ ΠΎΡΡΠ°Π½Π°Π» Π΅Π΄Π½ΠΎΠ½ΠΈΡΠΊΠΎΠ² ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ Π² ΡΡΠ΅ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° ΠΎΡΠ½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅, ΡΠ΅ Suricata, Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΎΡ Π½ΡΠ»Π°ΡΠ°, ΡΡΠΏΡ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½Π° ΠΏΠ°Π·Π°ΡΠ°. ΠΡΠ΅Π· 2009 Π³. ΡΠΎΠΉ Π·Π°ΠΏΠΎΡΠ½Π° Π΄Π° ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Snort, ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ IPS ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ ΠΊΡΡΠΈΡΡΠ°. ΠΠΎΠ΄ΡΡ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· GPLv2, Π½ΠΎ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π·Π°ΡΠ²ΠΎΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ. Π ΠΏΡΡΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Ρ Π° Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΠ°, Π½ΠΎ ΡΠ΅ Π±ΡΡΠ·ΠΎ Π±ΡΡ Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ.
ΠΠ°ΡΠΎ Surica?
Suricata ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»Π° (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Snort): ΡΠ»Π°Π²ΡΠ½Π΅, ΡΠ»Π°Π²ΡΠ½Π΅, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ»ΠΎΠ²Π΅Π½ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π΄ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π² Π΅Π΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ²Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π½ΠΈΡΠΊΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ - Suricata Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Ρ Π°ΡΠ΄ΡΠ΅Ρ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ HOWTO Π½ΠΈΠ²ΠΎ Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ Suricata ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° HTTP, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° HTP Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°. Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ Π±Π΅Π· ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° IPv6 Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ IPv4-Π²-IPv6 ΡΡΠ½Π΅Π»ΠΈ, IPv6-Π²-IPv6 ΡΡΠ½Π΅Π»ΠΈ ΠΈ Π΄Ρ.
ΠΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° ΠΏΡΠΈΡ Π²Π°ΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΠΊ (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), Π° Π² ΡΠ΅ΠΆΠΈΠΌ Unix Socket ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ PCAP ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ»ΠΎΠ²Π΅Π½ΠΈ ΠΎΡ Π΄ΡΡΠ³ ΡΠ½ΠΈΡΡΡ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΡΠ»Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Suricata ΡΠ»Π΅ΡΠ½ΡΠ²Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ»Π°Π²ΡΠ½Π΅, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ Π² Suricata ΡΡΠ°ΡΠΈΠΊΡΡ ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠΈΠ»ΡΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. GNU/Linux ΠΈΠΌΠ° Π΄Π²Π΅ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ IPS: ΡΡΠ΅Π· ΠΎΠΏΠ°ΡΠΊΠ°ΡΠ° NFQUEUE (ΡΠ΅ΠΆΠΈΠΌ NFQ) ΠΈ ΡΡΠ΅Π· Π½ΡΠ»Π΅Π²ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ (ΡΠ΅ΠΆΠΈΠΌ 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 ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ Ρ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΏΠΎΡΡ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° flowbits ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° Suricata. ΠΠ° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΈΠ³Π΅ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΠ΅ΡΠΈΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±ΡΠΎΡΡΠΈ ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅. ΠΠ½ΠΎΠ³ΠΎ 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, Π·Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π½Π°Π±ΠΎΡΠ° ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°ΡΠΈ Π·Π°ΠΏΠ»Π°Ρ ΠΈ:
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 Π°ΡΠ°ΠΊΠΈ, Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ ΡΠΎΡΡΡΠ΅Ρ ΠΈ ΠΎΠΏΠΈΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΡΠ»ΡΠ³ΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΎΡ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ. ΠΠ° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ½ΠΎΡΠ° ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΈΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ Π°ΡΠ°ΠΊΠΈ ΠΎΡ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈΡΠ΅ Π²ΠΈΠ΄ΠΎΠ²Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com