Buffer overflow trapping

US11947465B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11947465-B2
Application numberUS-202017068915-A
CountryUS
Kind codeB2
Filing dateOct 13, 2020
Priority dateOct 13, 2020
Publication dateApr 2, 2024
Grant dateApr 2, 2024

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.

Aspects of the invention include receiving, at an operating system executing on a processor, a write request from a program to write data to a memory. The write request includes a virtual memory address and the data. It is determined that the virtual memory address is not assigned to a physical memory address. Based on the determining, the unassigned virtual memory address is assigned to a physical memory address in an overflow memory. The data is written to the physical memory address in the overflow memory and an indication that the write data was successfully written is returned to the program. Future requests by the program to access the virtual memory address are directed to the physical memory address in the overflow memory.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving, at an operating system executing on a processor, a write request from a program to write data to a memory, the write request comprising a virtual memory address and the data; determining that the virtual memory address is not assigned to a physical memory address; based on a determination that the virtual address is not assigned to a physical memory address, initiating recording of state information about the data and the program, wherein the state information includes an identifier of the program, addresses of memory being accessed by the program, and a loader associated with execution of the program; based on the determining, assigning the virtual memory address to a physical memory address in an overflow memory; writing the data to the physical memory address in the overflow memory; and returning an indication to the program that the data was successfully written to the memory, wherein subsequent requests by the program to access the virtual memory address are directed to the physical memory address in the overflow memory. 2. The method of claim 1 , wherein the state information is utilized to identify a pattern associated with a malicious program or threat actor. 3. The method of claim 1 , wherein a security policy of the processor is updated based at least in part on the state information. 4. The method of claim 1 , wherein the data includes computer code and the overflow location is configured to prevent the computer code from executing from the overflow location. 5. The method of claim 1 , wherein a translation lookaside buffer (TLB) is used to translate virtual memory addresses into physical memory addresses, and the TLB is configured using sparse memory placement. 6. The method of claim 1 , further comprising: determining a buffer overflow mode of the processor, wherein the assigning, writing, and returning are performed based on the buffer overflow mode of the processor being a first mode; and based on the buffer overflow mode being a second mode, returning an indication to the program that the write was not successfully completed in response to determining that the virtual address is not assigned to a physical memory address in the memory. 7. A system comprising: one or more processors for executing computer readable instructions, the computer readable instructions controlling the one or more processors to perform operations comprising: receiving, at an operating system executing on a processor of the one or more processors, a write request from a program to write data to a memory, the write request comprising a virtual memory address and the data; determining that the virtual memory address is not assigned to a physical memory address; based on a determination that the virtual address is not assigned to a physical memory address, initiating recording of state information about the data and the program, wherein the state information includes an identifier of the program, addresses of memory being accessed by the program, and a loader associated with execution of the program; based on the determining, assigning the virtual memory address to a physical memory address in an overflow memory; writing the data to the physical memory address in the overflow memory; and returning an indication to the program that the data was successfully written to the memory, wherein subsequent requests by the program to access the virtual memory address are directed to the physical memory address in the overflow memory. 8. The system of claim 7 , wherein the state information is utilized to identify a pattern associated with a malicious program or threat actor. 9. The system of claim 7 , wherein a security policy of the processor is updated based at least in part on the state information. 10. The system of claim 7 , wherein the data includes computer code and the overflow location is configured to prevent the computer code from executing from the overflow location. 11. The system of claim 7 , wherein a translation lookaside buffer (TLB) is used to translate virtual memory addresses into physical memory addresses, and the TLB is configured using sparse memory placement. 12. The system of claim 7 , wherein the operations further comprise: determining a buffer overflow mode of the processor, wherein the assigning, writing, and returning are performed based on the buffer overflow mode of the processor being a first mode; and based on the buffer overflow mode being a second mode, returning an indication to the program that the write was not successfully completed in response to determining that the virtual address is not assigned to a physical memory address in the memory. 13. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations comprising: receiving, at an operating system executing on the processor, a write request from a program to write data to a memory, the write request comprising a virtual memory address and the data; determining that the virtual memory address is not assigned to a physical memory address; based on a determination that the virtual address is not assigned to a physical memory address, initiating recording of state information about the data and the program, wherein the state information includes an identifier of the program, addresses of memory being accessed by the program, and a loader associated with execution of the program; based on the determining, assigning the virtual memory address to a physical memory address in an overflow memory; writing the data to the physical memory address in the overflow memory; and returning an indication to the program that the data was successfully written to the memory, wherein subsequent requests by the program to access the virtual memory address are directed to the physical memory address in the overflow memory. 14. The computer program product of claim 13 , wherein a security policy of the processor is updated based at least in part on the state information. 15. The computer program product of claim 13 , wherein the data includes computer code and the overflow location is configured to prevent the computer code from executing from the overflow location. 16. The computer program product of claim 13 , wherein a translation lookaside buffer (TLB) is used to translate virtual memory addresses into physical memory addresses, and the TLB is configured using sparse memory placement. 17. The computer program product of claim 13 , wherein the operations further comprise: determining a buffer overflow mode of the processor, wherein the assigning, writing, and returning are performed based on the buffer overflow mode of the processor being a first mode; and based on the buffer overflow mode being a second mode, returning an indication to the program that the write was not successfully completed in response to determining that the virtual address is not assigned to a physical memory address in the memory.

Assignees

Inventors

Classifications

  • using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow} · CPC title

  • Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities · CPC title

  • Memory management, e.g. access or allocation · 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 US11947465B2 cover?
Aspects of the invention include receiving, at an operating system executing on a processor, a write request from a program to write data to a memory. The write request includes a virtual memory address and the data. It is determined that the virtual memory address is not assigned to a physical memory address. Based on the determining, the unassigned virtual memory address is assigned to a phys…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/1027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 02 2024 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).