Guest User!

You are not Sophos Staff.

This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Application filter for NTP

I have various rules for users with different time restrictions, and then a final rule to always allow various sites and services.

I have added an application policy called "Always Allowed" which includes the application "NTP". It isn't working though.

The application log shows the destination port of 123, but no Application Category or Application, and an Action of Denied. The Policy ID is my catchall rule, and the Message ID is 17051. I'm guessing that port 123 isn't getting correctly detected as NTP and so is being blocked.

The particulars of my rule are:

Source Zone / Network / Time: LAN / Any / All the time

Dest Zone / Network / Services: WAN / Any / Any

Match known users: unticked

Malware scanning: Only HTTP ticked

Intrusion Policy: None

Traffic Shaping Policy: None

Web Policy: None (I have tried Allow All too)

Application Policy: Always Allowed (my rule that includes NTP)

Any idea why this isn't working?

thanks

James



This thread was automatically locked due to age.
Parents
  • Hi James,

    Looking at your FW-rule description, I can see all the Services are Allowed. I don't see a reason why the NTP is blocked when the services are open and Application Filter tells XG to Allow All. If you suspect that Application Filter is blocking NTP services then check, Log Viewer > Application Filter; it will only log Denied Traffic. This will give you a general idea if the Application Filter is doing a false positive and we could raise a request to fix that.

    Thanks

  • can you explain in few lines how to properly use the Application filter?

    I guess that in the Application lists there are some Apps that should not be there. Can you check internally and reply here back.

    Thanks

  • I did some testing and found the following:

    • An application filter with a Default Action of "Allow" will always allow NTP, even if you have a rule in there to block NTP
    • An application filter with a Default Action of "Block" will always block NTP, even if you have a rule in there to allow NTP
    • When NTP is blocked, an entry appears for port 123, but it is not identified as NTP in the Application logs

    I do see Application Filter blocking some non-HTTP(S) traffic, in particular port 5223 and 5228, but as a general rule, as has been repeated stated here by others, Application filtering does not do anything for non-HTTP(S) traffic.

    I'm a little disappointed, but at least now I know.

    thanks

    James

  • The evidence suggests that the application filter has little to do with HTTP(S) traffic. For instance, given the following application filter...

    ... one would expect none of the designated protocols to get blocked. Well, except Jabber perhaps if you were using a Cisco client on port 80.  I'm not, my Jabber traffic is XMPP on port 5222 and was blocked just fine, along with LDAP and SSH which, again, are pretty unrelated to HTTP(S).  The only ones not caught by this example app filter are IRC and NTP.

     

    Thanks,

    Gary

Reply
  • The evidence suggests that the application filter has little to do with HTTP(S) traffic. For instance, given the following application filter...

    ... one would expect none of the designated protocols to get blocked. Well, except Jabber perhaps if you were using a Cisco client on port 80.  I'm not, my Jabber traffic is XMPP on port 5222 and was blocked just fine, along with LDAP and SSH which, again, are pretty unrelated to HTTP(S).  The only ones not caught by this example app filter are IRC and NTP.

     

    Thanks,

    Gary

Children
  • Gary,

    there is some confusion here on this thread. You should implict deny principle and allow only what is needed. Application and web filtering came out after the first SW houses used "encapsulation" on TCP/IP. They re-encapsulate packets inside the big tunnel 80/443 ports. Because the first version of Firewall were not able to scan inside the 80/443 ports, those application were allowed. Even now, if the signature on the Firewall does not exist, you will see a lot of HTTP/S traffic or undefined 80/443. So, I repeat what I already wrote, Application filters are only used to scan the "big" tunnels (80 and 443) in order to catch and block/allow packets that are encapsulated and travel within the http/s tunnel.

    It is strange that inside the Application filters there are not-http/s applications, like NTP.

    can you add some more technical aspects/information here?

  • Luk,

    I completely agree that a "proper" implementation should be Deny All and then poke holes as needed. That being said, there is no logical reason the firewall rules would not work in the other direction as well... allow all and block as needed. Not a good model for corporate use, but perhaps a more common practice for the home user? Regardless, I can flip the rule around to block all and allow only the identified protocols and it still has the same issue where some are identified, others are not.

    As for the question of application filtering only working on HTTP(S) traffic... I agree we need an answer from Sophos. Your explanation makes sense, but just looking at the current XG model seems to indicate a different direction. Perhaps things have changed a bit since they were first implemented? If you look at Web -> Categories you will see Content Delivery, Applets, ActiveX, P2P torrents, etc. Unless Sophos is trying to maintain a URL list of every single domain that has applets and activeX content, it would seem that lots of the encapsulation inspection has moved into the Web > Categories section.  Then, take a look at what is currently in the Applications > Application List and filter on Infrastructure or Network Services categories. There are clearly lots (and lots and lots) of items in those categories which are not expected to be HTTP(S) encapsulated traffic. Additionally, look at all of the applications defined as type Client/Server. Again, not expected to be HTTP(S) encapsulated.

    I'm not saying you are wrong about what the Application Filter is supposed to be used for, but XG currently looks a whole lot like it should work the way I was expecting.

  • Ok, first off all, this is not my area of expertise.  So take everything that I'm about to say as just my understanding and I could be wrong.

    First of all, Applications are used for non-HTTP/HTTPS all the time.  This is implemented by the IPS engine doing generic packet inspection on any incoming packet on any port.  In the case of HTTPS, the detection is done by the httpproxy (since it can read inside the encrypted packets) for everything else the detection is done by IPS.  Enforcement (dropping packets) is done by IPS.  At a pure guess, non-HTTP/HTTPS is somewhere between 5-25% of the definitions (behind the scene).  Sorry, Iferrara, though you are correct in what the majority of the Applications are for, there are many that don't fall in your definition.

    Secondly, you must understand what "Allow" and "Block" really mean.  "Allow" does not mean the traffic is allowed.  It means that traffic will not be blocked at this stage.

    For example, think of the HTTP Proxy.  Lets say you get set Search Engine to Allow.  Now you go to your browser and try to access Google and you can't.  Why?  Because in the firewall, HTTP and HTTPS are not allowed services.  Ok, so you allow them.  You can access Google.  And suddenly you get a block page.  Why?  You were blocked on virus.  Even though your policy says "Allow Search Engines", it actually means "Don't block due to the fact it is Search Engines".  Your traffic can still be blocked for many reasons, even though it says Allow.

    So lets take that to NTP and applications.  Setting an Application of NTP to Allow doesn't mean NTP is allowed by everything in the XG system.  It means NTP is not blocked by the IPS / Application Filter.  It may still be blocked by the firewall ports not being open.

    So...  If NTP requires you to have the firewall port / service for NTP open - why bother having an application definition for it?  Well, what if you want to put time restrictions on when it is allowed.  Or you want to block some things with the Application Filter but still allow NTP.  I'm not sure all the use cases.  But they decided to include NTP as a detectable app.

    What does this mean - if you want to globally allow NTP, do it through a firewall rule that allows the NTP port/service.  If you want more granular control, have the firewall rule allow it and then restrict it with the Application Filter.

    Finally, now that you understand that "Allow" does not actually mean Allow, you should understand that a Application Filter with a default of Allow All and certain applications set to block does not open you up for any additional access or attacks.  I think the only time you want to use a Block All is if you were trying to do something like a server or IoT device lockdown.

    In the same vein, 95% of the time your application filter rule will say Action Block.  The main reason for having Action Allow is to override a lower priority Block.  For example an application filter may be: Allow GMail WebChat, Block Instant Messengers, default Allow.


    So that all being said - I have no idea if the NTP application definition is correct or not, works or not.  But if someone wants to test it, they should have a good understanding of how it should work (AFAIK):
    1) With no application filter at all, and a matching high level firewall rule with a Service of "NTP" the NTP traffic should be allowed.  (If not, check firewall logs)
    2) When (1) is satisfied, an Application Filter of Block NTP, default Allow should block the NTP traffic.
    3) When (1) is satisfied, an Application Filter of Allow NTP, Block (select All), default Allow should allow the NTP traffic.
    4) When (1) is satisfied, an Application Filter of Allow NTP, default Block should allow the NTP traffic.
    5) With no firewall that has a service of NTP, the NTP traffic should be blocked.
    6) With no firewall that has a service of NTP, and a Application Filter of Allow NTP, the NTP traffic should be blocked.

  • Thanks Michael for your partecipation here.

    Appreciated it!

    It is strange that Sophos XG is controlling some non-http/s traffic via IPS. This is make no sense and also troubleshooting scenario can be quite complicated. UTM9 did not use IPS and Application filter for blocking non-http/s traffic. I know even other Vendors do the same think like UTM9.

    Sorry, but I do not understand scenario 6. If the App Filter allows NTP, latter should be allowed and not blocked. Maybe I missed something.

  • UTM does non-HTTP/HTTPS as well. I just checked, there are application definitions for things like DHCP.  Definitions like Clash of Clans probably (I don't know for sure) apply to the higher level ports they connect to the game servers with.

     

    In scenario 6, the traffic is blocked by the firewall.  The application filter does not come into play.  An application filter Allow cannot override a firewall Block.

     

    Let me rephrase 2 more ways:

    1) In order for HTTPS traffic to be allowed it must be allowed by all of these systems (Firewall, Category, Certificate, Antivirus, Application) and if any one of those systems says Blocked then the traffic is blocked.  In order for NTP traffic to be allowed it must be allowed by all of these systems (Firewall, Application) and if any one of those systems says Blocked then the traffic is blocked.

    2) Traffic passes through a series of filters, in order.  Each filter has the ability to block the traffic, or allow it through its own filter and on to the next filter.  A packet on port 123 (which is what NTP uses) arrives with a particular source and destination.  The firewall tries to find a firewall rule that says matches that source, destination, and port.  If no firewall rules are matched the packet is dropped.  If a firewall rule does match then that rule is selected and it looks at the configured Application Filter for that firewall rule.  The IPS then looks at the packet on port 123 and it can apply its own filter about whether that packet is NTP or not and whether to drop it or to pass through its filter.  Possibly after IPS there may be other filters.

    One point in (2) that explains this specific scenario.  Lets say you have 5 rules, each of them have different Application Filters.  None of the rules apply to port 123.  Given that no firewall rule matches, how would the system even know what application filter you wanted?  You must have a matching firewall rule before you can even choose which policy that IPS applies.

  • Thanks Michael.

    Reading the scenario 6 again gave me the idea why traffic is blocked (because the Application filter exists but it is not attached to any firewall rule). Sorry but it was not clear for me the scenario 6.

    I know how the packets are inspected and how the flow works.

    So in terms of Application filter, this is something newer and should be improved. I mean, if the application filter is used to allow/block application (even non-http/s), you should add more and more application inside the filter. For example, by creating application for Office365, Playstation games, etc...instead of using Firewall rules.

    At the moment if a certain application is allowed, on XG admins can get mad because allowed Applications are not even logged. So imagine 20/30 rules with each one with its own Application filters, finding which App and which firewall rules (because combination of them can exist) can be very hard to debug.

    So you should log even allowed applications, as UTM9 does or find a proper way to give us more log without using tcpdump.

    Thanks

  • I'm not the one who is determining which applications should be included or not.  But if you think there are applications that should be added, feel free to raise that request.  But let me challenge you on your examples, lets say Office365.

    Can you give me a real world example where you would ever create a Application Filter with a rule that would Allow Office365?  Remember, an application Allow rule will do nothing to allow Office365 unless you also have an application rule that blocks Office365.

    Can you give me a real world example where you would ever create a Application Filter with a rule that would Block Office365?  Is there a business need to ever do this?

    If you want to know about application detection (not enforcement), as far as I know any firewall rule that includes any Application Filter (such as Allow All) will mark and log all traffic that successfully gets through that firewall rule.  If you find that there are applications that the XG supports in the list that are not being logged, it could be that they are not logged because they are allowed via a rule that does not contain an Application Filter, or it could be that they are not logged because the traffic is not matching any firewall rule and is blocked.

    If you want to know about applications that the firewall is blocking, you need to use tcpdump.  IPS / Application Filter cannot tell you because it was dropped before it got there.

    Remember - the Application Filter is used to Block applications that are making it through your firewall.  It is not used to Allow applications.  Therefore the application detection is only used on traffic that is allowed via a firewall rule, where that firewall rule has an application filter assigned.

  • Michael,

     

    Thank you for taking the time to jump in and explain a few things. This has helped clarify some of the expected behavior. That said, there is some very inconsistent (buggy) behavior in the way the Application Filter works within XG.

    The three firewall rules in the above screenshot correspond to your scenarios 1,2, and 4 using LDAP as the test protocol.  I skipped 3 for no good reason other than I missed it.  Anyway, scenario 1 and 2 are as expected but scenario 4 failed miserably.

    The application filter log above shows the denied result of scenario 2 on the bottom, which was expected. The FW rule allowed but filter denied LDAP protocol specifically. The top line of the log however is the result of scenario 4. The cloned FW rule was given an application filter which was base deny and explicit LDAP allow. In this instance, the LDAP traffic was not even identified by XG as being LDAP traffic and was blocked in contradiction to the application filter.

    This misbehavior is consistent with what I've seen trying to test NTP traffic. When the application filter is set to deny NTP it identifies NTP on port 123 correctly and blocks the traffic. When set to allow NTP traffic, XG does not recognize NTP and blocks the traffic anyway.

    I'm not trying to pick apart XG or be difficult... just think we've identified a bug in the application filter and trying to help understand it.

  • Thanks Michael....however allowed Apps are not moniterd. XG Application filters log only blocked Apps.

    Imagin you have a firewall rule where the Application filter is deny all but allow few application. How can users determine if that App is allowed and which App is allowing it?

    At least this happens at the moment with current version. and replied many times that XG logs only denied App and not allowed one.

    Anyway, I appreciate yours replies here...even if it is not your topic!

  • Hi Luk,

    I support this request and you can raise the request on Sophos Ideas for logging Allowed Applications in the LogViewer. Check #2 in my

    Just for a bit more information here, Check #2 in my Troubleshooting Guide, IPS(Application Filter) in XG is accounted at the bottom of the list and any traffic that is allowed will be processed by all the other check before falling into Application Filter check. So considering that the blocks are logged in Log Viewer, if something is allowed and not logged then, it becomes certain that Application Filter is not blocking it and one must eventually take a step back and configure a Firewall Rule to block the services.

    Thanks