This query provides a generic search for IP address and port information
Descriptive name | Variable | Type | Notes |
Begin Search on date | $$Begin Search on date$$ | DATE | Provide a start date for the search |
Hours to Search | $$Hours to Search$$ | STRING | Specify the number of hours to search for |
IP_Address | $$IP_Address$$ | IP_Address | Specify the IP Address to search for, use % as a wildcard Will search both source and destination data for a match |
Port | $$Port$$ | STRING | Specify the port to search for use % as a wildcard Will search both source and destination data for a match |
Process Name | $$Process Name$$ | STRING | Specify a process name, use % as a wildcard |
User Name | $$User Name$$ | STRING | Specify a user name, use % as a wildcard |
-- IPAddress Port Activity -- VARIABLE: $$Begin Search on date$$ DATE -- VARIABLE: $$Hours to Search$$ STRING -- VARIABLE: $$IP_Address$$ STRING -- VARIABLE: $$Port$$ STRING -- VARIABLE: $$Process Name$$ STRING -- VARIABLE: $$User Name$$ STRING -- In order to avoid the watchdog on the device, we will query the journals in in 1 hour chunks (3600 seconds) WITH RECURSIVE Time_Interval(x) AS ( VALUES ( CAST($$Begin Search on date$$ AS INT) ) UNION ALL SELECT x+3600 FROM Time_Interval WHERE x <= CAST($$Begin Search on date$$ AS INT) + CAST( $$Hours to Search$$ * 3600 AS INT) ) -- Collect a list of processes that refrence the desired IP and PORT information SELECT CAST((SELECT processname FROM sophos_process_journal spj WHERE spj.sophosPID = spa.sophosPid LIMIT 1) AS TEXT) processname, CAST((SELECT u.username FROM sophos_process_journal spj JOIN users u ON u.uuid = spj.sid WHERE spj.sophosPID = spa.sophosPID LIMIT 1) AS TEXT) Username, CAST(REPLACE(DATETIME(time,'unixepoch'),' ','T') AS TEXT) time, source, sourceport, destination, destinationport, sophosPid, subject, originalDestination, originalDestinationPort FROM Time_Interval t LEFT JOIN Sophos_process_activity spa ON time > t.x AND time < t.x+3600 AND subject IN ('Http','Network','Ip') WHERE (source LIKE CAST('$$IP_Address$$' AS TEXT) OR destination LIKE CAST('$$IP_Address$$' AS TEXT) OR originalDestination LIKE CAST('$$IP_Address$$' AS TEXT) ) AND (sourcePort LIKE CAST('$$Port$$' AS TEXT) OR destinationPort LIKE CAST('$$Port$$' AS TEXT) OR originalDestinationPort LIKE CAST('$$Port$$' AS TEXT) ) AND LOWER(pathname) LIKE LOWER('%$$Process Name$$%') AND LOWER(username) LIKE LOWER('%$$User Name$$%')
SAMPLE OUTPUT
epName
|
processname
|
Username
|
time
|
source
|
sourcePort | destination | destinationport | sophosPID |
subject
|
originalDestination | originalDestinationPort |
svchost.exe
|
LOCAL SERVICE
|
2021-03-15T12:38:41
|
172.31.22.71
|
123
|
169.254.169.123
|
123
|
2472:132583075379538154
|
Ip
|
|
|
|
svchost.exe
|
NETWORK SERVICE
|
2021-03-15T12:44:52
|
172.31.22.71
|
55372
|
172.31.0.2
|
53
|
1336:132583075335022983
|
Ip
|
|
|
|
svchost.exe
|
NETWORK SERVICE
|
2021-03-15T12:44:52
|
172.31.22.71
|
53041
|
172.31.0.2
|
53
|
1336:132583075335022983
|
Ip
|
|
|
|
svchost.exe
|
SYSTEM
|
2021-03-15T12:45:38
|
::1
|
60977
|
::1
|
5985
|
1264:132583075333344510
|
Ip
|
|
|