Commit Graph

2295 Commits (144f824f17c1f368342ab024c1ac728fac0055a7)

Author SHA1 Message Date
Jason Ish 144f824f17 rust/ffi: add thread init callback wrapper
Ticket: #8605
2 months ago
Jason Ish c689af0bbb rust/ffi: bindgen thread lifecycle callbacks
Ticket: #8605
2 months ago
Philippe Antoine 07112bc7ae rust: format mqtt files
Ticket: 3836
2 months ago
Philippe Antoine 844f2effa3 rust: format modbus files
Ticket: 3836
2 months ago
Philippe Antoine db019ebefe rust: format ike files
Ticket: 3836
2 months ago
Philippe Antoine bcc1e6ae32 rust: format http2 files
Ticket: 3836
2 months ago
Philippe Antoine 1070e733d8 rust: format websocket files
Ticket: 3836
2 months ago
Philippe Antoine 89e5332d88 rust: format utils files
Ticket: 3836
2 months ago
Philippe Antoine edf29b0000 rust: format ssh files
Ticket: 3836
2 months ago
Philippe Antoine fe27a2159c rust: format rfb files
Ticket: 3836
2 months ago
Philippe Antoine 5cca346f16 rust: format quic files
Ticket: 3836
2 months ago
Philippe Antoine 415360d9e8 rust: format ntp files
Ticket: 3836
2 months ago
Philippe Antoine fa864f9c2f rust: format mime files
Ticket: 3836
2 months ago
Philippe Antoine 2cfcaec1b0 rust: format ldap files
Ticket: 3836
2 months ago
Philippe Antoine 64e7c671cc rust: format ftp files
Ticket: 3836
2 months ago
Philippe Antoine f217e249cb rust: format ffi files
Ticket: 3836
2 months ago
Philippe Antoine f7c14809f4 rust: format enip files
Ticket: 3836
2 months ago
Philippe Antoine e526eb8e2b rust: format bittorrent_dht files
Ticket: 3836
2 months ago
Philippe Antoine f5ac0e201c rust: format asn1 files
Ticket: 3836
2 months ago
Philippe Antoine 1ced97bdbb rust: format applayertemplate files
Ticket: 3836
2 months ago
Philippe Antoine efe3b16aac rust: feature debug in main crate enables feature debug in ffi 2 months ago
Philippe Antoine b90adcc2bb rust/ffi: move AppLayerTxData to ffi
Ticket: 7666
2 months ago
Philippe Antoine bce88dd83f rust: build depends on ffi/Cargo.toml.in 2 months ago
Philippe Antoine 0773fba5fd rust/ffi: move txdata flags to ffi
Ticket: 7666
2 months ago
Philippe Antoine 2525ea2e37 rust/ffi: move direction to ffi
Ticket: 7666
2 months ago
Philippe Antoine 5440e41314 rust/ffi: move debug validations macros to ffi
Ticket: 7666
2 months ago
Philippe Antoine bf64b52b95 http2: better compression against decompression bombs
Ticket: 8513

Suricata decides at 2 levels if a http2 flow is doing a compression
bomb.

There is a direct computation when one chunk of TCP data
is being parsed.
In this case, do not take the ratio into account, just use the size
of the decompressed data, so that if we get a big chunk of TCP data
like 1 MiB, and a not so high ratio of 200, we do not trigger
the debug assertion in util-file.c about 64MiB

The other case stays unchanged : when accumulating over the lifetile of
a flow with multiple txs, take into account the compression ratio,
so that a flow of many txs, having a super high (brotli) compression
ratio, ends up classified as a compression bomb.
(For example, having 100 txs each turning a 100 byte input into a 700 KiB
one)
2 months ago
Philippe Antoine 6d437956e2 detect/transforms: dotprefix can be chained
Ticket: 8537

Otherwise, it may cause a use-after-free, in case of reallocated
buffer and we used the buffer inspect which was freed.
2 months ago
Philippe Antoine 2b20a436e7 detect/transforms: decompress checks earlier if it is in-place
Ticket: 8536

Otherwise, it may cause a use-after-free.

So, need to allocate the temporary vector, before calling
SCInspectionBufferCheckAndExpand
2 months ago
Philippe Antoine 4c42998feb detect/engine: helper to know if a transform happens in-place 2 months ago
Philippe Antoine 7bf48b02be http2: protection against decompression bombs
Ticket: 8513

During decompression, fail early if we have a big decompression
ratio, and enough data.
Track this data also during a tx lifetime, and even a flow/state
lifetime, so that we set event and fail also if the compression
bomb is split over multiple packets
2 months ago
Philippe Antoine 29e4b08647 http2: code refactoring to split big function 2 months ago
Philippe Antoine e98d419d96 ldap: bound the number of responses
Ticket: 8405
2 months ago
Victor Julien 6ebd0c3cc2 http2: check for HTTP1 protocol during upgrade path
Ticket: 8492
2 months ago
Philippe Antoine 10bde66586 nfs: bound file_additional_procs to 1
Ticket: 8418

As we only need to know we saw at least one NFSPROC3_COMMIT
2 months ago
Philippe Antoine aea7ee21b8 nfs: bound namemap by using lru
Ticket: 8418
2 months ago
Philippe Antoine a50f494ef6 nfs: bound requestmap and use lru
Ticket: 8418
2 months ago
Juliana Fajardini d442c3544c detect: opt-in keywords for firewall mode
- tls.cert_chain_len
- datarep
- dataset
- dns.opcode

Part of
Ticket #8387
2 months ago
Philippe Antoine f0e246de34 detect/mqtt: reason_code keyword is now a multi-integer
Ticket: 7929

Builds a vector of the reason code in a tx to do so,
except if we use the default "any", where we do not append
to the vector, but just run detection while iterating
2 months ago
Philippe Antoine 614c48d3c3 ikev2: remove unused field
Ticket: 8415
2 months ago
Jeff Lucovsky 9ea2e29581 ftp: raise too_many_transactions event on overflow
Other parsers (SMB, POP3, ENIP) already raise a too_many_transactions
event when a flow exceeds its per-flow transaction limit. FTP had
the limit wired up through app-layer.protocols.ftp.max-tx but just
dropped the excess transaction on the floor with a "FTP does not set
events yet..." TODO, so no event was raised when the limit was
reached.

Add the FtpEventTooManyTransactions variant, a stock rule at
sid 2232002, and raise the event from FTPTransactionCreate when the
live-tx count goes past ftp_config_maxtx.

Issue: 8489
2 months ago
Jason Ish cb69fa4e53 rust/ffi: add flow lifecycle callback wrappers
Provide Rust friendly callback registrations for flow init, update and finish events. These
callbacks are implemented as Rust closures.

Ticket: #8446
2 months ago
Jason Ish d4dc8be3b2 rust: bindgen flow lifecycle callbacks
Ticket: #8446
2 months ago
Philippe Antoine e38888810d detect/dcerpc: avoids FP on dcerpc.iface keyword
When we got a bind without the first fragment flag, and did not
set any_frag in the signature, the signature always matched,
whatever the uuid value

Ticket: 8457
2 months ago
Jason Ish 8968b1c5a1 psl: update to 2.1.206
Update the public suffix list to latest release.
2 months ago
Philippe Antoine 5ed394b26b rust/ffi: move AppLayerEvent to ffi
Ticket: 7666
2 months ago
Philippe Antoine 59b6de8239 rust: fix last collapsible_match warnings
The ones where we need to remove a debug log
2 months ago
Philippe Antoine 1cdff9de8e rust: fix collapsible_match warnings
warning: this `if` can be collapsed into the outer `match`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#collapsible_match
2 months ago
Jason Ish 899e9f045e ntp: expose logged fields to lua
This includes:
- version
- mode
- stratum
- reference_id

Ticket: #8533
2 months ago
Jason Ish 81692dd2c1 rust/lua: add method for pushing bytes
Much like pushstring, but accepts an &[u8] as an argument instead of an &str.

In support of ticket #8533.
2 months ago