Мы создавали Camera Blocker с одной целью — дать пользователю полный контроль над своей камерой. Вот основные принципы безопасности, которых мы придерживаемся.
- Полная автономность. Программа не лезет в интернет. Вообще. У неё нет функций для отправки данных, сбора телеметрии или проверки обновлений.
- Открытость. Весь исходный код доступен для аудита. Здесь нет обфускации или скрытых функций.
- Безопасность для системы. Скрипты не удаляют драйверы и не повреждают системные файлы. Мы используем только штатные механизмы ОС для временного отключения устройств.
- Прозрачность. Программа делает только то, что заявлено: блокирует камеру. Она не трогает ваши файлы, микрофон (если не указано иное) или сетевой трафик.
Используется Device Manager API. Скрипт находит устройства в классе «Camera» и переводит их в состояние «Disabled». Это аналогично тому, как если бы вы вручную отключили камеру в Диспетчере устройств.
Используется механизм выгрузки расширений ядра (kext), отвечающих за работу камеры (AppleCameraInterface). В фоновом режиме работает Launch Daemon, который следит, чтобы расширение не загрузилось обратно.
Модуль ядра uvcvideo вносится в blacklist, а уже загруженные модули выгружаются через modprobe.
Программа записывает только техническую информацию:
- Список найденных камер.
- Статус блокировки/разблокировки.
- Ошибки при выполнении команд.
Логи хранятся исключительно на вашем диске и никогда не передаются вовне.
- Права администратора: Для управления оборудованием скрипту необходимы высокие привилегии. Это стандартное требование для таких задач.
- Уровень ОС: Блокировка работает только внутри запущенной операционной системы. До загрузки ОС (например, в BIOS) программа бессильна.
- Физический доступ: Если кто-то получит полный административный доступ к вашему ПК, он сможет остановить скрипт. В таких случаях мы рекомендуем использовать физическую шторку как дополнительный барьер.
Если вы нашли проблему в коде, которая ставит под угрозу безопасность пользователя, пожалуйста, сообщите об этом через Issues или напрямую разработчикам (если указаны контакты), прежде чем публиковать информацию в открытом доступе.