redhound 1.0.1 → 2.0.0.rc2
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 +4 -4
- data/CHANGELOG.md +51 -0
- data/README.md +97 -31
- data/docs/API.md +104 -0
- data/docs/FILTERS.md +37 -0
- data/docs/MIGRATION.md +23 -0
- data/docs/PROTOCOLS.md +54 -0
- data/docs/USAGE.md +86 -0
- data/docs/VALIDATION.md +175 -0
- data/docs/json-schema.json +64 -0
- data/exe/redhound +2 -1
- data/lib/redhound/analysis/flow_key.rb +59 -0
- data/lib/redhound/analysis/flow_table.rb +124 -0
- data/lib/redhound/analysis/ip_reassembler.rb +209 -0
- data/lib/redhound/analysis/stats.rb +150 -0
- data/lib/redhound/analysis/tcp_analysis.rb +43 -0
- data/lib/redhound/analysis/tcp_reassembler.rb +176 -0
- data/lib/redhound/analysis/tcp_stream.rb +156 -0
- data/lib/redhound/analysis.rb +157 -0
- data/lib/redhound/capture/bsd/bpf_device.rb +155 -0
- data/lib/redhound/capture/bsd/constants.rb +29 -0
- data/lib/redhound/capture/bsd/ifreq.rb +41 -0
- data/lib/redhound/capture/file_source.rb +214 -0
- data/lib/redhound/capture/interface.rb +70 -0
- data/lib/redhound/capture/linktype.rb +30 -0
- data/lib/redhound/capture/linux/constants.rb +37 -0
- data/lib/redhound/capture/linux/cooked.rb +18 -0
- data/lib/redhound/capture/linux/ifreq.rb +42 -0
- data/lib/redhound/capture/linux/packet_socket.rb +224 -0
- data/lib/redhound/capture/linux/sockaddr_ll.rb +33 -0
- data/lib/redhound/capture/linux/tpacket_v3.rb +137 -0
- data/lib/redhound/capture/source.rb +79 -0
- data/lib/redhound/capture/stats.rb +22 -0
- data/lib/redhound/capture.rb +70 -0
- data/lib/redhound/cli/command.rb +42 -0
- data/lib/redhound/cli/options.rb +133 -0
- data/lib/redhound/cli/privileges.rb +29 -0
- data/lib/redhound/cli/runner.rb +129 -0
- data/lib/redhound/context.rb +20 -0
- data/lib/redhound/cursor.rb +69 -0
- data/lib/redhound/diagnostic.rb +7 -0
- data/lib/redhound/dissector.rb +152 -0
- data/lib/redhound/engine.rb +69 -0
- data/lib/redhound/errors.rb +38 -0
- data/lib/redhound/field.rb +62 -0
- data/lib/redhound/file/format.rb +63 -0
- data/lib/redhound/file/pcap_reader.rb +43 -0
- data/lib/redhound/file/pcap_writer.rb +79 -0
- data/lib/redhound/file/pcapng_reader.rb +221 -0
- data/lib/redhound/file/pcapng_writer.rb +151 -0
- data/lib/redhound/file/rotating_writer.rb +98 -0
- data/lib/redhound/filter/analyzer.rb +197 -0
- data/lib/redhound/filter/bpf/assembler.rb +121 -0
- data/lib/redhound/filter/bpf/disassembler.rb +58 -0
- data/lib/redhound/filter/bpf/validator.rb +77 -0
- data/lib/redhound/filter/bpf/vm.rb +109 -0
- data/lib/redhound/filter/codegen.rb +413 -0
- data/lib/redhound/filter/lexer.rb +46 -0
- data/lib/redhound/filter/parser.rb +206 -0
- data/lib/redhound/filter/program.rb +55 -0
- data/lib/redhound/filter.rb +30 -0
- data/lib/redhound/layer.rb +75 -0
- data/lib/redhound/output/fields.rb +20 -0
- data/lib/redhound/output/follow.rb +64 -0
- data/lib/redhound/output/hexdump.rb +29 -0
- data/lib/redhound/output/json.rb +32 -0
- data/lib/redhound/output/summary.rb +84 -0
- data/lib/redhound/output/timestamp.rb +34 -0
- data/lib/redhound/output/tree.rb +25 -0
- data/lib/redhound/packet.rb +77 -0
- data/lib/redhound/protocols/arp.rb +39 -0
- data/lib/redhound/protocols/checksum.rb +38 -0
- data/lib/redhound/protocols/data.rb +23 -0
- data/lib/redhound/protocols/dhcp.rb +140 -0
- data/lib/redhound/protocols/dns.rb +268 -0
- data/lib/redhound/protocols/ethernet.rb +24 -0
- data/lib/redhound/protocols/http.rb +185 -0
- data/lib/redhound/protocols/icmp.rb +205 -0
- data/lib/redhound/protocols/ipv4.rb +56 -0
- data/lib/redhound/protocols/ipv6.rb +68 -0
- data/lib/redhound/protocols/link.rb +70 -0
- data/lib/redhound/protocols/llc.rb +37 -0
- data/lib/redhound/protocols/ntp.rb +45 -0
- data/lib/redhound/protocols/tcp.rb +88 -0
- data/lib/redhound/protocols/tls.rb +218 -0
- data/lib/redhound/protocols/tunnel.rb +48 -0
- data/lib/redhound/protocols/udp.rb +32 -0
- data/lib/redhound/protocols/vlan.rb +23 -0
- data/lib/redhound/reader.rb +8 -0
- data/lib/redhound/registry.rb +64 -0
- data/lib/redhound/stream_dissector.rb +168 -0
- data/lib/redhound/util/seq.rb +21 -0
- data/lib/redhound/version.rb +2 -1
- data/lib/redhound/writer.rb +25 -43
- data/lib/redhound.rb +81 -9
- data/sig/generated/redhound/analysis/flow_key.rbs +15 -0
- data/sig/generated/redhound/analysis/flow_table.rbs +102 -0
- data/sig/generated/redhound/analysis/ip_reassembler.rbs +52 -0
- data/sig/generated/redhound/analysis/stats.rbs +80 -0
- data/sig/generated/redhound/analysis/tcp_analysis.rbs +15 -0
- data/sig/generated/redhound/analysis/tcp_reassembler.rbs +39 -0
- data/sig/generated/redhound/analysis/tcp_stream.rbs +60 -0
- data/sig/generated/redhound/analysis.rbs +38 -0
- data/sig/generated/redhound/capture/bsd/bpf_device.rbs +39 -0
- data/sig/generated/redhound/capture/bsd/constants.rbs +40 -0
- data/sig/generated/redhound/capture/bsd/ifreq.rbs +15 -0
- data/sig/generated/redhound/capture/file_source.rbs +67 -0
- data/sig/generated/redhound/capture/interface.rbs +53 -0
- data/sig/generated/redhound/capture/linktype.rbs +20 -0
- data/sig/generated/redhound/capture/linux/constants.rbs +58 -0
- data/sig/generated/redhound/capture/linux/cooked.rbs +15 -0
- data/sig/generated/redhound/capture/linux/ifreq.rbs +18 -0
- data/sig/generated/redhound/capture/linux/packet_socket.rbs +64 -0
- data/sig/generated/redhound/capture/linux/sockaddr_ll.rbs +31 -0
- data/sig/generated/redhound/capture/linux/tpacket_v3.rbs +35 -0
- data/sig/generated/redhound/capture/source.rbs +44 -0
- data/sig/generated/redhound/capture/stats.rbs +25 -0
- data/sig/generated/redhound/capture.rbs +14 -0
- data/sig/generated/redhound/cli/command.rbs +12 -0
- data/sig/generated/redhound/cli/options.rbs +25 -0
- data/sig/generated/redhound/cli/privileges.rbs +12 -0
- data/sig/generated/redhound/cli/runner.rbs +27 -0
- data/sig/generated/redhound/context.rbs +27 -0
- data/sig/generated/redhound/cursor.rbs +59 -0
- data/sig/generated/redhound/diagnostic.rbs +21 -0
- data/sig/generated/redhound/dissector.rbs +117 -0
- data/sig/generated/redhound/engine.rbs +23 -0
- data/sig/generated/redhound/errors.rbs +56 -0
- data/sig/generated/redhound/field.rbs +74 -0
- data/sig/generated/redhound/file/format.rbs +39 -0
- data/sig/generated/redhound/file/pcap_reader.rbs +19 -0
- data/sig/generated/redhound/file/pcap_writer.rbs +38 -0
- data/sig/generated/redhound/file/pcapng_reader.rbs +54 -0
- data/sig/generated/redhound/file/pcapng_writer.rbs +50 -0
- data/sig/generated/redhound/file/rotating_writer.rbs +42 -0
- data/sig/generated/redhound/filter/analyzer.rbs +42 -0
- data/sig/generated/redhound/filter/bpf/assembler.rbs +39 -0
- data/sig/generated/redhound/filter/bpf/disassembler.rbs +18 -0
- data/sig/generated/redhound/filter/bpf/validator.rbs +30 -0
- data/sig/generated/redhound/filter/bpf/vm.rbs +28 -0
- data/sig/generated/redhound/filter/codegen.rbs +101 -0
- data/sig/generated/redhound/filter/lexer.rbs +15 -0
- data/sig/generated/redhound/filter/parser.rbs +65 -0
- data/sig/generated/redhound/filter/program.rbs +48 -0
- data/sig/generated/redhound/filter.rbs +10 -0
- data/sig/generated/redhound/layer.rbs +81 -0
- data/sig/generated/redhound/output/fields.rbs +15 -0
- data/sig/generated/redhound/output/follow.rbs +21 -0
- data/sig/generated/redhound/output/hexdump.rbs +15 -0
- data/sig/generated/redhound/output/json.rbs +18 -0
- data/sig/generated/redhound/output/summary.rbs +21 -0
- data/sig/generated/redhound/output/timestamp.rbs +21 -0
- data/sig/generated/redhound/output/tree.rbs +15 -0
- data/sig/generated/redhound/packet.rbs +82 -0
- data/sig/generated/redhound/protocols/arp.rbs +15 -0
- data/sig/generated/redhound/protocols/checksum.rbs +15 -0
- data/sig/generated/redhound/protocols/data.rbs +17 -0
- data/sig/generated/redhound/protocols/dhcp.rbs +31 -0
- data/sig/generated/redhound/protocols/dns.rbs +42 -0
- data/sig/generated/redhound/protocols/ethernet.rbs +15 -0
- data/sig/generated/redhound/protocols/http.rbs +36 -0
- data/sig/generated/redhound/protocols/icmp.rbs +41 -0
- data/sig/generated/redhound/protocols/ipv4.rbs +15 -0
- data/sig/generated/redhound/protocols/ipv6.rbs +24 -0
- data/sig/generated/redhound/protocols/link.rbs +33 -0
- data/sig/generated/redhound/protocols/llc.rbs +15 -0
- data/sig/generated/redhound/protocols/ntp.rbs +17 -0
- data/sig/generated/redhound/protocols/tcp.rbs +25 -0
- data/sig/generated/redhound/protocols/tls.rbs +51 -0
- data/sig/generated/redhound/protocols/tunnel.rbs +24 -0
- data/sig/generated/redhound/protocols/udp.rbs +18 -0
- data/sig/generated/redhound/protocols/vlan.rbs +12 -0
- data/sig/generated/redhound/reader.rbs +7 -0
- data/sig/generated/redhound/registry.rbs +45 -0
- data/sig/generated/redhound/stream_dissector.rbs +44 -0
- data/sig/generated/redhound/util/seq.rbs +20 -0
- data/sig/generated/redhound/version.rbs +1 -0
- data/sig/generated/redhound/writer.rbs +6 -19
- data/sig/generated/redhound.rbs +18 -0
- data/sig/shims/io.rbs +7 -0
- data/sig/shims/process.rbs +3 -0
- metadata +177 -55
- data/CODE_OF_CONDUCT.md +0 -132
- data/Dockerfile +0 -7
- data/Rakefile +0 -15
- data/Steepfile +0 -4
- data/docker-compose.yml +0 -9
- data/lib/redhound/analyzer.rb +0 -34
- data/lib/redhound/builder/packet_mreq.rb +0 -56
- data/lib/redhound/builder/socket.rb +0 -35
- data/lib/redhound/builder.rb +0 -4
- data/lib/redhound/command.rb +0 -67
- data/lib/redhound/l2/ether.rb +0 -68
- data/lib/redhound/l2/protocol.rb +0 -33
- data/lib/redhound/l2.rb +0 -4
- data/lib/redhound/l3/arp.rb +0 -114
- data/lib/redhound/l3/base.rb +0 -49
- data/lib/redhound/l3/ipv4.rb +0 -95
- data/lib/redhound/l3/ipv6.rb +0 -69
- data/lib/redhound/l3/protocol.rb +0 -173
- data/lib/redhound/l3/resolver.rb +0 -30
- data/lib/redhound/l3.rb +0 -9
- data/lib/redhound/l4/base.rb +0 -31
- data/lib/redhound/l4/icmp.rb +0 -71
- data/lib/redhound/l4/resolver.rb +0 -28
- data/lib/redhound/l4/udp.rb +0 -63
- data/lib/redhound/l4.rb +0 -6
- data/lib/redhound/receiver.rb +0 -45
- data/lib/redhound/resolver.rb +0 -22
- data/lib/redhound/source/socket.rb +0 -18
- data/lib/redhound/source.rb +0 -3
- data/rbs_collection.lock.yaml +0 -20
- data/rbs_collection.yaml +0 -17
- data/sig/generated/redhound/analyzer.rbs +0 -14
- data/sig/generated/redhound/builder/packet_mreq.rbs +0 -39
- data/sig/generated/redhound/builder/socket.rbs +0 -24
- data/sig/generated/redhound/command.rbs +0 -19
- data/sig/generated/redhound/l2/ether.rbs +0 -41
- data/sig/generated/redhound/l2/protocol.rbs +0 -15
- data/sig/generated/redhound/l3/arp.rbs +0 -57
- data/sig/generated/redhound/l3/base.rbs +0 -28
- data/sig/generated/redhound/l3/ipv4.rbs +0 -53
- data/sig/generated/redhound/l3/ipv6.rbs +0 -38
- data/sig/generated/redhound/l3/protocol.rbs +0 -16
- data/sig/generated/redhound/l3/resolver.rbs +0 -16
- data/sig/generated/redhound/l4/base.rbs +0 -19
- data/sig/generated/redhound/l4/icmp.rbs +0 -33
- data/sig/generated/redhound/l4/resolver.rbs +0 -16
- data/sig/generated/redhound/l4/udp.rbs +0 -36
- data/sig/generated/redhound/receiver.rbs +0 -19
- data/sig/generated/redhound/resolver.rbs +0 -11
- data/sig/generated/redhound/source/socket.rbs +0 -13
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/l4/base.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
class L4
|
|
5
|
-
class Base
|
|
6
|
-
# @rbs (bytes: Array[Integer]) -> Redhound::L4::Base
|
|
7
|
-
def self.generate: (bytes: Array[Integer]) -> Redhound::L4::Base
|
|
8
|
-
|
|
9
|
-
# @rbs (bytes: Array[Integer]) -> void
|
|
10
|
-
def initialize: (bytes: Array[Integer]) -> void
|
|
11
|
-
|
|
12
|
-
# @rbs () -> Redhound::L4::Base
|
|
13
|
-
def generate: () -> Redhound::L4::Base
|
|
14
|
-
|
|
15
|
-
# @rbs () -> void
|
|
16
|
-
def dump: () -> void
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/l4/icmp.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
class L4
|
|
5
|
-
class Icmp < Base
|
|
6
|
-
# @rbs (bytes: Array[Integer]) -> void
|
|
7
|
-
def initialize: (bytes: Array[Integer]) -> void
|
|
8
|
-
|
|
9
|
-
# @rbs () -> Redhound::L4::Icmp
|
|
10
|
-
def generate: () -> Redhound::L4::Icmp
|
|
11
|
-
|
|
12
|
-
# @rbs () -> Integer
|
|
13
|
-
def size: () -> Integer
|
|
14
|
-
|
|
15
|
-
# @rbs () -> String
|
|
16
|
-
def to_s: () -> String
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
# @rbs () -> Integer
|
|
21
|
-
def check: () -> Integer
|
|
22
|
-
|
|
23
|
-
# @rbs () -> Integer
|
|
24
|
-
def id: () -> Integer
|
|
25
|
-
|
|
26
|
-
# @rbs () -> Integer
|
|
27
|
-
def seq: () -> Integer
|
|
28
|
-
|
|
29
|
-
# @rbs () -> String
|
|
30
|
-
def data: () -> String
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/l4/resolver.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
class L4
|
|
5
|
-
class Resolver
|
|
6
|
-
# @rbs (bytes: Array[Integer], l3: Redhound::L3::Base) -> Redhound::L4::Base?
|
|
7
|
-
def self.resolve: (bytes: Array[Integer], l3: Redhound::L3::Base) -> Redhound::L4::Base?
|
|
8
|
-
|
|
9
|
-
# @rbs (bytes: Array[Integer], l3: Redhound::L3::Base) -> void
|
|
10
|
-
def initialize: (bytes: Array[Integer], l3: Redhound::L3::Base) -> void
|
|
11
|
-
|
|
12
|
-
# @rbs () -> Redhound::L4::Base?
|
|
13
|
-
def resolve: () -> Redhound::L4::Base?
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/l4/udp.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
class L4
|
|
5
|
-
class Udp < Base
|
|
6
|
-
# @rbs (bytes: Array[Integer]) -> void
|
|
7
|
-
def initialize: (bytes: Array[Integer]) -> void
|
|
8
|
-
|
|
9
|
-
# @rbs () -> Redhound::L4::Udp
|
|
10
|
-
def generate: () -> Redhound::L4::Udp
|
|
11
|
-
|
|
12
|
-
# @rbs () -> Integer
|
|
13
|
-
def size: () -> Integer
|
|
14
|
-
|
|
15
|
-
# @rbs () -> String
|
|
16
|
-
def to_s: () -> String
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
# @rbs () -> Integer
|
|
21
|
-
def sport: () -> Integer
|
|
22
|
-
|
|
23
|
-
# @rbs () -> Integer
|
|
24
|
-
def dport: () -> Integer
|
|
25
|
-
|
|
26
|
-
# @rbs () -> Integer
|
|
27
|
-
def len: () -> Integer
|
|
28
|
-
|
|
29
|
-
# @rbs () -> Integer
|
|
30
|
-
def check: () -> Integer
|
|
31
|
-
|
|
32
|
-
# @rbs () -> String
|
|
33
|
-
def data: () -> String
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/receiver.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
class Receiver
|
|
5
|
-
# @rbs (ifname: String, filename: String) -> void
|
|
6
|
-
def self.run: (ifname: String, filename: String) -> void
|
|
7
|
-
|
|
8
|
-
# @rbs (ifname: String, filename: String) -> void
|
|
9
|
-
def initialize: (ifname: String, filename: String) -> void
|
|
10
|
-
|
|
11
|
-
# @rbs () -> void
|
|
12
|
-
def run: () -> void
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
|
|
16
|
-
# @rbs () -> Integer
|
|
17
|
-
def increment: () -> Integer
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/resolver.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
class Resolver
|
|
5
|
-
# @rbs (ifname: String) -> void
|
|
6
|
-
def self.resolve: (ifname: String) -> void
|
|
7
|
-
|
|
8
|
-
# @rbs (ifname: String) -> Redhound::Source::Socket
|
|
9
|
-
def resolve: (ifname: String) -> Redhound::Source::Socket
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Generated from lib/redhound/source/socket.rb with RBS::Inline
|
|
2
|
-
|
|
3
|
-
module Redhound
|
|
4
|
-
module Source
|
|
5
|
-
class Socket
|
|
6
|
-
# @rbs (socket: ::Socket) -> void
|
|
7
|
-
def initialize: (socket: ::Socket) -> void
|
|
8
|
-
|
|
9
|
-
# @rbs (Integer size) -> [String, Addrinfo]
|
|
10
|
-
def next_packet: (Integer size) -> [ String, Addrinfo ]
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|