IP Library Granted Patent US 11,481,491
Granted Patent B2
US 11,481,491 · App. 17/084,834 · Granted Oct 25, 2022

Managing virus scanning of container images

Inventors: Huamin Chen (Westboro, MA); Dennis Keefe (Smithfield, RI)
Assignee: RED HAT, INC.
G06F21/561G06F21/564G06F2221/034
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 11,481,491
App. No.
17/084,834
Granted
Oct 25, 2022
Kind
B2
Abstract

Virus scanning of container images can be managed. For example, container images can be received in a sequential order. The container images can then be analyzed to determine the contents of the container images. The container images can be arranged in a virus-scanning queue in an order that is different from the sequential order in which the container images were received based on the contents of the container images. The container images can then be scanned for viruses in the order in which the container images are arranged in the virus-scanning queue.

Claims (69)

1. A system comprising:

a processing device; and

a memory device including instructions that are executable by the processing device for causing the processing device to:

receive a plurality of files in a sequential order;

determine an order in which to organize the plurality of files in a virus-scanning queue by accessing and analyzing content in the plurality of files, the order being different from the sequential order in which the plurality of files were received;

arrange the plurality of files in the virus-scanning queue in the order; and

scan the plurality of files for viruses in the order in which the plurality of files are arranged in the virus-scanning queue.

2. The system of claim 1 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to:

determine how many data blocks each respective file among the plurality of files has in common with every other file among the plurality of files; and

arrange the plurality of files in the virus-scanning queue such that each respective file is positioned in the virus-scanning queue adjacent to another file that has a highest number of data blocks in common with the respective file.

3. The system of claim 2 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to determine how many data blocks that a file among the plurality of files has in common with every other file among the plurality of files by:

segmenting the file into the data blocks; and

counting how many of the data blocks the file has in common with each of the other files.

4. The system of claim 3 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to arrange the plurality of files in the virus-scanning queue by:

determining that a particular file among the other files has a highest number of the data blocks in common with the file; and

in response to determining that the particular file has the highest number of the data blocks in common with the file, positioning the particular file adjacent to the file in the virus-scanning queue.

5. The system of claim 1 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to:

determine respective counts for layers of a file among the plurality of files, each respective count indicating how many times a respective layer among the layers is present in a group of files in a repository;

determine a score for the file based on the respective counts for the layers; and

position the file at a particular location in the virus-scanning queue based on the score for the file.

6. The system of claim 5 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to:

position the file later in the virus-scanning queue than another file among the plurality of files in response to determining that the score is higher than another score for the other file; or

position the file earlier in the virus-scanning queue than the other file in response to determining that the score is lower than the other score for the other file.

7. The system of claim 5 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to determine the score for the file by:

determining that a count among the respective counts exceeds a threshold value; and

in response to determining that the count exceeds the threshold value, disregarding the count when calculating the score.

8. The system of claim 5 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to determine that the score for the file is an average value of the respective counts.

9. A non-transitory computer-readable medium comprising program code that is executable by a processing device for causing the processing device to:

receive a plurality of files in a sequential order;

determine an order in which to organize the plurality of files in a virus-scanning queue by accessing and analyzing content in the plurality of files, the order being different from the sequential order in which the plurality of files were received;

arrange the plurality of files in the virus-scanning queue in the order; and

scan the plurality of files for viruses in the order in which the plurality of files are arranged in the virus-scanning queue.

10. The non-transitory computer-readable medium of claim 9 , further comprising program code that is executable by the processing device for causing the processing device to:

determine how many data blocks each respective file among the plurality of files has in common with every other file among the plurality of files; and

arrange the plurality of files in the virus-scanning queue such that each respective file is positioned in the virus-scanning queue adjacent to another file that has a highest number of data blocks in common with the respective file.

11. The non-transitory computer-readable medium of claim 10 , further comprising program code that is executable by the processing device for causing the processing device to determine how many data blocks that a file among the plurality of files has in common with every other file among the plurality of files by:

segmenting the file into the data blocks; and

counting how many of the data blocks the file has in common with each of the other files.

12. The non-transitory computer-readable medium of claim 11 , further comprising program code that is executable by the processing device for causing the processing device to arrange the plurality of files in the virus-scanning queue by:

determining that a particular file among the other files has a highest number of the data blocks in common with the file; and

in response to determining that the particular file has the highest number of the data blocks in common with the file, positioning the particular file adjacent to the file in the virus-scanning queue.

13. The non-transitory computer-readable medium of claim 9 , further comprising program code that is executable by the processing device for causing the processing device to:

determine respective counts for layers of a file among the plurality of files, each respective count indicating how many times a respective layer among the layers is present in a group of files in a repository;

determine a score for the file based on the respective counts for the layers; and

position the file at a particular location in the virus-scanning queue based on the score for the file.

14. The non-transitory computer-readable medium of claim 13 , further comprising program code that is executable by the processing device for causing the processing device to:

position the file later in the virus-scanning queue than another file among the plurality of files in response to determining that the score is higher than another score for the other file; or

position the file earlier in the virus-scanning queue than the other file in response to determining that the score is lower than the other score for the other file.

15. A method comprising:

receiving, by a processing device, a plurality of files in a sequential order;

determining, by the processing device, an order in which to organize the plurality of files in a virus-scanning queue by accessing and analyzing content in the plurality of files, the order being different from the sequential order in which the plurality of files were received;

arranging, by the processing device, the plurality of files in the virus-scanning queue in the order; and

scanning, by the processing device, the plurality of files for viruses in the order in which the plurality of files are arranged in the virus-scanning queue.

16. The method of claim 15 , further comprising:

determining how many data blocks each respective file among the plurality of files has in common with every other file among the plurality of files; and

arranging the plurality of files in the virus-scanning queue such that each respective file is positioned in the virus-scanning queue adjacent to another file that has a highest number of data blocks in common with the respective file.

17. The method of claim 16 , further comprising determining how many data blocks that a file among the plurality of files has in common with every other file among the plurality of files by:

segmenting the file into the data blocks; and

counting how many of the data blocks the file has in common with each of the other files.

18. The method of claim 17 , further comprising arranging the plurality of files in the virus-scanning queue by:

determining that a particular file among the other files has a highest number of the data blocks in common with the file; and

in response to determining that the particular file has the highest number of the data blocks in common with the file, positioning the particular file adjacent to the file in the virus-scanning queue.

19. The method of claim 15 , further comprising:

determining respective counts for layers of a file among the plurality of files, each respective count indicating how many times a respective layer among the layers is present in a group of files in a repository;

determining a score for the file based on the respective counts for the layers; and

positioning the file at a particular location in the virus-scanning queue based on the score for the file.

20. The method of claim 19 , further comprising:

positioning the file later in the virus-scanning queue than another file among the plurality of files in response to determining that the score is higher than another score for the other file; or

positioning the file earlier in the virus-scanning queue than the other file in response to determining that the score is lower than the other score for the other file.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2020
From: CHEN, HUAMIN; KEEFE, DENNIS
To: RED HAT, INC.
Reel/Frame 054457/0254 →