Computing systems utilizing controlled dynamic libraries and isolated execution spaces
US-9405515-B1 · Aug 2, 2016 · US
US9536080B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9536080-B2 |
| Application number | US-201514726292-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 29, 2015 |
| Priority date | May 29, 2015 |
| Publication date | Jan 3, 2017 |
| Grant date | Jan 3, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title
during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow} · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.