IP Library Granted Patent US 11,055,444
Granted Patent B2
US 11,055,444 · App. 16/013,921 · Granted Jul 6, 2021

Systems and methods for controlling access to a peripheral device

Inventor: Boovaragavan Dasarathan (Culver City, CA)
Assignee: NortonLifeLock Inc.
G06F21/82G06F9/45558G06F13/105G06F13/385G06F2009/45579
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 11,055,444
App. No.
16/013,921
Granted
Jul 6, 2021
Kind
B2
Abstract

The disclosed computer-implemented method for controlling access to a peripheral device may include receiving an input/output request related to a process attempting to access the peripheral device. The method can also include determining an access state for the process indicative of whether the process will be allowed to gain access to the peripheral device. The access state can be based on a context property of the process. The method can further include responding to the input/output request with initiation of a virtual peripheral output from a virtual peripheral device if the access state is indicative of the process not being allowed access to the peripheral device. Various other methods, systems, and computer-readable media are also disclosed.

Claims (52)

1. A computer-implemented method for controlling access to a peripheral device, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving, by the one or more computing devices, an input/output request related to an application process attempting to access the peripheral device;

determining, by the one or more computing devices, whether the input/output request is anomalous with respect to the application process attempting to access the peripheral device, the determination indicating whether the input/output request is beyond a threshold level of abnormality for the application process;

determining, by the one or more computing devices, an access state for the application process indicative of whether the application process will be allowed to gain access to the peripheral device, the access state being based on a context property of the application process;

responding, by the one or more computing devices, to the input/output request with initiation of a virtual peripheral output from a virtual peripheral device when the request is beyond the threshold level of abnormality and when the access state is indicative of the application process not being allowed access to the peripheral device, wherein the virtual peripheral output transmitted to the application process:

emulates an output of the peripheral device in an output format expected by the application process; and

provides information to the application process about the access state and a reason for the access state; and

generating, by the one or more computing devices, an alert to a user associated with the peripheral device that the application process has been denied access to the peripheral device.

2. The computer-implemented method of claim 1 , wherein the determining of the access state includes at least one of:

evaluating the context property based on a predefined rule indicative of whether the application process should be allowed access to the peripheral device, and

receiving, by the one or more computing devices from a user, an indication of whether the application process should be allowed access to the peripheral device.

3. The computer-implemented method of claim 1 , wherein the virtual peripheral output includes at least one of:

information indicative of the access state of the application process, and

information indicative of whether the application process is compatible with the peripheral device.

4. The computer-implemented method of claim 1 , further comprising responding, by the one or more computing devices, to subsequent input/output requests from the application process with the virtual peripheral output from the virtual peripheral device.

5. The computer-implemented method of claim 1 , wherein the responding, by the one or more computing devices, to the input/output request includes emulating a physical peripheral device using at least one video class driver.

6. The computer-implemented method of claim 1 , wherein the peripheral device is a webcam, the virtual peripheral device is a virtual webcam, and the virtual peripheral output is a video stream.

7. A system for controlling access to a peripheral device, the system comprising:

a receiving module, stored in memory, that receives an input/output request related to an application process attempting to access the peripheral device;

a determination module, stored in memory, that:

determines whether the input/output request is anomalous with respect to the application process attempting to access the peripheral device, the determination indicating whether the input/output request is beyond a threshold level of abnormality for the application process; and

determines an access state for the application process indicative of whether the application process will be allowed to gain access to the peripheral device, the access state being based on a context property of the application process;

a response module, stored in memory, that responds to the input/output request with initiation of a virtual peripheral output from a virtual peripheral device when the request is beyond the threshold level of abnormality and when the access state is indicative of the application process not being allowed access to the peripheral device, wherein the virtual peripheral output transmitted to the application process:

emulates an output of the peripheral device in an output format expected by the application process; and

provides information to the application process about the access state and a reason for the access state;

an alert generation module, stored in memory, that generates an alert to a user associated with the peripheral device that the application process has been denied access to the peripheral device; and

at least one physical processor configured to execute the receiving module, the determination module, the response module, and the alert generation module.

8. The system of claim 7 , wherein the determination module determines the access state based at least in part on at least one of:

evaluation of the context property based on a predefined rule indicative of whether the application process should be allowed access to the peripheral device, and

an indication, received from a user, of whether the application process should be allowed access to the peripheral device.

9. The system of claim 7 , wherein the virtual peripheral output includes at least one of:

information indicative of the access state of the application process, and

information indicative of whether the application process is compatible with the peripheral device.

10. The system of claim 7 , wherein the response module responds to subsequent input/output requests from the application process with the virtual peripheral output from the virtual peripheral device.

11. The system of claim 7 , wherein the response module emulates a physical peripheral device using at least one video class driver in response to the determination module determining that the access state is indicative of the application process not being allowed access to the peripheral device.

12. The system of claim 7 , wherein the peripheral device is a webcam and the virtual peripheral device is a virtual webcam.

13. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive an input/output request related to an application process attempting to access the peripheral device;

determining, by the one or more computing devices, whether the input/output request is anomalous with respect to the application process attempting to access the peripheral device, the determination indicating whether the input/output request is beyond a threshold level of abnormality for the application process;

determine an access state for the application process indicative of whether the application process will be allowed to gain access to the peripheral device, the access state being based on a context property of the application process;

respond to the input/output request with initiation of a virtual peripheral output from a virtual peripheral device when the request is beyond the threshold level of abnormality and when the access state is indicative of the application process not being allowed access to the peripheral device, wherein the virtual peripheral output transmitted to the application process:

emulates an output of the peripheral device in an output format expected by the application process; and

provides information to the application process about the access state and a reason for the access state; and

generate an alert to a user associated with the peripheral device that the application process has been denied access to the peripheral device.

14. The non-transitory computer-readable medium of claim 13 , wherein the determining of the access state includes at least one of:

evaluating the context property based on a predefined rule indicative of whether the application process should be allowed access to the peripheral device, and

receiving, from a user, an indication of whether the application process should be allowed access to the peripheral device.

15. The non-transitory computer-readable medium of claim 13 , wherein the virtual peripheral output includes at least one of:

information indicative of the access state of the application process, and

information indicative of whether the application process is compatible with the peripheral device.

16. The non-transitory computer-readable medium of claim 13 , further comprising executable instructions that, when executed by the at least one processor of the computing device, cause the computing device to respond to subsequent input/output requests from the application process with the virtual peripheral output from the virtual peripheral device.

17. The non-transitory computer-readable medium of claim 13 , wherein the responding to the input/output request includes emulating a physical peripheral device using at least one video class driver.

Assignments (6)
CHANGE OF NAME Recorded Feb 6, 2023
From: NORTONLIFELOCK INC.
To: GEN DIGITAL INC.
Reel/Frame 062714/0605 →
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Feb 14, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 051935/0228 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2018
From: DASARATHAN, BOOVARAGAVAN
To: SYMANTEC CORPORATION
Reel/Frame 046152/0340 →