PH_Rule_Access_5
Enabled
Detects excessive logon failures at a server - 5 consecutive failures in a 10 minute period
7
Security
Credential Access
Credential Access consists of techniques for stealing credentials like account names and passwords. Techniques used to get credentials include keylogging or credential dumping. Using legitimate credentials can give adversaries access to systems, make them harder to detect, and provide the opportunity to create more accounts to help achieve their goals.
https://attack.mitre.org/tactics/TA0006T1110.001
Brute Force: Password Guessing
Adversaries with no prior knowledge of legitimate credentials within the system or environment may guess passwords to attempt access to accounts.
https://attack.mitre.org/techniques/T1110/001Server
Windows via OMI or FortiSIEM Agent, Linux via Syslog, VMware NSX via Syslog, FortiSIEM via Syslog, IBM AIX via Syslog
Correlation
Identify the source of the incident and the user and make sure that it is a legitimate attempt to log on to the system. Make sure it is not a cached credential from another system while the primary user has changed credential. Make sure there are no other incidents from the source host that may indicate malware trying to gain access to other systems. Make sure there are no vulnerabilities on the source and destination hosts.
If the following pattern or patterns match an ingested event within the given time window in seconds, trigger an incident.
600 seconds
If the following defined pattern/s occur within a 600 second time window.
ExcessServerLoginFailure OR ExcessServerLoginFailure2
This defines how two or more distinct events are related in a time-series based action. e.g. An event occurs followed by another event if the source IP, user, and messageId are the same
ExcessServerLoginFailure.srcIpAddr = ExcessServerLoginFailure2.srcIpAddr AND
ExcessServerLoginFailure.reptDevIpAddr = ExcessServerLoginFailure2.reptDevIpAddr AND
ExcessServerLoginFailure.user = ExcessServerLoginFailure2.user
This is the named definition of the event query, this is important if multiple subpatterns are defined to distinguish them.
This is the query logic that matches incoming events
eventType IN (Group@PH_SYS_EVENT_HostLogonFailure) AND reptDevIpAddr IN (Group@PH_SYS_DEVICE_Server) AND reptDevIpAddr NOT IN (Group@PH_SYS_APP_DOMAIN_CONTROLLER) AND user NOT CONTAIN "$"
This defines how matching events are aggregated, only events with the same matching attribute values are grouped into one unique incident ID
srcIpAddr, reptDevName, reptDevIpAddr, user
This is most typically a numerical constraint that defines when the rule should trigger an incident
COUNT (*) >= 5
Operator Rank: 0 Operator Type: OR
This operator defines the logic condition relating to the prior event subpattern clause and the following event subpattern clause
This is the named definition of the event query, this is important if multiple subpatterns are defined to distinguish them.
This is the query logic that matches incoming events
eventType IN (Group@PH_SYS_EVENT_MultipleHostLogonFailure) AND reptDevIpAddr IN (Group@PH_SYS_DEVICE_Server) AND reptDevIpAddr NOT IN (Group@PH_SYS_APP_DOMAIN_CONTROLLER) AND user NOT CONTAIN "$"
This defines how matching events are aggregated, only events with the same matching attribute values are grouped into one unique incident ID
srcIpAddr, reptDevName, reptDevIpAddr, user
This is most typically a numerical constraint that defines when the rule should trigger an incident
COUNT (*) >= 1
This section defines which fields in matching raw events should be mapped to the incident attributes in the resulting incident.
The available raw event attributes to map are limited to the group by attributes and the aggregate event constraint fields for each subpattern
srcIpAddr = ExcessServerLoginFailure.srcIpAddr,
srcIpAddr = ExcessServerLoginFailure2.srcIpAddr,
destName = ExcessServerLoginFailure.reptDevName,
destName = ExcessServerLoginFailure2.reptDevName,
destIpAddr = ExcessServerLoginFailure.reptDevIpAddr,
destIpAddr = ExcessServerLoginFailure2.reptDevIpAddr,
user = ExcessServerLoginFailure.user,
user = ExcessServerLoginFailure2.user,
incidentCount = ExcessServerLoginFailure.COUNT(*),
incidentCount = ExcessServerLoginFailure2.COUNT(*)