PAN-OS: Understanding App-ID Dependencies

Introduction: Why Dependencies Matter

Modern applications rarely operate in isolation. They often rely on other underlying applications or services to function correctly. For example, a web application needs DNS to resolve hostnames and typically uses SSL/TLS for secure communication. Palo Alto Networks App-ID technology is designed to understand many of these relationships, known as Application Dependencies .

Understanding how PAN-OS identifies and handles these dependencies is crucial for creating accurate and effective Security Policies. If dependencies are not correctly accounted for, users might find that applications allowed by policy still fail to work because a required underlying service is being blocked.

Types of App-ID Dependencies

PAN-OS categorizes dependencies primarily into two types:

  1. Implicit Dependencies:

    • These are fundamental protocols or services that many applications inherently rely on but aren't usually listed as explicit requirements in the App-ID definition.
    • Examples:
      • dns : Needed for resolving domain names used by almost all internet applications.
      • ssl / tls : Used for establishing secure connections before the actual application data is exchanged (e.g., HTTPS uses SSL/TLS).
      • stun : Often used for NAT traversal by real-time communication apps.
    • How PAN-OS Handles Them: Generally, if you allow a parent application (e.g., google-base ) with the Service set to application-default , the firewall implicitly allows the necessary standard dependencies like DNS lookups and the initial SSL/TLS handshake *for that specific session*. It recognizes these are required for the allowed application to function.
  2. Explicit Dependencies:

    • These are specific applications that another application directly requires to function fully. These dependencies *are* listed in the App-ID definition for the parent application.
    • Examples:
      • ms-office365-base might explicitly depend on ms-office365-online or other specific Office 365 services.
      • facebook-apps might explicitly depend on facebook-base .
      • A specific online game might depend on an authentication service App-ID.
    • How PAN-OS Handles Them: Similar to implicit dependencies, if you allow the parent application, the firewall attempts to automatically allow its known explicit dependencies within the context of that session.
    • Where to Find Them: You can view explicit dependencies for a specific App-ID in the GUI under Objects > Applications > [Select Application] or on the Applipedia website.

Where Dependencies Come Into Play: Policy & Firewall Behavior

Security Policy Implications

Troubleshooting Application Failures

Decryption Considerations

Best Practices for Handling Dependencies

Gotchas and Caveats

Using Policy Optimizer for Dependency Insights

While not its primary function, the Policy Optimizer ( Policies > Policy Optimizer ) can offer clues about dependencies:

Policy Optimizer is more a tool for rule refinement and identifying traffic composition than a dedicated dependency analysis tool, but its "Apps Seen" data provides valuable context.

PCNSE Exam Focus

For the PCNSE exam, concerning App-ID dependencies:

App-ID Dependency Quiz

1. What is considered an 'Implicit Dependency' in PAN-OS App-ID?

Implicit dependencies are common, required underlying services (DNS for name lookup, SSL for the initial handshake) that the firewall typically allows automatically for a permitted parent application session when using `application-default`.

2. How does the firewall typically handle implicit dependencies like DNS when a Security rule allows a parent application (e.g., `web-browsing`) with Service set to `application-default`?

When using `application-default`, the firewall understands that applications like `web-browsing` require DNS and implicitly permits the related DNS query as part of establishing the allowed web session.

3. Where can an administrator find the list of 'Explicit Dependencies' for a standard Palo Alto Networks App-ID?

Palo Alto Networks documents explicit dependencies within the properties of the Application object in the firewall GUI and on the external Applipedia reference site.

4. What is the recommended 'Service' setting in a Security Policy rule to best facilitate automatic handling of application dependencies?

Using `application-default` allows the firewall to expect standard behavior and ports, making it much more effective at automatically identifying and allowing necessary implicit and explicit dependencies on their correct ports.

5. A user reports that Salesforce (allowed by App-ID `salesforce-base` with `application-default`) is not working. Logs show `dns` traffic from the user's zone being denied by a lower rule. What is the likely issue?

Even though the firewall tries to implicitly allow DNS for the Salesforce session, if another security rule explicitly blocks DNS from that source, the dependency will fail, causing the parent application to fail.

6. When might you need an explicit Security rule to allow `ssl` or `tls`?

While often handled implicitly, sometimes a broader, lower-priority rule allowing basic `ssl` and `web-browsing` (using `application-default`) is used as a safety net or for general outbound access after specific applications have been addressed by higher rules.

7. How does enabling SSL/TLS Decryption help with identifying application dependencies?

If App B depends on App C, and both run inside the SSL tunnel established by App A, App-ID can only see App B and App C accurately if the SSL tunnel (App A) is decrypted first.

8. How can the Policy Optimizer tool assist with understanding application dependencies?

Policy Optimizer's "Apps Seen" list, based on logs, shows all App-IDs associated with traffic hitting a rule. This can include the primary application plus any dependencies (like `ssl`, `dns`, or specific helper apps) that were part of those sessions, providing visibility.

9. An administrator allows a custom internal application using App-ID `internal-app-X` on service `tcp-9000`. Users report it doesn't work. What dependency issue might be occurring?

Even if the main application port (TCP/9000) is allowed, the application likely still needs standard dependencies like DNS (UDP/53) to resolve server names or potentially other helper applications. These dependencies could be blocked elsewhere in the policy.

10. Which is a common "gotcha" related to App-ID dependencies?

A common mistake is using `any` in the Service column hoping to allow dependencies. While it might seem to work sometimes, it significantly degrades security by allowing the primary application on non-standard ports and doesn't guarantee dependencies work correctly (as they might still be blocked by other rules). `application-default` is preferred.

References