cef_logger 1.0.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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/cef_logger.rb +60 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6629c1982b8a5edb8bc12123cd462aa24f8d5798
4
+ data.tar.gz: 2c52ea4426bad11e15d733b2605132bec4ba7ca7
5
+ SHA512:
6
+ metadata.gz: 629a6131e36cce5fe7760815dc4946af044cbaea1a96911f3504e67c101ba6ae3585f8aa515df5c9f2aea9c07fd4e5b5d5d37fc08699f24f6a3a8b7fbf4787b1
7
+ data.tar.gz: 0e6c945a18ea3108493f51707f12b076e4784eb20b7f6d4a476b753665b726f80312a02ff89bb093ca32c6b92a0453b69555e86c72bd2d2773c04d9d624f34cf
data/lib/cef_logger.rb ADDED
@@ -0,0 +1,60 @@
1
+ require 'syslog/logger'
2
+ require 'securerandom'
3
+ require 'singleton'
4
+
5
+ class CefLogger
6
+ class << self
7
+ attr_accessor :product, :vendor, :version
8
+
9
+ def log(name: '', severity: 0, data: {})
10
+ id =
11
+ SecureRandom.uuid
12
+
13
+ extension =
14
+ compile data
15
+
16
+ line = [
17
+ 'CEF:0',
18
+ vendor,
19
+ product,
20
+ version,
21
+ id,
22
+ escape_header(name),
23
+ severity,
24
+ extension
25
+ ].join('|')
26
+
27
+ logger.info line
28
+ end
29
+
30
+ def escape_header(value)
31
+ value
32
+ .to_s
33
+ .gsub('|', '\\|')
34
+ end
35
+
36
+ def escape_value(value)
37
+ value
38
+ .to_s
39
+ .gsub('\\', '\\\\\\')
40
+ .gsub('=', '\\=')
41
+ .gsub("\n", '\n')
42
+ .gsub("\r", '\r')
43
+ end
44
+
45
+ def compile(data)
46
+ case data
47
+ when Hash
48
+ data
49
+ .map { |key, value| "#{key}=#{escape_value(value)}" }
50
+ .join(' ')
51
+ else
52
+ raise "Can't compile non-hashes as extensions for CEF logging!"
53
+ end
54
+ end
55
+
56
+ def logger
57
+ @logger ||= Syslog::Logger.new 'protectme'
58
+ end
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cef_logger
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Szikszai Gusztáv
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-05-11 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Logger to log in CEF format to syslog.
14
+ email: guszti5@hotmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/cef_logger.rb
20
+ homepage: https://github.com/gdotdesign/cef_logger
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: 1.3.6
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.4.8
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: CEF Logger
44
+ test_files: []