fluent-plugin-twistlock-syslog 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 62d3bfe07dfc4bf1a5860a676260c0206b60eec0e22782be0173add3e8979b66
4
+ data.tar.gz: 742634d44f0c3083930a33fb3fbd2e5d0fc064060f5c3dbd51852b54f096b069
5
+ SHA512:
6
+ metadata.gz: 692797d8e84d71f0375b1e10fb7d9ccc6bf7bd0aa12cafb6cf453a5b17526dafd3297ee1ef65c78729a4228f3f91baddde20b27a124fee0b9feb1e2206538f9a
7
+ data.tar.gz: 90c94079781fc2a9427467f047572722116fd60fe4b9644545d04c1601107f3b23a7905952cdb7b431947cf12e69d4eb163f1f06ede412f6013a68d595f5bde9
data/README.md ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ require 'rake/testtask'
5
+ Rake::TestTask.new(:test) do |test|
6
+ test.libs << 'lib' << 'test'
7
+ test.pattern = 'test/**/test_*.rb'
8
+ test.verbose = true
9
+ end
10
+
11
+ task :default => :test
@@ -0,0 +1,44 @@
1
+ require 'fluent/plugin/filter'
2
+ require 'digest'
3
+
4
+ module Fluent::Plugin
5
+ class TwistlockSyslogFilter < Filter
6
+ # Register this filter as "twistlock-syslog"
7
+ Fluent::Plugin.register_filter('twistlock_syslog', self)
8
+ config_param :key_path, :string, default: '/fluentd/etc/private.pem'
9
+ config_param :key_name, :string, default: 'message'
10
+
11
+ def configure(conf)
12
+ super
13
+ unless File.file?(@key_path)
14
+ raise Fluent::ConfigError, "Private key file must be present. #{@key_path} Please check."
15
+ end
16
+ end
17
+ def start
18
+ super
19
+ @private_key = OpenSSL::PKey::RSA.new(File.read(@key_path))
20
+ end
21
+ def filter(tag, time, record)
22
+ message = record[@key_name][0..-2]
23
+ begin
24
+ message.split(/(?<!\\|=)"\s/).each { |in_msg|
25
+ keymap = in_msg.split('="')
26
+ record[keymap[0]] = keymap[1]
27
+ }
28
+ record.delete("ident")
29
+ record.delete("pid")
30
+ record.delete("time")
31
+ if record.key?("host_name")
32
+ record["host"] = record["host_name"]
33
+ record.delete("host_name")
34
+ end
35
+ signature = @private_key.sign(OpenSSL::Digest::SHA256.new, record[@key_name])
36
+ record["signature"] = Base64.encode64(signature)
37
+ rescue Exception => e
38
+ log.warn "Unable to map record with message=#{record[@key_name]}"
39
+ log.warn e.backtrace.inspect
40
+ end
41
+ record.sort_by { |key, strings| strings.length }
42
+ end
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fluent-plugin-twistlock-syslog
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - nronix
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-06-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fluentd
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.58
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.10.58
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ name: rake
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 0.9.2
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.9.2
47
+ - !ruby/object:Gem::Dependency
48
+ name: test-unit
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 3.0.8
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.0.8
61
+ description: Filter plugin for Fluent to convert twistlock syslog message to hashmap
62
+ for better SIEM data
63
+ email: nikhilrao37@gmail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - README.md
69
+ - Rakefile
70
+ - lib/fluent/plugin/filter_twistlock_syslog.rb
71
+ homepage: https://github.com/nronix/fluentd-filter-twistlock-syslog
72
+ licenses:
73
+ - MIT
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubygems_version: 3.1.4
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Filter plugin for Fluent to convert twistlock syslog message to hashmap for
94
+ better SIEM data
95
+ test_files: []