SNORT(cid:13)R Users Manual 2.9.11 TheSnort Project August31,2017 Copyright(cid:13)c1998-2003MartinRoesch Copyright(cid:13)c2001-2003ChrisGreen Copyright(cid:13)c2003-2013Sourcefire,Inc. Copyright(cid:13)c2014-2017Ciscoand/oritsaffiliates. Allrightsreserved. 1 Contents 1 SnortOverview 9 1.1 GettingStarted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 SnifferMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3 PacketLoggerMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 NetworkIntrusionDetectionSystemMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4.1 NIDSModeOutputOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4.2 UnderstandingStandardAlertOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.3 HighPerformanceConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4.4 ChangingAlertOrder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 PacketAcquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5.2 pcap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.3 AFPACKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5.4 NFQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5.5 IPQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5.6 IPFW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5.7 Dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5.8 StatisticsChanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.6 Readingpcapfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.6.1 Commandlinearguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.6.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7 BasicOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.7.1 TimingStatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.7.2 PacketI/OTotals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.7.3 ProtocolStatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.7.4 SnortMemoryStatistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.7.5 Actions,Limits,andVerdicts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.8 TunnelingProtocolSupport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.8.1 MultipleEncapsulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.8.2 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2 1.9 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.9.1 RunningSnortasaDaemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.9.2 RunninginRuleStubCreationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.9.3 ObfuscatingIPAddressPrintouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.9.4 SpecifyingMultiple-InstanceIdentifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.9.5 SnortModes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.10 Controlsocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.11 Configuresignalvalue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.12 MoreInformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2 ConfiguringSnort 28 2.1 Includes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.1 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.3 Config. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2 Preprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.2.1 Frag3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.2.2 Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.2.3 Stream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2.4 sfPortscan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.2.5 RPCDecode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.2.6 PerformanceMonitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.2.7 HTTPInspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.2.8 SMTPPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 2.2.9 POPPreprocessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 2.2.10 IMAPPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 2.2.11 FTP/TelnetPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 2.2.12 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2.2.13 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 2.2.14 SSL/TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 2.2.15 ARPSpoofPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2.2.16 DCE/RPC2Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2.2.17 SensitiveDataPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 2.2.18 Normalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 2.2.19 SIPPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 2.2.20 ReputationPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 2.2.21 GTPDecoderandPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 2.2.22 ModbusPreprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 2.2.23 DNP3Preprocessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 3 2.2.24 AppIdPreprocessor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 2.3 DecoderandPreprocessorRules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 2.3.1 Configuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 2.3.2 Revertingtooriginalbehavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 2.4 EventProcessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 2.4.1 RateFiltering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 2.4.2 EventFiltering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 2.4.3 EventSuppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 2.4.4 EventLogging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 2.4.5 EventTrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 2.5 PerformanceProfiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 2.5.1 RuleProfiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 2.5.2 PreprocessorProfiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 2.5.3 PacketPerformanceMonitoring(PPM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 2.6 OutputModules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 2.6.1 alert syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 2.6.2 alert fast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 2.6.3 alert full . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 2.6.4 alert unixsock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 2.6.5 log tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 2.6.6 csv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 2.6.7 unified2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 2.6.8 lognull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 2.6.9 LogLimits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 2.7 HostAttributeTable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 2.7.1 Ruleevaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 2.7.2 SnortConfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 2.7.3 HostAttributeTableFileFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 2.7.4 AttributeTableExample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 2.7.5 AttributeTableAffectonpreprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 2.8 DynamicModules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 2.8.1 Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 2.8.2 Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 2.9 ReloadingaSnortConfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 2.9.1 Enablingsupport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 2.9.2 Reloadingaconfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 2.9.3 Non-reloadableconfigurationoptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 2.10 MultipleConfigurations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 2.10.1 CreatingMultipleConfigurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 4 2.10.2 ConfigurationSpecificElements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 2.10.3 HowConfigurationisapplied? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 2.11 ActiveResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 2.11.1 EnablingActiveResponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 2.11.2 ConfigureSniping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 2.11.3 Flexresp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 2.11.4 React . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 2.11.5 RuleActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 3 WritingSnortRules 182 3.1 TheBasics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.2 RulesHeaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.2.1 RuleActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 3.2.2 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 3.2.3 IPAddresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 3.2.4 PortNumbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.2.5 TheDirectionOperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.2.6 Activate/DynamicRules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 3.3 RuleOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 3.4 GeneralRuleOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 3.4.1 msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 3.4.2 reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 3.4.3 gid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 3.4.4 sid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 3.4.5 rev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 3.4.6 classtype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 3.4.7 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 3.4.8 metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 3.4.9 GeneralRuleQuickReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 3.5 PayloadDetectionRuleOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 3.5.1 content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 3.5.2 protected content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 3.5.3 hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.5.4 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.5.5 nocase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 3.5.6 rawbytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 3.5.7 depth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 3.5.8 offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 3.5.9 distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 5 3.5.10 within . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 3.5.11 http client body. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 3.5.12 http cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 3.5.13 http raw cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 3.5.14 http header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 3.5.15 http raw header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 3.5.16 http method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 3.5.17 http uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 3.5.18 http raw uri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 3.5.19 http stat code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 3.5.20 http stat msg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 3.5.21 http encode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 3.5.22 fast pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 3.5.23 uricontent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 3.5.24 urilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 3.5.25 isdataat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 3.5.26 pcre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 3.5.27 pkt data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 3.5.28 file data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 3.5.29 base64 decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 3.5.30 base64 data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 3.5.31 byte test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 3.5.32 byte jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 3.5.33 byte extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 3.5.34 byte math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 3.5.35 ftpbounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 3.5.36 asn1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 3.5.37 cvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 3.5.38 dce iface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.39 dce opnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.40 dce stub data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.41 sip method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.42 sip stat code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.43 sip header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.44 sip body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.45 gtp type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.46 gtp info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.47 gtp version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.48 ssl version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 6 3.5.49 ssl state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 3.5.50 PayloadDetectionQuickReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 3.6 Non-PayloadDetectionRuleOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 3.6.1 fragoffset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 3.6.2 ttl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 3.6.3 tos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 3.6.4 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 3.6.5 ipopts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 3.6.6 fragbits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 3.6.7 dsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 3.6.8 flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 3.6.9 flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 3.6.10 flowbits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 3.6.11 seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 3.6.12 ack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 3.6.13 window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 3.6.14 itype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 3.6.15 icode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 3.6.16 icmp id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 3.6.17 icmp seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 3.6.18 rpc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 3.6.19 ip proto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 3.6.20 sameip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 3.6.21 stream reassemble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 3.6.22 stream size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 3.6.23 Non-PayloadDetectionQuickReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 3.7 Post-DetectionRuleOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 3.7.1 logto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 3.7.2 session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 3.7.3 resp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 3.7.4 react. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 3.7.5 tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 3.7.6 activates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 3.7.7 activated by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 3.7.8 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 3.7.9 replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 3.7.10 detection filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 3.7.11 Post-DetectionQuickReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 3.8 RuleThresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7 3.9 WritingGoodRules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 3.9.1 ContentMatching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 3.9.2 CatchtheVulnerability,NottheExploit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 3.9.3 CatchtheOdditiesoftheProtocolintheRule . . . . . . . . . . . . . . . . . . . . . . . . . . 237 3.9.4 OptimizingRules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 3.9.5 TestingNumericalValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 4 DynamicModules 243 4.1 DataStructures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.1.1 DynamicPluginMeta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.1.2 DynamicPreprocessorData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.1.3 DynamicEngineData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.1.4 SFSnortPacket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.1.5 DynamicRules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 4.2 RequiredFunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 4.2.1 Preprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 4.2.2 DetectionEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 4.2.3 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 4.3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 4.3.1 PreprocessorExample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 4.3.2 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 5 SnortDevelopment 259 5.1 SubmittingPatches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 5.2 SnortDataFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 5.2.1 Preprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 5.2.2 DetectionPlugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 5.2.3 OutputPlugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 5.3 Unified2FileFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 5.3.1 SerialUnified2Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 5.3.2 Unified2Packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 5.3.3 Unified2IDSEvent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 5.3.4 Unified2IDSEventIP6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 5.3.5 Unified2IDSEvent(Version2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 5.3.6 Unified2IDSEventIP6(Version2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 5.3.7 Unified2ExtraData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 5.3.8 DescriptionofFields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 5.4 Bufferdumputility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 5.4.1 ExampleBufferDumpoutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 5.5 TheSnortTeam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 8 Chapter 1 Snort Overview ThismanualisbasedonWritingSnortRulesbyMartinRoeschandfurtherworkfromChrisGreen<[email protected]>. ItwasthenmaintainedbyBrianCaswell<[email protected]>andnowismaintainedbytheSnortTeam. Ifyouhave a better way to say something or find that something in the documentationis outdated, drop us a line and we will updateit. Ifyouwouldliketosubmitpatchesforthisdocument,youcanfindthelatestversionofthedocumentation inLATEXformatinthemostrecentsourcetarballunder/doc/snort_manual.tex. Smalldocumentationupdatesare theeasiestwaytohelpouttheSnortProject. 1.1 Getting Started Snortreallyisn’tveryhardtouse,buttherearealotofcommandlineoptionstoplaywith,andit’snotalwaysobvious whichonesgotogetherwell. ThisfileaimstomakeusingSnorteasierfornewusers. Beforeweproceed,thereareafewbasicconceptsyoushouldunderstandaboutSnort.Snortcanbeconfiguredtorun inthreemodes: • Sniffer mode, which simply reads the packets off of the network and displays them for you in a continuous streamontheconsole(screen). • PacketLoggermode,whichlogsthepacketstodisk. • Network Intrusion Detection System (NIDS) mode, which performsdetection and analysis on network traffic. Thisisthemostcomplexandconfigurablemode. 1.2 Sniffer Mode First,let’sstartwiththebasics. IfyoujustwanttoprintouttheTCP/IPpacketheaderstothescreen(i.e.sniffermode), trythis: ./snort -v ThiscommandwillrunSnortandjustshowtheIPandTCP/UDP/ICMPheaders,nothingelse. Ifyouwanttoseethe applicationdataintransit,trythefollowing: ./snort -vd ThisinstructsSnorttodisplaythepacketdataaswellastheheaders. Ifyouwantanevenmoredescriptivedisplay, showingthedatalinklayerheaders,dothis: 9