Snort pravidla a jejich syntaxe. Příklad psaní vlastních pravidel TECH-SEC: Moderní hrozby a ochrana proti nim pomocí intrusion prevention systémů a firewallů nové generace Tomáš Herout
Motivace Tvorba vlastních pravidel při specifickém útoku Obrana vlastních aplikací Analýza zavedených pravidel Monitoring specifického provozu na síti 3
Struktura pravidla Header action protocol source direction destination Body (Options) (keyword1:parameters1;" keyword2:parameters2;" keyword3;" " keywordn:parametersn;)" 4
Syntaxe pravidla action Alert: zpráva do logu včetně zaznamenání paketu Log: zpráva do logu Pass: ignorovat paket Activate: zpráva do logu a spuštění dynamic pravidla Dynamic: spouštěn activate pravidlem Drop: zpráva do logu, zahodit paket Reject: zpráva do logu, zahodit paket a ukončit spojení Sdrop: pouze zahodit paketu 5
Syntaxe pravidla protocol IP TCP UDP ICMP 6
Syntaxe pravidla source (destination) IP adresa síť/maska množina: [10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16]! Negace $PROMĚNNÁ" any" TCP/UDP port port porta-portb množina, negace, proměnné, 7
Syntaxe pravidla direction Operátor -> Directional: provoz pouze z source na destination Operátor <> Bidirectional: provoz mezi source a destination 8
Options 1. General Poskytují informace o pravidle, neovlivňují detekci 2. Payload Umožňují přístup k datům paketu 3. Non-payload Přistupují k hlavičkám paketu/segmentu 4. Post-detection Provádí se při spuštění pravidla 9
General Options Zaznamení zprávy do logu: msg: zpráva do logu ;" Snort ID pravidla: sid: 1000000;" Číslo revize pravidla: rev: 1;" Klasifikace pravidla: classtype: attempted-admin;" Změna priority oproti klasifikaci: priority: 10;" Vlastní data: metadata: key1 value1, key2 value2;" 10
Payload Options Přitomnost obsahu: content: GET ;" content: 43 69 73 63 6f ;" Modifikátory: nocase;" rawbytes;" depth 20; offset 4;" distance 10; within: 5; " http_client_body, http_cookie, http_method, http_uri, " Regulární výrazy: pcre: HTTP\/1\.[0-1] " 11
Non-payload Options IP: ttl, tos, id, ipopts, fragbits, ip_proto, TCP: flags, flow, seq, ack, window, ICMP: itype, icode, icmp_seq, 12
Post-detection Options Zaznamenání obsahu TCP spojení: session:[printable binary all];" Spustit jiné pravidlo: activates, activated_by" Nahrazení nalezeného textu: replace: text ;" Zaznamenání dalšího provozu: tag:host, <count>, {packets seconds bytes}, <direction>;" Rate-limiting: detection-filter: track {by_src by_dst} \ count C, seconds S;" 13
Příklady pravidel
Příklady pravidel Test na obsah HTTP alert tcp any any -> 192.168.1.0/24 80 ( \" content: /etc/passwd ; \" msg: Pokus o pristup k souboru passwd ;)" 15
Příklady pravidel Obrana proti útoku na DNS (Kaminsky) struktura DNS paketu 16
Příklady pravidel Obrana proti útoku na DNS (Kaminsky) alert udp $EXTERNAL_NET 53 -> $HOME_NET any ( \" msg:"dns cache poisoning possible ; \" byte_test:1,&,2,3; \! byte_test:1,&,1,3; byte_test:1,&,128,2; \" detection_filter:track by_src, count 1000, seconds 5; \" metadata:service dns; \" reference:cve,2008-1447; reference:cve,2009-0233; \" classtype:misc-attack; sid:13948; rev:10;)" 17
Ukázka správy pravidel Cisco dcloud 18