Using a USB host controller security extension for controlling changes in and auditing USB topology
First Claim
1. A computer-readable storage medium having computer-executable instructions for performing steps, comprising:
- receiving data for a USB device;
determining whether the data is permitted to be sent to the USB device; and
sending an instruction based on the determining to an entity, wherein the data is a result of program code corresponding to the USB device being executed outside of a trusted execution environment,wherein the data is received in the trusted execution environment, andwherein the entity is outside the trusted execution environment,the computer-readable medium having computer-executable instructions for performing steps, comprising;
a USB host controller, prior to sending a command therefrom to the USB device, informing allow policy software in a hardware-based secure extension of the USB host controller of the command;
the allow policy software scrutinizing the command based on allow logic of the secure extension to decide whether to permit the command to be sent, and initially concluding based on the allow logic that the command cannot be sent to the USB device;
the allow policy software subsequently concluding that the command can be sent to the USB device based on predetermined security policy, and modifying the allow logic in accordance therewith;
the allow policy software instructing the USB host controller to send the command to the USB device; and
the secure extension only permitting the sent command from the USB host controller to be delivered to the USB device in accordance with the allow logic.
2 Assignments
0 Petitions
Accused Products
Abstract
Protecting computer systems from attacks that attempt to change USB topology and for ensuring that the system'"'"'s information regarding USB topology is accurate is disclosed. A software model is defined that, together with secure USB hardware, provides an ability to define policies using which USB traffic can be properly monitored and controlled. The implemented policy provides control over USB commands through a combination of software evaluation and hardware programming. Legitimate commands are evaluated and “allowed” to be sent to a USB device by a host controller. Illegitimate commands are evaluated and blocked. Additionally, the USB topology is audited to verify that the system'"'"'s topology map matches the actual USB topology.
27 Citations
15 Claims
-
1. A computer-readable storage medium having computer-executable instructions for performing steps, comprising:
-
receiving data for a USB device; determining whether the data is permitted to be sent to the USB device; and sending an instruction based on the determining to an entity, wherein the data is a result of program code corresponding to the USB device being executed outside of a trusted execution environment, wherein the data is received in the trusted execution environment, and wherein the entity is outside the trusted execution environment, the computer-readable medium having computer-executable instructions for performing steps, comprising; a USB host controller, prior to sending a command therefrom to the USB device, informing allow policy software in a hardware-based secure extension of the USB host controller of the command; the allow policy software scrutinizing the command based on allow logic of the secure extension to decide whether to permit the command to be sent, and initially concluding based on the allow logic that the command cannot be sent to the USB device; the allow policy software subsequently concluding that the command can be sent to the USB device based on predetermined security policy, and modifying the allow logic in accordance therewith; the allow policy software instructing the USB host controller to send the command to the USB device; and the secure extension only permitting the sent command from the USB host controller to be delivered to the USB device in accordance with the allow logic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system, comprising:
-
means for receiving data associated with a USB device; means for determining whether the data is permitted to be sent to the USB device; and means for sending an instruction based on the determining to an entity, wherein the data is a result of program code corresponding to the USB device being executed outside of a trusted execution environment, wherein the data is received in the trusted execution environment, and wherein the entity is outside the trusted execution environments, the computer system comprising a USB host controller, prior to sending a command therefrom to the USB device, informing allow policy software in a hardware-based secure extension of the USB host controller of the command, the allow policy software scrutinizing the command based on allow logic of the secure extension to decide whether to permit the command to be sent, and initially concluding based on the allow logic that the command cannot be sent to the USB device, the allow policy software subsequently concluding that the command can be sent to the USB device based on predetermined security policy, and modifying the allow logic in accordance therewith, the allow policy software instructing the USB host controller to send the command to the USB device, and the secure extension only permitting the sent command from the USB host controller to be delivered to the USB device in accordance with the allow logic. - View Dependent Claims (13, 14, 15)
-
Specification