IP Library Granted Patent US 10,432,521
Granted Patent B2
US 10,432,521 · App. 15/416,153 · Granted Oct 1, 2019

System and method for identifying devices behind network address translators

Inventors: Haim Zlatokrilov (Tel Aviv, IL); Genady Malinsky (Adamit, IL); Yigal Weinberger (Tel Aviv, IL)
Assignee: VERINT SYSTEMS LTD.
H04L45/74H04L43/106H04L61/2007H04L61/256H04L61/2514H04L63/30H04L69/16
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 10,432,521
App. No.
15/416,153
Granted
Oct 1, 2019
Kind
B2
Abstract

An apparatus for monitoring a plurality of devices that use a plurality of networks includes a network interface and a processor. The processor is configured to receive, via the network interface, a plurality of packets that were collectively communicated, from the devices, via all of the networks, to aggregate the packets, using at least one field that is included in respective packet headers of the packets, into a plurality of packet aggregations, such that all of the packets in each one of the packet aggregations were collectively communicated from no more than one of the devices, to group the packet aggregations into a plurality of groups, such that there is a one-to-one correspondence between the groups and the devices, in that all of the packets in each of the groups were collectively communicated from a different respective one of the devices, and to generate an output in response thereto.

Claims (61)

1. Apparatus for monitoring a plurality of devices that use a plurality of networks, the apparatus comprising:

a network interface; and

a processor, configured:

to receive, via the network interface, a plurality of packets that were collectively communicated, from the devices, via all of the networks,

to aggregate the packets, using at least one field that is included in respective packet headers of the packets, into a plurality of packet aggregations, such that all of the packets in each one of the packet aggregations were collectively communicated from no more than one of the devices,

to group the packet aggregations, based on information contained in the packet aggregations, into a plurality of groups, such that there is a one-to-one correspondence between the groups and the devices, in that all of the packets in each of the groups were collectively communicated from a different respective one of the devices, and

to generate an output in response to the grouping, wherein the processor is configured to group the packet aggregations by:

for each packet aggregation of the packet aggregations:

identifying, in at least one packet of packets belonging to the packet aggregation, at least one device identifier that uniquely identifies the one of the devices from which the packet was communicated, and

using the identified device identifier, associating the packet aggregation with the one of the devices from which the packets belonging to the packet aggregation were communicated, wherein the device identifier is selected from the group consisting of: an Internet cookie, an identifier for advertisers (IDFA), an identifier for vendors (IDFV), an Android advertising identifier (AAID), a universally unique identifier (UUID), an international mobile station equipment identity (IMEI), an international mobile subscriber identity (IMSI), and a media access control (MAC) address.

2. The apparatus according to claim 1 , wherein the processor is configured to identify the device identifier by decoding the at least one packet belonging to the packet aggregation.

3. The apparatus according to claim 1 , wherein the processor is configured to group the packet aggregations by:

for each packet aggregation of the packet aggregations:

identifying, in at least one packet belonging to the packet aggregation, at least one device identifier,

in response to the identified device identifier, calculating a likelihood that the packets belonging to the packet aggregation were communicated from a particular one of the devices, and

associating the packet aggregation with the particular one of the devices, with the calculated likelihood.

4. The apparatus according to claim 1 , wherein, in aggregating the packets into the plurality of packet aggregations, the processor is configured to aggregate, into any given packet aggregation of the packet aggregations, any given packet of the packets, in response to at least one of:

the given packet belonging to the same transmission control protocol (TCP) connection as does a last-received packet of the given packet aggregation, and

a TCP timestamp included in the given packet being within an expected offset range from a TCP timestamp included in the last-received packet of the given packet aggregation.

5. The apparatus according to claim 4 , wherein the processor is further configured to compute the expected offset range by applying a machine-learned model that computes the expected offset range.

6. The apparatus according to claim 5 , wherein the machine-learned model computes the expected offset range by assuming that a rate of increase of the TCP timestamp varies as a function of a time of day.

7. Apparatus for monitoring a plurality of devices that use a plurality of networks, the apparatus comprising:

a network interface; and

a processor, configured:

to receive, via the network interface, a plurality of packets that were collectively communicated, from the devices, via all of the networks,

to aggregate the packets, using at least one field that is included in respective packet headers of the packets, into a plurality of packet aggregations, such that all of the packets in each one of the packet aggregations were collectively communicated from no more than one of the devices,

to group the packet aggregations, based on information contained in the packet aggregations, into a plurality of groups, such that there is a one-to-one correspondence between the groups and the devices, in that all of the packets in each of the groups were collectively communicated from a different respective one of the devices, and

to generate an output in response to the grouping;

wherein the processor is configured to group the packet aggregations by:

identifying respective device-usage characteristics exhibited by the packet aggregations, and

based on the device-usage characteristics, grouping the packet aggregations into the plurality of groups,

wherein the device-usage characteristics are at least partly based on destination internet protocol (IP) addresses included in the packet aggregations,

wherein the processor is configured to group the packet aggregations by:

computing, for each packet aggregation of the packet aggregations, a characteristic vector, wherein each element of the vector corresponds to a different respective destination IP address, and a value of the element represents a number of times, in the packet aggregation, that a connection was established with the destination IP address,

subsequently, reducing a dimensionality of each characteristic vector, and

subsequently, grouping any given first one of the packet aggregations with a second one of the packet aggregations, in response to an angle between the characteristic vector of the first one of the packet aggregations and the characteristic vector of the second one of the packet aggregations being less than a threshold.

8. The apparatus according to claim 7 ,

wherein the packet aggregations are a second plurality of packet aggregations and the plurality of groups are a second plurality of groups, and

wherein the processor is configured to group the second plurality of packet aggregations into the second plurality of groups, by:

grouping a first plurality of packet aggregations into a first plurality of groups, based on device identifiers identified in the first plurality of packet aggregations,

from the first plurality of groups, learning a rule for grouping packet aggregations based on the device-usage characteristics, and

using the rule, grouping the second plurality of packet aggregations into the second plurality of groups.

9. A method for monitoring a plurality of devices that use a plurality of networks, the method comprising:

using at least one field that is included in respective packet headers of a plurality of packets that were collectively communicated from the devices via all of the networks, aggregating the packets into a plurality of packet aggregations, such that all of the packets in each one of the packet aggregations were collectively communicated from no more than one of the devices;

based on information contained in the packet aggregations, grouping the packet aggregations into a plurality of groups, such that there is a one-to-one correspondence between the groups and the devices, in that all of the packets in each of the groups were collectively communicated from a different respective one of the devices; and

generating an output in response to the grouping:

wherein grouping the packet aggregations comprises:

for each packet aggregation of the packet aggregations:

identifying, in at least one packet of packets belonging to the packet aggregation, at least one device identifier that uniquely identifies the one of the devices from which the packet was communicated, and

using the identified device identifier, associating the packet aggregation with the one of the devices from which the packets belonging to the packet aggregation were communicated;

wherein the device identifier is selected from the group consisting of: an Internet cookie, an identifier for advertisers (IDFA), an identifier for vendors (IDFV), an Android advertising identifier (AAID), a universally unique identifier (UUID), an international mobile station equipment identity (IMEI), an international mobile subscriber identity (IMSI), and a media access control (MAC) address.

10. The method according to claim 9 , wherein identifying the device identifier comprises identifying the device identifier by decoding the at least one packet belonging to the packet aggregation.

11. The method according to claim 9 , wherein grouping the packet aggregations comprises:

for each packet aggregation of the packet aggregations:

identifying, in at least one packet belonging to the packet aggregation, at least one device identifier,

in response to the identified device identifier, calculating a likelihood that the packets belonging to the packet aggregation were communicated from a particular one of the devices, and

associating the packet aggregation with the particular one of the devices, with the calculated likelihood.

12. The method according to claim 9 , wherein the field is an internet protocol identification (IPID).

13. The method according to claim 9 , wherein aggregating the packets comprises aggregating, into any given packet aggregation of the packet aggregations, any given packet of the packets, in response to at least one of:

the given packet belonging to the same transmission control protocol (TCP) connection as does a last-received packet of the given packet aggregation, and

a TCP timestamp included in the given packet being within an expected offset range from a TCP timestamp included in the last-received packet of the given packet aggregation.

Assignments (3)
CHANGE OF NAME Recorded Apr 20, 2022
From: VERINT SYSTEMS LTD.
To: COGNYTE TECHNOLOGIES ISRAEL LTD
Reel/Frame 059710/0742 →
CHANGE OF NAME Recorded Dec 23, 2021
From: VERINT SYSTEMS LTD.
To: COGNYTE TECHNOLOGIES ISRAEL LTD
Reel/Frame 060751/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2017
From: ZLATOKRILOV, HAIM; MALINSKY, GENADY; WEINBERGER, YIGAL
To: VERINT SYSTEMS LTD.
Reel/Frame 041344/0849 →
Priority Claims (2)
IL 243828 · Jan 28, 2016 · national
IL 250294 · Jan 25, 2017 · national
Continuity (1)
Related Publication 20170222922A1 · Aug 3, 2017