IP Library Granted Patent US 10,318,209
Granted Patent B2
US 10,318,209 · App. 15/419,093 · Granted Jun 11, 2019

Secure file transfer to process

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 10,318,209
App. No.
15/419,093
Granted
Jun 11, 2019
Kind
B2
Abstract

Discussed herein are methods, devices, and systems for moving a file to a process. A device can include a kernel, a memory, and processing circuitry to: issue one or more move and rename instructions to the memory to change a location and name of a file requested by the second process, issue one or more update access control instructions to update permissions, perform a UAC to determine whether any processes other than the second process currently have the file open and whether any MMaps have the file open, and allow the second process to access the renamed and moved file only if it is determined that no other processes other than the second process have the file open and no MMaps have the file open.

Claims (62)

1. A method for moving a file within a computing device to help ensure directionality and non-bypassbility, the method comprising:

issuing one or more move and rename instructions to the memory to change a location and name of a file requested by a first process, the memory comprising user spaces allocated for access by a respective plurality of processes including the first process and a kernel space allocated for access by a kernel, the kernel space including discretionary access controls (DAC) and mandatory access controls (MAC);

issuing one or more update DAC instructions to update permissions in the DAC;

issuing an update MAC instruction to update a permission in the MAC;

performing a unique access check (UAC) to determine whether any other processes, other than the first process, currently have the file open, whether any memory maps (MMaps) have the file open, and detecting whether any file descriptors (fds) for the file are open in any of the other processes; and

allow the first process to access the renamed and moved file only if it is determined that (1) no other processes other than the first process have the file open, (2) no MMaps have the file open, and (3) no other process other than the first process includes fds with the file open.

2. The method of claim 1 , wherein performing the UAC includes:

determining if an inode of the renamed and moved file indicates that a second file is associated with the inode,

determining if any processes currently have the inode open and whether any memory maps (MMaps) have the inode open, and

allowing a second process to access the renamed and moved file only if it is determined that (1) no other processes have either of the file and the second file open (2) no MMaps have either of the file and the second file open, (3) only one hard link to the file exists, and (4) no errors occurred during a process of moving the file to the second process.

3. The method of claim 1 , wherein performing the UAC includes:

determining a number of hard links to an inode associated with the file, and

detecting whether any file descriptors (fds) for the same inode are open in other processes other than a second process and whether any MMaps for the same inode are open in other processes other than the second process.

4. The method of claim 1 , wherein:

updating the MAC includes one or more system calls to change a security policy type associated with the renamed and moved file, and

updating the DAC includes one or more system calls to change ownership of the file.

5. A device comprising:

a kernel;

a memory comprising user spaces allocated for access by a respective plurality of processes including a first process and a second process and a kernel space allocated for access by the kernel, the kernel space including access controls;

processing circuitry to implement instructions issued by the kernel, the first process, and the second process, the processing circuitry to:

issue one or more move and rename instructions to the memory to change a location and name of a file requested by the second process;

issue one or more update access control instructions to update the access controls;

perform a unique access check (UAC) to determine whether any processes other than the second process currently have the file open and whether any memory maps (MMaps) have the file open; and

allow the second process to access the renamed and moved file only if it is determined that (1) no other processes other than the second process have the file open and (2) no MMaps have the file open.

6. The device of claim 5 , wherein:

the access controls include discretionary access controls (DAC) and mandatory access controls (MAC), and

issuing one or more update access control instructions to update the access controls includes issuing one or more DAC update instructions to update the DAC and issuing one or more MAC update instructions to update the MAC.

7. The device of claim 6 ,

wherein issuing the one or more DAC update instructions occurs and completes before issuing the one or more MAC update instructions.

8. The device of claim 7 ,

wherein issuing the one or more MAC update instructions occurs and completes before performing the UAC.

9. The device of claim 6 ,

wherein the one or more MAC update instructions include one or more system calls to change a security policy type associated with the renamed and moved file.

10. The device of claim 6 ,

wherein the one or more DAC update instructions include an instruction to change ownership of the file.

11. The device of claim 6 ,

wherein the one or more DAC update instructions includes an instruction that allows no group access to the file and no other users to access the file.

12. The device of claim 6 ,

wherein the one or more MAC update instructions include an instruction that alters a file type of the file.

13. The device of claim 5 , wherein the processing circuitry is further to:

delete the renamed and moved file in response to determining that one or more of (1) another process has the file open, (2) an MMap has the file open, (3) more than one hard link to the file exists, and (4) another error occurs during a process of moving the file to the second process.

14. The device of claim 5 , wherein the unique access check includes:

determining if an inode of the renamed and moved file indicates that a second file is associated with the inode,

determining if any processes currently have the inode open and whether any memory maps (MMaps) have the inode open, and

allowing the second process to access the renamed and moved file only if it is determined that (1) no other processes have either of the file and the second file open (2) no MMaps have either of the file and the second file open, (3) only one hard link to the file exists, and (4) no errors occurred during a process of moving the file to the second process.

15. The device of claim 5 , wherein the UAC includes:

determining a number of hard links to an inode associated with the file, and

detecting whether any file descriptors (fds) for the same inode are open in other processes than the second process and whether any MMaps for the same inode are open in other processes other than the second process.

16. The device of claim 5 ,

wherein the unique access check is performed using instructions stored in the kernel space.

17. A non-transitory machine-readable storage device including instructions stored thereon that, when executed by processing circuitry, configure the processing circuitry to:

issue one or more move and rename instructions to a memory to change a location and name of a file requested by a process;

issue one or more update DAC instructions to update permissions in the DAC;

issue a MAC instruction to update a permission in the MAC;

perform a unique access check (VAC) to determine whether any processes other than the process currently have the file open and whether any memory maps (MMaps) have the file open; and

allow the process to access the renamed and moved file only if it is determined that (1) no other processes other than the process have the file open and (2) no MMaps have the file open.

18. The storage device of claim 17 ,

wherein issuing the update DAC instruction occurs and completes before issuing the update MAC instruction.

19. The storage device of claim 18 ,

wherein issuing the update MAC instruction occurs and completes before performing the UAC.

20. The storage device of claim 17 , further comprising instructions that, when executed by the processing circuitry, configure the processing circuitry to:

delete the renamed and moved file in response to determining that one or more of (1) another process has the file open, (2) an MMap has the file open, (3) more than one hard link to the file exists, and (4) another error occurs during a process of moving the file to the process.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2025
From: UBS AG, STAMFORD BRANCH
To: FORCEPOINT, LLC; BITGLASS, LLC
Reel/Frame 070706/0263 →
CHANGE OF NAME Recorded Mar 21, 2025
From: FORCEPOINT FEDERAL HOLDINGS LLC
To: EVERFOX HOLDINGS LLC
Reel/Frame 070585/0524 →
PARTIAL PATENT RELEASE AND REASSIGNMENT AT REEL/FRAME 055052/0302 Recorded Oct 3, 2023
From: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: FORCEPOINT FEDERAL HOLDINGS LLC (F/K/A FORCEPOINT LLC)
Reel/Frame 065103/0147 →
SECURITY INTEREST Recorded Sep 29, 2023
From: FORCEPOINT FEDERAL HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC, AS COLLATERAL AGENT
Reel/Frame 065086/0822 →
CHANGE OF NAME Recorded May 12, 2021
From: FORCEPOINT LLC
To: FORCEPOINT FEDERAL HOLDINGS LLC
Reel/Frame 056216/0309 →
PATENT SECURITY AGREEMENT Recorded Jan 20, 2021
From: REDOWL ANALYTICS, INC.; FORCEPOINT LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 055052/0302 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jan 8, 2021
From: RAYTHEON COMPANY
To: FORCEPOINT LLC
Reel/Frame 055452/0220 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jan 8, 2021
From: RAYTHEON COMPANY
To: FORCEPOINT LLC
Reel/Frame 055452/0207 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Feb 27, 2020
From: FORCEPOINT LLC
To: RAYTHEON COMPANY
Reel/Frame 052045/0482 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Feb 12, 2018
From: FORCEPOINT LLC
To: RAYTHEON COMPANY
Reel/Frame 045312/0043 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2017
From: HILDSTROM, GREGORY ALAN
To: FORCEPOINT LLC
Reel/Frame 041121/0833 →