Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

detect/transform: from_base64 transform #11007

Closed
wants to merge 6 commits into from
Closed

Conversation

jlucovsky
Copy link
Contributor

Continuation of #10991

This PR provides the from_base64 transform used to match on content decoded with base64 using the mode (default rfc4648).

Link to redmine ticket: 6487

Describe changes:

  • New transform: from_base64
  • Documentation
  • Keyword parser in rust.

Updates:

  • Doc -- split extra long line and added ref to transform.

Provide values to any of the below to override the defaults.

To use a pull request use a branch name like pr/N where N is the
pull request number.

Alternatively, SV_BRANCH may also be a link to an
OISF/suricata-verify pull-request.

SV_BRANCH=OISF/suricata-verify#1670

Refactor utility functions/definitions from the byte_math module into
the parser module. This includes parse_var and ResultValue

Issue: 6487
Issue: 6487

Implement from_base64 option parsing in Rust. The Rust module also
contains unit tests.
Issue: 6487

Implement the from_base64 transform:
    [bytes value] [offset value] [mode strict|rfc4648|rfc2045]

    The value for bytes and offset may be a byte_ variable or an
    unsigned integer.
Issue: 6487

Document the new transform and indicate that it's the preferred way to
perform base64 decoding (preferred over base64_decode)
Issue: 6487

To avoid ambiguity, a single definition for base 64 decoding modes will
be used. The Rust base64 transform contains the definitions for the
existing mode types: Strict, RFC2045, RFC4648
Copy link

codecov bot commented May 1, 2024

Codecov Report

Attention: Patch coverage is 94.11765% with 28 lines in your changes are missing coverage. Please review.

Project coverage is 82.90%. Comparing base (ad4185b) to head (afa6dce).
Report is 175 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #11007      +/-   ##
==========================================
- Coverage   82.94%   82.90%   -0.05%     
==========================================
  Files         918      919       +1     
  Lines      248784   249141     +357     
==========================================
+ Hits       206351   206546     +195     
- Misses      42433    42595     +162     
Flag Coverage Δ
fuzzcorpus 64.17% <9.67%> (-0.12%) ⬇️
suricata-verify 62.12% <72.04%> (-0.54%) ⬇️
unittests 62.37% <87.60%> (+0.09%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Copy link
Contributor

@jufajardini jufajardini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for incorporating the doc changes! looking good to me :)

doc/userguide/rules/transforms.rst Show resolved Hide resolved
rust/src/detect/transform_base64.rs Show resolved Hide resolved
rust/src/detect/transform_base64.rs Show resolved Hide resolved
src/detect-transform-base64.c Show resolved Hide resolved
src/detect-transform-base64.h Show resolved Hide resolved
@suricata-qa
Copy link

Information: QA ran without warnings.

Pipeline 20460

@victorjulien victorjulien self-requested a review May 2, 2024 05:41
Copy link
Contributor

@catenacyber catenacyber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now needs a rebase

@catenacyber catenacyber added the needs rebase Needs rebase to master label May 31, 2024
@jlucovsky
Copy link
Contributor Author

Continued in #11299

@jlucovsky jlucovsky closed this Jun 13, 2024
@jlucovsky jlucovsky deleted the 6487/13 branch June 25, 2024 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs rebase Needs rebase to master
Development

Successfully merging this pull request may close these issues.

6 participants