LINUX.ORG.RU
ФорумTalks

Идея для стартапа

 badusb,


0

1

Помните панику насчёт уязвимости Bad USB? Тогда никто не догадался до очевидного решения, предлагали ввести цифровые подписи устройств и прочие банальные ограничения.

Что вы думаете про коробочку, которая одним концом втыкается в компьютер, а другим в флешку (точнее флешка втыкается в неё)? А эта коробочка анализирует все USB-пакеты, проходящие через неё, по заложенным в себя правилам и производит их модификацию или даже отказ передачи, если захочет. Разумеется, производитель предоставляет пресеты для всех популярных вариантов фильтров, возможность быстро их переключать (возможно, даже залить в коробочку несколько профилей и менять их тумблером на корпусе) и т. д.

С ходу вижу три возможных сценария:

  1. Защита от классического Bad USB. Два пресета — «порт для флешек» и «порт для HID-устройств». В первом случае коробочка портит все попытки девайса прикинуться клавиатурой или мышкой (достаточно анализировать SETUP-пакет запроса дескриптора и банить устройство, если это дескриптор HID). Во втором случае коробочка портит все попытки девайса прикинуться флешкой. В идеале составное устройство не должно полностью отваливаться, а только то, что заблокировано (можно просто подпортить кусок дескриптора, чтобы лишние конечные точки не определились хостом, но в целом устройство успешно прошло енумерацию).
  2. Защита наоборот. Доверенной флешки от недоверенного хоста. Самое банальное — перевод флешки в read only. Перехватываем все команды записи и возвращаем хосту какую-нибудь ошибку. Ведь очень часто бывают ситуации, когда на флешку писать нафиг не нужно. Например, если вы хотите показать с неё презентацию или распечатать документ. А компьютеры в общественных местах очень часто заражены целым зоопарком вирусов (самое неприятное — вирус, который заменяет все папки ярлыками на вирус, а сами папки скрывает).
  3. Немного притянуто за уши. Допустим, мы хотим разрешить мыши и клавиатуры, но запретить флешки, модемы и т. д. Или разрешить только по белым спискам серийников. Понятное дело, что это можно сделать средствами ОС. Но так то прикольнее. Засунуть в системник такую коробочку и вывести все USB-порты через неё. Системник опечатать. Поскольку ПО такой коробочки значительно проще целой ОС, то и шанс что там есть уязвимость меньше.

Возможны другие варианты, но они не пришли мне в голову.

Техническую сторону вопроса я и так знаю, про неё особо не интересно. 2 USB PHY + FPGA на первом этапе, ASIC на втором. Кстати, себестоимость вроде выходит в пределах 1000 рублей даже в первом случае. Интересно мнение с точки зрения потребителей.

★★★★★

Последнее исправление: beastie (всего исправлений: 1)

Защита наоборот. Доверенной флешки от недоверенного хоста. Самое банальное - перевод флешки в read only.

Вроде есть флешки с хардварным переключателем же

Deleted
()
Ответ на: комментарий от Deleted

Их мало. Большинство такого переключателя не имеют.

KivApple ★★★★★
() автор топика

Что вы думаете про коробочку..?
коробочка анализирует все USB-пакеты, проходящие через неё

то же, что и про антивирус: прибыльно, костыльно, неэффективно, не нужно.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

А эта коробочка анализирует все USB-пакеты

А как защищаться от атак типа Bad Коробочка? Втыкать в ещё одну коробочку?

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

Ну подразумевается, что эта коробочка белая и пушистая. К тому же её производитель явно известен и в случае чего понятно, на кого подавать в суд. Или она даже может быть OpenSource. Или иметь какие-нибудь сертификаты безопасности. А покупать китайские подделки и надеяться на безопасность - ССЗБ. Заодно кстати всегда можно будет сказать «только оригинальные коробочки могут гарантировать вам полную безопасность», хорошенько очернив китайские клоны по 100 рублей за килограмм.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 3)

2ой юзкейс понятен и наверное хорош.

1ый было бы удобнее иметь в виде ПО на своем компьютере, а не в виде коробочки, 3ий вероятно тоже

Midael ★★★★★
()

Защита наоборот. Доверенной флешки от недоверенного хоста. Самое банальное - перевод флешки в read only. Перехватываем все команды записи и возвращаем хосту какую-нибудь ошибку. Ведь очень часто бывают ситуации, когда на флешку писать нафиг не нужно. Например, если вы хотите показать с неё презентацию или распечатать документ. А компьютеры в общественных местах очень часто заражены целым зоопарком вирусов (самое неприятное - вирус, который заменяет все папки ярлыками на вирус, а сами папки скрывает).

ХОТЕТЬ!!!

curufinwe ★★★★★
()

Предлагаю добавить туда еще одну опцию - освятитель траффика дабы бесы не проникли.

Zhbert ★★★★★
()
Ответ на: комментарий от Midael

Аппаратное решение потенциально может иметь меньше уязвимостей за счёт своей простоты. К тому же будет работать сразу со всем зоопарком ОС и устройств (у коробочки будет энергонезависимая память для настроек - поддерживаемая ОС будет нужна только для изменения профилей фильтра, а работать они будут всегда). А ещё оно будет работать даже там, куда нет возможности ничего поставить или это проблематично (всякие Android-девайсы без рута, Smart TV). А ещё оно будет работать на ранних этапах загрузки компьютера и во время установки ОС.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от alltiptop

А можно и не сделать. Зачем мне это?

KivApple ★★★★★
() автор топика
Ответ на: комментарий от Zhbert

Ты считаешь все три юзкейса ненужными? Заражение флешки будет неприятно даже если у тебя онтопик - придётся удалять мусорные файлы.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Было уже. Касперский презервативы раздавал со своей символикой.

Black_Shadow ★★★★★
()

Что вы думаете про коробочку, которая одним концом втыкается в компьютер, а другим в флешку (точнее флешка втыкается в неё)?

ИМХО к компьютеру такая коробочка должна подключаться через LAN.
Как минимум это создаст предпосылку для независящих от этой проприетарной шины устройств.

torvn77 ★★★★★
()

Хм, интересная идейка. ИМХО, нужность сомнительная конечно.

P.S. У меня тут завалялась самописная USB-корка (High-Speed device) для FPGA...

Kosyak ★★★★
()
Ответ на: комментарий от torvn77

Тогда основной функционал можно реализовать не в коробочке, а в fuse драйвере протокола коробочки.
К стати это позволит не плохо нажиться сделав протокол под двойной лицензией.

torvn77 ★★★★★
()
Ответ на: комментарий от KivApple

Не взлетит.

Обрати внимание на то, что проблеме больше лет, чем это написано в википедии, и прикол не только в пресловутом BadUSB, само наличие возможности делать композитные устройства уже предоставляет богатые возможности для всякого рода пакостей.

А проблема BadUSB не интересна людям: против троянов на флешках вполне работают антивирусы, а против целевых атак такая хрень тупо не поможет (без BadUSB дыр достаточно).

shkolnick-kun ★★★★★
()

Вояки и фсбшники может и купятся на такое. Но тут будь готов к жёсткой сертификации и прочему и прочему. Вполне возможно что они возьмут идею на вооружение и передадут на реализацию прикормленным лицам.

Обычным смертным, кмк, оно не нужно. Но я диванный аналитик, могу ошибаться. Может, ты разместишь объяву на кик-стартере и набежит куча желающих. Пробовать надо. Но для больших контор может потребоваться много разрешающих бумажек прежде чем они смогут использовать девайс.

true_admin ★★★★★
()

2 USB PHY + FPGA

себестоимость вроде выходит в пределах 1000 рублей

Давай, рассказывай, как считал.

CYB3R ★★★★★
()
Ответ на: комментарий от Midael

Ну как я понял, предполагается, что если флешка чужая, то кондом для флешки - твой, доверенный

А взлом коробочки через bad usb?

ya-betmen ★★★★★
()
Ответ на: комментарий от CYB3R

http://ru.aliexpress.com/item/2pcs-lot-USB3300-USB3300-EZK-TR-QFN32-Free-ship... - USB PHY - 2 штуки - 300 рублей

http://ru.aliexpress.com/item/Ep4ce10f17c8n-ep4ce10f17c8-ep4ce10f17-ep4ce10-o... - Альтеровская ПЛИС с 10к логических блоков - 800 рублей

Ну ещё мелочёвка типа EEPROM и обвязки для всего этого. Ну в 1500 точно уложиться можно.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

Каким образом? От устройства никаких команд мы не принимаем. А от атаки со стороны хоста защитит тумблер на корпусе, который будет включать-отключать режим изменения настроек.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Это только компоненты. Совершенно забыл про платы, монтаж и корпус.

CYB3R ★★★★★
()
Ответ на: комментарий от KivApple

В ОП же написано, что коробочка анализирует пакеты. В анализаторе могут быть баги.

ya-betmen ★★★★★
()
Ответ на: комментарий от curufinwe

Возьми sd карту с переключателем и вставь в usb переходник. Не благодари.

lenin386 ★★★★
()

для пункта один можно драйвер прохачить

можешь вообще хид драйвера запретить и использовать ps/2

dimon555 ★★★★★
()
Ответ на: комментарий от KivApple

HighSpeed (480 MBit/s) возможен только с PHY. В моем случае это был ULPI PHY.

https://github.com/ObKo/USBCore - вот корка, не дописанная, недокументированная, но шить SPI-флешку с битстримом через USB в режиме HighSpeed уже может. Протестирована на шестом спартане с USB3300.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

P.S. У меня тут завалялась самописная USB-корка (High-Speed device) для FPGA...

Тут народ стонет от отсутствия на opencores.org реализации USB хоста, которому не нужен отдельный PHY. Так что очень интересно послушать про самописную USB.

Ой, уже нашёл - в ответе в аккурат перед этим сообщением. Нахожусь в предвкушении знакомства с этим проектом. Жаль только что с внешним PHY. Но физику не обманешь.

alman ★★★
()
Последнее исправление: alman (всего исправлений: 2)
Ответ на: комментарий от alman

Тут народ стонет от отсутствия на opencores.org реализации USB хоста, которому не нужен отдельный PHY.

FullSpeed несложно реализовать без PHY. А вот HighSpeed практически невозможно, потому что HS - это полноценный LVDS. Причем с кучей нюансов вроде возможности переходить в FullSpeed и специальных состояний шины (SE0, SE1). Т.е. нужен специализированный serdes, стандартные плисовые serdes'ы и трансиверы не помогут.

Ну, и USB хост значительно сложнее реализовать.

Ой, уже нашёл - в ответе в аккурат перед этим сообщением. Нахожусь в предвкушении знакомства с этим проектом. Жаль только что с внешним PHY. Но физику не обманешь.

Осторожно, возможно говнокод.

Эта IP-корка, по сути, реализует TLP - т.е. разбирает USBшные пакеты и выдает наружу поток данных, а также собирает поток в пакеты. В качестве примера запилен прошивальшик SPI флешки на которой хранится битсрим FPGA через USB. Может когда-нибудь сделаю красивые контроллеры для эндпоинтов с FIFO и регистрами...

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Хорошо что Квартус позволяет смешивать VHDL и Verilog в одом проекте. Если бы проект был коммерческим, но за «смешные» деньги - я бы купил лицензию на красивый контроллер.

alman ★★★
()
Ответ на: комментарий от KivApple

Каким образом? От устройства никаких команд мы не принимаем

Таким, что принимаем

А эта коробочка анализирует все USB-пакеты, проходящие через неё, по заложенным в себя правилам и производит их модификацию или даже отказ передачи, если захочет.

Если они анализирует пакеты значит там есть софт, если есть софт в нём могут быть баги, если есть баги значит могут быть и уязвимости.

ya-betmen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.