Comments 88
На счет шаблонов, а где их нет?
Я правильно понимаю что конфиг udev/devd не портит USB? Т.е. если это драйвер, значит портит, а если конфиг, который читает драйвер, то не портит. Так?
Касательно конфигов, как уже было упомянуто, драйвер простой, его вполне можно доработать чтобы не требовалась перезагрузка. Более того, если идти дальше, можно много внести всяких гибкостей, например блокирование записи и т.д. У вас это получиться на других системах простой правкой конфига?
Ну и речь в статье, все-таки не об UDEV)))
конфигурировать драйвер можно через WMI-интерфейс
Расскажите, как с USB решить дело. Я решений не искал. Было бы интересно узнать.
Вы в своем фильтр-драйвере его поддержите и настраиваете с помощью него свои «белые (черные)» списки)
А тогда фильтр зачем?
А прикрутив я WMI к своему фильтру, чтобы я выиграл стратегически? Кроме потерянного времени?
Я ничего не упустил?
О каких современных ОС идет речь? Драйвер работает на всех ОС.
Если кодили just for fun — ок, но только Ваш fun малоинтересен. Уровня задачки начального курса программирования на уровне ядра. Да и справились Вы так себе — да и сами написали, что ещё пилить и пилить.
Попробуйте использовать свой драйвер на любой поддерживаемой в настоящий момент 64-разрядной ОС Windows.
Задача не just for fun, она вышла из практики, была реальная потребность. Если вам этот fun не интересен, поправьте, но по-моему, вас никто не заставляет давать какие-либо комментарии на этот счет. Если не интересно, зачем вообще читать?
Касательно начального курса программирования, я могу назвать множество людей, которые работают в этой области, и которые этой простой задачи сделать не могут.
Справился безусловно так себе.
А вообще, вы просто передергиваете мои слова, тем самым меняя смысл.
Вы пишите, что была реальная необходимость, и Вы задачу решили — эээ, в Вашей компании нет ни одного компьютера под управлением 64-разрядной ОС позже Windows 7 включительно? Вы так и не услышали: без подписи на этих системах драйвер работать не будет! Так в чём тогда интересность и ценность Вашего решения?
Например, вы заблокировали доступ к Интернету одному из пользователей, но не заблокировали устройства этого ПК. В таком случае пользователю достаточно просто принести USB-модем, и Интернет у него будет. Т.е. простым блокированием доступа к Интернету дело не ограничивается.
В самом начале, я написал практическую потребность, извиняюсь если написал размыто.
Вы пишите, что была реальная необходимость, и Вы задачу решили — эээ, в Вашей компании нет ни одного компьютера под управлением 64-разрядной ОС позже Windows 7 включительно?
Я драйвер подписываю.
Несмотря на свою простоту в моем случае данный драйвер достаточно эффективно решает поставленную задачу.
Я явно сказал что в моем случае.
Вы так и не услышали: без подписи на этих системах драйвер работать не будет!
Еще раз, я писал о разработке, а не об обходе проверки подписи.
Так в чём тогда интересность и ценность Вашего решения?
Решать вам, и остальным читателям.
И в итоге специалист, имеющий доступ к сертификату, целый день тратит на написание драйвера, который к тому же потом требует доработки?
Извините, но если бы Вы работали в моей компании, после этого я бы Вас уволил.
Но Вы правы: всегда может быть иное мнение. Посмотрим, что скажут другие.
Для себя я всё понял, спасибо за диалог.
Специалист на работе должен заниматься работой. Его рабочий день стоит дороже софта для блокировки.
Кроме того, если за день он не успел отладить простой драйвер до состояния «больше недостатков нет» — тогда он точно не на своём месте.
«Утилита в сети» — это украденый сертификат с китайской программой для подписи.
Ребята, мы здесь обсуждаем решения для компании или пиратские обходы дома на завалинке? Давайте мухи — отдельно, котлеты — отдельно.
P.S. в моём конкретном случае было допустимо рубить устройства devcon'ом (издержки производства, иногда, например, на уже поставленных терминалах отходит питание от купюроприёмника, и devcon — единственный способ программно вернуть устройство в рабочее состояние).
Безотносительно кода, решение весьма странное.
Если у пользователя нет прав администратора, то задачу можно решить проще, стандартными средствами контроля доступа, а если права есть, то он может просто использовать обычный драйвер, разве нет?
Еще раз, для стандартного класса USB устройства в системе может присутствовать драйвер. Сейчас сетевые адаптеры есть работающие по USB. И никакого спец. софта для них не нужно.
Возможно я не прав, но чтобы модем заработал, ему надо создать новое подключение (обычно это делает ПО модема при установке).
Без прав администратора пользователь во-первых, не сможет установить драйвер модема, а во-вторых, если драйвер уже есть и не нужен, не сможет создать новое сетевое подключение.
В крайнем случае, можно, например, явно запретить пользователю создание новых подключений через групповые политики.
Я еще раз подчеркну, в Windows предустановленных драйверов огромная масса. Полагаться на то что устройство потребует особой установки, не очень верно. Т.к. не дает максимальной гарантии.
P.S. На счет наказаний немного ставит в ступор. Вы встречали когда-нибудь человека которого всегда наказывали только по делу?
И лично я не ставлю под сомнение лично Вашу честность. Но вот сама предыстория вызывает сомнения.
Главную мысль, которую я пытаюсь озвучить, что не нужно начинать искать решение задач администрирования чисто техническими средствами.
Вы не поняли. Вопрос не в абстрактной справедливости, а в рациональности. Где гарантия что, использование вашего решения по обходу подписи драйверов не нанесет значительный урон безопасности?
В каком месте я обхожу подпись драйверов?
Или что не создаст проблем при подключении устройств, драйвера к которому писали «индусы», но вот именно их и нужно подключить именно к этому рабочему месту?
С таким подходом лучше тогда вообще ничего не делать, т.к. любое решение может нанести вред. Какие проблемы может породить фильтрация обычных запросов PnP, который писала Microsoft?
Конечно надежней запретить использование металлических кухонных ножей, но их заставлять всех использовать не рационально.
По-моему, вы перевернули все с ног на голову.
В каком месте я обхожу подпись драйверов?
За это извиняюсь, про обход подписи это был не ваш комментарий.
Какие проблемы может породить фильтрация обычных запросов PnP, который писала Microsoft?Вам разве не приходилось еще сталкиваться с тем что «это не должно приводить к проблемам» не обязательно означает, что «это действительно не привело к проблемам». Особенно когда дело касается Microsoft. :)
По-моему, вы перевернули все с ног на голову.там опечатка была, поэтому фраза действительно получилась бессмысленной. Возможно Вам приходилось читать притчу «про хакера и начальника столовой»?
Ну опять же вернусь к тому, что Ваше решение в итоге не защищает от того, кто будет специально искать как его обойти\сломать, т.к. нужно не только совершенствовать замки, но и ловить взломщиков.
Вам разве не приходилось еще сталкиваться с тем что «это не должно приводить к проблемам» не обязательно означает, что «это действительно не привело к проблемам». Особенно когда дело касается Microsoft. :)
Я много с чем сталкивался. И Microsoft последняя в списке. Статистически. Вообще когда говорят «особенно Microsoft» — все становиться ясно.
Ну опять же вернусь к тому, что Ваше решение в итоге не защищает от того, кто будет специально искать как его обойти\сломать
Ну сломайте kernel mode драйвер. Обойдите его механизмы. Вы сейчас сказали в целом правильную вещь, но бессмысленную. Т.к. из такого утверждения следует что не надо ничего писать, потому что это сломают.
В принципе, согласен в этом с Ivan_83.
Многие модемы умеют прикидываться сетевой картой и прав админа для них не нужно, в системе уже все есть, сам в универе так делал.
Если у вас телефон на android подключите его как usb модем, думаю вы удивитесь.
Технология называется ndis
в качестве модема на win10 никаких драйверов и ПО не требуется.Но это меня натолкнуло на мысль, что мы слишком зациклились на модемах и подключению по usb. Действительно пользователь может подрубить к компу и usb-wifi( современные свистки большей частью тоже без установки драйверов), а смартфон превратить в точку доступа одним нажатием, и воткнуть сетевую карту wi-fi в pci слот на материнке, и принести роутер, который может использвать в качестве wan подключения wi-fi со смартфона либо также подключать usb-модем в роутер, а компьютер подключить по Ethernet. Соответственно в двух последних случаях метод защиты автора не будет действовать, но зато будет действовать банальное отключение Dhcp на брэндмауре.
А воткнуть плату для человека хоть раз собиравшего-разбиравшего комп не проблема и таких людей среди пользователей достаточно.
Сколько я видел людей работающих за ПК, они кнопки с трудом нажимают. Что уж говорить о подключении сетевой платы.
И потом, PCI это все-таки не hot-plug. Когда USB массовый. Даже если и так, вы слишком много уделяете внимания вещам, которые по своей натуре маловероятны. Целесообразно ли тратить на защиту от таких случаев много сил?
А как же ваши ранее упомянутые регламенты компании, расследования инцидентов и система наказаний? На которые, как я понял, надо ставить приоритет, а не на технические решения.
Человека уволили в этот же день. Он как раз на испытательном сроке был.
Два правила на брендмауре это быстрее чем писать драйвер по всевозможные варианты usb и pci устройств.
Сейчас в студии уже можно компилить в .sys без бубна? После подключения WDK ессно…
Пишем простой драйвер под Windows для блокировки USB-устройств