Доступен USB Raw Gadget, Linux-модуль для эмуляции USB-устройств

11 февраля 2020 года

Андрей Коновалов из компании Google развивает новый модуль USB Raw Gadget, позволяющий эмулировать USB-устройства в пространстве пользователя. Находится на рассмотрении заявка на включение данного модуля в основной состав ядра Linux. USB Raw Gadget уже применяется в компании Google для упрощения fuzzing-тестирования USB-стека ядра при помощи инструментария syzkaller.

Модуль добавляет новый программный интерфейс в подсистему ядра USB Gadget и развивается в качестве альтернативы GadgetFS. Создание нового API обусловлено необходимостью получения низкоуровневого и прямого доступа к подсистеме USB Gadget из пространства пользователя, позволяющего обрабатывать все возможные USB-запросы (GadgetFS обрабатывает некоторые запросы самостоятельно, не передавая в пространство пользователя). Управление USB Raw Gadget производится через устройство /dev/raw-gadget по аналогии с /dev/gadget в GadgetFS, но для взаимодействия применяется интерфейс на основе ioctl(), а не псевдо-ФС.

Кроме прямой обработки всех USB-запросов процессом в пространстве пользователя новый интерфейс также отличается возможностью возвращения любых данных в ответ на USB-запрос (GadgetFS выполняет проверку корректности USB-дескрипторов и фильтрует определённые ответы, что мешает выявлению ошибок при fuzzing-тестировании USB-стека). Raw Gadget также даёт возможность выбрать конкретное устройство UDC (USB Device Controller) и драйвер для прикрепления, в то время как GadgetFS прикрепляется к первому доступному устройству UDC. Для разных UDC назначаются предсказуемые имена endpoint для разделения разных типов каналов обмена данными внутри одного устройства.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Доступен USB Raw Gadget, Linux-модуль для эмуляции USB-устройств», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.