The present application claims convention priority to Russian Utility Patent Application No. 2017140501, filed on Nov. 21, 2017, entitled “METHOD FOR CLASSIFYING USER ACTION SEQUENCE”, the entirety of which is incorporated herein by reference.
The present invention relates to the methods for detecting fraud, particularly for training a Machine Learning Algorithm (MLA) to detect fraudulent user actions executed in a computer system.
In the recent years, Internet has grown to be a platform where users execute a plethora of actions—from browsing digital content, searching for information, and executing financial transaction with banks and other financial institutions. With the growth of legitimate Internet use, the fraudulent activity using the Internet has also grown. Anti-fraud, or fraud monitoring systems are used to assess financial transactions executed by users using the Internet that may be suspected of fraud. These known systems are also configured to generate recommendations on further processing of the transactions suspected of being fraudulent. Such anti-fraud services are based on pre-determined sets of rules, filters and lists, both standard and custom-built, such that each monitored transaction is checked against them.
Some examples of such used rules include:
A problem with such approach is that it may fail to determine whether an operation is legitimate or fraudulent. For example, a given user may legitimately perform multiple transaction over the pre-determined triggering the rule of the maximum number of transaction within the pre-determined period of time.
Another conventional solution involves use and verification of patterns (also called “signatures”). Such signatures have to be updated regularly in order to allow determining whether an operation is legitimate or fraudulent. Such signatures are generated by a human analyst who analyzes action sequences for fraudulent features and determines their characteristics, which is labor intensive and is susceptible to errors as it may depend on the analyst's competence as well.
The non-limiting embodiments of the present technology are aimed eliminating the drawbacks of the known solutions. As such, at least some non-limiting embodiments of the present technology allow to automatically and accurately determine features associated with specific operation classes.
Non-limiting embodiments of the present technology have been developed based on developers' appreciation that there exist a marked difference between “user behavior pattern” difference between a legitimate user and a fraudulent user. Taking an example of a web site that provides a banking service (such as an Internet banking portal for a bank). A typical user may have a “legitimate pattern of behavior” when performing Internet banking, for example, access the web banking portal (by typing in or using “complete function” of the browser the user credentials), view some targeted promotions, pay bills, view spending history, review credit card balance, etc. A typical fraudulent behavior of a malicious individual may have a very different pattern—enter the web site by using a complete function of the browser, and enters the transfer page and transfers users fund in order to steal them, and then exists the web service.
By collecting information about past fraudulent events (as well as legitimate user patterns), it is possible to generate a training set to train a Machine Learning Algorithm (MLA) to analyze a user's behavior and determine when the user's behavior pattern changes form legitimate to potential fraudulent to flag the user's generated transaction for review by an administrator (such as a fraud department employee). Non-limiting embodiments of the present technology are based on training the MLA based on those sub-portions of the behavior patterns that are most indicative of fraudulent behavior (i.e. the ones that correlate most strongly to fraudulent behavior).
In some non-limiting embodiments of the present technology the number of most information subsequences (N) can be in a range of between about 500 and about 700 subsequences. It should be noted that this number is not limited and is selected for each specific electronic service to maximize the likelihood of an accurate prediction, in use. The number (N) can be selected on those sub-sequences that are most frequently associated with a given class to be predicted as opposed class to be predicted.
As such, in a accordance with a first broad aspect of the present technology, there is provided a method for training a Machine Learning Algorithm (MLA), the MLA executed by a server, the MLA for classifying a user action sequence that is performed by a user with an electronic service using a computer device, the method executable by the server. The method comprises: receiving an indication of interface elements of the electronic service and events associated with the interface elements to be monitored; receiving a plurality of indications of the user action sequence, the user action sequence including occurrence of at least one of: (i) events associated with the interface elements and (ii) user interactions with the interface elements; and associated timestamps, the plurality of indications being of at least two different types of classes, for which the MLA is to be trained for classifying user actions into; generating a training set comprising user action sequences belonging to the at least two different types of classes; the generating a given training set having a given user action sequence including: subdividing the given user action sequence into subsequences, the subdividing being based on a pre-determined set of: max subsequence length, min subsequence length; determining a frequency of each subsequence appearing in the user action sequences belonging to a given one of the at least two different types of classes; scoring each subsequence based on the frequency; selecting n most informative subsequences indicative at the probability of the associated given user action sequence belonging to the given one of the at least two different types of classes; using the training set to train the MLA to classify an in-use user action sequence into one of the at least two types of classes.
In some implementations of the method, the sub-dividing of the given user sequence into subsequences is further based on a number of the most informative features (n).
In some implementations of the method, the subdividing the given user action sequence into subsequences further comprises: in each user action sequence in the training set, searching for n most informative subsequences to generate a set of Boolean features, where each Boolean feature is indicative of whether its corresponding subsequence is present in the given action sequence; and wherein the Boolean feature is used as part of the training set.
In some implementations of the method, the receiving the plurality of indications of the user action sequence comprises receiving the plurality of indications of past user actions that have been marked as belonging to at least two types of classes.
In some implementations of the method, the at least two types of classes comprise one of a legitimate transaction class and a fraudulent transaction class.
In some implementations of the method, the number of the most informative features (n) is pre-defined.
In some implementations of the method, the method further comprises pre-defining the number (n).
In some implementations of the method, the pre-defining the number (n) using a scoring function.
In some implementations of the method, scoring comprises applying a scored using Gini index (1−Σi=1kpi2, where k is the number of classes, and pi is the share of the [i] class.
In some implementations of the method, the MLA is a classifier.
In some implementations of the method, the classifier is based on a decision tree model.
In accordance with another broad aspect of the present technology there is provided a method for classifying a user action sequence that is performed by a user on a computer device in association with an electronic service, the method being executed by a trained Machine Learning Algorithm (MLA), the MLA executed by an electronic device. The method comprises: obtaining a user action sequence, the user action sequence defined by at least one event associated with the user interaction with interface elements of the electronic service; assigning the user action sequence a default class; analyzing the user action sequence by: subdividing the given user action sequence into subsequences, the subdividing being based on a pre-determined set of: max subsequence length, min subsequence length, a number of the most informative features (n); submitting the generated subsequence to the MLA to be used by the MLA to predict a predicted class associated with the user action sequence; in response to the predicted class being different from the default class, generating a trigger indicative of the user action sequence requiring a remedial action.
In some implementations of the method, in response to the predicted class being the same as the default class, repeating the method with a next indication of the user action.
In some implementations of the method, the method further comprises training the MLA using the method of claim 1.
In some implementations of the method, the electronic device is one of a user electronic device used for executing the user action sequence and a server executing the electronic service.
In some implementations of the method, the electronic service is an on-line banking application and wherein the method is executable while the user is performing user interactions with the on-line banking application.
In accordance with yet further non-limiting embodiments of the present technology, there is provided a method for classifying user action sequence that is performed on a computer device. The comprises the following steps:
setting triggers on interface elements and events associated with those elements and other user actions;
recording a user action sequence with accompanying events, along with the timestamps of said actions or events, and assigning a default class to the sequence;
obtaining time data, user data, and the actual class the given sequence of user actions at the given time belongs to, and replacing its default class with the actual class;
generating a training set comprising user action sequences belonging to different classes;
subdividing the user action sequences in the training set into subsequences, based on the following parameters: max subsequence length, min subsequence length, number of the most informative features (n);
for each subsequence, determining the frequency of it belonging to each of the classes;
scoring each subsequence based on the frequency of it belonging to each of the classes and selecting n most informative subsequences pointing at the probability of a given user action sequence belonging to a specified class;
in each user action sequence in the training set, searching for n most informative subsequences to generate a set of Boolean features, where each feature shows whether its corresponding subsequence is present in the given action sequence; and
submitting the generated set of Boolean features as a training set for the classification algorithm.
In accordance with another broad aspect of the present technology, there is provided a method for classifying user action sequence that is performed on a computer device. The method comprises the following steps:
obtaining a user action sequence with accompanying events, along with the timestamps of said actions or events;
assigning a default class to the action sequence;
obtaining time data, user data, and the actual class the given sequence of user actions at the given time belongs to, and replacing its default class with the actual class;
generating a training set comprising user action sequences belonging to different classes;
subdividing the user action sequences in the training set into subsequences, based on the following parameters: max subsequence length, min subsequence length, number of the most informative features (n);
for each subsequence, determining the frequency of it belonging to each of the classes;
scoring each subsequence based on the frequency of it belonging to each of the classes and selecting n most informative subsequences pointing at the probability of a given user action sequence belonging to a specified class;
in each user action sequence in the training set, searching for n most informative subsequences to generate a set of Boolean features, where each feature shows whether its corresponding subsequence is present in the given action sequence; and
submitting the generated set of Boolean features as a training set for the classification algorithm.
With reference to
In some embodiments, personal devices 120 may be implemented (but are not so limited), a smartphone, a tablet, a PDA, a laptop, or a desktop PC.
In order to enable the system of
As an example, where a given bank web site, the so-determined events may include (but are not limited to):
User entering a registration page;
User executing a registration using the registration page;
The registration page providing a registration confirmation;
The registration page providing a registration error;
A registration timeout;
User entering a main (landing) page;
User executing a transfer to another client of the bank;
User executing a transfer to a client of another bank;
User executing a transfer to an organization having a pre-determined <Name>;
User executing a payments to mobile providers;
The system providing a money transfer confirmation;
The system executing a check issue;
User entering a wrong password;
The system providing a timeout error;
User viewing settings of the account/web access;
User viewing information about an insurance policy;
User viewing a card activity;
User viewing an account activity;
User viewing a deposit activity;
User viewing a credit card activity;
User exiting the on-line banking system;
User executing a phone credit recharge.
User actions may include the following:
User selecting an interface element;
User clicking a left/right mouse button;
User browsing through website pages or application screens (e.g. pages of remote banking);
User switching between browser frames or application tabs;
User clicking a button;
User clicking a check button or radio button element;
User editing an input field, or selecting a list item;
User pressing a pre-defined (i.e. any) key.
The system of
In some alternative embodiments, the trigger can cause storing the data that is associated with the user action or event on the user device 120.
In some embodiments, events and user actions have codes (e.g. symbols or numbers) associated with them. For instance, the <event_MouseClick> event may be stored as a number, or as a sequence of digits and/or letters.
User ID or other identification data are sent from the server 110 or other servers/systems that identify users (indirectly, as well) to the user device 120.
Interacting with a website, users utilize various interface elements and perform various actions that set off triggers, and their action sequences are recorded along with the events accompanying them.
For example, a user 34029 (a non-limiting example of a user ID) may have the following action sequence when interacting with a website on their device 120:
Such user action sequences are stored on the server 110, or, in some embodiments, on the user device 120, and also have a default class (e.g. legitimate action class (G)) assigned to them.
The number of classes depends on the task to be addressed by the trained MLA. In some embodiments, the following classes are contemplated: F—fraudulent actions, and G—legitimate actions; or, e.g. actions of the user under analysis and actions of all other users; or human actions and bot actions; etc.
In some embodiments of the present technology, at least two (i.e. two or more; three or more, etc.) classes can be defined. For example, a class may comprise the actions of each user, or it may comprise the actions of a group of users, such as children, adults, the elderly. In some non-limiting embodiments of the present classes the default class is assigned based on historical statistical data. As an example only, for a given banking/financial service, the historical data may indicate that 99.95% of users are legitimate users and only 0.05% of users are fraudulent transaction generators. In this example, the default class can be defined as the “legitimate user” (or class G in this example).
If, at some point, it is determined that a user was compromised, i.e. an action or a sequence of actions were performed by a non-authorized third party or a bot, then the server 110 (or, in some embodiments, the user device 120) can determine the compromised action sequence and assign it to the class of fraudulent actions (F).
The sequences comprising user actions of different classes make up a training set that is then used to train the MLA to automatically detect fraudulent actions.
In order to automatically detect fraudulent actions, the following steps are executed within the framework of the system of
User action sequences are subdivided into subsequences. In some embodiments of the present technology, subdivision can be based on the following parameters: max subsequence length (max_subsequence_length), min subsequence length (min_subsequence_length), number of the most informative features (n). At this step, the classes, to which each subsequence belongs, have already been identified/selected.
It should be noted that the parameters above may be set directly by the administrator of the server 110, e.g. based on their past experience, using A/B experiments, using other known factors.
In those embodiments where the method is implemented on the user device 120, the parameters above may be set by developers or they may be obtained from a settings server (not depicted).
For instance, in some-non limiting embodiments of the present technology, the parameters may be empirically set (particularly, defined). An example of such approach would be to try every reasonable value, wherein the final result is the proof of reasonableness of the output. For instance, the administrator may set max and min values for each parameter and then choose the best ones.
In some embodiments of the present technology, the following non-limiting examples for dividing the action sequence may be used:
Let's assume that there is a coded action sequence (s)=ABFDSAAADOO, wherein each symbol represents a users action or an accompanying event (other attributes, such as timestamps, or user ID, are not taken into account for the purposes of this illustration). This sequence is subdivided into subsequences that have a maximum length of max_subsequence_length=6, which results in the following set: {ABFDSA, BFDSAA, FDSAAA, DSAAAD, SAAADO, AAADOO}.
Each element of this set is then also subdivided in all possible variations of subsequences that have a minimum length of not less than min_subsequence_length, starting from the beginning of the coded user action sequence:
For the last subsequence AAADOO, its endings {AADOO, ADOO, DOO} will also be generated
Then, a general set may be selected, particularly, an ordered set (A) that combines every other set ({ABF, ABFD, ABFDS, ABFDSA}, {BFD, BFDS, BFDSA, BFDSAA}, . . . {AAA, AAAD, AAADO, AAADOO}, {AADOO, ADOO, DOO}) into one, wherein the general set (A) comprises the elements a(1), a(2), . . . , a(U), where U is the power (number of elements) of the general set (A). Please note that each user action sequence will have its own general set (A).
The server 110 (or, in some embodiments, the user device 120) determines the frequency of each element in the set (A) appearing in a specific class (e.g. the legitimate action class or the fraudulent action class, in case these two classes are used). For instance, the sequence ABFDS may appear 500 times among fraudulent sequences, and just 10 times among legitimate ones.
In some non-limiting embodiments of the present technology, the server analyzes the frequency of appearance of each element in a body of past observed fraudulent and legitimate transactions. In other words, the server 110 may have access to a body of past observed interactions, where the interactions were marked as actually fraudulent (for example by a fraud department of a financial institution) or legitimate. This step allows the server 110 to determine (broadly speaking) of the given element in the set (A) is more likely to be associated with fraudulent transaction or a legitimate one.
Then, the server 110 (or, in some embodiments, the user device 120) scores each element in the set (A) taking into account its frequency of appearing in each of the classes, selecting a pre-determined number of N most informative elements that are indicative of the probability of the element in the set (user action subsequence) belonging to the given class. In accordance with the non-limiting embodiments the most informative are those elements that are better correlated to the determination of the nature of the given transaction (fraudulent or legitimate, as an example). How the N-most informative element is selected will be described in greater detail herein below.
In some embodiments, the elements are scored using Gini index (1−Σi=1kpi2), where k is the number of classes (e.g. two classes: legitimate actions and fraudulent actions), and pi is the share of the [i] class.
In other embodiments, elements are scored using the number of fraudulent sequences.
In yet other embodiments, elements are scored using the number of legitimate sequences.
Then, the server 110 (or, in some embodiments, the user device 120) searches for n most indicative elements that have been selected earlier in the set (A) for each user action sequence in the training set, thus generating a set of boolean features (a set of n-sized vectors), where each vector element (feature) marks that this element (subsequence) is a part of a given action sequence.
For the illustration to be presented herein below, let it be assume that the resultant training set can contain, for example, the following user action sequence (A): ABFFAADOSDOOG. Using this as a non-limiting example, an illustration of various routines of the non-limiting embodiments of the present technology will now be presented.
An example of feature generation: there are three subsequences (elements in the set A) that are the most indicative ones: DOO, BFDSA, AAD (at n=3). There will be n selected features.
For this action sequence, the server 110 (or, in some embodiments, the user device 120) conducts a search for DOO, BFDSA, and AAD subsequences, thus generating a set (vector) of n (three, in this example) Boolean features {1, 0, 1}, where 1 means that the given subsequence is present in the sequence, and 0 means it does not.
In some embodiments, in order to improve efficiency, a unique Boolean function (f1, f2, . . . fn) is generated for each selected indicative feature, the function determining whether the given feature is present in the user action sequence or not.
The generated set of feature vectors, together with the vector classes, is then inputted into the classification algorithm (machine learning algorithm) as a training set.
The training set can contain sets of features that were reliably identified as belonging to different classes, i.e. feature vectors of legitimate action sequences and feature vectors of fraudulent action sequences.
Machine learning algorithms may include, but are not limited to, the Random Forest algorithm, the Support Vector Machine (SVM), or any other classification algorithm, including classifier ensembles.
After the classifier (classifier ensemble) has been trained, the server 110 (or, in some embodiments, the user device 120) can be considered to be trained to be able to use this classifier to determine whether user actions are legitimate or not. In case user actions have been identified as not legitimate (fraudulent), the server 110 is configured to take corresponding measures, such as to block the user, cancel an operation, etc., whatever is appropriate in a given situation.
As a rule, after the classifier (classifier ensemble) has been trained, the server 110 determines the class the in-use user action sequence belongs to, as follows:
recording the user action sequence; determining the vector of Boolean features using n informative features of the sequence in question, selected before; passing the vector over to the trained classifier, which then returns a priori probabilities of the sequence in question belonging to each of the classes.
It should be noted that, in a non-limiting embodiment, a training set of no less than 2000 fraud facts over the recent days (e.g. 90 days) should be used in order to reliably detect fraudulent actions.
For instance, the training set may be created using data collected over the past several days, e.g. days 85-90. Such data are used to train the classifier, particularly by means of machine learning. Then, the training results are applied to the data from days 1st-5th of the exemplary range in order to test the classifier. Please note that the training may be repeated regularly, e.g. once a week.
Reliability of scoring (particularly, the scoring function) may be increased by creating an ensemble made up of several classifiers, e.g. three classifiers. In this case, for example, the first classifier is trained using the data from days (−90)-(−5); the second classifier is trained using the data from days (−97)-(−13); and the third classifier is trained using the data from days (−104)-(−19)/The final scoring or a classifier ensemble may be calculated using the Kolmogorov mean (see en.wikipedia.org/wiki/Quasi-arithmetic_mean). For instance, an arithmetic mean can be calculated.
We will now turn our attention to the non-limiting examples of implementation of how the most informative feature can be selected. It should be noted that the scoring function (used for scoring calculations) is an example of a function for determining informativity. This can be illustrated by the calc_score function (shown below) that is written in Python:
In some non-limiting embodiments of the present technology, the calc_score function operates as follows: if the input of the module is a positive number, then the module returns the same number; if the input of the module is a negative number, then the module returns the number multiplied by (−1).
Also note that the calc_score function (or a similar one) may depend on two or more parameters, particularly, on three parameters. In this case, the function may return the informativity number that is directly proportionate to the informativity of a feature. For instance, for three equicardinal classes, the following function (example 3), written in Python, may be used to calculate informativity:
In some non-limiting embodiments of the present technology, classes are considered equicardinal for a certain set (e.g. a training set), if the set contains equal number of elements (chains) of these classes. For instance, in an equicardinal set with two classes—fraudulent action class and legal action class—the number of fraudulent chains is equal to the number of legal chains.
Also, in some non-limiting embodiments of the present technology, for non-equicardinal classes, there may be added at least three values, e.g. ratio1, ratio2, ratio3, which reflect the ratio between the number of elements of each individual class and the number of elements in the largest class. In some non-limiting embodiments of the present technology, one of these three values is always a 1 (one class is the largest, so its ratio to itself is 1), wherein the following function can be defined, which is a correction to example 3 taking into account ratio1, ratio2, and ratio3:
Using the informativity function (example 3_ratio) n most informative subsequences may be determined (see above).
In some non-limiting embodiments of the present technology, sequence informativity may be determined using another approach. This approach may be illustrated as follows.
A directed forest (gB) is built. Initially, it is empty, i.e. contains no vertices and no trees. Every edge of every tree has two weights corresponding to two classes—F and G: w(F) and w(G). Each vertex is marked with a letter.
A sequence (s)=ABFDSAAADOO is divided into all sorts of subsequences, wherein each subsequence is (max_subsequence_length) long.
For each subsequence, the determination of the most indicative/illustrative features may include:
It results in a graph (gB). Then, a plurality of edges is built, so that the paths to the root are not shorter than min_subsequence_length. Each edge is then scored (see above) using the weights w(F) and w(G). Then, n most probable edges (equal to the number of most indicative features) are selected. Then, for each such edge, a single sequence is built as follows: both vertices or the edge are selected, along with its antecedents. The vertices thus selected are placed in the edge order, where each subsequence refers to an individual feature.
In conclusion, it should be noted that the details given in the description are examples that do not limit the scope of the present technology as defined by the claims. It is clear to a person skilled in the art that there may be other embodiments that are consistent with the spirit and scope of the present invention.
| Number | Date | Country | Kind |
|---|---|---|---|
| RU2017140501 | Nov 2017 | RU | national |
| Number | Name | Date | Kind |
|---|---|---|---|
| 7225343 | Honig et al. | May 2007 | B1 |
| 7496628 | Arnold et al. | Feb 2009 | B2 |
| 7631362 | Ramsey | Dec 2009 | B2 |
| 7712136 | Sprosts et al. | May 2010 | B2 |
| 7730040 | Reasor et al. | Jun 2010 | B2 |
| 7865953 | Hsieh et al. | Jan 2011 | B1 |
| 7958555 | Chen et al. | Jun 2011 | B1 |
| 7984500 | Khanna et al. | Jul 2011 | B1 |
| 8132250 | Judge et al. | Mar 2012 | B2 |
| 8151341 | Gudov | Apr 2012 | B1 |
| 8255532 | Smith-Mickelson et al. | Aug 2012 | B2 |
| 8260914 | Ranjan | Sep 2012 | B1 |
| 8285830 | Stout et al. | Oct 2012 | B1 |
| 8402543 | Ranjan et al. | Mar 2013 | B1 |
| 8448245 | Banerjee et al. | May 2013 | B2 |
| 8532382 | Ioffe | Sep 2013 | B1 |
| 8539582 | Aziz et al. | Sep 2013 | B1 |
| 8555388 | Wang et al. | Oct 2013 | B1 |
| 8561177 | Aziz et al. | Oct 2013 | B1 |
| 8600993 | Gupta et al. | Dec 2013 | B1 |
| 8606725 | Agichtein et al. | Dec 2013 | B1 |
| 8612463 | Brdiczka et al. | Dec 2013 | B2 |
| 8625033 | Marwood et al. | Jan 2014 | B1 |
| 8635696 | Aziz | Jan 2014 | B1 |
| 8650080 | O'Connell et al. | Feb 2014 | B2 |
| 8660296 | Ioffe | Feb 2014 | B1 |
| 8677472 | Dotan et al. | Mar 2014 | B1 |
| 8776229 | Aziz | Jul 2014 | B1 |
| 8850571 | Staniford et al. | Sep 2014 | B2 |
| 8856937 | Wüest et al. | Oct 2014 | B1 |
| 8972412 | Christian et al. | Mar 2015 | B1 |
| 8984640 | Emigh et al. | Mar 2015 | B1 |
| 9026840 | Kim | May 2015 | B1 |
| 9060018 | Yu et al. | Jun 2015 | B1 |
| 9185095 | Moritz et al. | Nov 2015 | B1 |
| 9210111 | Chasin et al. | Dec 2015 | B2 |
| 9215239 | Wang et al. | Dec 2015 | B1 |
| 9253208 | Koshelev | Feb 2016 | B1 |
| 9330258 | Satish et al. | May 2016 | B1 |
| 9338181 | Burns et al. | May 2016 | B1 |
| 9357469 | Smith et al. | May 2016 | B2 |
| 9456000 | Spiro et al. | Sep 2016 | B1 |
| 9590986 | Zizi et al. | Mar 2017 | B2 |
| 9654593 | Parg et al. | May 2017 | B2 |
| 9723344 | Granström et al. | Aug 2017 | B1 |
| 9736178 | Ashley | Aug 2017 | B1 |
| 9917852 | Xu et al. | Mar 2018 | B1 |
| 9934376 | Ismael | Apr 2018 | B1 |
| 20020112048 | Gruyer et al. | Aug 2002 | A1 |
| 20020161862 | Horvitz | Oct 2002 | A1 |
| 20030009696 | Bunker et al. | Jan 2003 | A1 |
| 20060074858 | Etzold et al. | Apr 2006 | A1 |
| 20060107321 | Tzadikario | May 2006 | A1 |
| 20060224898 | Ahmed | Oct 2006 | A1 |
| 20060253582 | Dixon et al. | Nov 2006 | A1 |
| 20070019543 | Wei et al. | Jan 2007 | A1 |
| 20070101155 | Hoghaug et al. | May 2007 | A1 |
| 20070239999 | Honig et al. | Oct 2007 | A1 |
| 20080222712 | O'Connell et al. | Sep 2008 | A1 |
| 20090138342 | Otto et al. | May 2009 | A1 |
| 20090281852 | Abhari et al. | Nov 2009 | A1 |
| 20090292925 | Meisel | Nov 2009 | A1 |
| 20100011124 | Wei et al. | Jan 2010 | A1 |
| 20100037314 | Perdisci et al. | Feb 2010 | A1 |
| 20100076857 | Deo et al. | Mar 2010 | A1 |
| 20100115620 | Alme | May 2010 | A1 |
| 20100115621 | Staniford et al. | May 2010 | A1 |
| 20100191737 | Friedman et al. | Jul 2010 | A1 |
| 20100205665 | Komili et al. | Aug 2010 | A1 |
| 20100235918 | Mizrahi et al. | Sep 2010 | A1 |
| 20110222787 | Thiemert et al. | Sep 2011 | A1 |
| 20120030293 | Bobotek | Feb 2012 | A1 |
| 20120079596 | Thomas et al. | Mar 2012 | A1 |
| 20120087583 | Yang et al. | Apr 2012 | A1 |
| 20120158626 | Zhu et al. | Jun 2012 | A1 |
| 20120233656 | Rieschick et al. | Sep 2012 | A1 |
| 20120291125 | Maria | Nov 2012 | A1 |
| 20130086677 | Ma et al. | Apr 2013 | A1 |
| 20130103666 | Sandberg et al. | Apr 2013 | A1 |
| 20130111591 | Topan et al. | May 2013 | A1 |
| 20130117848 | Golshan et al. | May 2013 | A1 |
| 20130191364 | Kamel et al. | Jul 2013 | A1 |
| 20130263264 | Klein et al. | Oct 2013 | A1 |
| 20130297619 | Chandrasekaran et al. | Nov 2013 | A1 |
| 20130340080 | Gostev et al. | Dec 2013 | A1 |
| 20130343616 | Forero et al. | Dec 2013 | A1 |
| 20140033307 | Schmidtler | Jan 2014 | A1 |
| 20140058854 | Ranganath et al. | Feb 2014 | A1 |
| 20140082730 | Vashist et al. | Mar 2014 | A1 |
| 20140173287 | Mizunuma | Jun 2014 | A1 |
| 20140310811 | Hentunen | Oct 2014 | A1 |
| 20150007250 | Dicato, Jr. et al. | Jan 2015 | A1 |
| 20150049547 | Kim | Feb 2015 | A1 |
| 20150067839 | Wardman et al. | Mar 2015 | A1 |
| 20150163242 | Laidlaw et al. | Jun 2015 | A1 |
| 20150169854 | Chang et al. | Jun 2015 | A1 |
| 20150170312 | Mehta et al. | Jun 2015 | A1 |
| 20150200963 | Geng et al. | Jul 2015 | A1 |
| 20150220735 | Paithane et al. | Aug 2015 | A1 |
| 20150295945 | Canzanese et al. | Oct 2015 | A1 |
| 20150310196 | Turgeman | Oct 2015 | A1 |
| 20150363791 | Raz et al. | Dec 2015 | A1 |
| 20150381654 | Wang et al. | Dec 2015 | A1 |
| 20160036837 | Jain et al. | Feb 2016 | A1 |
| 20160036838 | Jain et al. | Feb 2016 | A1 |
| 20160044054 | Stiansen et al. | Feb 2016 | A1 |
| 20160055490 | Keren et al. | Feb 2016 | A1 |
| 20160065595 | Kim et al. | Mar 2016 | A1 |
| 20160112445 | Abramowitz | Apr 2016 | A1 |
| 20160127907 | Baxley et al. | May 2016 | A1 |
| 20160149943 | Kaloroumakis et al. | May 2016 | A1 |
| 20160171197 | Song et al. | Jun 2016 | A1 |
| 20160191243 | Manning | Jun 2016 | A1 |
| 20160205122 | Bassett | Jul 2016 | A1 |
| 20160205123 | Almurayh et al. | Jul 2016 | A1 |
| 20160226894 | Lee et al. | Aug 2016 | A1 |
| 20160253679 | Venkatraman et al. | Sep 2016 | A1 |
| 20160261628 | Doron et al. | Sep 2016 | A1 |
| 20160267179 | Mei et al. | Sep 2016 | A1 |
| 20160285907 | Nguyen et al. | Sep 2016 | A1 |
| 20160306974 | Turgeman | Oct 2016 | A1 |
| 20160307201 | Turgeman | Oct 2016 | A1 |
| 20160359679 | Parandehgheibi et al. | Dec 2016 | A1 |
| 20170032250 | Chang | Feb 2017 | A1 |
| 20170034211 | Buergi et al. | Feb 2017 | A1 |
| 20170111377 | Park et al. | Apr 2017 | A1 |
| 20170134401 | Medvedovsky et al. | May 2017 | A1 |
| 20170140279 | Turgeman | May 2017 | A1 |
| 20170142144 | Weinberger et al. | May 2017 | A1 |
| 20170149813 | Wright et al. | May 2017 | A1 |
| 20170200457 | Chai et al. | Jul 2017 | A1 |
| 20170221064 | Turgeman et al. | Aug 2017 | A1 |
| 20170230401 | Ahmed et al. | Aug 2017 | A1 |
| 20170244735 | Visbal et al. | Aug 2017 | A1 |
| 20170250972 | Ronda et al. | Aug 2017 | A1 |
| 20170272471 | Veeramachaneni et al. | Sep 2017 | A1 |
| 20170279818 | Milazzo et al. | Sep 2017 | A1 |
| 20170286544 | Hunt et al. | Oct 2017 | A1 |
| 20170289187 | Noel et al. | Oct 2017 | A1 |
| 20170295157 | Chavez et al. | Oct 2017 | A1 |
| 20170295187 | Havelka et al. | Oct 2017 | A1 |
| 20170324738 | Hari et al. | Nov 2017 | A1 |
| 20170346839 | Peppe et al. | Nov 2017 | A1 |
| 20180012021 | Volkov | Jan 2018 | A1 |
| 20180012144 | Ding et al. | Jan 2018 | A1 |
| 20180034779 | Ahuja et al. | Feb 2018 | A1 |
| 20180063190 | Wright et al. | Mar 2018 | A1 |
| 20180096153 | Dewitte et al. | Apr 2018 | A1 |
| 20180115573 | Kuo et al. | Apr 2018 | A1 |
| 20180268464 | Li | Sep 2018 | A1 |
| 20180307832 | Ijiro et al. | Oct 2018 | A1 |
| 20180309787 | Evron et al. | Oct 2018 | A1 |
| 20180322287 | Zhao | Nov 2018 | A1 |
| 20190089737 | Shayevitz et al. | Mar 2019 | A1 |
| 20190207973 | Peng | Jul 2019 | A1 |
| 20190373005 | Bassett | Dec 2019 | A1 |
| 20200134702 | Li | Apr 2020 | A1 |
| Number | Date | Country |
|---|---|---|
| 2606326 | Nov 2006 | CA |
| 103491205 | Jan 2014 | CN |
| 104504307 | Apr 2015 | CN |
| 105429956 | Mar 2016 | CN |
| 105897714 | Aug 2016 | CN |
| 106131016 | Nov 2016 | CN |
| 106202482 | Dec 2016 | CN |
| 106355450 | Jan 2017 | CN |
| 106506435 | Mar 2017 | CN |
| 106713312 | May 2017 | CN |
| 107392456 | Nov 2017 | CN |
| 1160646 | Dec 2001 | EP |
| 2410452 | Jan 2016 | EP |
| 2477136 | Apr 2018 | EP |
| 2437100 | Oct 2007 | GB |
| 2470579 | Dec 2010 | GB |
| 2493514 | Feb 2013 | GB |
| 10-2007-0049514 | May 2007 | KR |
| 20090022682 | Mar 2009 | KR |
| 100923179 | Oct 2009 | KR |
| 10-1514984 | Apr 2015 | KR |
| 20190018197 | Feb 2019 | KR |
| 2333532 | Sep 2008 | RU |
| 2382400 | Feb 2010 | RU |
| 107616 | Aug 2011 | RU |
| 2446459 | Mar 2012 | RU |
| 129279 | Jun 2013 | RU |
| 2487406 | Jul 2013 | RU |
| 2488880 | Jul 2013 | RU |
| 2495486 | Oct 2013 | RU |
| 2522019 | Jul 2014 | RU |
| 2523114 | Jul 2014 | RU |
| 2530210 | Oct 2014 | RU |
| 2536664 | Dec 2014 | RU |
| 2538292 | Jan 2015 | RU |
| 2543564 | Mar 2015 | RU |
| 2566329 | Oct 2015 | RU |
| 2571594 | Dec 2015 | RU |
| 2589310 | Jul 2016 | RU |
| 164629 | Sep 2016 | RU |
| 2607231 | Jan 2017 | RU |
| 2610586 | Feb 2017 | RU |
| 2613535 | Mar 2017 | RU |
| 2622870 | Jun 2017 | RU |
| 172497 | Jul 2017 | RU |
| 2625050 | Jul 2017 | RU |
| 2628192 | Aug 2017 | RU |
| 2636702 | Nov 2017 | RU |
| 2649793 | Apr 2018 | RU |
| 2670030 | Oct 2018 | RU |
| 2670906 | Dec 2018 | RU |
| 2681699 | Mar 2019 | RU |
| 0245380 | Jun 2002 | WO |
| 2009026564 | Feb 2009 | WO |
| 2011045424 | Apr 2011 | WO |
| 2011039371 | Apr 2011 | WO |
| 2012015171 | Feb 2012 | WO |
| 2017070600 | Apr 2017 | WO |
| 2019010182 | Jan 2019 | WO |
| 2019035491 | Feb 2019 | WO |
| Entry |
|---|
| Brownlee, Jason How To Implement The Decision Tree Algorithm From Scratch In Python (all pages) (Year: 2016). |
| Office Action received with regard to the counterpart U.S. Appl. No. 15/858,032 dated Apr. 6, 2020. |
| Office Action with regard to the counterpart U.S. Appl. No. 15/707,641 dated Apr. 25, 2019. |
| Search Report with regard to the counterpart SG Patent Application No. 10201900062S dated Dec. 5, 2019. |
| Search Report with regard to the counterpart SG Patent Application No. 10201900060Y dated Dec. 5, 2019. |
| English Abstract for CN 105429956 retrieved on Espacenet on Jan. 7, 2020. |
| English Abstract for CN 104504307 retrieved on Espacenet on Jan. 7, 2020. |
| Search Report with regard to the counterpart RU Patent Application No. 2018144708 dated Aug. 16, 2019. |
| Search Report with regard to the counterpart RU Patent Application No. 2018147431 dated Aug. 15, 2019. |
| English Translation of KR10-2007-0049514 (Description, Claims) retrieved on Espacenet on Oct. 15, 2019. |
| English Abstract of KR10-1514984 retrieved on Espacenet on Oct. 15, 2019. |
| Notice of Allowance with regard to the counterpart U.S. Appl. No. 15/707,641 dated Oct. 30, 2019. |
| Whyte, “DNS-based Detection of Scanning Worms in an Enterprise Network”, Aug. 2004, NOSS, pp. 1-17 (Year: 2005)—cited by Examiner in the Notice of Allowance with regard to the counterpart U.S. Appl. No. 15/707,641. |
| English Abstract of RU 107616 retrieved on Espacenet on Jul. 3, 2017. |
| European Search Report with regard to EP17180099 dated Nov. 28, 2017. |
| European Search Report with regard to EP17191900 dated Jan. 11, 2018. |
| Yoshioka et al., “Sandbox Analysis with Controlled Internet Connection for Observing Temporal Changes of Malware Behavior”, https://www.researchgate.net/publication/254198606, 15 pages. |
| Yoshioka et al., “Multi-Pass Malware Sandbox Analysis with Controlled Internet Connection”, IEICE Transactions On Fundamentals of Electronics, Communications and Computer Sciences, Engineering Sciences Society, Tokyo, 2010, vol. E93A, No. 1, p.p. 210-218. |
| Wikipedia, “Blockchain”, https://en.wikipedia.org/wiki/Blockchain, pdf document, 18 pages. |
| Search Report with regard to the counterpart RU Patent Application No. 2018101764 dated Jun. 29, 2018. |
| Search Report with regard to the counterpart RU Patent Application No. 2018101761 dated Jun. 20, 2018. |
| International Search Report with regard to the counterpart Patent Application No. PCT/RU2016/000526 dated Jun. 1, 2017. |
| Search Report with regard to the counterpart RU Patent Application No. 2018101760 dated Jun. 22, 2018. |
| Search Report with regard to the counterpart RU Patent Application No. 2018101759 dated Sep. 7, 2018. |
| English Abstract of RU129279 retrieved on Espacenet on Sep. 11, 2017. |
| English Abstract of RU 164629 retrieved on Espacenet on Sep. 11, 2017. |
| English Abstract of RU2538292 retrieved on Espacenet on Sep. 11, 2017. |
| Prakash et al., “PhishNet: Predictive Blacklisting to Detect Phishing Attacks”, INFOCON, 2010 Proceedings IEEE, USA, 2010, ISBN: 978-1-4244-5836-3, doc. 22 pages. |
| Search Report with regard to the counterpart Patent Application No. RU2018105377 dated Oct. 15, 2018. |
| Search Report with regard to the counterpart RU Patent Application No. 2018101763 dated Jan. 11, 2019. |
| Search Report with regard to the counterpart RU Patent Application No. 2016137336 dated Jun. 6, 2017. |
| English Abstract of RU2522019 retrieved on Espacenet on Jan. 25, 2019. |
| Search Report with regard to the counterpart RU Patent Application No. 2017140501 dated Jul. 11, 2018. |
| European Search Report with regard to the counterpart EP Patent Application No. EP17210904 dated May 16, 2018. |
| Notice of Allowance with regard to the counterpart U.S. Appl. No. 15/858,013 dated Jun. 10, 2020. |
| Office Action with regard to the counterpart U.S. Appl. No. 15/858,013 dated Nov. 22, 2019. |
| Office Action with regard to the counterpart U.S. Appl. No. 16/261,854 dated Oct. 21, 2019. |
| Notice of Allowance with regard to the counterpart U.S. Appl. No. 15/858,013 dated May 8, 2020. |
| Office Action with regard to the counterpart U.S. Appl. No. 16/270,341 dated May 27, 2020. |
| International Search Report with regard to the counterpart Patent Application No. PCT/RU2019/000232 dated Jan. 9, 2020. |
| English Abstract for CN 106355450 retrieved on Espacenet on Jan. 4, 2021. |
| English Abstract for CN 106202482 retrieved on Espacenet on Jan. 4, 2021. |
| Wikipedia, “Focus (computing)”, https://en.wikipedia org/wiki/Focus_(computing), accessed on Jan. 4, 2021, pdf 5 pages. |
| Wikipedia, “Collaborative software”, https://en.wikipedia.org/wiki/Collaborative_software, accessed on Jan. 4, 2021, pdf 11 pages. |
| International Search Report with regard to the Patent Application No. PCT/RU2019/000169 dated Dec. 5, 2019. |
| International Search Report and Written Opinion with regard to the counterpart Patent Application No. PCT/RU2019/000126 dated Nov. 28, 2019. |
| English Abstract for KR100923179 retrieved on Espacenet on Dec. 3, 2020. |
| English Abstract for KR20090022682 retrieved on Espacenet on Dec. 3, 2020. |
| English Abstract for KR20190018197 retrieved on Espacenet on Dec. 3, 2020. |
| Wikipedia, “Keystroke dynamics”, https://en.wikipedia.org/wiki/Keystroke_dynamics, accessed on Jan. 4, 2021, pdf 3 pages. |
| Wikipedia, “Feature extraction”, https://en.wikipedia.org/wiki/Feature_extraction, accessed on Jan. 4, 2021, pdf 7 pages. |
| Wikipedia, “Scancode”, ru.wikipedia.org/w/index.php?title=%D0%A1%D0%BA%D0%B0%D0%BD-%D0%BA%D0%BE%D0%B4&oldid=98124315, accessed on Feb. 8, 2021, pdf 9 pages. |
| English Translation of CN106713312, ©Questel—FAMPAT, Jul. 17, 2019. |
| English Translation of CN105897714, ©Questel—FAMPAT, Jul. 17, 2019. |
| English Translation of CN106506435, ©Questel—FAMPAT, Jul. 26, 2019. |
| English Translation of CN107392456, ©Questel—FAMPAT, Jul. 29, 2019. |
| English Translation of CN103491205, ©Questel—FAMPAT, Jul. 29, 2019. |
| English Translation of CN106131016, ©Questel—FAMPAT, Jul. 17, 2019. |
| Invitation to Respond to Written Opinion dated Aug. 5, 2019 with regard to the counterpart SG Patent Application No. 10201900339Q. |
| Invitation to Respond to Written Opinion dated Aug. 5, 2019 with regard to the counterpart SG Patent Application No. 10201901079U. |
| Invitation to Respond to Written Opinion datedd Jul. 31, 2019 with regard to the counterpart SG Patent Application No. 10201900335P. |
| Search Report with regard to RU Patent Application No. 2019107535 dated Dec. 13, 2022. |
| English Description and Claims for RU2333532 retrieved on Espacenet on Dec. 28, 2022. |
| English Abstract for RU172497 retrieved on Espacenet on Dec. 28, 2022. |
| Russian Search Report dated Mar. 2, 2023 issued in respect of the counterpart Russian Patent Application No. RU 2019111675. |
| Number | Date | Country | |
|---|---|---|---|
| 20190156160 A1 | May 2019 | US |