Commit Graph

58 Commits

Author SHA1 Message Date
John Audia 4295bd7f45 snort3: build against gperftools-runtime
Should provide increases in snort3 performance thanks to thread-
caching malloc provided by gperftools.  Avg CPU usage is down.
Another user reported higher throughput achieved with snort3
compiled with this on samba transfers on system with CPU-limited
snort3 performance.[1]

1. https://forum.openwrt.org/t/some-help-with-a-makefile-gperftools/165656/22

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2024-02-24 20:17:51 -08:00
John Audia a7b5bfbfb7 snort3: update to 3.1.81.0
Changelog: https://github.com/snort3/snort3/releases/tag/3.1.81.0

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.81.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2024 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.14
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.13 30 Jan 2024
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3.1
           Using Hyperscan version 5.4.2 2024-02-16
           Using LZMA version 5.4.6

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2024-02-24 12:14:43 -08:00
John Audia a7f820077f snort3: build against hyperscan
Increases snort's IPS fast pattern matching by 2x (compared to
the ac_full engine) and 3x (compared to ac_bfna).  This is most
noticeable for users of large rules sets and when doing deep flow
inspection.

For more see: https://blog.snort.org/2020/09/snort-3-hyperscan-.html

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2024-02-20 13:50:22 +08:00
Eric Fahlgren db58c9cd81 snort3: clean up ucode usage
- Add missing 'ucode' package dependency
 - Proto-ify the ConfigItem objects
 - Fix indentation and tab usage

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2024-02-14 12:53:28 +08:00
Eric Fahlgren b94c6dd37d snort3: improve script reliability
- Enable missing variable checking by default
 - Explicitly check variables are defined in all 'rm' commands

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2024-02-07 14:01:11 -08:00
Eric Fahlgren 203e9413e2 snort3: finish up several incomplete capabilities
Reporting
 - Use json alert data for 10x speed improvement in report generation
 - Include both gid and sid, plus packet direction in report output
 - Add by-date incident filtering
 - Add verbose mode which displays actual rules triggered and their source
 - Attempt to look up host names from IPs in verbose mode
 - Clean up display of port number involved in incidents

Rules
 - Complete downloader for subscription rules using oinkcode (only tested
   with snort.org's "free" tier subscription)
 - Auto-detect multiple rules files and include them in lua 'ips.rules'
 - Add '--backup' option to copy out current rules before installing new
 - Add '--persistent' option to 'snort-rules', storing in persistent location

CLI interface
 - Completely rework command line option parsing in all user scripts
 - Allow options and commands to be in any order on command line
 - Add long-form names for all options ('--help' for '-h' and so on)
 - Detect errors properly in options, enhance help pages

Bug fixes
 - Use 'mkdir -p' on all directory creation
 - Use proper tmp directory from 'snort.snort.temp_dir' everywhere

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2024-02-04 16:21:11 -08:00
John Audia 0b2728b2f2 snort3: update to 3.1.78.0
Upstream bump

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.78.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2024 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.14
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.12 24 Oct 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2024-01-15
           Using LZMA version 5.4.4

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2024-01-19 14:40:54 +01:00
Eric Fahlgren e05835deac snort3: add missing action-override option
Allow use of rules as-defined, and don't override their actions.  This
is generally the best way to use the ruleset, and overriding their
actions should only be undertaken when you fully understand how it
affects their use.

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2024-01-02 15:29:50 -08:00
John Audia 224a3816d8 snort3: compile with lzma support
This PR adds the ability of snort to process rules that target
swf and pdf files requiring lzma decompression to look for
malicious payloads therein.  This change only increases the size
of the snort3 executable by a fraction of a KB and the added
dependency of liblzma (based on currently offered 5.4.4-1) is
only a 169 KB shared object.  Based on CPU requirements of snort,
x86 users likely represent the majority user-base and space their
rootfs is not an issue as it may be for lower-powered SoCs.

Size of snort3-3.1.76.0-2: 7354403 bytes
Size of snort3-3.1.76.0-3: 7354435 bytes

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2024-01-02 15:29:11 -08:00
John Audia 5cdf7d5883 snort3: update to 3.1.77.0
Changelog: https://github.com/snort3/snort3/releases/tag/3.1.77.0

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.77.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.13
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.12 24 Oct 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2023-12-20

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-12-23 15:06:44 +02:00
Eric Fahlgren 0d2dac8792 snort3: add missing config include and general cleanup
- Delete legacy configuration files homenet.lua and local.lua
- Add snort config 'include' to allow user customizations in the lua
- Enhance 'check' to test generated nftables file
- Suppress inclusion of rules file when doing silent config check
- Suppress warnings on configuration check unless '-v'erbose
- Replace text logging with json logging to reduce footprint and make reports easier
- Fix some typos in the snort.uc template
- Fix up some error messages suggesting solutions

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2023-12-16 22:08:49 +08:00
John Audia a2e6d4910b snort3: add myself as a co-maintainer
Michael invited me to co-maintain[1].

1. https://github.com/openwrt/packages/pull/22830#issuecomment-1848997029

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-12-13 14:14:05 +08:00
John Audia 71b10bc689 snort3: update to 3.1.76.0
Changelog: https://github.com/snort3/snort3/releases/tag/3.1.76.0

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.76.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.13
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.12 24 Oct 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2023-12-03

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-12-08 18:53:47 +08:00
Eric Fahlgren f21dffc2a3 snort3: complete rework
- Add many options to config file.
  - Move rules and generated snort.lua to /tmp.
  - Add script for downloading rules.
  - Add preliminary reporting capabilites.

Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
2023-12-03 13:53:58 -08:00
John Audia e2573ca13f snort3: update to 3.1.75.0
Upstream bump

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.75.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.13
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.12 24 Oct 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2023-11-20

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-12-01 11:25:45 -08:00
Rosen Penev c990f18f4c snort3: fix compilation with gcc13
Missing header.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-11-18 20:18:43 -08:00
John Audia 9912428f69 snort3: update to 3.1.74.0
Upstream bump

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.74.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.13
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.12 24 Oct 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2023-11-08

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-11-09 09:24:54 +01:00
John Audia 00f4b9d3df snort3: update to 3.1.73.0
Upstream bump

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.73.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.12
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.11 19 Sep 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.3
           Using Hyperscan version 5.4.2 2023-10-26

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-10-28 23:06:05 +02:00
John Audia c17a97ee35 snort3: update to 3.1.71.0
Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.71.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.12
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.11 19 Sep 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.2.13
           Using Hyperscan version 5.4.2 2023-09-23

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-09-27 18:57:36 +02:00
Christian Marangi 5c1bcb6133
treewide: add HAS_LUAJIT_ARCH dependency to luajit user
Add HAS_LUAJIT_ARCH dependency to any user of luajit to fix circular
dependency limitation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-09-25 17:42:02 +02:00
John Audia 633950a384 snort3: update to 3.1.70.0
Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

   ,,_     -*> Snort++ <*-
  o"  )~   Version 3.1.70.0
   ''''    By Martin Roesch & The Snort Team
           http://snort.org/contact#team
           Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using DAQ version 3.0.12
           Using LuaJIT version 2.1.0-beta3
           Using OpenSSL 3.0.10 1 Aug 2023
           Using libpcap version 1.10.4 (with TPACKET_V3)
           Using PCRE version 8.45 2021-06-15
           Using ZLIB version 1.2.13
           Using Hyperscan version 5.4.2 2023-09-07

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-09-14 23:46:46 +02:00
John Audia 9220572129 snort3: update to 3.1.69.0
Upstream bump

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-09-03 14:39:03 +02:00
John Audia db02254ae5 snort3: update to 3.1.67.0
Upstream bump

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-08-04 01:45:41 +08:00
John Audia 6c94d8d06e snort3: update to 3.1.66.0
Upstream bump

Build system: x86/64
Build-tested: x86/64
Run-tested: x86/64

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-07-22 07:11:31 +02:00
John Audia 1c671bc10b snort3: update to 3.1.65.0
Upstream bump

Build system: x86_64
Build-tested: x86_64/AMD 5800U
Run-tested: x86_64/AMD 5800U

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-07-10 19:48:43 -07:00
John Audia df0313880e snort3: update to 3.1.64.0
Upstream bump

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-06-30 01:10:02 +08:00
John Audia c5737be112 snort3: update to 3.1.63.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-06-05 17:47:39 +08:00
John Audia 84b1ce49a9 snort3: update to 3.1.62.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-05-23 15:52:59 +08:00
John Audia 47b4ceac82 snort3: update to 3.1.61.0
Upstream bump

Removed upstreamed patch: 900-fix_build_for_archs_contain_plus.patch[1]

1. 4de62ca9b9

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-05-08 00:17:18 +08:00
John Audia fbbe30622a snort3: update to 3.1.60.0
Upstream bump

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-04-24 05:08:17 +08:00
John Audia 799f8cd6c9 snort3: update to 3.1.59.0
Upstream bump

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-04-11 05:22:12 +08:00
John Audia 40276c24dd snort3: update to 3.1.58.0
Upstream bump

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-03-30 14:46:24 +08:00
John Audia cdf5f9b0e9 snort3: update to 3.1.57.0
Upstream bump

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-03-14 15:09:21 +01:00
John Audia 0cec657274 snort3: update to 3.1.56.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-03-12 09:17:13 +01:00
John Audia c2d5b6de78 snort3: update to 3.1.53.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-01-28 09:46:50 +02:00
John Audia bf87e72a85 snort3: update to 3.1.52.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-01-21 16:19:31 +02:00
John Audia 993d8ae9f2 snort3: update to 3.1.51.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-01-21 16:19:31 +02:00
John Audia 10a170552a snort3: update to 3.1.50.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-22 16:27:40 -08:00
John Audia 34783261d0 snort3: update to 3.1.49.0
Upstream bump

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-22 16:27:40 -08:00
John Audia d6b712cde6 snort3: unified configs: local.lua and homenet.lua
This commit adds /etc/snort/local.lua and /etc/snort/homenet.lua for user
defined config options which is more simplistic than modifying upstream
files directly. That can be tedious and decisive to maintain in sync with
upstream changes.  The init script has been adjusted accordingly.

Acknowledgment to amish who maintains the Arch Linux snort-nfqueue package[1]
for these ideas and initial code.

Another modification is dropping the following args in the call to
/usr/bin/snort by the init system as these options are provided in
/etc/snort/local.lua:

 * --daq-dir /usr/lib/daq/
 * -A "$alert_module"

Instructions to configure snort3:
1. Edit /etc/snort/homenet.lua and redefine HOME_NET and EXTERNAL_NET, for example:

   HOME_NET = [[ 10.9.8.0/24 192.168.1.0/24 ]]
   EXTERNAL_NET = "!$HOME_NET"

2. Edit /etc/snort/local.lua to setup options unique to your use case of snort.
   The default ones I included should be sane for the role of IDS (alert only),
   but users may easily uncomment some options therein to use IPS (drop) mode.

3. Install or symlink rules to /etc/snort/rules/snort.rules and optionally
   edit /etc/snort/local.lua to define extra rules files if not using a unified
   'snort.rules'

References:
1. https://aur.archlinux.org/packages/snort-nfqueue

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-08 04:47:38 +08:00
John Audia eb251c50bb snort3: update to 3.1.48.0-1
Had to add a patch to allow builds of targets containing '+' in their dir name

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-12-06 02:22:55 +08:00
John Audia 8bd96675b2 snort3: update to 3.1.47.0-1
Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

Signed-off-by: John Audia <therealgraysky@proton.me>
2022-11-29 16:05:01 +08:00
W. Michael Petullo eed95600bb snort3: update to 3.1.29.0
Signed-off-by: W. Michael Petullo <mike@flyn.org>
2022-05-14 21:40:21 -07:00
W. Michael Petullo 6c57db2bea snort3: update to 3.1.18.0
Signed-off-by: W. Michael Petullo <mike@flyn.org>
2021-12-16 15:30:41 -08:00
Michal Hrusecky 2fe854ebd6
net/snort3: Include default configs and snort2lua
Include default configuration files to have something to start from.
Also include snort2lua to help convert snort2 rules to snort3 to also
help with bootstrapping the configuration.

Signed-off-by: Michal Hrusecky <michal.hrusecky@turris.com>
2021-07-22 13:55:38 +02:00
Rosen Penev 2e654b19f3 treewide: back to cmake.mk
Ninja was merged to base and therefore we can now use normal cmake.mk

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-06-12 21:05:01 -07:00
W. Michael Petullo 776f318352 snort3: update to 3.1.4.0
Signed-off-by: W. Michael Petullo <mike@flyn.org>
2021-05-11 12:58:24 -05:00
Rosen Penev a31b732007 treewide: build CMake projects with Ninja
faster to compile.

A small selection of packages was tested going from:

Executed in  696.30 secs   fish           external
   usr time   82.98 mins  395.00 micros   82.98 mins
   sys time    9.02 mins    0.00 micros    9.02 mins

to:

Executed in  592.20 secs   fish           external
   usr time   84.84 mins  361.00 micros   84.84 mins
   sys time    8.85 mins   57.00 micros    8.85 mins

Tested by running make -j 12 and wiping staging/build_dir/target_x

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-27 21:51:50 -07:00
Eneas U de Queiroz 92cdc620b6
libdaq3,snort3: install/use libdaq3 in its own dir
If used with default paths, libdaq 2.x and libdaq 3.x will overwrite
some of the other version's files.  Install them in different places to
avoid trouble.

Snort is the only package that uses libdaq, so update it at the same
time to avoid creating a failing commit.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
2021-02-24 20:42:03 -03:00
W. Michael Petullo 0f0f8f34dd snort3: update to 3.1.0.0
Signed-off-by: W. Michael Petullo <mike@flyn.org>
2021-01-31 13:39:35 +02:00