Pulse / Ivanti Secure Connect
Overview
Pulse Connect Secure is an SSL VPN solution for remote and mobile users.
Related Built-in Rules
The following Sekoia.io built-in rules match the intake Ivanti / Pulse Connect Secure. This documentation is updated automatically and is based solely on the fields used by the intake which are checked against our rules. This means that some rules will be listed but might not be relevant with the intake.
SEKOIA.IO x Ivanti / Pulse Connect Secure on ATT&CK Navigator
Burp Suite Tool Detected
Burp Suite is a cybersecurity tool. When used as a proxy service, its purpose is to intercept packets and modify them to send them to the server. Burp Collaborator is a network service that Burp Suite uses to help discover many kinds of vulnerabilities (vulnerabilities scanner)
- Effort: intermediate
Potential Azure AD Phishing Page (Adversary-in-the-Middle)
Detects an HTTP request to an URL typical of the Azure AD authentication flow, but towards a domain that is not one the legitimate Microsoft domains used for Azure AD authentication.
- Effort: intermediate
Potential DNS Tunnel
Detects domain name which is longer than 95 characters. Long domain names are distinctive of DNS tunnels.
- Effort: advanced
SEKOIA.IO Intelligence Feed
Detect threats based on indicators of compromise (IOCs) collected by SEKOIA's Threat and Detection Research team.
- Effort: elementary
Telegram Bot API Request
Detects suspicious DNS queries to api.telegram.org used by Telegram Bots of any kind
- Effort: advanced
Event Categories
The following table lists the data source offered by this integration.
Data Source | Description |
---|---|
Authentication logs |
Events are produced when a user authenticate on services of the company my means of the VPN |
Web logs |
Events are produced on web service access |
Network device logs |
Events are produced on VPN connection |
In details, the following table denotes the type of events produced by this integration.
Name | Values |
---|---|
Kind | `` |
Category | `` |
Type | info |
Event Samples
Find below few samples of events and how they are normalized by Sekoia.io.
{
"message": "id=firewall time=\"2021-01-28 13:46:08\" pri=6 fw=172.16.128.22 vpn=CB2XXPCS02 ivs=Root user=bob realm=\"SEKOIA_User\" roles=\"VDI-Pulse_User_Role\" proto=auth src=176.134.164.62 dst= dstname= type=vpn op= arg=\"\" result= sent= rcvd= agent=\"\" duration= msg=\"AUT24804: Host Checker policy 'Sekoia_Host Checker' failed on host '176.134.164.62' address '00-d8-61-35-80-81' for user 'bob' reason 'Rule-Antivirus_Check:Le logiciel antivirus indiqu\u00e9 dans les exigences de s\u00e9curit\u00e9 n'est pas install\u00e9.'.\"",
"event": {
"category": [
"host"
],
"code": "AUT24804",
"provider": "auth",
"reason": "Rule-Antivirus_Check:Le logiciel antivirus indiqu\u00e9 dans les exigences de s\u00e9curit\u00e9 n'est pas install\u00e9.",
"type": [
"info"
]
},
"action": {
"name": "AUT24804"
},
"host": {
"ip": [
"176.134.164.62"
],
"mac": [
"00-d8-61-35-80-81"
]
},
"network": {
"forwarded_ip": "172.16.128.22"
},
"observer": {
"ip": [
"172.16.128.22"
]
},
"related": {
"ip": [
"172.16.128.22",
"176.134.164.62"
],
"user": [
"bob"
]
},
"rule": {
"name": "Sekoia_Host Checker"
},
"service": {
"name": "CB2XXPCS02",
"type": "vpn"
},
"source": {
"address": "176.134.164.62",
"ip": "176.134.164.62"
},
"user": {
"domain": "SEKOIA_User",
"name": "bob",
"roles": [
"VDI-Pulse_User_Role"
]
}
}
{
"message": "id=firewall time=\"2021-01-28 13:46:05\" pri=6 fw=172.16.128.22 vpn=CB2XXPCS02 ivs=Root user=alice realm=\"SEKOIA_User\" roles=\"SEKOIA_User_Role\" proto=auth src=19.160.74.9 dst= dstname= type=vpn op= arg=\"\" result= sent= rcvd= agent=\"\" duration= msg=\"AUT24803: Host Checker policy 'Sekoia_Host Checker' passed on host '19.160.74.9' address '60-f2-62-ea-2d-a1' for user 'alice'.\"",
"event": {
"category": [
"host"
],
"code": "AUT24803",
"provider": "auth",
"reason": " Host Checker policy 'Sekoia_Host Checker' passed on host '19.160.74.9' address '60-f2-62-ea-2d-a1' for user 'alice'.",
"type": [
"info"
]
},
"action": {
"name": "AUT24803"
},
"host": {
"ip": [
"19.160.74.9"
],
"mac": [
"60-f2-62-ea-2d-a1"
]
},
"network": {
"forwarded_ip": "172.16.128.22"
},
"observer": {
"ip": [
"172.16.128.22"
]
},
"related": {
"ip": [
"172.16.128.22",
"19.160.74.9"
],
"user": [
"alice"
]
},
"rule": {
"name": "Sekoia_Host Checker"
},
"service": {
"name": "CB2XXPCS02",
"type": "vpn"
},
"source": {
"address": "19.160.74.9",
"ip": "19.160.74.9"
},
"user": {
"domain": "SEKOIA_User",
"name": "alice",
"roles": [
"SEKOIA_User_Role"
]
}
}
{
"message": "id=firewall time=\"2021-01-28 14:14:04\" pri=6 fw=172.16.128.22 vpn=CB2XXPCS02 ivs=Default Network user=bob realm=\"SEKOIA_User\" roles=\"\" proto=auth src=176.168.192.159 dst= dstname= type=vpn op= arg=\"\" result= sent= rcvd= agent=\"\" duration= msg=\"AUT23457: Login failed using auth server RSA (ACE Server). Reason: Failed\"",
"event": {
"category": [
"authentication"
],
"code": "AUT23457",
"provider": "auth",
"reason": " Login failed using auth server RSA (ACE Server). Reason: Failed",
"type": [
"info"
]
},
"action": {
"name": "AUT23457"
},
"network": {
"forwarded_ip": "172.16.128.22"
},
"observer": {
"ip": [
"172.16.128.22"
]
},
"related": {
"ip": [
"172.16.128.22",
"176.168.192.159"
],
"user": [
"bob"
]
},
"service": {
"name": "CB2XXPCS02",
"type": "vpn"
},
"source": {
"address": "176.168.192.159",
"ip": "176.168.192.159"
},
"user": {
"domain": "SEKOIA_User",
"name": "bob"
}
}
{
"message": "id=firewall time=\"2023-10-17 10:21:15\" pri=6 fw=3.4.5.6 vpn=EX023-V6 user=MYDomain\\\\johndoe realm=\"Example\" roles=\"Example_Sales\" type=mgmt proto=auth src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"AUT20920: Connection from IP 1.2.3.4 not authenticated yet (URL=/cgi/pal?tm=26&key=1234567890)\"\n",
"event": {
"category": [
"network"
],
"code": "AUT20920",
"provider": "auth",
"reason": " Connection from IP 1.2.3.4 not authenticated yet (URL=/cgi/pal?tm=26&key=1234567890)",
"type": [
"info"
]
},
"action": {
"name": "AUT20920"
},
"network": {
"forwarded_ip": "3.4.5.6"
},
"observer": {
"ip": [
"3.4.5.6"
]
},
"related": {
"ip": [
"1.2.3.4",
"3.4.5.6"
],
"user": [
"MYDomain\\\\johndoe"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "1.2.3.4",
"ip": "1.2.3.4"
},
"url": {
"path": "/cgi/pal?tm=26&key=1234567890"
},
"user": {
"domain": "Example",
"name": "MYDomain\\\\johndoe",
"roles": [
"Example_Sales"
]
}
}
{
"message": "id=firewall time=\"2023-10-17 10:21:14\" pri=4 fw=3.4.5.6 vpn=EX023-V6 user=System realm=\"\" roles=\"\" type=mgmt proto= src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"AUT24604: SSL negotiation failed while client at source IP '1.2.3.4' was trying to connect to '5.6.7.8'. Reason: 'sslv3 alert bad certificate'\"\n\n",
"event": {
"category": [
"network"
],
"code": "AUT24604",
"reason": "sslv3 alert bad certificate",
"type": [
"info"
]
},
"action": {
"name": "AUT24604"
},
"destination": {
"address": "5.6.7.8",
"ip": "5.6.7.8"
},
"network": {
"forwarded_ip": "3.4.5.6"
},
"observer": {
"ip": [
"3.4.5.6"
]
},
"related": {
"ip": [
"1.2.3.4",
"3.4.5.6",
"5.6.7.8"
],
"user": [
"System"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "1.2.3.4",
"ip": "1.2.3.4"
},
"user": {
"name": "System"
}
}
{
"message": "id=firewall time=\"2023-10-17 18:18:12\" pri=6 fw=3.4.5.6 vpn=EX023-V6 ivs=Root user=System realm=\"\" roles=\"\" type=mgmt proto= src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"LIC30499: Leased 0 units of 'Virtual CPUs' from 1.2.3.4 - reserved: 0 maximum: 0 incremental quantum: 0\"\n",
"event": {
"category": [
"network"
],
"code": "LIC30499",
"reason": " Leased 0 units of 'Virtual CPUs' from 1.2.3.4 - reserved: 0 maximum: 0 incremental quantum: 0",
"type": [
"info"
]
},
"action": {
"name": "LIC30499"
},
"network": {
"forwarded_ip": "3.4.5.6"
},
"observer": {
"ip": [
"3.4.5.6"
]
},
"related": {
"ip": [
"1.2.3.4",
"3.4.5.6"
],
"user": [
"System"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "1.2.3.4",
"ip": "1.2.3.4"
},
"user": {
"name": "System"
}
}
{
"message": "id=firewall time=\"2023-10-17 10:19:03\" pri=0 fw=3.4.5.6 vpn=EX023-V6 user=System realm=\"\" roles=\"\" type=mgmt proto= src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"SYS20704: Sending iveLogNearlyFull [ logFullPercent='93' logName='event' ] SNMP trap to 5.6.7.8:162\"\n",
"event": {
"category": [
"network"
],
"code": "SYS20704",
"reason": " Sending iveLogNearlyFull [ logFullPercent='93' logName='event' ] SNMP trap to 5.6.7.8:162",
"type": [
"info"
]
},
"action": {
"name": "SYS20704"
},
"destination": {
"address": "5.6.7.8",
"ip": "5.6.7.8",
"port": 162
},
"network": {
"forwarded_ip": "3.4.5.6"
},
"observer": {
"ip": [
"3.4.5.6"
]
},
"related": {
"ip": [
"1.2.3.4",
"3.4.5.6",
"5.6.7.8"
],
"user": [
"System"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "1.2.3.4",
"ip": "1.2.3.4"
},
"user": {
"name": "System"
}
}
{
"message": "id=firewall time=\"2023-10-17 18:18:16\" pri=6 fw=3.4.5.6 vpn=EX023-V6 ivs=Default Network user=System realm=\"\" roles=\"\" type=mgmt proto= src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"SYS31231: Successfully executed 'Post Settings Request'.\"\n",
"event": {
"category": [
"network"
],
"code": "SYS31231",
"reason": " Successfully executed 'Post Settings Request'.",
"type": [
"info"
]
},
"action": {
"name": "SYS31231"
},
"network": {
"forwarded_ip": "3.4.5.6"
},
"observer": {
"ip": [
"3.4.5.6"
]
},
"related": {
"ip": [
"1.2.3.4",
"3.4.5.6"
],
"user": [
"System"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "1.2.3.4",
"ip": "1.2.3.4"
},
"user": {
"name": "System"
}
}
{
"message": "id=firewall time=\"2024-01-12 23:00:22\" pri=6 fw=8.8.8.8 vpn=EX023-V6 user=System realm=\"\" roles=\"\" type=mgmt proto= src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"SYS31437: Successful syslog connection to peer: '3.4.5.6'\"",
"event": {
"category": [
"network"
],
"code": "SYS31437",
"reason": " Successful syslog connection to peer: '3.4.5.6'",
"type": [
"info"
]
},
"action": {
"name": "SYS31437"
},
"network": {
"forwarded_ip": "8.8.8.8"
},
"observer": {
"ip": [
"8.8.8.8"
]
},
"related": {
"ip": [
"3.4.5.6",
"8.8.8.8"
],
"user": [
"System"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "3.4.5.6",
"ip": "3.4.5.6"
},
"user": {
"name": "System"
}
}
{
"message": "id=firewall time=\"2023-10-17 10:14:05\" pri=6 fw=3.4.5.6 vpn=EX023-V6 user=System realm=\"\" roles=\"\" type=mgmt proto= src=1.2.3.4 dst= dstname= sent= rcvd= msg=\"SYS32083: LMDB shards usage stats shard: 0:1% 1:1% 2:1% 3:1% 4:1% 5:1% 6:1% 7:1% 8:1% 9:1% a:1% b:1% c:1% d:1% e:1% f:1% \"\n",
"event": {
"category": [
"network"
],
"code": "SYS32083",
"reason": " LMDB shards usage stats shard: 0:1% 1:1% 2:1% 3:1% 4:1% 5:1% 6:1% 7:1% 8:1% 9:1% a:1% b:1% c:1% d:1% e:1% f:1%",
"type": [
"info"
]
},
"action": {
"name": "SYS32083"
},
"network": {
"forwarded_ip": "3.4.5.6"
},
"observer": {
"ip": [
"3.4.5.6"
]
},
"related": {
"ip": [
"1.2.3.4",
"3.4.5.6"
],
"user": [
"System"
]
},
"service": {
"name": "EX023-V6",
"type": "mgmt"
},
"source": {
"address": "1.2.3.4",
"ip": "1.2.3.4"
},
"user": {
"name": "System"
}
}
{
"message": "id=firewall time=\"2021-03-04 17:05:15\" pri=6 fw=172.16.128.22 vpn=CB2XXPCS02 ivs=Default Network user=System realm=\"\" roles=\"\" proto= src=93.19.66.118 dst= dstname= type=vpn op= arg=\"\" result= sent= rcvd= agent=\"\" duration= msg=\"AUT31556: Unauthenticated request url /dana/js?prot=1&svc=4 came from IP 93.19.66.118.\"",
"event": {
"category": [
"network"
],
"code": "AUT31556",
"reason": " Unauthenticated request url /dana/js?prot=1&svc=4 came from IP 93.19.66.118.",
"type": [
"info"
]
},
"action": {
"name": "AUT31556"
},
"network": {
"forwarded_ip": "172.16.128.22"
},
"observer": {
"ip": [
"172.16.128.22"
]
},
"related": {
"ip": [
"172.16.128.22",
"93.19.66.118"
],
"user": [
"System"
]
},
"service": {
"name": "CB2XXPCS02",
"type": "vpn"
},
"source": {
"address": "93.19.66.118",
"ip": "93.19.66.118"
},
"url": {
"path": "/dana/js?prot=1&svc=4"
},
"user": {
"name": "System"
}
}
Extracted Fields
The following table lists the fields that are extracted, normalized under the ECS format, analyzed and indexed by the parser. It should be noted that infered fields are not listed.
Name | Type | Description |
---|---|---|
destination.bytes |
long |
Bytes sent from the destination to the source. |
destination.domain |
keyword |
The domain name of the destination. |
destination.ip |
ip |
IP address of the destination. |
destination.port |
long |
Port of the destination. |
event.code |
keyword |
Identification code for this event. |
event.provider |
keyword |
Source of the event. |
event.reason |
keyword |
Reason why this event happened, according to the source |
event.type |
keyword |
Event type. The third categorization field in the hierarchy. |
host.ip |
ip |
Host ip addresses. |
host.mac |
keyword |
Host MAC addresses. |
host.name |
keyword |
Name of the host. |
network.forwarded_ip |
ip |
Host IP address when the source IP address is the proxy. |
observer.ip |
ip |
IP addresses of the observer. |
rule.name |
keyword |
Rule name |
service.name |
keyword |
Name of the service. |
service.type |
keyword |
The type of the service. |
source.bytes |
long |
Bytes sent from the source to the destination. |
source.ip |
ip |
IP address of the source. |
url.path |
wildcard |
Path of the request, such as "/search". |
user.domain |
keyword |
Name of the directory the user is a member of. |
user.name |
keyword |
Short name or login of the user. |
user.roles |
keyword |
Array of user roles at the time of the event. |
Configure
As of now, the main solution to collect Pulse Secure Connect logs leverages the Rsyslog recipe along with the WELF log format offered by Pulse Secure. Please share your experiences with other recipes by editing this documentation.
Rsyslog
Please refer to the documentation of Pulse Secure Connect to forward events to your syslog concentrator. The reader can consult the Syslog Forwarding documentation to forward these logs to Sekoia.io.