unified2 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. data/ChangeLog.md +10 -0
  2. data/README.md +41 -35
  3. data/Rakefile +3 -2
  4. data/bin/ru2 +76 -0
  5. data/example/example.rb +10 -18
  6. data/example/example2.rb +44 -0
  7. data/example/seeds/classification.config +1 -1
  8. data/example/seeds/gen-msg.map +86 -9
  9. data/example/seeds/sid-msg.map +2849 -316
  10. data/example/seeds/unified2-current.log +0 -0
  11. data/example/seeds/{unified2.log → unified2-legacy.log} +0 -0
  12. data/gemspec.yml +2 -1
  13. data/lib/unified2/classification.rb +12 -0
  14. data/lib/unified2/config_file.rb +4 -1
  15. data/lib/unified2/constructor/construct.rb +52 -6
  16. data/lib/unified2/constructor/event_ip4.rb +18 -3
  17. data/lib/unified2/constructor/event_ip6.rb +22 -4
  18. data/lib/unified2/constructor/extra_construct.rb +46 -0
  19. data/lib/unified2/constructor/extra_data.rb +37 -0
  20. data/lib/unified2/constructor/extra_data_header.rb +28 -0
  21. data/lib/unified2/constructor/legacy_event_ip4.rb +54 -0
  22. data/lib/unified2/constructor/legacy_event_ip6.rb +52 -0
  23. data/lib/unified2/constructor/packet.rb +9 -1
  24. data/lib/unified2/constructor/primitive/ipv4.rb +9 -0
  25. data/lib/unified2/constructor/record_header.rb +9 -0
  26. data/lib/unified2/constructor.rb +2 -1
  27. data/lib/unified2/core_ext/string.rb +2 -1
  28. data/lib/unified2/event.rb +290 -165
  29. data/lib/unified2/exceptions/binary_read_error.rb +11 -0
  30. data/lib/unified2/exceptions/file_not_found.rb +4 -1
  31. data/lib/unified2/exceptions/file_not_readable.rb +4 -1
  32. data/lib/unified2/exceptions/unknown_load_type.rb +4 -1
  33. data/lib/unified2/exceptions.rb +2 -1
  34. data/lib/unified2/extra.rb +128 -0
  35. data/lib/unified2/packet.rb +211 -0
  36. data/lib/unified2/protocol.rb +54 -63
  37. data/lib/unified2/sensor.rb +14 -2
  38. data/lib/unified2/signature.rb +12 -0
  39. data/lib/unified2/version.rb +4 -1
  40. data/lib/unified2.rb +65 -81
  41. data/spec/event_spec.rb +40 -27
  42. data/spec/legacy_event_spec.rb +122 -0
  43. data/spec/spec_helper.rb +10 -21
  44. data/spec/unified2_spec.rb +3 -3
  45. metadata +124 -140
  46. data/lib/unified2/payload.rb +0 -114
data/ChangeLog.md CHANGED
@@ -1,3 +1,13 @@
1
+ === 0.6.0 / 2011-11-13
2
+
3
+ * update deps
4
+ * added support for unified2 extra data
5
+ * refactor Unified2#read & Unified2#watch
6
+ * Interrupt now returns file position
7
+ * updated spec for legacy u2 and current format changes
8
+ * events can now have multiple packets
9
+ * bug fixes and documentation
10
+
1
11
  === 0.5.4 / 2011-06-27
2
12
 
3
13
  * update packetfu ~> 1.1
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # unified2
1
+ # Unified2
2
2
 
3
3
  * [Homepage](http://github.com/mephux/unified2)
4
4
  * [Issues](http://github.com/mephux/unified2/issues)
@@ -12,57 +12,63 @@ A ruby interface for unified2 output. rUnified2 allows you to manipulate unified
12
12
  ## Features
13
13
 
14
14
  * Monitor/Read unified2 logs & manipulate the data.
15
- * Numerous connivence methods
15
+ * Numerous convenience methods
16
16
  * Simple & Intuitive to Use
17
+ * Supports legacy unified2 formats and the most current as of snort 2.9.1.3
18
+ * Packet data, headers, hexdumps and more.
17
19
 
18
20
  ## Examples
19
21
 
20
- ``` ruby
21
- require 'unified2'
22
+ require 'unified2'
22
23
 
23
- #
24
- # Load rules into memory
25
- #
24
+ # Unified2 Configuration
25
+ Unified2.configuration do
26
26
 
27
- Unified2.configuration do
28
- # Sensor Configurations
29
- sensor :id => 1, :name => 'Test Sensor', :interface => 'en1'
27
+ # Sensor Configurations
28
+ sensor :interface => 'en1',
29
+ :name => 'Unified2 Example', :id => 3
30
30
 
31
- # Load signatures, generators & classifications into memory
32
- load :signatures, 'sid-msg.map'
33
- load :generators, 'gen-msg.map'
34
- load :classifications, 'classification.config'
35
- end
31
+ load :signatures, 'seeds/sid-msg.map'
36
32
 
37
- #
38
- # Unified2#watch
39
- #
40
- # Watch a unified2 file for changes and process the results.
41
- #
33
+ load :generators, 'seeds/gen-msg.map'
34
+
35
+ load :classifications, 'seeds/classification.config'
42
36
 
43
- Unified2.watch('/var/log/snort/merged.log', :last) do |event|
44
- next if event.signature.name.blank?
45
- puts event
46
- end
37
+ end
47
38
 
48
- # Unified2#read
49
- # Parse a unified2 file and process the results.
39
+ Unified2.watch('seeds/unified2-current.log', :first) do |event|
50
40
 
51
- Unified2.read('/var/log/snort/merged.log') do |event|
41
+ puts event.id
52
42
 
53
- puts event.protocol #=> "TCP"
43
+ puts event.severity
54
44
 
55
- puts event.protocol.to_h #=> {:length=>379, :seq=>3934511163, :ack=>1584708129 ... }
45
+ puts event.classification.name
56
46
 
57
- end
58
- ```
47
+ puts event.signature.name
48
+
49
+ event.extras.each do |extra|
50
+ puts extra.name
51
+ puts extra.value
52
+ end
53
+
54
+ event.packets.each do |packet|
55
+ puts packet.ip_header
56
+ puts packet.protocol.header
57
+ puts packet.hexdump(:header => false, :width => 40)
58
+ end
59
+
60
+ end
59
61
 
60
62
  ## Requirements
61
63
 
62
- * bindata ~> 1.3.1
63
- * hexdump: ~> 0.1.0
64
- * packetfu: ~> 1.0.0
65
- * pcaprub: ~> 0.9.2
64
+ * bindata ~> 1.4.x
65
+ * hexdump: ~> 0.2.x
66
+ * packetfu: ~> 1.1.x
67
+
68
+ ## TODO
69
+
70
+ * Make both Event#watch and Event#read evented
71
+ * User eventmachine to monitor the file i.e modify/delete/move/symlink
66
72
 
67
73
  ## Install
68
74
 
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ require 'psych'
1
2
  require 'rubygems'
2
3
  require 'rake'
3
4
 
@@ -26,7 +27,7 @@ task :test => :spec
26
27
  task :default => :spec
27
28
 
28
29
  begin
29
- gem 'yard', '~> 0.6.0'
30
+ gem 'yard', '~> 0.7'
30
31
  require 'yard'
31
32
 
32
33
  YARD::Rake::YardocTask.new
@@ -36,4 +37,4 @@ rescue LoadError => e
36
37
  end
37
38
  end
38
39
 
39
- task :doc => :yard
40
+ task :doc => :yard
data/bin/ru2 ADDED
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+ require 'unified2'
3
+
4
+ path = ARGV.first
5
+
6
+ Unified2.configuration do
7
+ sensor :interface => 'en1',
8
+ :name => 'Unified2 Example', :id => 0
9
+ end
10
+
11
+
12
+ def render(event)
13
+ data = "EVENT\n"
14
+ data += "\tevent id: #{event.id}\n"
15
+ data += "\tsensor id: #{event.sensor.id}\n"
16
+ data += "\ttimestamp: #{event.timestamp.strftime('%D %H:%M:%S')}\n"
17
+ data += "\tseverity: #{event.severity}\n"
18
+ data += "\tprotocol: #{event.protocol}\n"
19
+ data += "\tsource ip: #{event.source_ip} (#{event.source_port})\n"
20
+ data += "\tdestination ip: #{event.destination_ip} (#{event.destination_port})\n"
21
+ data += "\tsignature: #{event.signature.id}\n"
22
+ data += "\tclassification: #{event.classification.id}\n"
23
+ data += "\tchecksum: #{event.checksum}\n"
24
+
25
+ packet_count = 1
26
+ length = event.packets.count
27
+
28
+ event.packets.each do |packet|
29
+ data += "\n\tPACKET (#{packet_count} of #{length})\n\n"
30
+
31
+ data += "\tsensor id: #{event.sensor.id}"
32
+ data += "\tevent id: #{event.id}"
33
+ data += "\tevent second: #{packet.event_timestamp.to_i}\n"
34
+ data += "\tpacket second: #{packet.timestamp.to_i}"
35
+ data += "\tpacket microsecond: #{packet.microsecond.to_i}\n"
36
+ data += "\tlinktype: #{packet.link_type}"
37
+ data += "\tpacket length: #{packet.length}\n"
38
+ data += "\tchecksum: #{packet.checksum}\n\n"
39
+
40
+ hexdump = packet.hexdump(:width => 16)
41
+ hexdump.each_line { |line| data += "\t" + line }
42
+
43
+ packet_count += 1
44
+ end
45
+
46
+ extra_count = 1
47
+ length = event.extras.count
48
+
49
+ event.extras.each do |extra|
50
+ data += "\n\tEXTRA (#{extra_count} of #{length})\n\n"
51
+
52
+ data += "\tname: #{extra.name}"
53
+ data += "\tevent type: #{extra.header[:event_type]}"
54
+ data += "\tevent length: #{extra.header[:event_length]}\n"
55
+ data += "\tsensor id: #{event.sensor.id}"
56
+ data += "\tevent id: #{event.id}"
57
+ data += "\tevent second: #{extra.timestamp}\n"
58
+ data += "\ttype: #{extra.type_id}"
59
+ data += "\tdata type: #{extra.data_type}"
60
+ data += "\tlength: #{extra.length}\n"
61
+ data += "\tvalue: " + extra.value + "\n"
62
+
63
+ extra_count += 1
64
+ end
65
+
66
+ data += "\n"
67
+ end
68
+
69
+ unless path
70
+ STDERR.puts "You must supply a unified2 log file."
71
+ exit 1
72
+ end
73
+
74
+ Unified2.read(path) do |event|
75
+ puts render(event)
76
+ end
data/example/example.rb CHANGED
@@ -1,33 +1,25 @@
1
- $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
1
+ $:<< '../lib' << 'lib'
2
+
2
3
  require 'unified2'
3
4
 
4
5
  # Unified2 Configuration
5
6
  Unified2.configuration do
6
-
7
+
7
8
  # Sensor Configurations
8
- sensor :interface => 'en1',
9
- :name => 'Example Sensor', :id => 3
9
+ sensor :interface => 'en1',
10
+ :name => 'Unified2 Example', :id => 3
10
11
 
11
- # Load signatures, generators & classifications into memory
12
12
  load :signatures, 'seeds/sid-msg.map'
13
13
 
14
14
  load :generators, 'seeds/gen-msg.map'
15
15
 
16
16
  load :classifications, 'seeds/classification.config'
17
-
17
+
18
18
  end
19
19
 
20
- #
21
- # Monitor the unfied2 log and process the data.
22
- #
23
- # The second argument is the last event processed by
24
- # the sensor. If the last_event_id column is blank in the
25
- # sensor table it will begin at the first available event.
26
- #
27
- Unified2.watch('seeds/unified2.log', :first) do |event|
28
- next if event.signature.blank?
29
-
20
+ Unified2.watch('seeds/unified2-current.log', :first) do |event|
21
+
30
22
  puts event
31
- puts "\n"
32
-
23
+
33
24
  end
25
+
@@ -0,0 +1,44 @@
1
+ $:<< '../lib' << 'lib'
2
+
3
+ require 'unified2'
4
+
5
+ # Unified2 Configuration
6
+ Unified2.configuration do
7
+
8
+ # Sensor Configurations
9
+ sensor :interface => 'en1',
10
+ :name => 'Unified2 Example', :id => 3
11
+
12
+ # Load signatures, generate events will be sent over the web socket
13
+ # quickly so we slow down the process of
14
+ # pushing events onto the channel.rs & classifications into memory
15
+ load :signatures, 'seeds/sid-msg.map'
16
+
17
+ load :generators, 'seeds/gen-msg.map'
18
+
19
+ load :classifications, 'seeds/classification.config'
20
+
21
+ end
22
+
23
+ Unified2.watch('seeds/unified2-current.log', :first) do |event|
24
+
25
+ puts event.id
26
+
27
+ puts event.severity
28
+
29
+ puts event.classification.name
30
+
31
+ puts event.signature.name
32
+
33
+ event.extras.each do |extra|
34
+ puts extra.name
35
+ puts extra.value
36
+ end
37
+
38
+ event.packets.each do |packet|
39
+ puts packet.ip_header
40
+ puts packet.protocol.header
41
+ puts packet.hexdump(:header => false, :width => 40)
42
+ end
43
+
44
+ end
@@ -1,4 +1,4 @@
1
- # $Id: classification.config,v 1.4 2010/04/15 19:53:02 mwatchinski Exp $
1
+ # $Id: classification.config,v 1.4 2010-04-15 19:53:02 mwatchinski Exp $
2
2
  # The following includes information for prioritizing rules
3
3
  #
4
4
  # Each classification includes a shortname, a description, and a default
@@ -1,4 +1,4 @@
1
- # $Id: gen-msg.map,v 1.10 2010/07/07 15:51:00 nhoughton Exp $
1
+ # $Id: gen-msg.map,v 1.14 2011-10-07 20:21:24 nhoughton Exp $
2
2
  # GENERATORS -> msg map
3
3
  # Format: generatorid || alertid || MSG
4
4
 
@@ -40,7 +40,7 @@
40
40
  111 || 5 || spp_stream4: Data on SYN Packet
41
41
  111 || 6 || spp_stream4: Full XMAS Stealth Scan
42
42
  111 || 7 || spp_stream4: SAPU Stealth Scan
43
- 111 || 8 || spp_stream4: FIN Stealth Scan
43
+ 111 || 8 || spp_stream4: FIN Stealth Scan
44
44
  111 || 9 || spp_stream4: NULL Stealth Scan
45
45
  111 || 10 || spp_stream4: NMAP XMAS Stealth Scan
46
46
  111 || 11 || spp_stream4: VECNA Stealth Scan
@@ -163,6 +163,10 @@
163
163
  116 || 292 || snort_decoder: WARNING: IPv6 header has destination options followed by a routing header
164
164
  116 || 293 || snort_decoder: WARNING: Two or more IP (v4 and/or v6) encapsulation layers present
165
165
  116 || 294 || snort_decoder: WARNING: truncated Encapsulated Security Payload (ESP) header
166
+ 116 || 295 || snort_decoder: WARNING: IPv6 header includes an option which is too big for the containing header.
167
+ 116 || 296 || snort_decoder: WARNING: IPv6 packet includes out-of-order extension headers
168
+ 116 || 297 || snort_decoder: WARNING: Two or more GTP encapsulation layers are present
169
+ 116 || 298 || snort_decoder: WARNING: GTP header length is invalid
166
170
  116 || 400 || snort_decoder: WARNING: XMAS Attack Detected!
167
171
  116 || 401 || snort_decoder: WARNING: Nmap XMAS Attack Detected!
168
172
  116 || 402 || snort_decoder: WARNING: DOS NAPTHA Vulnerability Detected!
@@ -215,6 +219,11 @@
215
219
  116 || 449 || snort_decoder: WARNING: BAD-TRAFFIC Unassigned/Reserved IP protocol
216
220
  116 || 450 || snort_decoder: WARNING: BAD-TRAFFIC Bad IP protocol
217
221
  116 || 451 || snort_decoder: WARNING: ICMP PATH MTU denial of service attempt
222
+ 116 || 452 || snort_decoder: WARNING: BAD-TRAFFIC linux ICMP header dos attempt
223
+ 116 || 453 || snort_decoder: WARNING: IPV6 ISATAP spoof
224
+ 116 || 454 || snort_decoder: WARNING: PGM NAK overflow
225
+ 116 || 455 || snort_decoder: WARNING: IGMP options dos
226
+ 116 || 456 || snort_decoder: WARNING: too many IPV6 extension headers
218
227
  117 || 1 || spp_portscan2: Portscan detected!
219
228
  118 || 1 || spp_conversation: Bad IP protocol!
220
229
  119 || 1 || http_inspect: ASCII ENCODING
@@ -240,8 +249,22 @@
240
249
  119 || 21 || http_inspect: MULTIPLE CONTENT LENGTH HEADER FIELDS
241
250
  119 || 22 || http_inspect: CHUNK SIZE MISMATCH DETECTED
242
251
  119 || 23 || http_inspect: INVALID IP IN TRUE-CLIENT-IP/XFF HEADER
252
+ 119 || 24 || http_inspect: MULTIPLE HOST HEADERS DETECTED
253
+ 119 || 25 || http_inspect: HOSTNAME EXCEEDS 255 CHARACTERS
254
+ 119 || 26 || http_inspect: HEADER PARSING SPACE SATURATION
255
+ 119 || 27 || http_inspect: CHUNKED ENCODING - EXCESSIVE CONSECUTIVE SMALL CHUNKS
256
+ 119 || 28 || http_inspect: POST W/O CONTENT-LENGTH OR CHUNKS
243
257
  120 || 1 || http_inspect: ANOMALOUS HTTP SERVER ON UNDEFINED HTTP PORT
244
258
  120 || 2 || http_inspect: INVALID STATUS CODE IN HTTP RESPONSE
259
+ 120 || 3 || http_inspect: NO CONTENT-LENGTH OR TRANSFER-ENCODING IN HTTP RESPONSE
260
+ 120 || 4 || http_inspect: HTTP RESPONSE HAS UTF CHARSET WHICH FAILED TO NORMALIZE
261
+ 120 || 5 || http_inspect: HTTP RESPONSE HAS UTF-7 CHARSET
262
+ 120 || 6 || http_inspect: HTTP RESPONSE GZIP DECOMPRESSION FAILED
263
+ 120 || 7 || http_inspect: CHUNKED ENCODING - EXCESSIVE CONSECUTIVE SMALL CHUNKS
264
+ 120 || 8 || http_inspect: MESSAGE WITH INVALID CONTENT-LENGTH OR CHUNK SIZE
265
+ 120 || 9 || http_inspect: JAVASCRIPT OBFUSCATION LEVELS EXCEEDS 2
266
+ 120 || 10 || http_inspect: JAVASCRIPT WHITESPACES EXCEEDS MAX ALLOWED
267
+ 120 || 11 || http_inspect: MULTIPLE ENCODINGS WITHIN JAVASCRIPT OBFUSCATION FUNCS
245
268
  121 || 1 || flow-portscan: Fixed Scale Scanner Limit Exceeded
246
269
  121 || 2 || flow-portscan: Sliding Scale Scanner Limit Exceeded
247
270
  121 || 3 || flow-portscan: Fixed Scale Talker Limit Exceeded
@@ -294,6 +317,11 @@
294
317
  124 || 6 || smtp: Illegal command
295
318
  124 || 7 || smtp: Attempted header name buffer overflow
296
319
  124 || 8 || smtp: Attempted X-Link2State command buffer overflow
320
+ 124 || 9 || smtp: No memory available for decoding. Max Mime Mem exceeded.
321
+ 124 || 10 || smtp: Base64 Decoding failed
322
+ 124 || 11 || smtp: Quoted-Printable Decoding failed
323
+ 124 || 12 || smtp: 7bit/8bit/binary/text Extraction failed
324
+ 124 || 13 || smtp: Unix-to-Unix Decoding failed
297
325
  125 || 1 || ftp_pp: Telnet command on FTP command channel
298
326
  125 || 2 || ftp_pp: Invalid FTP command
299
327
  125 || 3 || ftp_pp: FTP parameter length overflow
@@ -306,8 +334,8 @@
306
334
  126 || 1 || telnet_pp: Telnet consecutive AYT overflow
307
335
  126 || 2 || telnet_pp: Telnet data encrypted
308
336
  126 || 3 || telnet_pp: Subnegotiation Begin without matching Subnegotiation End
309
- 128 || 1 || ssh: Gobbles exploit
310
- 128 || 2 || ssh: SSH1 CRC32 exploit
337
+ 128 || 1 || ssh: Gobbles exploit
338
+ 128 || 2 || ssh: SSH1 CRC32 exploit
311
339
  128 || 3 || ssh: Server version string overflow
312
340
  128 || 4 || ssh: Protocol mismatch
313
341
  128 || 5 || ssh: Bad message direction
@@ -323,10 +351,15 @@
323
351
  129 || 8 || stream5: Data sent on stream after TCP Reset
324
352
  129 || 9 || stream5: TCP Client possibly hijacked, different Ethernet Address
325
353
  129 || 10 || stream5: TCP Server possibly hijacked, different Ethernet Address
326
- 129 || 11 || stream5: TCP Data with no TCP Flags set
354
+ 129 || 11 || stream5: TCP Data with no TCP Flags set
327
355
  129 || 12 || stream5: TCP Small Segment Threshold Exceeded
328
356
  129 || 13 || stream5: TCP 4-way handshake detected
329
357
  129 || 14 || stream5: TCP Timestamp is missing
358
+ 129 || 15 || stream5: Reset outside window
359
+ 129 || 16 || stream5: FIN number is greater than prior FIN
360
+ 129 || 17 || stream5: ACK number is greater than prior FIN
361
+ 129 || 18 || stream5: Data sent on stream after TCP Reset received
362
+ 129 || 19 || stream5: TCP window closed before receiving data
330
363
  130 || 1 || dcerpc: Maximum memory usage reached
331
364
  131 || 1 || dns: Obsolete DNS RData Type
332
365
  131 || 2 || dns: Experimental DNS RData Type
@@ -374,18 +407,62 @@
374
407
  133 || 41 || dcerpc2: Connectionless DCE/RPC - Invalid pdu type
375
408
  133 || 42 || dcerpc2: Connectionless DCE/RPC - Data length less than header size
376
409
  133 || 43 || dcerpc2: Connectionless DCE/RPC - Bad sequence number
377
- 133 || 44 || dcerpc2: SMB - Invalid SMB version 1 seen
378
- 133 || 45 || dcerpc2: SMB - Invalid SMB version 2 seen
379
- 133 || 46 || dcerpc2: SMB - Invalid user, tree connect, file binding
380
- 133 || 47 || dcerpc2: SMB - Excessive command compounding
410
+ #133 || 44 || dcerpc2: SMB - Invalid SMB version 1 seen
411
+ #133 || 45 || dcerpc2: SMB - Invalid SMB version 2 seen
412
+ #133 || 46 || dcerpc2: SMB - Invalid user, tree connect, file binding
413
+ #133 || 47 || dcerpc2: SMB - Excessive command compounding
381
414
  134 || 1 || ppm: rule tree disabled
382
415
  134 || 2 || ppm: rule tree enabled
383
416
  135 || 1 || internal: syn received
384
417
  135 || 2 || internal: session established
385
418
  135 || 3 || internal: session cleared
419
+ 136 || 1 || reputation: Packet is blacklisted
420
+ 136 || 2 || reputation: Packet is whitelisted
421
+ 137 || 1 || ssp_ssl: Invalid Client HELLO after Server HELLO Detected
422
+ 137 || 2 || ssp_ssl: Invalid Server HELLO without Client HELLO Detected
386
423
  138 || 2 || sensitive_data: sensitive data - Credit card numbers
387
424
  138 || 3 || sensitive_data: sensitive data - U.S. social security numbers with dashes
388
425
  138 || 4 || sensitive_data: sensitive data - U.S. social security numbers without dashes
389
426
  138 || 5 || sensitive_data: sensitive data - eMail addresses
390
427
  138 || 6 || sensitive_data: sensitive data - U.S. phone numbers
391
428
  139 || 1 || sensitive_data: sensitive data global threshold exceeded
429
+ 140 || 1 || sip: Maximum sessions reached
430
+ 140 || 2 || sip: Empty request URI
431
+ 140 || 3 || sip: URI is too long
432
+ 140 || 4 || sip: Empty call-Id
433
+ 140 || 5 || sip: Call-Id is too long
434
+ 140 || 6 || sip: CSeq number is too large or negative
435
+ 140 || 7 || sip: Request name in CSeq is too long
436
+ 140 || 8 || sip: Empty From header
437
+ 140 || 9 || sip: From header is too long
438
+ 140 || 10 || sip: Empty To header
439
+ 140 || 11 || sip: To header is too long
440
+ 140 || 12 || sip: Empty Via header
441
+ 140 || 13 || sip: Via header is too long
442
+ 140 || 14 || sip: Empty Contact
443
+ 140 || 15 || sip: Contact is too long
444
+ 140 || 16 || sip: Content length is too large or negative
445
+ 140 || 17 || sip: Multiple SIP messages in a packet
446
+ 140 || 18 || sip: Content length mismatch
447
+ 140 || 19 || sip: Request name is invalid
448
+ 140 || 20 || sip: Invite replay attack
449
+ 140 || 21 || sip: Illegal session information modification
450
+ 140 || 22 || sip: Response status code is not a 3 digit number
451
+ 140 || 23 || sip: Empty Content type
452
+ 140 || 24 || sip: SIP version other than 2.0, 1.0, and 1.1 are invalid
453
+ 140 || 25 || sip: Mismatch in Method of request and the CSEQ header
454
+ 140 || 26 || sip: The method is unknown
455
+ 141 || 1 || imap: Unknown IMAP4 command
456
+ 141 || 2 || imap: Unknown IMAP4 response
457
+ 141 || 3 || imap: No memory available for decoding. Memcap exceeded.
458
+ 141 || 4 || imap: Base64 Decoding failed
459
+ 141 || 5 || imap: Quoted-Printable Decoding failed
460
+ 141 || 6 || imap: 7bit/8bit/binary/text Extraction failed
461
+ 141 || 7 || imap: Unix-to-Unix Decoding failed
462
+ 142 || 1 || pop: Unknown POP3 command
463
+ 142 || 2 || pop: Unknown POP3 response
464
+ 142 || 3 || pop: No memory available for decoding. Memcap exceeded.
465
+ 142 || 4 || pop: Base64 Decoding failed
466
+ 142 || 5 || pop: Quoted-Printable Decoding failed
467
+ 142 || 6 || pop: 7bit/8bit/binary/text Extraction failed
468
+ 142 || 7 || pop: Unix-to-Unix Decoding failed