Finding types
Every finding the rule audit or the pre-check can report, with its severity, what it means and what to do. The audit compares each policy with the enabled policies above it in the same policy set (Fortinet: policy package), top-down, first match wins.
Severities
| Severity | Used for |
|---|---|
| Critical | An accept policy from all sources to all destinations on all services. |
| High | Shadowed policies, and accept policies that are very broad. |
| Medium | Redundant, never hit, inactive, and accept policies that allow every service. |
| Low | Disabled and not-logged policies; in the pre-check, a new rule that would make another redundant. |
| Info | Crossing rules (partial overlap) and best-effort analysis. |
Summary
| Type (screen label) | Internal name | Severity | In one line |
|---|---|---|---|
| Shadowed | shadowed |
High | A policy above with the opposite action catches all of its traffic: it never takes effect. |
| Redundant | redundant |
Medium | A policy above already does the same for all of its traffic. |
| Partial overlap | conflict |
Info | It crosses a policy above with the opposite action. |
| Never hit | unused |
Medium | No hits on any firewall it is installed on. |
| Inactive | inactive |
Medium | Hit in the past, but not within the inactive threshold. |
| Disabled | disabled |
Low | Switched off. |
| Too broad | permissive |
Critical, High or Medium | Accepts with "all" sources, destinations or services. |
| Not logged | no_log |
Low | Accepts without logging. |
| Best-effort | unresolved |
Info | Uses objects FireSight can't fully resolve. |
The internal name appears in the CSV export.
Shadowed
What it means. A policy above matches all of this policy's traffic and does the opposite (it allows what this one blocks, or the reverse). The firewall stops at the first match, so this policy never takes effect. The rule base doesn't do what it appears to.
What to do. If the policy is meant to apply, move it above the policy that hides it, or narrow that policy so it no longer covers this traffic. If it isn't needed any more, disable or remove it.
Drawn as a red line in the rule stack.
Redundant
What it means. A policy above already does the same thing (same action) for all of this policy's traffic, so this one is never reached.
What to do. It can usually be removed to keep the policy set tidy. First check it doesn't carry something the upper policy lacks, such as logging, a schedule or a security profile; if it does, move it above the other or merge the two.
Drawn as a grey line.
Partial overlap (crossing rules)
What it means. Two policies with opposite actions share some traffic, but neither contains the other, so it isn't a simple exception above a general rule. The shared traffic is decided by the upper one; the rest of the lower policy's traffic still reaches it. This is rarely deliberate.
A narrow exception above a broader policy (for example specific allows above a final deny-all) is normal design and is not reported.
What to do. Check the shared traffic is handled the way you intend. If the lower policy should win for it, move it above; otherwise narrow one of them so they no longer cross.
Drawn as a dashed orange line. The PDF report calls it Crossing rules.
Never hit
What it means. No firewall that installs this policy set has counted any traffic for the policy.
What to do. If the service it was made for is gone, disable it for a while and remove it if nobody complains. New policies and rarely used services (backups, disaster recovery) can legitimately show no hits.
Needs hit counters. It isn't reported for snapshots from configuration files or backups, which have none.
Inactive
What it means. The policy had traffic in the past, but none within Inactive rule threshold (days) (90 by default; set under Settings).
What to do. Confirm with the owner whether it's still needed; disable it first, then remove it.
Needs hit counters, like Never hit.
Disabled
What it means. The policy is switched off, so the firewall ignores it. It still has to be read and maintained. Disabled policies are not checked for anything else.
What to do. Remove it if it's no longer needed, enable it if it was turned off by mistake, or record why it is kept.
Too broad
Reported for accept policies only.
| Severity | When |
|---|---|
| Critical | All sources, all destinations and all services. |
| High | All sources and all destinations, or all sources or destinations with all services. |
| Medium | All services. |
What to do. Narrow it to the networks and services that really need it. The hit counters and Never hit findings help show what's actually used.
Not logged
What it means. An accept policy doesn't log traffic, so there's no record of what it lets through.
What to do. Turn on logging for all sessions (or at least security events), unless the volume is known to be a problem.
Best-effort
What it means. The policy uses FQDN, geography, negation, identity, internet-service or other dynamic matching that FireSight can't resolve to exact networks. Its overlap checks are best-effort, and it is never reported as hiding other policies, to avoid false alarms.
What to do. Nothing, unless it matters; then review it by hand.
In the pre-check of a new rule
The pre-check runs the same checks on a new policy at its planned position, and also looks at the policies below it:
| Finding | Severity | Message |
|---|---|---|
| Shadowed or Redundant | High or Medium | A policy above already hides or duplicates the new one. |
| Partial overlap | Info | A policy above takes some of the new one's traffic. |
| Shadowed | High | The new rule would shadow …: it would do the opposite of a policy below for all of that policy's traffic. |
| Redundant | Low | The new rule would make … redundant. |
| Partial overlap | Info | The new rule would allow (or block) some of the traffic … matches before it is reached. |
| Too broad, Not logged | as above | About the new policy itself. |
Never hit, Inactive and Best-effort aren't reported for new rules.