Static feature extraction from structured files

US10838844B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10838844-B2
Application numberUS-201916424261-A
CountryUS
Kind codeB2
Filing dateMay 28, 2019
Priority dateJan 31, 2014
Publication dateNov 17, 2020
Grant dateNov 17, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Data is received or accessed that includes a structured file encapsulating data required by an execution environment to manage executable code wrapped within the structured file. Thereafter, code and data regions are iteratively identified in the structured file. Such identification is analyzed so that at least one feature can be extracted from the structured file. Related apparatus, systems, techniques and articles are also described.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: receiving or accessing data comprising a structured file encapsulating data required by an execution environment to manage executable code wrapped within the structured file; iteratively identifying code and data regions in the structured file for parsing and disassembly; and extracting a plurality of features from the structured file based on the parsing and disassembly of at least a portion of the identified code and data regions; truncating one of the features; generating an additional feature noting a reason for the truncation, the reason being one of the data comprising non-printable characters, invalid encodings, or a mixture of languages; inputting the extracted features and the additional feature into at least one machine learning model to classify the structured file as malicious or safe; and preventing access or execution of the structured file if it is classified as malicious; or accessing or executing the structured file if it is classified as safe. 2. The method of claim 1 , wherein the structured file is selected from a group consisting of: Portable Executable (PE) format files, disk operating system (DOS) executable files, New Executable (NE) files, Linear Executable (LE) files, Executable and Linkable Format (ELF) files, JAVA Archive (JAR) files, and SHOCKWAVE/FLASH (SWF) files. 3. The method of claim 1 , wherein the execution environment is an operating system or a virtual machine. 4. The method of claim 1 further comprising: determining that the structured file is valid by examining the first header or the second header within the structured file to determine whether it encapsulates a valid signature. 5. The method of claim 1 , wherein the extracted features comprise a first order feature. 6. The method of claim 5 further comprising: deriving the extracted at least one first order feature into a higher-order feature. 7. The method of claim 1 further comprising: analyzing negative space within the structured file to extract at least one additional feature, the negative space being different from the identified code and data regions. 8. The method of claim 1 further comprising: transforming at least one of the extracted features. 9. The method of claim 8 , wherein the transforming comprises: sanitizing at least one of the extracted features by encoding associated data in an unambiguously reversible way. 10. The method of claim 9 , wherein the transforming comprises: truncating at least one of the extracted features when a size of such at least one feature exceeds a predetermined amount. 11. The method of claim 1 , wherein the code and data regions in the structured file are identified by: discovering a structure of the structured file; analyzing and checking a first header located at a root of the structure; analyzing and checking a second header in the structure referenced by the first header in response to the checking of the first header; and looping through remaining portions of the structure other than the first header and the second header until all code start points for analysis and disassembly are identified. 12. The method of claim 1 , wherein data within the structured file is arranged hierarchically and the structured file comprises a top level header encapsulating a first data structure that encapsulates a second data structure. 13. The method of claim 1 , wherein the first header is a disk operating system (DOS) header and the second header is a Portable Executable (PE) header. 14. A computer-implemented method for extraction of features from a structured file, the method comprising: receiving or accessing data comprising a structured file encapsulating data required by an execution environment to manage executable code wrapped within the structured file; determining that the structured file is valid; iteratively analyzing code and data within the structured file to identify and extract first order features; analyzing negative space within the structured file to identify and extract additional first order features; transforming a portion of the extracted first order features into higher order features using one or more transformation techniques; truncating at least one of the first order features; generating an additional feature characterizing the truncating; inputting the transformed higher order features and non-transformed first order features and the generated additional feature into a machine learning model trained to classify the structured file as malicious or benign; providing, by the machine learning model, output characterizing the classification of the structured file; and preventing access or execution of the structured file if it is classified as malicious; or accessing or executing the structured file if it is classified as safe. 15. The method of claim 14 , wherein the iteratively analyzing code and data within the structured file to identify and extract first order features comprises: discovering a structure of the structured file; analyzing and checking a first header located at a root of the structure; analyzing and checking a second header in the structure referenced by the first header in response to the checking of the first header; and looping through remaining portions of the structure other than the first header and the second header until all code start points for analysis are identified. 16. A system comprising: at least one data processor; and memory storing instructions which, when executed by the at least one data processor, result in operations comprising: receiving or accessing data comprising a structured file encapsulating data required by an execution environment to manage executable code wrapped within the structured file; iteratively identifying code and data regions in the structured file for parsing and disassembly; and extracting a plurality of features from the structured file based on the parsing and disassembly of at least a portion of the identified code and data regions; truncating one of the features; generating an additional feature noting a reason for the truncation, the reason being one of the data comprising non-printable characters, invalid encodings, or a mixture of languages; inputting the extracted features and the additional feature into at least one machine learning model to classify the structured file as malicious or safe; and preventing access or execution of the structured file if it is classified as malicious; or accessing or executing the structured file if it is classified as safe. 17. The system of claim 16 , wherein the structured file is selected from a group consisting of: Portable Executable (PE) format files, disk operating system (DOS) executable files, New Executable (NE) files, Linear Executable (LE) files, Executable and Linkable Format (ELF) files, JAVA Archive (JAR) files, and SHOCKWAVE/FLASH (SWF) files. 18. The system of claim 17 , wherein the execution environment is a virtual machine. 19. The system of claim 16 , wherein the operations further comprise: transforming at least one of the extracted features comprising sanitizing at least one of the extracted features by encoding associated data in an unambiguously reversible way. 20. The system of claim 16 , wherein the code and data regions in the structured file are identified by: discovering a structure of the structured file; analyzing and checking a first header located at a root of the structure; analyzing and checking a

Assignees

Inventors

Classifications

  • G06F21/562Primary

    Static detection · CPC title

  • Parsing · CPC title

  • Virtual file systems · CPC title

  • Prevention of errors by analysis, debugging or testing of software · CPC title

  • Details of conversion of file system types or formats · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10838844B2 cover?
Data is received or accessed that includes a structured file encapsulating data required by an execution environment to manage executable code wrapped within the structured file. Thereafter, code and data regions are iteratively identified in the structured file. Such identification is analyzed so that at least one feature can be extracted from the structured file. Related apparatus, systems, t…
Who is the assignee on this patent?
Cylance Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/562. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 17 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).