IP Library Granted Patent US 12,445,294
Granted Patent B2
US 12,445,294 · App. 18/334,974 · Granted Oct 14, 2025

Monitoring process data acquisition and exfiltration

Inventors: Daniel Montaque Teal (Austin, TX); Steven Braggs (Oxford, GB); Andrew James Thomas (Oxfordshire, GB)
Assignee: Sophos Limited
H04L9/3239H04L63/1425
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,445,294
App. No.
18/334,974
Granted
Oct 14, 2025
Kind
B2
Abstract

A computer-implemented method includes identifying one or more software processes that execute on the endpoint device and that perform at least one file operation including opening a file, reading the file, writing the file, or transmitting the file over a network. The method further includes storing for each software process of the one or more software processes identification information about the file. The method further includes responsive to determining that a triggering event has occurred, performing one or more actions including: preventing deletion of the file, determining one or more attributes of a suspicious process that accessed the file, requesting that a separate component analyze event journal records in relation to a time interval that overlaps with when the suspicious process accessed the file, or transmitting a cryptographic hash of the file to a server.

Claims (65)

1. A computer-implemented method performed at an endpoint device, the method comprising:

identifying, with a kernel-mode driver executing on the endpoint device, one or more software processes that execute on the endpoint device and that perform opening a first file;

storing, in a kernel space of an operating system on the endpoint device, for each software process of the one or more software processes, identification information about the first file;

responsive to the one or more software processes opening the first file, generating a first cryptographic hash of a portion of the first file;

responsive to determining that a triggering event has occurred,

transmitting the first cryptographic hash of the first file to a server;

responsive to the one or more software processes transmitting a second file over a network, generating a second cryptographic hash of the second file; and

determining that the first cryptographic hash matches the second cryptographic hash and identifying the one or more software processes that performed the transmitting the second file over the network as suspicious.

2. The computer-implemented method of claim 1 , wherein the one or more software processes further perform transmitting the first file over the network and the method further comprises:

applying a filter to determine information about the first file that is transmitted over the network.

3. The computer-implemented method of claim 1 , further comprising storing, in the kernel space of the operating system on the endpoint device, for each software process of the one or more software processes, information about a memory location in the kernel space associated with the software process or a memory descriptor list that describes a physical memory location of a buffer associated with the software process.

4. The computer-implemented method of claim 1 , wherein responsive to determining that the triggering event has occurred, the method further comprises

requesting that a separate component analyze event journal records in relation to a time interval that overlaps with when a suspicious process accessed the first file;

determining an amount of data received from the network prior to the first file being created;

determining if the amount of data received from the network matches a size of the first file; and

responsive to determining that the amount of data received matches the size of the first file, providing an additional determination that the one or more software processes are suspicious.

5. The computer-implemented method of claim 1 , wherein responsive to determining that the triggering event has occurred, the method further comprises:

determining one or more attributes of a suspicious process that accessed the first file; and

identifying a website that was visited from the endpoint device.

6. The computer-implemented method of claim 1 , wherein responsive to determining that the triggering event has occurred, the method further comprises requesting that a separate component analyze event journal records in relation to a time interval that overlaps with when a suspicious process accessed the first file.

7. The method of claim 1 , wherein the identification information about the first file includes one or more selected from a group of a checksum of the first file, a sample of the first file, a name of the first file, a memory location associated with reading the first file, and combinations thereof.

8. An endpoint device comprising:

one or more processors; and

one or more computer-readable media, having instructions stored thereon that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

identifying, with a kernel-mode driver executing on the endpoint device, one or more software processes that execute on the endpoint device and that perform opening a first file, reading the file;

storing, in a cache in a kernel space of an operating system on the endpoint device, for each software process of the one or more software processes, identification information about the first file;

responsive to the one or more software processes opening the first file, generating a first cryptographic hash of a portion of the first file;

responsive to determining that a triggering event has occurred,

transmitting a cryptographic hash of the first file to a server;

responsive to the one or more software processes transmitting a second file over a network, generating a second cryptographic hash of the second file;

responsive to determining that the first cryptographic hash does not match the second cryptographic hash, identifying a code library that was accessed before the second file was transmitted; and

based on determining that the code library includes compression or encryption functionality, tagging the one or more software processes as suspicious.

9. The endpoint device of claim 8 , wherein the one or more software processes further perform transmitting the first file over the network and the operations further comprise:

applying a filter to determine information about the first file that is transmitted over the network.

10. The endpoint device of claim 8 , wherein the operations further comprise storing, in the cache in the kernel space of the operating system on the endpoint device, for each software process of the one or more software processes, information about a memory location in the kernel space associated with the software process or a memory descriptor list that describes a physical memory location of a buffer associated with the software process.

11. The endpoint device of claim 8 , wherein responsive to determining that the triggering event has occurred, the operations further comprise

requesting that a separate component analyze event journal records;

determining an amount of data received from the network prior to the first file being created;

determining if the amount of data received from the network matches a size of the first file; and

responsive to determining that the amount of data received matches the size of the first file, providing an additional determination that the one or more software processes are suspicious.

12. The endpoint device of claim 8 , wherein responsive to determining that the triggering event has occurred, the operations further comprise:

determining one or more attributes of a suspicious process that accessed the first file; and

identifying a website that was visited from the endpoint device.

13. The endpoint device of claim 8 , wherein the operations further comprise responsive to tagging the one or more software processes as suspicious, preventing deletion of the first file.

14. The endpoint device of claim 8 , wherein responsive to determining that the triggering event has occurred, the operations further comprise requesting that a separate component analyze event journal records in relation to a time interval that overlaps with when a suspicious process accessed the first file.

15. A computer-program product that includes one or more non-transitory computer-readable media with instructions stored thereon that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

identifying, with a kernel-mode driver executing on an endpoint device, one or more software processes that execute on the endpoint device and that perform opening a first file;

storing, in a cache in a kernel space of an operating system on the endpoint device, for each software process of the one or more software processes, identification information about the first file;

responsive to the one or more software processes opening the first file, generating a first cryptographic hash of a portion of the first file;

responsive to determining that a triggering event has occurred,

transmitting the first cryptographic hash of the first file to a server;

responsive to the one or more software processes transmitting a second file over a network, generating a second cryptographic hash of the second file; and

determining that the first cryptographic hash matches the second cryptographic hash and identifying that the one or more software processes that performed the transmitting the second file over the network as suspicious.

16. The computer-program product of claim 15 , wherein the one or more software processes further perform transmitting the first file over the network and the operations further comprise:

applying a filter to determine information about the first file that is transmitted over the network.

17. The computer-program product of claim 15 , wherein the operations further comprise storing, in the cache in the kernel space of the operating system on the endpoint device, for each software process of the one or more software processes, information about a memory location in the kernel space associated with the software process or a memory descriptor list that describes a physical memory location of a buffer associated with the software process.

18. The computer-program product of claim 15 , wherein responsive to determining that the triggering event has occurred, the operations further comprise

requesting that a separate component analyze event journal records;

determining an amount of data received from the network prior to the first file being created;

determining if the amount of data received from the network matches a size of the first file; and

responsive to determining that the amount of data received matches the size of the first file, providing an additional determination that the one or more software processes are as suspicious.

19. The computer-program product of claim 15 , wherein responsive to determining that the triggering event has occurred, the operations further comprise:

determining one or more attributes of a suspicious process that accessed the first file; and

identifying a website that was visited from the endpoint device.

20. The computer-program product of claim 15 , wherein responsive to determining that the triggering event has occurred, the operations further comprise requesting that a separate component analyze event journal records in relation to a time interval that overlaps with when a suspicious process accessed the first file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2023
From: TEAL, DANIEL MONTAQUE; BRAGGS, STEVEN; THOMAS, ANDREW JAMES
To: SOPHOS LIMITED
Reel/Frame 064358/0231 →
Continuity (1)
Related Publication 20240422007A1 · Dec 19, 2024
References Cited (46)
US 8307435B1 · Mann · 2012 [cited by examiner]
US 8639625B1 · Ginter · 2014 [cited by examiner]
US 9507621B1 · Allen · 2016 [cited by examiner]
US 9665715B1 · Roundy · 2017 [cited by examiner]
US 10503904B1 · Singh · 2019 [cited by examiner]
US 11979422B1 · Kapoor · 2024 [cited by examiner]
US 20090158432A1 · Zheng · 2009 [cited by examiner]
US 20100031361A1 · Shukla · 2010 [cited by examiner]
US 20110167050A1 · Fanton · 2011 [cited by examiner]
US 20120254982A1 · Sallam · 2012 [cited by examiner]
US 20120255000A1 · Sallam · 2012 [cited by examiner]
US 20130055399A1 · Zaitsev · 2013 [cited by examiner]
US 20130305368A1 · Ford · 2013 [cited by examiner]
US 20130312099A1 · Edwards · 2013 [cited by examiner]
US 20150264077A1 · Berger · 2015 [cited by examiner]
US 20150319183A1 · Liske · 2015 [cited by examiner]
US 20160044054A1 · Stiansen · 2016 [cited by examiner]
US 20170032118A1 · Carson · 2017 [cited by examiner]
US 20170032123A1 · Carson · 2017 [cited by examiner]
US 20170061126A1 · Hooks · 2017 [cited by examiner]
US 20170223046A1 · Singh · 2017 [cited by examiner]
US 20170235966A1 · Ray · 2017 [cited by examiner]
US 20170346851A1 · Drake · 2017 [cited by examiner]
US 20180278631A1 · Harris · 2018 [cited by examiner]
US 20180351968A1 · MacLeod · 2018 [cited by examiner]
US 20180351969A1 · MacLeod · 2018 [cited by examiner]
US 20190081962A1 · Teal · 2019 [cited by examiner]
US 20190173909A1 · Mixer · 2019 [cited by examiner]
US 20190190936A1 · Thomas · 2019 [cited by examiner]
US 20190260795A1 · Araiza · 2019 [cited by examiner]
US 20190385057A1 · Litichever · 2019 [cited by examiner]
US 20200244673A1 · Stockdale · 2020 [cited by examiner]
US 20200302058A1 · Kenyon · 2020 [cited by examiner]
US 20200304528A1 · Ackerman · 2020 [cited by examiner]
US 20200336503A1 · Xu · 2020 [cited by examiner]
US 20210200593A1 · Allyn · 2021 [cited by examiner]
US 20210273961A1 · Humphrey · 2021 [cited by examiner]
US 20210360027A1 · Boyer · 2021 [cited by examiner]
US 20210400071A1 · Ray · 2021 [cited by examiner]
US 20230012220A1 · Humphrey · 2023 [cited by examiner]
US 20230252144A1 · Kim · 2023 [cited by examiner]
US 20240205256A1 · Tormasov · 2024 [cited by examiner]
US 20240223596A1 · Sellars · 2024 [cited by examiner]
US 20240259416A1 · Miyake · 2024 [cited by examiner]
JP 2023053359 · 2023 [cited by applicant]
“Combined Search and Examination Report mailed in Application No. GB2408116.8”, Oct. 17, 2024, 3 pages. [cited by applicant]