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

GUIDE: Snort's AppID custom rules Quick Guide to blocking. Example shows OpenAI ChatGPT or Itunes.

Scheduled Pinned Locked Moved IDS/IPS
snortappidtext rulespreprocessorsopenappid
22 Posts 4 Posters 4.2k 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.
  • J
    JonathanLee @michmoor
    last edited by Mar 16, 2025, 3:24 AM

    @michmoor I don't know, real question is is how is ChatGPT and other new AI sites listed in the database that is downloaded...

    Make sure to upvote

    M 1 Reply Last reply Mar 16, 2025, 4:08 AM Reply Quote 0
    • M
      michmoor LAYER 8 Rebel Alliance @JonathanLee
      last edited by Mar 16, 2025, 4:08 AM

      @JonathanLee where do you see these new apps ?

      Firewall: NetGate,Palo Alto-VM,Juniper SRX
      Routing: Juniper, Arista, Cisco
      Switching: Juniper, Arista, Cisco
      Wireless: Unifi, Aruba IAP
      JNCIP,CCNP Enterprise

      J 1 Reply Last reply Mar 16, 2025, 5:56 AM Reply Quote 0
      • J
        JonathanLee @michmoor
        last edited by Mar 16, 2025, 5:56 AM

        @michmoor I pay for a snort subscription, it’s not free. I have a custom adapted list that uses app id based on the databases. But keep in mind my list is not a free list. We have the paid stuff. It’s great.

        Make sure to upvote

        M 1 Reply Last reply Mar 16, 2025, 1:17 PM Reply Quote 0
        • M
          michmoor LAYER 8 Rebel Alliance @JonathanLee
          last edited by Mar 16, 2025, 1:17 PM

          @JonathanLee I have a paid Snort VRT list as well. Not sure how that affects open appid

          Firewall: NetGate,Palo Alto-VM,Juniper SRX
          Routing: Juniper, Arista, Cisco
          Switching: Juniper, Arista, Cisco
          Wireless: Unifi, Aruba IAP
          JNCIP,CCNP Enterprise

          1 Reply Last reply Reply Quote 0
          • B
            bmeeks
            last edited by bmeeks Mar 17, 2025, 2:23 AM Mar 16, 2025, 4:42 PM

            Guys:

            I've posted on this innumerable times ... 🙂 --

            OpenAppID consists of two distinct pieces of information. One is LUA scripts containing what are called rule stubs. These contain most of the logic for interpreting applications. These rule stubs are updated by the Snort VRT. Each time you download updates for your rules those stub rules will come down along with the other Snort rules.

            But in order for AppID to actually trigger alerts, you must provide text-based detection rules. Originally the Snort team intended for users to create their own text-based rules (the second of the two required pieces for OpenAppID to work). But when I added OpenAppID to the pfSense Snort package, a professor at a University in Brazil volunteered to craft and maintain a package of text-based rules for pfSense users to grab. So, I configured the package to use those rules. Over the years, that University team has disbanded and those rules are no longer updated. They have not been updated in quite a long time. Quite a few years ago we moved the location of those rules to a Netgate server because the University in Brazil was using geoblocking and thus users in several countries were blocked from downloading the rules.

            Again, proper operation of OpenAppID requires both the rule stubs LUA scripts AND text rules written to use the keywords defined in the LUA scripts.

            M 1 Reply Last reply Mar 16, 2025, 5:02 PM Reply Quote 0
            • M
              michmoor LAYER 8 Rebel Alliance @bmeeks
              last edited by michmoor Mar 16, 2025, 5:03 PM Mar 16, 2025, 5:02 PM

              @bmeeks Thanks for having paitence with us

              For the Lua scripts i assume you mean these fils located here

              /usr/local/etc/snort/appid/odp/lua
              

              Should we care about these LUA scripts or focus on the appMapping.data file which basedon my research is the main file used to figure out which apps are identified and how to notate them in the text rule.

              Then there is the other part which is appMapping.data that is found here:/usr/local/etc/snort/appid/odp

              The text rules I'm not concerned about.

              I am trying to understand how often AppID is updated. When I list the directory, the lua files show 2023. ChatAI apps are nonexistent except for OpenAI, so the list doesn't seem maintained.

              Firewall: NetGate,Palo Alto-VM,Juniper SRX
              Routing: Juniper, Arista, Cisco
              Switching: Juniper, Arista, Cisco
              Wireless: Unifi, Aruba IAP
              JNCIP,CCNP Enterprise

              B J 2 Replies Last reply Mar 16, 2025, 5:08 PM Reply Quote 0
              • B
                bmeeks @michmoor
                last edited by bmeeks Mar 16, 2025, 5:14 PM Mar 16, 2025, 5:08 PM

                @michmoor said in GUIDE: Snort's AppID custom rules Quick Guide to blocking. Example shows OpenAI ChatGPT or Itunes.:

                @bmeeks Thanks for having paitence with us

                For the Lua scripts i assume you mean these fils located here

                /usr/local/etc/snort/appid/odp/lua
                

                Should we care about these LUA scripts or focus on the appMapping.data file which basedon my research is the main file used to figure out which apps are identified and how to notate them in the text rule.

                Then there is the other part which is appMapping.data that is found here:/usr/local/etc/snort/appid/odp

                The text rules I'm not concerned about.

                I am trying to understand how often AppID is updated. When I list the directory, the lua files show 2023. ChatAI apps are nonexistent except for OpenAI, so the list doesn't seem maintained.

                Everything under /usr/local/etc/snort/appid/ is automatically updated by the normal rules update job. But, and this is key, unless your text rules properly reference the keywords and options made available by all the files in this subdirectory, then OpenAppID will not function or not function properly. That's why I keep making such a strong point about how OpenAppID is totally different from the regular Snort rules. The regular rules don't have a dependency. You craft the rule and it will work (assuming it is syntatically correct). But OpenAppID does not work the same. If you have the OpenAppID files from Snort but did not create any text rules to reference the OpenAppID files, then nothing works. On the other hand, if you write the text rules but don't download and install the OpenAppID stubs and supporting files, then nothing works.

                I keep seeing posts and questions from users that indicate very few really understand how OpenAppID works and what parts and pieces it needs to function correctly.

                And yes, because the text rules for OpenAppID on pfSense have not been updated in years, there are new applications that text rules do not exist for in the pfSense package but the new app is defined in the rules stubs downloaded from the VRT. But even though a new app may exist in the rules stubs, if there is no corresponding text rule then app detection for that app will not work. Conversely, over the years some app names have changed (or typos were fixed) within the OpenAppID rules stubs from upstream. But the text rules contributed by that University team in Brazil have not been updated, so you will likely see errors from those when starting up Snort.

                Anyone serious about using OpenAppID in Snort on pfSense really should be creating their own text rules for app detection. The available set from years ago is likely not adequate. I know there are many errors in those rules in terms of app names, for example.

                1 Reply Last reply Reply Quote 0
                • J
                  JonathanLee @michmoor
                  last edited by JonathanLee Mar 16, 2025, 10:57 PM Mar 16, 2025, 10:55 PM

                  @michmoor You have to add your own text files, I created a java program to do the for me based on the database that is downloaded. So that might be why mine has ChatGPT. Yes that list is updated but it does no good unless you generate the text files to match them. I just made a java program to parse over that database and generated a text file based on that. My text file is above but I have not updated that list in a while. I have to run the database in it again.

                  Make sure to upvote

                  M 1 Reply Last reply Mar 16, 2025, 10:59 PM Reply Quote 0
                  • M
                    michmoor LAYER 8 Rebel Alliance @JonathanLee
                    last edited by Mar 16, 2025, 10:59 PM

                    @JonathanLee going to DM you for details

                    Firewall: NetGate,Palo Alto-VM,Juniper SRX
                    Routing: Juniper, Arista, Cisco
                    Switching: Juniper, Arista, Cisco
                    Wireless: Unifi, Aruba IAP
                    JNCIP,CCNP Enterprise

                    J 1 Reply Last reply Mar 17, 2025, 1:05 AM Reply Quote 0
                    • J
                      JonathanLee @michmoor
                      last edited by Mar 17, 2025, 1:05 AM

                      @michmoor In Snort's OpenAppID context, "appMapping.data is a file that maps application names to their corresponding AppID identifiers, which are used for creating rules to identify and control application traffic."

                      Make sure to upvote

                      1 Reply Last reply Reply Quote 1
                      22 out of 22
                      • First post
                        22/22
                        Last post
                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                        This community forum collects and processes your personal information.
                        consent.not_received