Automatic curation and modification of virtualized computer programs

US9832226B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9832226-B2
Application numberUS-201514596728-A
CountryUS
Kind codeB2
Filing dateJan 14, 2015
Priority dateApr 13, 2012
Publication dateNov 28, 2017
Grant dateNov 28, 2017

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.

In an embodiment, a data processing method comprises receiving a first instance of computer program data at a security unit having one or more processors; executing the first instance of the computer program data in a monitored environment; observing and recording identification information for each of a plurality of functions called by the first instance of the computer program data; sending the identification information to one or more security enforcement endpoints over a computer network; and generating one or more instructions describing security protections to implement for function calls not included in the identification information in a second instance of the computer program data, and sending the instructions to one or more security enforcement endpoints over a computer network.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: using a security unit having one or more processors, receiving a first instance of computer program data at the security unit; modifying, by the security unit, the first instance of the computer program data to implement one or more security improvements, resulting in a modified computer program data, wherein the one or more security improvements improve resistance of the computer program data to security attacks, and wherein the one or more security improvements are independent of a type or version of the computer program data; executing the first instance of the computer program data in a monitored environment in the security unit to generate expected output; executing the modified computer program data in the monitored environment in the security unit to generate modified output; identifying one or more variances in the modified output by comparing the modified output to the expected output; based on the one or more variances, altering the one or more security improvements or updating the security unit; repeating the steps of the method using the altered one or more security improvements or updated security unit until no variances in modified output are identified; wherein the method is performed using one or more processors. 2. The method of claim 1 , wherein the computer program data comprises any of: an application program executable; application program configuration data; one or more units of an operating system; a just-in-time compiled application program. 3. The method of claim 1 , further comprising: in the security unit, observing and recording identification information for each of a plurality of functions called by the first instance of the computer program data; sending the identification information from the security unit to one or more security enforcement endpoints over a computer network; using the security unit, generating one or more instructions describing security protections to implement for function calls not included in the identification information in a second instance of the computer program data, and sending the instructions from the security unit to one or more security enforcement endpoints over a computer network; wherein the one or more instructions comprise function pointers or offset values with reference to a start of an executable binary. 4. The method of claim 3 , wherein sending the identification information comprises sending a whitelist of the plurality of functions called by the first instance of the computer program data. 5. The method of claim 1 , wherein the first instance of the computer program data is obtained from an authorized source. 6. A non-transitory computer readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, cause: by a security unit, receiving a first instance of computer program data at the security unit; modifying, by the security unit, the first instance of the computer program data to implement one or more security improvements, resulting in a modified computer program data, wherein the one or more security improvements improve resistance of the computer program data to security attacks, and wherein the one or more security improvements are independent of a type or version of the computer program data; using the security unit, executing the first instance of the computer program data in a monitored environment in the security unit to generate expected output; executing the modified computer program data in the monitored environment in the security unit to generate modified output; identifying one or more variances in the modified output by comparing the modified output to the expected output; based on the one or more variances, altering the one or more security improvements or updating the security unit; repeating the steps of the method using the altered one or more security improvements or updated security unit until no variances in modified output are identified. 7. The computer-readable medium of claim 6 , wherein the computer program data comprises any of: an application program executable; application program configuration data; one or more units of an operating system; a just-in-time compiled application program. 8. The computer-readable medium of claim 6 , further comprising sequences of instructions which when executed cause the one or more processors to perform: observing and recording, in the security unit, identification information for each of a plurality of functions called by the first instance of the computer program data; sending the identification information from the security unit to one or more security enforcement endpoints over a computer network; generating one or more instructions describing security protections to implement for function calls not included in the identification information in a second instance of the computer program data, and sending the instructions from the security unit to one or more security enforcement endpoints over a computer network, wherein the one or more instructions comprise function pointers or offset values with reference to a start of an executable binary. 9. The computer-readable medium of claim 8 , wherein sending the identification information comprises sending a whitelist of the plurality of functions called by the first instance of the computer program data. 10. The computer-readable medium of claim 6 , wherein the first instance of the computer program data is obtained from an authorized source. 11. A security unit comprising: one or more processors; a non-transitory computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform: receiving a first instance of computer program data at the security unit; modifying the first instance of the computer program data to implement one or more security improvements, resulting in a modified computer program data, wherein the one or more security improvements improve resistance of the computer program data to security attacks, and wherein the one or more security improvements are independent of a type or version of the computer program data; executing the first instance of the computer program data in a monitored environment in the security unit to generate expected output; executing the modified computer program data in the monitored environment in the security unit to generate modified output; identifying one or more variances in the modified output by comparing the modified output to the expected output; based on the one or more variances, altering the one or more security improvements or updating the security unit; repeating the steps of the method using the altered one or more security improvements or updated security unit until no variances in modified output are identified. 12. The security unit of claim 11 , wherein the computer program data comprises any of: an application program executable; application program configuration data; one or more units of an operating system; a just-in-time compiled application program. 13. The security unit of claim 11 , further comprising sequences of instructions which when executed by the one or more processors cause performing: observing and recording, in the security unit, identification information for each of a plurality of functions called by the first instance of the computer program data; sending the identification information from the security unit to one or more security enforcement endpoints over a computer network; generating one or more instructions describing secur

Assignees

Inventors

Classifications

  • Isolation or security of virtual machine instances · CPC title

  • by executing in a restricted environment, e.g. sandbox or secure virtual machine · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Test or assess software · CPC title

  • H04L63/20Primary

    for managing network security; network security policies in general (filtering policies H04L63/0227) · 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 US9832226B2 cover?
In an embodiment, a data processing method comprises receiving a first instance of computer program data at a security unit having one or more processors; executing the first instance of the computer program data in a monitored environment; observing and recording identification information for each of a plurality of functions called by the first instance of the computer program data; sending t…
Who is the assignee on this patent?
Cisco Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L63/20. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 28 2017 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).