



Defending against malicious USB firmware with GoodUSB. In Proceedings of the Blackhat Europe, Amsterdam, The Netherlands, 14–17 October 2014. Don’t trust your USB! How to find bugs in USB device drivers. In Proceedings of the NDSS, San Diego, CA, USA, 23–26 February 2014. Leveraging USB to Establish Host Identity Using Commodity Devices. Available online: http:_equip_manualsusb_20.pdf (accessed on 7 August 2019). In Proceedings of the 2010 International Conference on Information and Emerging Technologies, Karachi, Pakistan, 14–16 June 2010 pp. Threat analysis of portable hack tools from USB storage devices and protection solutions. Tracking USB storage: Analysis of windows artifacts generated by USB storage devices. The authors declare no conflict of interest. Figure 1 shows the enumeration phase of the USB data flow. Finally, in the last step, further interactions are passed from the host’s client software through the standard system call interface (e.g., read(), write(), and ioctl()) to the device’s high-level USB functions (e.g., providing an interface to internal storage, relaying video from a webcam). The second step, which is the enumeration phase, is where the host queries the device to determine information such as the device’s type (e.g., mass storage or human interface device), manufacturer and model, and the functionality it supports, among other parameters. Then, these two parties go through a handshake protocol and negotiate parameters such as the communication speed of the device. It is this step that indicates to the host that a device is connected to the system. The first step is the bus setup, during which a set of standard electrical signals is relayed between the host and device’s respective serial interface engines (SIE). In order for any USB device to be used with a host, it goes through a mandatory setup procedure which consist of three steps.
