USB exploit - cross platform
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu |
New
|
Undecided
|
Unassigned |
Bug Description
There is available (to the general public) a relatively cheap product which does the "rubberducky" attack.
See the link (found it by searching "rubberducky" in google - clicked first result):
http://
That is *cross-platform* due to USB's nature - it affects ALL Linux distros.
Therefore I suspect that Ubuntu/Linux fail to protect against that,
because that the "rubberducky" attack can "type" the following commands:
1. Copy-paste a bash script
2. chmod it so that it will execute (under normal user - NOT root)
3. malware is active...
Note that by default - Ubuntu's firewall is disabled, therefore allowing an easy access to the attacker via internet.
I did NOT test this myself, but as long as there's a device that can act like a keyboard in a disguise of a USB flash drive... then an easy exploit is available.
I think that this kind of security should be built into Linux core or perhaps its USB drivers (not sure which one).
-----------------
My solution to this exploit:
On the connection of a device that has a direct physical access, the OS should permit the device to perform actions based on what the users allows it to do.
Does the user allow a USB flash drive to act like a USB keyboard? Probably not!
Also, if from a single USB port - the OS detect a USB flash drive AND a USB keyboard - this kind of event should light a red alert (!).
Thus, the OS should ask the user:
Do you allow the USB stick to act as:
(1) ..
(2) ..
(3) ..
While the options (1) to (3) are the devices that the USB stick presents itself to the PC.
By default:
Ubuntu should allow that only a single keyboard is used at a single time (which is the keyboard that was connected first). This behavior may be modified via the USB permissions system (that should be built).
IMHO, this solution is relatively easy to implement.
-----------------
Also I suspect that it is possible to program a flash drive to act as a keyboard, because that the electrical functionality is available (you only need a different driver),
but I lack a deeper familiarity with the USB device to promise you that it is possible.
I'm sure that among all Ubuntu/Linux developers, some are well familiar with the USB part of linux.
information type: | Private Security → Public Security |
I've duped this against an earlier bug with much discussion, and links off to further discussion.
Sadly there's no obvious good and easy solution. Consider:
- How would a user interact when plugging in the first keyboard or mouse?
- What if the malicious device was first only because it was 'earlier' in the USB network?
- How would the system tell a keyboard-with-hub that a user intended to buy from a keyboard-with-hub that a user didn't intend to buy?
- What would the interaction look like on a computer with no displays? With a dozen displays? With a dozen seats?
USB is very flexible. Many devices are really multiple devices -- sometimes connected with internal hubs, sometimes they change their runtime personality. And users expect them all to work in all situations.
Thanks