IP Library Granted Patent US 12,437,067
Granted Patent B1
US 12,437,067 · App. 18/418,064 · Granted Oct 7, 2025

Suspicious filename detection using a deep learning neural network

Inventors: Glory Emmanuel Avina (Brentwood, CA); Abhinav Mishra (San Francisco, CA); Kumar Sharad (Dresden, DE); Namratha Sreekanta (Fremont, CA)
Assignee: Cisco Technology, Inc.
G06F21/554G06N3/084G06F2221/033
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,437,067
App. No.
18/418,064
Granted
Oct 7, 2025
Kind
B1
Abstract

Disclosed herein is a machine learning-based approach to detect suspiciously named processes. When malware executes on a networking device, such as a laptop or desktop computer, the malware may create a copy of itself, assign the copy a process name consisting of random characters, and store the copy in a directory of the networking device. As characters of words in a given language follow patterns and rules, the presence of each character is not equally likely. In contrast, characters in random sequences have an equal likelihood of being present. In some implementations disclosed herein, a character-level recurrent neural network (RNN) is trained to distinguish between randomly generated filenames from those created by an user and thus, identify malware attacks. In some implementations, a character-level RNN is configured to classify filenames as malicious or benign.

Claims (61)

1. A computer-implemented method, comprising:

performing text pre-processing on a filename resulting in a pre-processed filename;

generating a tensor from the pre-processed filename;

deploying a character-level recurrent neural network (RNN) by feeding the tensor as input thereto, wherein the character-level RNN includes a first linear layer that is configured to analyze the pre-processed filename character-by-character resulting in a RNN output;

converting the RNN output to a prediction score by obtaining an exponent of the RNN output;

performing a threshold comparison between the prediction score and a suspiciousness threshold; and

generating a graphical user interface indicating that the filename is suspicious when the threshold comparison was not satisfied.

2. The method of claim 1 , further comprising:

executing a pipelined search query resulting in retrieval of a set of filenames to be analyzed as being suspicious, wherein the filename is one of the set of filenames.

3. The method of claim 1 , wherein text pre-processing includes extracting a process name, removing a file extension, converting the process name to lowercase, removing special characters and numbers, and removing character accents.

4. The method of claim 1 , wherein generating the tensor includes encoding the pre-processed filename into a one-hot feature vector, and wherein the tensor has a size of <pre-processed filename length, batch size, number of possible characters>.

5. The method of claim 4 , wherein the batch size is 1, and the number of possible characters is 26.

6. The method of claim 1 , wherein the RNN output is a result of a softmax layer of the character-level RNN.

7. The method of claim 1 , further comprising:

obtaining training data including a set of text filenames and a class assigned to each of the text filenames of the training data;

generating one or more training tensors representing the set of text filenames of the set of training as a first set of one-hot vectors and one or more label tensors representing the classes assigned to each of the text filenames of the training data as a set second of one-hot vectors;

performing a first forward propagation pass by feeding the one or more training tensors to the character-level RNN resulting in a first prediction for the set of text filenames of the set of training;

determining a negative loss likelihood between the first prediction for the set of text filenames of the set of training and one or more label tensors;

performing a backpropagation pass to update parameters of one or more hidden layers of the character-level RNN; and

performing one or more additional iterations of an additional forward propagation pass, determining a negative loss likelihood between an additional prediction for the set of text filenames of the set of training and one or more label tensors, and an additional back propagation pass.

8. A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to perform operations including:

performing text pre-processing on a filename resulting in a pre-processed filename;

generating a tensor from the pre-processed filename;

deploying a character-level recurrent neural network (RNN) by feeding the tensor as input thereto, wherein the character-level RNN includes a first linear layer that is configured to analyze the pre-processed filename character-by-character resulting in a RNN output;

converting the RNN output to a prediction score by obtaining an exponent of the RNN output;

performing a threshold comparison between the prediction score and a suspiciousness threshold; and

generating a graphical user interface indicating that the filename is suspicious when the threshold comparison was not satisfied.

9. The computing device of claim 8 , wherein the operations further include:

executing a pipelined search query resulting in retrieval of a set of filenames to be analyzed as being suspicious, wherein the filename is one of the set of filenames.

10. The computing device of claim 8 , wherein text pre-processing includes extracting a process name, removing a file extension, converting the process name to lowercase, removing special characters and numbers, and removing character accents.

11. The computing device of claim 8 , wherein generating the tensor includes encoding the pre-processed filename into a one-hot feature vector, and wherein the tensor has a size of <pre-processed filename length, batch size, number of possible characters>.

12. The computing device of claim 11 , wherein the batch size is 1, and the number of possible characters is 26.

13. The computing device of claim 8 , wherein the RNN output is a result of a softmax layer of the character-level RNN.

14. The computing device of claim 8 , wherein the operations further include:

obtaining training data including a set of text filenames and a class assigned to each of the text filenames of the training data;

generating one or more training tensors representing the set of text filenames of the set of training as a first set of one-hot vectors and one or more label tensors representing the classes assigned to each of the text filenames of the training data as a set second of one-hot vectors;

performing a first forward propagation pass by feeding the one or more training tensors to the character-level RNN resulting in a first prediction for the set of text filenames of the set of training;

determining a negative loss likelihood between the first prediction for the set of text filenames of the set of training and one or more label tensors;

performing a backpropagation pass to update parameters of one or more hidden layers of the character-level RNN; and

performing one or more additional iterations of an additional forward propagation pass, determining a negative loss likelihood between an additional prediction for the set of text filenames of the set of training and one or more label tensors, and an additional back propagation pass.

15. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processor to perform operations including:

performing text pre-processing on a filename resulting in a pre-processed filename;

generating a tensor from the pre-processed filename;

deploying a character-level recurrent neural network (RNN) by feeding the tensor as input thereto, wherein the character-level RNN includes a first linear layer that is configured to analyze the pre-processed filename character-by-character resulting in a RNN output;

converting the RNN output to a prediction score by obtaining an exponent of the RNN output;

performing a threshold comparison between the prediction score and a suspiciousness threshold; and

generating a graphical user interface indicating that the filename is suspicious when the threshold comparison was not satisfied.

16. The non-transitory computer-readable medium of claim 15 , wherein the operations further include:

executing a pipelined search query resulting in retrieval of a set of filenames to be analyzed as being suspicious, wherein the filename is one of the set of filenames.

17. The non-transitory computer-readable medium of claim 15 , wherein text pre-processing includes extracting a process name, removing a file extension, converting the process name to lowercase, removing special characters and numbers, and removing character accents.

18. The non-transitory computer-readable medium of claim 15 , wherein generating the tensor includes encoding the pre-processed filename into a one-hot feature vector, and wherein the tensor has a size of <pre-processed filename length, batch size, number of possible characters>.

19. The non-transitory computer-readable medium of claim 15 , wherein the RNN output is a result of a softmax layer of the character-level RNN.

20. The non-transitory computer-readable medium of claim 15 , wherein the operations further include:

obtaining training data including a set of text filenames and a class assigned to each of the text filenames of the training data;

generating one or more training tensors representing the set of text filenames of the set of training as a first set of one-hot vectors and one or more label tensors representing the classes assigned to each of the text filenames of the training data as a set second of one-hot vectors;

performing a first forward propagation pass by feeding the one or more training tensors to the character-level RNN resulting in a first prediction for the set of text filenames of the set of training;

determining a negative loss likelihood between the first prediction for the set of text filenames of the set of training and one or more label tensors;

performing a backpropagation pass to update parameters of one or more hidden layers of the character-level RNN; and

performing one or more additional iterations of an additional forward propagation pass, determining a negative loss likelihood between an additional prediction for the set of text filenames of the set of training and one or more label tensors, and an additional back propagation pass.

Assignments (3)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2024
From: AVINA, GLORY EMMANUEL; MISHRA, ABHINAV; SHARAD, KUMAR; SREEKANTA, NAMRATHA
To: SPLUNK INC.
Reel/Frame 068101/0197 →
Continuity (1)
Provisional Application 63440088 · Jan 19, 2023
References Cited (18)
US 7937344B2 · Baum et al. · 2011 [cited by applicant]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8751529B2 · Zhang et al. · 2014 [cited by applicant]
US 8788525B2 · Neels et al. · 2014 [cited by applicant]
US 9215240B2 · Merza et al. · 2015 [cited by applicant]
US 9286413B1 · Coates et al. · 2016 [cited by applicant]
US 10127258B2 · Lamas et al. · 2018 [cited by applicant]
US 10521587B1 · Agranonik · 2019 [cited by examiner]
US 10956477B1 · Fang · 2021 [cited by examiner]
US 20190098106A1 · Mungel et al. · 2019 [cited by applicant]
US 20210141897A1 · Seifert · 2021 [cited by examiner]
US 20210157914A1 · Gauthier · 2021 [cited by examiner]
US 20240330446A1 · Bulut · 2024 [cited by examiner]
Bitincka, Ledion et al., “Optimizing Data Analysis with a Semi-structured Time Series Database,” self-published, first presented at “Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML)”… [cited by applicant]
Carraso, David, “Exploring Splunk,” published by CITO Research, New York, NY, Apr. 2012. [cited by applicant]
Splunk Cloud 8.0.2004 User Manual, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Enterprise 8.0.0 Overview, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Quick Reference Guide, updated 2019, available online at https://www.splunk.com/pdfs/solution-guides/splunk-quick-reference-guide.pdf, retrieved May 20, 2020. [cited by applicant]