IP Library Granted Patent US 9,104,876
Granted Patent B1
US 9,104,876 · App. 14/606,860 · Granted Aug 11, 2015

Virtual file-based tamper resistant repository

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,104,876
App. No.
14/606,860
Granted
Aug 11, 2015
Kind
B1
Abstract

A technique adds virtual file anchoring functionality to a platform by mounting a virtual file system (“system”) to store an anchor file. Binary code to create and run the system is embedded into a trusted application's binary code. Thus, whenever the trusted application executes, the embedded code ensures the system is validated and started or restarted as required. To interrogate the existence of the anchor, it can be read like any other file. To modify the status of the anchor, the name of the associated file is decorated such that instead of modifying the file, foo, the trusted application modifies a pseudo-file, foo#decoration. The decoration varies for each modification operation. To generate the decoration, the algorithm takes as input a time component, e.g. in the form of the last accessed time field of the parent directory where the secure file anchors files reside, and the name of the anchor.

Claims (51)

1. A computer-implemented method for creating and using a virtual file-based tamper resistant repository, comprising:

running code embedded in a trusted application, the embedded code creating and running a virtual file system;

sending, by the embedded code, a command to the virtual file system to check the presence of an anchor file in a predefined directory of a persistent store that is communicably coupled to the virtual file system;

when the anchor file is present, the embedded code causing the trusted application not to continue to execute or not to run an application of interest;

when the anchor file is not present, the embedded code:

sending a command to the virtual file system to return a current access time of the predefined directory; wherein the command causes the virtual file system to store the directory access time to the persistent store;

responsive to receiving the directory access time, the embedded code using the directory access time and a known name of the anchor file as input and generating therefrom a unique decoration string intended for the anchor file;

adding, by the embedded code, the unique decoration string to the name of the anchor file to create a decorated anchor file name; and

sending, by the embedded code, the decorated anchor file name to the virtual file system, causing the virtual file system to validate the decorated anchor file name and to store a decorated anchor file of the same name in the persistent store;

wherein one or more steps are performed on at least a processor coupled to at least a memory.

2. The method of claim 1 , wherein the embedded code checks for a plurality of anchor files in the predefined directory, knows the name of each anchor file, and generates a unique decoration string for each anchor file.

3. The method of claim 1 , wherein the creation of the decorated anchor file represents acquisition of a license or completion of a transaction, each regarding the application of interest or the trusted application.

4. The method of claim 1 , wherein the embedded code is incorporated into the trusted application's code at build time of the trusted application.

5. The method of claim 1 , wherein the decoration varies for each operation.

6. The method of claim 5 , wherein an operation is any of: create, read, write, restore, or copy.

7. The method of claim 1 , wherein the embedded code, using the directory access time and a known name of the anchor file as input and generating therefrom a unique decoration string intended for the anchor file, uses a decoration algorithm that is known only to the trusted application and the virtual file system.

8. The method of claim 1 , wherein the decoration is single-use and time-limited.

9. The method of claim 1 , wherein the virtual file system file input and output takes place within a kernel of an operating system of the computing environment.

10. The method of claim 1 , wherein content of the virtual file system is persisted in secure, distributed, and redundant locations.

11. The method of claim 10 , wherein the content comprises contents of files and metadata, the metadata including names of the files and directory structure of the virtual file system.

12. The method of claim 1 , wherein the virtual file system is an abstraction layer on top of interfaces of a non-virtual file system.

13. The method of claim 7 , wherein the decoration algorithm is held within a dynamic library.

14. The method of claim 1 , wherein file anchor content, comprising time of last modification of a trusted store, and metadata, comprising names of file anchors, is persisted in extended file attributes.

15. The method of claim 1 , wherein a random mount-point is used to mount the virtual file system where the random mount-point is generated by incorporating a random string or digits or combination thereof into a mount-point name every time the virtual file system is restarted.

16. The method of claim 1 , wherein the trusted application deduces which is the genuine virtual file system by issuing a set of file operations, some with valid decorations which should pass and some with invalid decorations which should fail and wherein only the virtual file system knows the algorithm to generate the correct filename decorations.

17. The method of claim 1 , further comprising:

maintaining a transaction number in the file anchor and in a trusted store;

incrementing the transaction number in the file anchor and in the trusted store when a license is issued;

taking a backup snap-shot of the trusted store at a point in time;

at a later point in time, using the backup snap-shot, reverting the trusted store to its state at the time of the backup snap-shot;

after reverting the trusted store, comparing the transaction number in the reverted trusted store with the transaction number in the file anchor and when there is discrepancy in the compared transaction numbers, marking the trusted store as compromised.

18. A system for creating and using a virtual file-based tamper resistant repository, comprising:

a processor operable to execute computer program instructions; and

a memory operable to store computer program instructions executable by the processor, for performing:

running code embedded in a trusted application, the embedded code creating and running a virtual file system;

sending, by the embedded code, a command to the virtual file system to check the presence of an anchor file in a predefined directory of a persistent store that is communicably coupled to the virtual file system;

when the anchor file is present, the embedded code causing the trusted application not to continue to execute or not to run an application of interest;

when the anchor file is not present, the embedded code:

sending a command to the virtual file system to return a current access time of the predefined directory; wherein the command causes the virtual file system to store the directory access time to the persistent store;

responsive to receiving the directory access time, the embedded code using the directory access time and a known name of the anchor file as input and generating therefrom a unique decoration string intended for the anchor file;

adding, by the embedded code, the unique decoration string to the name of the anchor file to create a decorated anchor file name; and

sending, by the embedded code, the decorated anchor file name to the virtual file system, causing the virtual file system to validate the decorated anchor file name and to store a decorated anchor file of the same name in the persistent store.

19. A non-transitory computer-readable digital storage medium having stored thereon a computer program having a program code for performing, when running on a computer or microprocessor, a method for:

running code embedded in a trusted application, the embedded code creating and running a virtual file system;

sending, by the embedded code, a command to the virtual file system to check the presence of an anchor file in a predefined directory of a persistent store that is communicably coupled to the virtual file system;

when the anchor file is present, the embedded code causing the trusted application not to continue to execute or not to run an application of interest;

when the anchor file is not present, the embedded code:

sending a command to the virtual file system to return a current access time of the predefined directory; wherein the command causes the virtual file system to store the directory access time to the persistent store;

responsive to receiving the directory access time, the embedded code using the directory access time and a known name of the anchor file as input and generating therefrom a unique decoration string intended for the anchor file;

adding, by the embedded code, the unique decoration string to the name of the anchor file to create a decorated anchor file name; and

sending, by the embedded code, the decorated anchor file name to the virtual file system, causing the virtual file system to validate the decorated anchor file name and to store a decorated anchor file of the same name in the persistent store.

Assignments (8)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 045441/ 0499 Recorded Aug 25, 2025
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
Reel/Frame 072552/0558 →
SECURITY INTEREST Recorded Aug 15, 2025
From: FLEXERA SOFTWARE LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL GENT
Reel/Frame 072460/0828 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
Reel/Frame 067636/0534 →
SECOND LIEN SECURITY AGREEMENT Recorded Mar 3, 2021
From: BDNA CORPORATION; FLEXERA SOFTWARE LLC; PALAMIDA, INC.; RIGHTSCALE, INC.; RISC NETWORKS, LLC; REVULYTICS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 055487/0354 →
RELEASE OF SECOND LIEN SECURITY INTEREST Recorded Feb 28, 2020
From: JEFFERIES FINANCE LLC
To: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION; RIGHTSCALE, INC.; RISC NETWORKS, LLC
Reel/Frame 052049/0560 →
SECOND LIEN SECURITY AGREEMENT Recorded Feb 27, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045451/0499 →
FIRST LIEN SECURITY AGREEMENT Recorded Feb 26, 2018
From: FLEXERA SOFTWARE LLC; PALAMIDA, INC.; BDNA CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 045441/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: SUMMERS, STUART
To: FLEXERA SOFTWARE LLC
Reel/Frame 034824/0484 →