Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Suricata 2.0.3 Package Preview

    Scheduled Pinned Locked Moved pfSense Packages
    121 Posts 17 Posters 35.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bmeeksB
      bmeeks
      last edited by

      Been doing a lot of work the last few months readying the Suricata package for a major update to the latest version of the binary (2.0.3) and incorporating the new features available in the 2.0.x code tree into the Suricata GUI package for pfSense.  Testing is almost completed, and I hope to post the Pull Request for review by the pfSense developers in the next couple of days.

      In addition to the numerous bug fixes, here is a small preview of the new features coming to the Suricata package on pfSense.  Because of the size of some of the screenshots, I will spread this across a number of sequential posts.

      The first major upgrade is bumping the underlying Suricata binary to version 2.0.3.  The GUI package will also get a new version number as it's bumped up to 2.0.  The new INTERFACES tab is shown below.

      InterfacesTab.png
      InterfacesTab.png_thumb

      1 Reply Last reply Reply Quote 0
      • bmeeksB
        bmeeks
        last edited by

        A handy new feature is the ability to filter the alert log output on the ALERTS tab.  You can filter on any or all of the available columns.  In the example below, the source port (SPort) is filtered to only display alerts where the source port is 143.

        Clicking the HIDE button will shrink the filter dialog up to a single line with a SHOW FILTER button displayed.  Clicking that button will show the filter dialog.

        AlertsTabFilter.png
        AlertsTabFilter.png_thumb

        1 Reply Last reply Reply Quote 0
        • bmeeksB
          bmeeks
          last edited by

          Support has been added in the GUI for the new application layer parsers available in Suricata 2.0.x.  In the screenshot below you see these new parsers and the settings available for them.

          NewAppLayerParserSettings.png
          NewAppLayerParserSettings.png_thumb

          1 Reply Last reply Reply Quote 0
          • bmeeksB
            bmeeks
            last edited by

            And what is likely to be the most popular new feature – full support for automatic SID management using the same configuration file syntax as PulledPork or Oinkmaster.  You can now create text files that will be parsed on each rule update and when saving changes and rebuilding the rules in the GUI.  The commands in the text configuration files will allow automatic enabling or disabling of individual rule SIDs, ranges of SIDs, matching of SIDs using PCRE (Perl-compatible regular expression) syntax, and several other specific options.

            Here is a screenshot of the new SID MGMT tab showing how you can upload configuration files to the firewall and then assign them to your configured interfaces.  Icons are available for uploading files from your local machine, creating and editing files directly in the GUI, or deleting files.  There are also download icons that allow you to download any individual SID management file to your local machine.  The icon in the upper right of the file management table allows you to download a gzip file containing all the SID management files currently stored on the firewall.

            For each interface you can set a processing order (the SID State Order drop-down) for the interface configuration files.  To enable automated SID management for an interface, simply select a desired file in the ENABLE, DISABLE or MODIFY drop-downs.  If you want to disable the automated management feature for a given interface, simply set all three drop-downs to "none".

            SID_Mgmt_Tab.png
            SID_Mgmt_Tab.png_thumb

            1 Reply Last reply Reply Quote 0
            • bmeeksB
              bmeeks
              last edited by

              When the new automatic SID management feature is active for an interface, you can see the results of the applied SID configuration files on both the CATEGORIES tab and the RULES tab.  New icons show which rule categories and which rules are matched by, and thus auto-managed by, tokens in the assigned configuration files.

              The lighter icon indicates the category or rule is auto-disabled by a match from the "disablesid.conf" file assigned to the interface.  The darker icon indicates the category or rule is auto-enabled by a match from the "enablesid.conf" file assigned to the interface.  Rules denoted by the new auto-managed icons cannot be changed within the GUI.  You must edit the appropriate SID management configuration file to make changes.  During each rule rebuild, including the scheduled download updates of the ruleset files, a new sid_changes.log file is created summarizing the changes made automatically.

              Example of enabling categories or SIDs
              Here is a sample section from the "enablesid.conf" file used to produce the images below.  The last line of the file will automatically enable the snort_server-apache rules category and thus auto-enable all of the "default enabled" rules from that file.  They will be added to any manual files/rules selections made by the user in the GUI.

              
              # Example of modifying state for specific categories entirely (see README.CATEGORIES)
              # VRT-web-iis,ET-shellcode,ET-emergingthreats-smtp,Custom-shellcode,Custom-emergingthreats-smtp
              
              # Any of the above values can be on a single line or multiple lines, when 
              # on a single line they simply need to be separated by a ,
              # 1:9837,1:220-1:3264,3:13010-3:13013,pcre:MS(0[0-7])-\d+,MS09-008,cve:2009-0233
              
              # The modifications in this file are for sample/example purposes only and
              # should not actively be used, you need to modify this file to fit your 
              # environment.
              
              # ENABLED CATEGORIES
              snort_server-apache
              
              

              Here is an example from the "disablesid.conf" file showing individual SIDs and a number of rule categories being auto-disabled.

              Example of disabling categories and/or SIDs

              
              #GPL SNMP public access UDP
              1:2101411
              
              # RULES WITH UNSUPPORTED KEYWORDS
              1:16479, 1:21923, 1:29592, 1:30944
              
              #
              # DISABLED SNORT VRT CATEGORIES
              browser-firefox.rules,browser-other.rules,chat.rules,content-replace.rules,os-other.rules,os-solaris.rules,policy-multimedia.rules,policy-other.rules,policy-social.rules,policy-spam.rules,server-mail.rules,server-oracle.rules,protocol-scada.rules
              
              # DISABLED ETPRO CATEGORIES
              chat.rules
              web_specific_apps.rules,web_server.rules,tor.rules,rbn.rules,rbn-malvertisers.rules,botcc.rules,ciarmy.rules
              
              

              Here is a sample output of the sid_changes.log –

              
              ********************************************************
              Starting auto RULE CATEGORY management for WAN
              Start Time: 2014-08-24 22:07:01
              Processing enable_sid file: enablesid.conf
                  Enabled rule category: snort_server-apache.rules
                  Parsed 1 potential Rule Categories to match from the list of tokens.
                  Enabled 1 matching Rule Categories.
              Processing disable_sid file: disablesid.conf
                  Disabled rule category: snort_browser-firefox.rules
                  Disabled rule category: snort_browser-other.rules
                  Disabled rule category: snort_chat.rules
                  Disabled rule category: emerging-chat.rules
                  Disabled rule category: snort_content-replace.rules
                  Disabled rule category: snort_os-other.rules
                  Disabled rule category: snort_os-solaris.rules
                  Disabled rule category: snort_policy-multimedia.rules
                  Disabled rule category: snort_policy-other.rules
                  Disabled rule category: snort_policy-social.rules
                  Disabled rule category: snort_policy-spam.rules
                  Disabled rule category: snort_server-mail.rules
                  Disabled rule category: snort_server-oracle.rules
                  Disabled rule category: snort_protocol-scada.rules
                  Disabled rule category: emerging-web_specific_apps.rules
                  Disabled rule category: emerging-web_server.rules
                  Disabled rule category: snort_indicator-compromise.rules
                  Disabled rule category: snort_indicator-obfuscation.rules
                  Disabled rule category: snort_indicator-scan.rules
                  Disabled rule category: snort_indicator-shellcode.rules
                  Disabled rule category: emerging-tor.rules
                  Disabled rule category: emerging-rbn-malvertisers.rules
                  Disabled rule category: emerging-rbn.rules
                  Disabled rule category: emerging-botcc.portgrouped.rules
                  Disabled rule category: emerging-botcc.rules
                  Disabled rule category: emerging-ciarmy.rules
                  Parsed 21 potential Rule Categories to match from the list of tokens.
                  Disabled 26 matching Rule Categories.
              End Time: 2014-08-24 22:07:01
              ********************************************************
              
              ********************************************************
              Starting auto SID management for WAN
              Start Time: 2014-08-24 22:07:03
              Processing enable_sid file: enablesid.conf
                  Parsed 91 potential SIDs to match from the provided list of tokens.
                  Found 69 matching SIDs in the active rules.
                  Changed state for 69 SIDs to 'enabled'.
              Processing disable_sid file: disablesid.conf
                  Parsed 431 potential SIDs to match from the provided list of tokens.
                  Found 307 matching SIDs in the active rules.
                  Changed state for 307 SIDs to 'disabled'.
              End Time: 2014-08-24 22:07:06
              ********************************************************
              
              

              CategoriesTab.png
              CategoriesTab.png_thumb
              RulesTab.png
              RulesTab.png_thumb

              1 Reply Last reply Reply Quote 0
              • S
                Supermule Banned
                last edited by

                One word Bill: FAAAAAAAAAAANTASTIC!!

                1 Reply Last reply Reply Quote 0
                • bmeeksB
                  bmeeks
                  last edited by

                  @Supermule:

                  One word Bill: FAAAAAAAAAAANTASTIC!!

                  Thanks!  Also note that, except for the Suricata-specific application layer parsers, these same features will be coming to the Snort package.  That means the ALERTS tab display filter and the ability to auto-manage SIDs with text configuration files.

                  Bill

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User
                    last edited by

                    Spent a good 10 minutes writing, deleting, re-writing and re-deleting this reply.

                    I'm speechless. Excellent work!

                    If only the pfsense devs dropped everything they do and approve the pull request immediately ;)

                    1 Reply Last reply Reply Quote 0
                    • ?
                      Guest
                      last edited by

                      @jflsakfja:

                      If only the pfsense devs dropped everything they do and approve the pull request immediately ;)

                      Seriously?  That's the behavior you desire?

                      While I think this is an interesting update, and I try to privately help Bill (ask him) get his changes I to pfSense quickly (as I do with any volunteer who does quality work), "drop everything" isn't the right path here.

                      1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User
                        last edited by

                        Don't want to start a fight, but waiting a month for a pull request to be approved to a very important package (snort?) doesn't exactly put the fun in the package dev community. This particular update to this particular package contains a lot of necessary bugfixes, a LOT of requested functionality, and should be IMHO on the top of the pfsense's dev's todo list. Nobody will cry if pfsense is delayed a couple of weeks, but this package would make a lot of people cry (I personally can't see 4K hosts on the blocked tabs because I'm affected by a particular bug this fixes + I've spent a lot of time syncing configuration changes back and forth between systems (CARP sync is in this package).

                        And I haven't even touched on the conf files auto conf yet. Literally (and I'm not exaggerating a bit here) thousands of man hours will be saved by pfsense's users from this single feature.

                        My honest and humble opinion. Not an attack in any way, shape and/or form. Not trying to put down the amount of work the pfsense devs put into pfsense, I'm just saying that pfsense is actually extremely stable for the large majority of users out there. Since the majority wouldn't benefit from an upgrade to pfsense (other than bug fixes), that can hold off for a while.

                        EDIT:share?shape

                        1 Reply Last reply Reply Quote 0
                        • S
                          Supermule Banned
                          last edited by

                          Couldnt agree more.

                          @jflsakfja:

                          Don't want to start a fight, but waiting a month for a pull request to be approved to a very important package (snort?) doesn't exactly put the fun in the package dev community. This particular update to this particular package contains a lot of necessary bugfixes, a LOT of requested functionality, and should be IMHO on the top of the pfsense's dev's todo list. Nobody will cry if pfsense is delayed a couple of weeks, but this package would make a lot of people cry (I personally can't see 4K hosts on the blocked tabs because I'm affected by a particular bug this fixes + I've spent a lot of time syncing configuration changes back and forth between systems (CARP sync is in this package).

                          And I haven't even touched on the conf files auto conf yet. Literally (and I'm not exaggerating a bit here) thousands of man hours will be saved by pfsense's users from this single feature.

                          My honest and humble opinion. Not an attack in any way, share and/or form. Not trying to put down the amount of work the pfsense devs put into pfsense, I'm just saying that pfsense is actually extremely stable for the large majority of users out there. Since the majority wouldn't benefit from an upgrade to pfsense (other than bug fixes), that can hold off for a while.

                          1 Reply Last reply Reply Quote 0
                          • ?
                            Guest
                            last edited by

                            Just for that, Brian, it's gone to the bottom of the pile.

                            1 Reply Last reply Reply Quote 0
                            • S
                              Supermule Banned
                              last edited by

                              Like your sense of humor :D

                              @gonzopancho:

                              Just for that, Brian, it's gone to the bottom of the pile.

                              1 Reply Last reply Reply Quote 0
                              • bmeeksB
                                bmeeks
                                last edited by

                                Things are progressing well with the new package.  I found a longstanding bug with IPv6 addresses in a PASS LIST this afternoon and fixed it.  The problem was actually upstream in the Suricata binary and not within the pfSense GUI package.  The bug is also present in 1.4.6.  I've submitted the appropriate patch to the pfSense guys already so the binary packages for pfSense will be fixed, and will work on getting the patch into upstream as well.

                                I am getting support from the pfSense team even though they are terribly busy with their work on 2.2 and an upcoming security fix for 2.1.4, so I applaud them for that.  Just please continue to be patient as final testing is completed and the pfSense developers jostle their work schedules to fit in the package review.  There are a LOT of code changes in this update!  I promise it's not vaporware… ;D

                                Bill

                                1 Reply Last reply Reply Quote 0
                                • bmeeksB
                                  bmeeks
                                  last edited by

                                  The new Suricata package update has been posted for the pfSense developers to review.  You can follow the request here:

                                  https://github.com/pfsense/pfsense-packages/pull/696

                                  The notes at the top of the Pull Request show the changes.

                                  One thing I suggest you do to get ready for the auto-SID management feature is to thoroughly review the documentation associated with the enablesid.conf, disablesid.conf and modifysid.conf files you can use with PulledPork or Oinkmaster.  A little Google research should turn up several links and examples.  Some kind users here on the forum may also be willing to share their files as examples.  With the ability to upload these files to the firewall, it will also be possible for experienced users to share their SID management conf files with novices to help reduce the number of false positives and other issues less experienced users sometimes face with a powerful tool such as Suricata.  Note that the new auto-SID management feature is disabled by default.  You can enable the feature and upload or create the necessary conf files on the new SID MGMT tab.

                                  Bill

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    Mr. Jingles
                                    last edited by

                                    I bow deeply for you, Lord Bill  ;D

                                    6 and a half billion people know that they are stupid, agressive, lower life forms.

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      Guest
                                      last edited by

                                      @bmeeks:

                                      The new Suricata package update has been posted for the pfSense developers to review.  You can follow the request here:

                                      So everyone is aware, Bill thinks he's found a bug, and has asked us to hold off.

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User
                                        last edited by

                                        I can confirm the bug. My recommendation (if Bill agrees) is to go ahead and release the package, since the bug is there in the existing package anyway (and by the looks of it, it's upstream).

                                        Just to be clear, the bug affect IPv6 deployments. There are workarounds, but no need to go through that if the fix is just round the corner. If the fix isn't around the corner though, having the new package is better than waiting for the fix, since the fix is unlikely to be backported to the old (current) package.

                                        As i said, my recommendation is to go ahead with the package and just issue the warning for a known bug and the workarounds. One of the workarounds can be implemented using modifysid for example. My $0.02.

                                        1 Reply Last reply Reply Quote 0
                                        • bmeeksB
                                          bmeeks
                                          last edited by

                                          @jflsakfja:

                                          I can confirm the bug. My recommendation (if Bill agrees) is to go ahead and release the package, since the bug is there in the existing package anyway (and by the looks of it, it's upstream).

                                          Just to be clear, the bug affect IPv6 deployments. There are workarounds, but no need to go through that if the fix is just round the corner. If the fix isn't around the corner though, having the new package is better than waiting for the fix, since the fix is unlikely to be backported to the old (current) package.

                                          As i said, my recommendation is to go ahead with the package and just issue the warning for a known bug and the workarounds. One of the workarounds can be implemented using modifysid for example. My $0.02.

                                          Yes, the bug is in the IPv6 address parsing logic.  It is present upstream and comes into play if you set $EXTERNAL_NET to the standard value of !$HOME_NET.  It only impacts IPv6 traffic, but the impact is you don't get IPv6 alerts from rules where source or destination is $EXTERNAL_NET.  A good many rules use this qualifier.

                                          The Suricata source code around this functionality is quite complicated and IMHO not well commented.  I have thus far been unable to locate the source of the problem.  I think the best I can do is report this upstream.  I want to conduct a little more testing, and then I will release the Pull Request for further review by the pfSense developers.

                                          Bill

                                          1 Reply Last reply Reply Quote 0
                                          • Raul RamosR
                                            Raul Ramos
                                            last edited by

                                            Oh c'mon people. We are crying where and you said hold off?? you are kidding right? Bill  :P

                                            pfSense:
                                            ASRock -> Wolfdale1333-D667 (2GB TeamElite Ram)
                                            Marvell 88SA8040 Sata to CF(Sandisk 4GB) Controller
                                            NIC's: RTL8100E (Internal ) and Intel® PRO/1000 PT Dual (Intel 82571GB)

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.