Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultConfig = &Config{ Buffer: true, MemBufferSize: defaults.BufferSize, Compression: true, CSV: false, IncludeDecoders: "", ExcludeDecoders: "", Out: "", Chan: false, Proto: true, Source: "", IncludePayloads: false, ExportMetrics: false, AddContext: true, FlushEvery: 100, DefragIPv4: false, Checksum: false, NoOptCheck: false, IgnoreFSMerr: false, AllowMissingInit: false, Debug: false, HexDump: false, WaitForConnections: true, WriteIncomplete: false, MemProfile: "", ConnFlushInterval: 10000, ConnTimeOut: 10 * time.Second, FlowFlushInterval: 2000, FlowTimeOut: 10 * time.Second, CloseInactiveTimeOut: 24 * time.Hour, ClosePendingTimeOut: 5 * time.Second, FileStorage: defaults.FileStorage, CalculateEntropy: false, SaveConns: false, TCPDebug: false, UseRE2: true, HarvesterBannerSize: 512, BannerSize: 512, StopAfterHarvesterMatch: true, StopAfterServiceProbeMatch: true, IgnoreDecoderInitErrors: true, RemoveClosedStreams: false, CompressionBlockSize: defaults.CompressionBlockSize, CompressionLevel: defaults.CompressionLevel, NumStreamWorkers: runtime.NumCPU(), StreamBufferSize: 100, }
DefaultConfig is a sane example configuration for the decoder package.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
sync.Mutex
// Output path
Out string
// Source of the audit records (pcap, live etc)
Source string
// CustomRegex to use for credentials harvester
CustomRegex string
// Will create a memory dump at the specified path for debugging and profiling
MemProfile string
// Comma separated list of decoders to include
IncludeDecoders string
// Comma separated list of decoders to exclude
ExcludeDecoders string
// If a path is set files will be extracted and written to the specified path
FileStorage string
// Number of packets to arrive until the connections are checked for timeouts
ConnFlushInterval int
// Size of buffer used for writing audit records to disk
MemBufferSize int
// Used to flush flows to disk whose last timestamp is flowTimeOut older than current packet
FlowTimeOut time.Duration
// size of the channel used to pass reassembled stream data to a stream decoder
StreamDecoderBufSize int
// Close inactive streams after
CloseInactiveTimeOut time.Duration
// Interval to apply connection flushes
FlushEvery int
// Maximum number of bytes of the client and server conversation to be used for the harvesters
HarvesterBannerSize int
// Maximum number of bytes stored as service banner
BannerSize int
// Close streams with pending bytes after
ClosePendingTimeOut time.Duration
// Number of packets to arrive until the flows are checked for timeouts
FlowFlushInterval int
// Used to flush connections to disk whose last timestamp is connTimeOut older than current packet
ConnTimeOut time.Duration
// Use the RE2 engine from the go standard library
// if this is set to false an alternative regex engine that is compatible to the .NET syntax will be used for service banner detection
UseRE2 bool
// stop processing the conversation when the first credential harvester returns a result
StopAfterHarvesterMatch bool
// stop processing the conversation when the first service probe returns a result
StopAfterServiceProbeMatch bool
// when identifying a category for a service based on the port, stop matching banners when all probes for the category failed
StopAfterServiceCategoryMiss bool
// Buffer data before writing it to disk
Buffer bool
// Write incomplete HTTP responses to disk when extracting files
WriteIncomplete bool
// Write into channel (used for distributed collection)
Chan bool
// Size for the channel writer
ChanSize int
// Generate CSV instead of audit records
CSV bool
// UnixSocket will send data over unix sockets
UnixSocket bool
// Encode values when generating CSV
Encode bool
// Label values when generating CSV
Label bool
// Output length delimited protocol buffers
Proto bool
// Output data to elastic database
Elastic bool
// Additional elastic configuration options
io.ElasticConfig
// Elastic bulk sizes
BulkSizeGoPacket int
BulkSizeCustom int
// Output JSON
JSON bool
// Discard all data and write nothing to disk
Null bool
// Add context to supported audit records
AddContext bool
// Wait until all connections finished processing when receiving shutdown signal
WaitForConnections bool
// Dump packet contents as hex for debugging
HexDump bool
// Toggle debug mode
Debug bool
// TCP state machine allow missing init in three way handshake
AllowMissingInit bool
// Ignore TCP state machine errors
IgnoreFSMerr bool
// Calculate entropy for payloads in Ethernet and IP audit records
CalculateEntropy bool
// Save the entire raw TCP conversations for all tracked connections to disk
SaveConns bool
// Enable verbose TCP debug log messages in debug.log
TCPDebug bool
// Dont check TCP options
NoOptCheck bool
// Dont verify the packet checksums
Checksum bool
// Defragment IPv4 packets
DefragIPv4 bool
// ExportMetrics will export prometheus metrics
ExportMetrics bool
// Add payload data to supported audit records
IncludePayloads bool
// Compress data before writing it to disk with gzip
Compression bool
// IgnoreDecoderInitErrors allows to control whether to crash on Custom Decoder initialization errors (usually caused by missing database files)
// and enables users to use the decoders even if the files are not present, while just logging an error to stdout.
// If the init error does not allow the decoder to function at least partially,
// fatal should be invoked in the init function to crash and indicate failure.
IgnoreDecoderInitErrors bool
// Dont print any output to the console
Quiet bool
// Force printing progress to stderr even in quiet mode
PrintProgress bool
// TCP/UDP StreamProcessors buffer size for input channel
StreamBufferSize int
// TCP/UDP StreamProcessors number of workers
NumStreamWorkers int
// DisableGenericVersionHarvester will not use the generic version string regex for the software harvester
DisableGenericVersionHarvester bool
// RemoveClosedStreams will remove streams that received a FIN or RST packet
// if set to false it allows to witness further packets for the stream, e.g. FIN-ACK
RemoveClosedStreams bool
// CompressionBlockSize is the block size used for parallel compression
CompressionBlockSize int
// CompressionLevel is the compression level to use by default
CompressionLevel int
}
Config contains configuration parameters for the decoders this structure has an optimized field order to avoid excessive padding.
var Instance *Config
Instance contains the config at runtime.
Click to show internal directories.
Click to hide internal directories.