Method for validating dynamically loaded libraries using team identifiers

US9536080B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9536080-B2
Application numberUS-201514726292-A
CountryUS
Kind codeB2
Filing dateMay 29, 2015
Priority dateMay 29, 2015
Publication dateJan 3, 2017
Grant dateJan 3, 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.

According to one embodiment, in response to a request received from an application by a launch module hosted by an operating system and executed by a processor to dynamically load a library, a library validation module hosted by the operating system extracts a first team identifier (ID) from the application, where the first team ID identifies an application provider that provides the application. The library validation module extracts a second team ID from the library, where the second team ID identifies a library provider that provides the library. The first team ID and the second team ID are compared to determine whether the first team ID matches the second team ID. In response to determining that the first team ID matches the second team ID, the launch module launches the library to allow the application communicate with the library; otherwise, the request is denied.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for validating dynamically loaded libraries, the method comprising: in response to a request received from an application by a launch module hosted by an operating system of a data processing system and executed by a processor to dynamically load a library, extracting by a library validation module hosted by the operating system a first team identifier (ID) from the application, wherein the first team ID identifies an application provider that provides the application; extracting by the library validation module a second team ID from the library, wherein the second team ID identifies a library provider that provides the library; comparing the first team ID and the second team ID to determine whether the first team ID matches the second team ID; in response to determining that the first team ID matches the second team ID, launching by the launch module the library to allow the application communicate with the library; and denying the request if the first team ID does not match the second team ID. 2. The method of claim 1 , wherein the first team ID is inserted into a first binary image of the application, and wherein the first binary image having the first team ID is signed using a first certificate provided by a trusted entity. 3. The method of claim 2 , wherein the second team ID is inserted into a second binary image of the library, and wherein the second binary image having the second team ID is signed using a second certificate provided by the trusted entity. 4. The method of claim 3 , further comprising examining the second certificate to determine whether the second certificate is still valid, wherein the comparison of the first team ID and the second team ID is performed only if the second certificate is still valid. 5. The method of claim 1 , further comprising: determining whether the library is provided and installed as a bundle including the operating system in the data processing system; and loading the library in response to determining that the library is provided as part of operating system. 6. The method of claim 5 , wherein determining whether the library is provided and installed as a bundle comprises determining whether the library has been installed and stored in a first predetermined directory of a file system associated with the operating system. 7. The method of claim 5 , further comprising: determining whether the application is a third-party application that is not provided in the bundle; and performing comparing the first and second team IDs, in response to determining that the application is a third-party application. 8. The method of claim 7 , wherein determining whether the application is provided in the bundle comprises determining whether the application has been installed and stored in a second predetermined directory of a file system associated with the operating system. 9. The method of claim 7 , further comprising denying the request to load the library if the application is not a third-party application and the library is a third-party library. 10. A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method for validating dynamically loaded libraries, the method comprising: in response to a request received from an application by a launch module hosted by an operating system of a data processing system to dynamically load a library, extracting by a library validation module hosted by the operating system a first team identifier (ID) from the application, wherein the first team ID identifies an application provider that provides the application; extracting by the library validation module a second team ID from the library, wherein the second team ID identifies a library provider that provides the library; comparing the first team ID and the second team ID to determine whether the first team ID matches the second team ID; in response to determining that the first team ID matches the second team ID, launching by the launch module the library to allow the application communicate with the library; and denying the request if the first team ID does not match the second team ID. 11. The non-transitory machine-readable medium of claim 10 , wherein the first team ID is inserted into a first binary image of the application, and wherein the first binary image having the first team ID is signed using a first certificate provided by a trusted entity. 12. The non-transitory machine-readable medium of claim 11 , wherein the second team ID is inserted into a second binary image of the library, and wherein the second binary image having the second team ID is signed using a second certificate provided by the trusted entity. 13. The non-transitory machine-readable medium of claim 12 , wherein the method further comprises examining the second certificate to determine whether the second certificate is still valid, wherein the comparison of the first team ID and the second team ID is performed only if the second certificate is still valid. 14. The non-transitory machine-readable medium of claim 10 , wherein the method further comprises: determining whether the library is provided and installed as a bundle including the operating system in the data processing system; and loading the library in response to determining that the library is provided as part of operating system. 15. The non-transitory machine-readable medium of claim 14 , wherein determining whether the library is provided and installed as a bundle comprises determining whether the library has been installed and stored in a first predetermined directory of a file system associated with the operating system. 16. The non-transitory machine-readable medium of claim 14 , wherein the method further comprises: determining whether the application is a third-party application that is not provided in the bundle; and performing comparing the first and second team IDs, in response to determining that the application is a third-party application. 17. The non-transitory machine-readable medium of claim 16 , wherein determining whether the application is provided in the bundle comprises determining whether the application has been installed and stored in a second predetermined directory of a file system associated with the operating system. 18. The non-transitory machine-readable medium of claim 16 , wherein the method further comprises denying the request to load the library if the application is not a third-party application and the library is a third-party library. 19. A data processing system, comprising: a processor; and a memory storing instructions, which when executed by the processor, cause the processor to perform a method, the method including in response to a request received from an application by a launch module hosted by an operating system to dynamically load a library, extracting by a library validation module hosted by the operating system a first team identifier (ID) from the application, wherein the first team ID identifies an application provider that provides the application, extracting by the library validation module a second team ID from the library, wherein the second team ID identifies a library provider that provides the library, comparing the first team ID and the second team ID to determine whether the first team ID matches the second team ID, in response to determining that the first team ID matches the second team ID, launching by the launch module the library to allow the applica

Assignees

Inventors

Classifications

  • at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability · CPC title

  • Test or assess software · CPC title

  • G06F21/64Primary

    Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title

  • G06F21/52Primary

    during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow} · 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 US9536080B2 cover?
According to one embodiment, in response to a request received from an application by a launch module hosted by an operating system and executed by a processor to dynamically load a library, a library validation module hosted by the operating system extracts a first team identifier (ID) from the application, where the first team ID identifies an application provider that provides the applicatio…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/64. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 03 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).