Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ severity: High
status: Available
requiredDataConnectors:
- connectorId: CustomLogsAma
datatypes:
dataTypes:
- ZPA_CL
queryFrequency: 1h
queryPeriod: 24h
Expand All @@ -18,6 +18,19 @@ relevantTechniques:
- T1078
- T1133
query: |
let ZPAEvent = () {
ZPA_CL
| extend EventVendor="Zscaler",
EventProduct="Private Access"
| parse-kv Message as (LogTimestamp:string, Customer:string, SessionID:string, ConnectionID:string, NetworkProtocol:string, DoubleEncryption:string, SrcIpAddr:string, SrcNatIpAddr:string, SrcGeoLatitude:string, SrcGeoLongitude:string, SrcGeoCountry:string, ClientZEN:string, NetworkRuleName:string, ConnectorZEN:string, ConnectorIP:string, ConnectorPort:string, SrcDvcHostname:string, Application:string, AppGroup:string, DstDomainHostname:string, DstIpAddr:string, PolicyProcessingTime:string, CAProcessingTime:string, ConnectorZENSetupTime:string, ConnectionSetupTime:string, ServerSetupTime:string, AppLearnTime:string, TimestampConnectionStart:string, TimestampConnectionEnd:string, TimestampCATx:string, TimestampCARx:string, TimestampAppLearnStart:string, TimestampZENFirstRxClient:string, TimestampZENFirstTxClient:string, TimestampZENLastRxClient:string, TimestampZENLastTxClient:string, TimestampConnectorZENSetupComplete:string, TimestampZENFirstRxConnector:string, TimestampZENFirstTxConnector:string, TimestampZENLastRxConnector:string, TimestampZENLastTxConnector:string, ZENBytesRxClient:string, ZENBytesTxClient:string, ZENTotalBytesRxConnector:string, ZENBytesRxConnector:string, ZENTotalBytesTxConnector:string, ZENBytesTxConnector:string, Idp:string, Version:string, ZEN:string, CertificateCN:string, PrivateIP:string, DvcIpAddr:string, Latitude:string, Longitude:string, CountryCode:string, TimestampAuthentication:string, TimestampUnAuthentication:string, DvcHostname:string, SrcDvcOs:string, DvcType:string, TrustedNetworks:string, TrustedNetworksNames:string, SAMLAttributes:string, PosturesHit:string, PosturesMiss:string, ZENLatitude:string, ZENLongitude:string, ZENCountryCode:string, SessionType:string, Connector:string, ConnectorGroup:string, CPUUtilization:string, MemUtilization:string, ServiceCount:string, InterfaceDefRoute:string, DefRouteGW:string, PrimaryDNSResolver:string, HostUpTime:string, ConnectorUpTime:string, NumOfInterfaces:string, BytesRxInterface:string, PacketsRxInterface:string, ErrorsRxInterface:string, DiscardsRxInterface:string, BytesTxInterface:string, PacketsTxInterface:string, ErrorsTxInterface:string, DiscardsTxInterface:string, ModifiedTime:string, CreationTime:string, ModifiedBy:string, RequestID:string, AuditOldValue:string, AuditNewValue:string, AuditOperationType:string, ObjectType:string, ObjectName:string, ObjectID:string, CustomerID:string, Exporter:string, TimestampRequestReceiveStart:string, TimestampRequestReceiveHeaderFinish:string, TimestampRequestReceiveFinish:string, TimestampRequestTransmitStart:string, TimestampRequestTransmitFinish:string, TimestampResponseReceiveStart:string, TimestampResponseReceiveFinish:string, TimestampResponseTransmitStart:string, TimestampResponseTransmitFinish:string, TotalTimeRequestReceive:string, TotalTimeRequestTransmit:string, TotalTimeResponseReceive:string, TotalTimeResponseTransmit:string, TotalTimeConnectionSetup:string, TotalTimeServerResponse:string, HttpRequestMethod:string, NetworkApplicationProtocol:string, UrlHostname:string, UrlOriginal:string, HttpUserAgentOriginal:string, HttpRequestXff:string, NameID:string, HttpStatusCode:string, HttpRequestBodyBytes:string, HttpResponseBodyBytes:string, SrcPortNumber:string, EventResultDetails:string, CorsToken:string, Origin:string, InternalReason:string, ConnectionStatus:string, SessionStatus:string, Username:string, User:string, ServicePort:string, ServerPort:string, ApplicationPort:string, ZENTotalBytesRxClient:string, TotalBytesRx:string, ZENTotalBytesTxClient:string, TotalBytesTx:string, IPProtocol:double, ClientCountryCode:string, ClientLatitude:string, ClientLongitude:string, ClientPublicIP:string, ClientPrivateIP:string, Policy:string, Host:string, Server:string, ServerIP:string, ClientCity:string, MicroTenantID:string, AppMicroTenantID:string, Platform:string, Hostname:string, NetworkSessionId:string, ) with (pair_delimiter=',', kv_delimiter=':', quote='"')
| extend
EventResult=column_ifexists('InternalReason', column_ifexists('ConnectionStatus', '')),
DvcAction=column_ifexists('ConnectionStatus', column_ifexists('SessionStatus', '')),
DstUserName=column_ifexists('Username', column_ifexists('User', '')),
DstPortNumber=column_ifexists('ServicePort', column_ifexists('ServerPort', column_ifexists('ApplicationPort', ''))),
SrcBytes=column_ifexists('ZENTotalBytesRxClient', column_ifexists('TotalBytesRx', '')),
DstBytes=column_ifexists('ZENTotalBytesTxClient', column_ifexists('TotalBytesTx', ''))
};
let open_sessions =
ZPAEvent
| where DvcAction == 'open'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ severity: High
status: Available
requiredDataConnectors:
- connectorId: CustomLogsAma
datatypes:
dataTypes:
- ZPA_CL
queryFrequency: 1h
queryPeriod: 1h
Expand All @@ -18,6 +18,19 @@ relevantTechniques:
- T1078
- T1133
query: |
let ZPAEvent = () {
ZPA_CL
| extend EventVendor="Zscaler",
EventProduct="Private Access"
| parse-kv Message as (LogTimestamp:string, Customer:string, SessionID:string, ConnectionID:string, NetworkProtocol:string, DoubleEncryption:string, SrcIpAddr:string, SrcNatIpAddr:string, SrcGeoLatitude:string, SrcGeoLongitude:string, SrcGeoCountry:string, ClientZEN:string, NetworkRuleName:string, ConnectorZEN:string, ConnectorIP:string, ConnectorPort:string, SrcDvcHostname:string, Application:string, AppGroup:string, DstDomainHostname:string, DstIpAddr:string, PolicyProcessingTime:string, CAProcessingTime:string, ConnectorZENSetupTime:string, ConnectionSetupTime:string, ServerSetupTime:string, AppLearnTime:string, TimestampConnectionStart:string, TimestampConnectionEnd:string, TimestampCATx:string, TimestampCARx:string, TimestampAppLearnStart:string, TimestampZENFirstRxClient:string, TimestampZENFirstTxClient:string, TimestampZENLastRxClient:string, TimestampZENLastTxClient:string, TimestampConnectorZENSetupComplete:string, TimestampZENFirstRxConnector:string, TimestampZENFirstTxConnector:string, TimestampZENLastRxConnector:string, TimestampZENLastTxConnector:string, ZENBytesRxClient:string, ZENBytesTxClient:string, ZENTotalBytesRxConnector:string, ZENBytesRxConnector:string, ZENTotalBytesTxConnector:string, ZENBytesTxConnector:string, Idp:string, Version:string, ZEN:string, CertificateCN:string, PrivateIP:string, DvcIpAddr:string, Latitude:string, Longitude:string, CountryCode:string, TimestampAuthentication:string, TimestampUnAuthentication:string, DvcHostname:string, SrcDvcOs:string, DvcType:string, TrustedNetworks:string, TrustedNetworksNames:string, SAMLAttributes:string, PosturesHit:string, PosturesMiss:string, ZENLatitude:string, ZENLongitude:string, ZENCountryCode:string, SessionType:string, Connector:string, ConnectorGroup:string, CPUUtilization:string, MemUtilization:string, ServiceCount:string, InterfaceDefRoute:string, DefRouteGW:string, PrimaryDNSResolver:string, HostUpTime:string, ConnectorUpTime:string, NumOfInterfaces:string, BytesRxInterface:string, PacketsRxInterface:string, ErrorsRxInterface:string, DiscardsRxInterface:string, BytesTxInterface:string, PacketsTxInterface:string, ErrorsTxInterface:string, DiscardsTxInterface:string, ModifiedTime:string, CreationTime:string, ModifiedBy:string, RequestID:string, AuditOldValue:string, AuditNewValue:string, AuditOperationType:string, ObjectType:string, ObjectName:string, ObjectID:string, CustomerID:string, Exporter:string, TimestampRequestReceiveStart:string, TimestampRequestReceiveHeaderFinish:string, TimestampRequestReceiveFinish:string, TimestampRequestTransmitStart:string, TimestampRequestTransmitFinish:string, TimestampResponseReceiveStart:string, TimestampResponseReceiveFinish:string, TimestampResponseTransmitStart:string, TimestampResponseTransmitFinish:string, TotalTimeRequestReceive:string, TotalTimeRequestTransmit:string, TotalTimeResponseReceive:string, TotalTimeResponseTransmit:string, TotalTimeConnectionSetup:string, TotalTimeServerResponse:string, HttpRequestMethod:string, NetworkApplicationProtocol:string, UrlHostname:string, UrlOriginal:string, HttpUserAgentOriginal:string, HttpRequestXff:string, NameID:string, HttpStatusCode:string, HttpRequestBodyBytes:string, HttpResponseBodyBytes:string, SrcPortNumber:string, EventResultDetails:string, CorsToken:string, Origin:string, InternalReason:string, ConnectionStatus:string, SessionStatus:string, Username:string, User:string, ServicePort:string, ServerPort:string, ApplicationPort:string, ZENTotalBytesRxClient:string, TotalBytesRx:string, ZENTotalBytesTxClient:string, TotalBytesTx:string, IPProtocol:double, ClientCountryCode:string, ClientLatitude:string, ClientLongitude:string, ClientPublicIP:string, ClientPrivateIP:string, Policy:string, Host:string, Server:string, ServerIP:string, ClientCity:string, MicroTenantID:string, AppMicroTenantID:string, Platform:string, Hostname:string, NetworkSessionId:string, ) with (pair_delimiter=',', kv_delimiter=':', quote='"')
| extend
EventResult=column_ifexists('InternalReason', column_ifexists('ConnectionStatus', '')),
DvcAction=column_ifexists('ConnectionStatus', column_ifexists('SessionStatus', '')),
DstUserName=column_ifexists('Username', column_ifexists('User', '')),
DstPortNumber=column_ifexists('ServicePort', column_ifexists('ServerPort', column_ifexists('ApplicationPort', ''))),
SrcBytes=column_ifexists('ZENTotalBytesRxClient', column_ifexists('TotalBytesRx', '')),
DstBytes=column_ifexists('ZENTotalBytesTxClient', column_ifexists('TotalBytesTx', ''))
};
let threshold = 1000;
ZPAEvent
| where EventResult has "REJECTED_BY_POLICY"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ severity: High
status: Available
requiredDataConnectors:
- connectorId: CustomLogsAma
datatypes:
dataTypes:
- ZPA_CL
queryFrequency: 1h
queryPeriod: 1h
Expand All @@ -18,6 +18,19 @@ relevantTechniques:
- T1190
- T1133
query: |
let ZPAEvent = () {
ZPA_CL
| extend EventVendor="Zscaler",
EventProduct="Private Access"
| parse-kv Message as (LogTimestamp:string, Customer:string, SessionID:string, ConnectionID:string, NetworkProtocol:string, DoubleEncryption:string, SrcIpAddr:string, SrcNatIpAddr:string, SrcGeoLatitude:string, SrcGeoLongitude:string, SrcGeoCountry:string, ClientZEN:string, NetworkRuleName:string, ConnectorZEN:string, ConnectorIP:string, ConnectorPort:string, SrcDvcHostname:string, Application:string, AppGroup:string, DstDomainHostname:string, DstIpAddr:string, PolicyProcessingTime:string, CAProcessingTime:string, ConnectorZENSetupTime:string, ConnectionSetupTime:string, ServerSetupTime:string, AppLearnTime:string, TimestampConnectionStart:string, TimestampConnectionEnd:string, TimestampCATx:string, TimestampCARx:string, TimestampAppLearnStart:string, TimestampZENFirstRxClient:string, TimestampZENFirstTxClient:string, TimestampZENLastRxClient:string, TimestampZENLastTxClient:string, TimestampConnectorZENSetupComplete:string, TimestampZENFirstRxConnector:string, TimestampZENFirstTxConnector:string, TimestampZENLastRxConnector:string, TimestampZENLastTxConnector:string, ZENBytesRxClient:string, ZENBytesTxClient:string, ZENTotalBytesRxConnector:string, ZENBytesRxConnector:string, ZENTotalBytesTxConnector:string, ZENBytesTxConnector:string, Idp:string, Version:string, ZEN:string, CertificateCN:string, PrivateIP:string, DvcIpAddr:string, Latitude:string, Longitude:string, CountryCode:string, TimestampAuthentication:string, TimestampUnAuthentication:string, DvcHostname:string, SrcDvcOs:string, DvcType:string, TrustedNetworks:string, TrustedNetworksNames:string, SAMLAttributes:string, PosturesHit:string, PosturesMiss:string, ZENLatitude:string, ZENLongitude:string, ZENCountryCode:string, SessionType:string, Connector:string, ConnectorGroup:string, CPUUtilization:string, MemUtilization:string, ServiceCount:string, InterfaceDefRoute:string, DefRouteGW:string, PrimaryDNSResolver:string, HostUpTime:string, ConnectorUpTime:string, NumOfInterfaces:string, BytesRxInterface:string, PacketsRxInterface:string, ErrorsRxInterface:string, DiscardsRxInterface:string, BytesTxInterface:string, PacketsTxInterface:string, ErrorsTxInterface:string, DiscardsTxInterface:string, ModifiedTime:string, CreationTime:string, ModifiedBy:string, RequestID:string, AuditOldValue:string, AuditNewValue:string, AuditOperationType:string, ObjectType:string, ObjectName:string, ObjectID:string, CustomerID:string, Exporter:string, TimestampRequestReceiveStart:string, TimestampRequestReceiveHeaderFinish:string, TimestampRequestReceiveFinish:string, TimestampRequestTransmitStart:string, TimestampRequestTransmitFinish:string, TimestampResponseReceiveStart:string, TimestampResponseReceiveFinish:string, TimestampResponseTransmitStart:string, TimestampResponseTransmitFinish:string, TotalTimeRequestReceive:string, TotalTimeRequestTransmit:string, TotalTimeResponseReceive:string, TotalTimeResponseTransmit:string, TotalTimeConnectionSetup:string, TotalTimeServerResponse:string, HttpRequestMethod:string, NetworkApplicationProtocol:string, UrlHostname:string, UrlOriginal:string, HttpUserAgentOriginal:string, HttpRequestXff:string, NameID:string, HttpStatusCode:string, HttpRequestBodyBytes:string, HttpResponseBodyBytes:string, SrcPortNumber:string, EventResultDetails:string, CorsToken:string, Origin:string, InternalReason:string, ConnectionStatus:string, SessionStatus:string, Username:string, User:string, ServicePort:string, ServerPort:string, ApplicationPort:string, ZENTotalBytesRxClient:string, TotalBytesRx:string, ZENTotalBytesTxClient:string, TotalBytesTx:string, IPProtocol:double, ClientCountryCode:string, ClientLatitude:string, ClientLongitude:string, ClientPublicIP:string, ClientPrivateIP:string, Policy:string, Host:string, Server:string, ServerIP:string, ClientCity:string, MicroTenantID:string, AppMicroTenantID:string, Platform:string, Hostname:string, NetworkSessionId:string, ) with (pair_delimiter=',', kv_delimiter=':', quote='"')
| extend
EventResult=column_ifexists('InternalReason', column_ifexists('ConnectionStatus', '')),
DvcAction=column_ifexists('ConnectionStatus', column_ifexists('SessionStatus', '')),
DstUserName=column_ifexists('Username', column_ifexists('User', '')),
DstPortNumber=column_ifexists('ServicePort', column_ifexists('ServerPort', column_ifexists('ApplicationPort', ''))),
SrcBytes=column_ifexists('ZENTotalBytesRxClient', column_ifexists('TotalBytesRx', '')),
DstBytes=column_ifexists('ZENTotalBytesTxClient', column_ifexists('TotalBytesTx', ''))
};
let bl_countries = dynamic(['CH', 'RU']); //List of countries from which you do not expect connections
ZPAEvent
| where DvcAction == 'open'
Expand Down
Loading