Ещё одну компанию уличили в нарушении свободной лицензии GPL, и этот случай выбивается из общего ряда.

Ubiquiti Networks производит беспроводное оборудование большого радиуса действия. Это очень классные штуки, например, позволяющие передавать сигнал WiFi на 300 км. К сожалению, за компанией тянется тёмный шлейф махинаций с ценными бумагами, нарушения санкций США, судебных процессов по торговым маркам и копирайту, применения софтверных патентов. Всё это совершенно не радует.

Вот четыре способа, благодаря которым Ubiquiti Networks успешно маскирует факты нарушения GPL, так что их трудно заметить, а ещё труднее им противодействовать.

1. Видимость соответствия




На сайте Ubiquiti есть раздел, откуда вы можете скачать tar-файлы, предположительно содержащие исходные коды под GPL для каждой версии прошивки. Если посмотреть на эти файлы, то они выглядят полными, есть инструкции по сборке, чтобы сделать собственную кастомную прошивку.

Только если приглядеться, то начинаешь замечать проблемы, такие как…

2. Отказ предоставить исходники модифицированного загрузчика, хотя из-за их изменений возникли уязвимости в безопасности




Вплоть до версии Ubiquiti airOS 5.5.4, модифицированная версия загрузчика u-boot содержала уязвимость — можно было извлечь из устройства конфигурационный файл в открытом виде, не оставляя следов. И в этом конфигурационном файле были незашифрованные пароли WPA/WPA2/RADIUS.

Ещё хуже, чем проблема с безопасностью, реакция компании Ubiquiti на эту проблему. В частности, они:

  • Отказались предоставить исходный код, хотя u-boot опубликован под GPL.
  • Не исправляли уязвимость долгое время после того, как информация о ней попала в открытый доступ.

До сегодняшнего дня Ubiquiti всё ещё не предоставила исходный код u-boot.

3. Публикация исходников версии Linux, которая отличается от бинарников, в надежде, что никто не заметит разницы




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

Как одно из свидетельств несоответствия, в прошивке AirMax 5.5.4 ядро изменили таким образом, что разделы MTD открыты только для чтения, однако это изменение невозможно найти в соответствующих патчах ядра или в исходниках.

Подобная практика делает поиск нарушений чрезвычайно сложным делом, и мы не можем знать наверняка, что они не сделали нечто подобное с какими-нибудь другими файлами под GPL. Возможно, это просто ошибка, но нужно помнить, что люди жаловались на эту проблему — и не получали практически никакого ответа.

Кстати, о жалобах…

4. Затягивание запросов на код GPL на месяцы, а потом необъяснимая тишина


Если вы думаете, что я слишком жесток к Ubiquiti, когда выношу эти вопросы на общественное обсуждение, то имейте в виду, что я пытался связаться с Ubiquiti на протяжении последнего года по поводу исходников u-boot. Мои попытки см. здесь, здесь и здесь.

На самом деле, я даже нашёл владельца авторских прав на u-boot, чтобы попросить исходники, но они так и не предоставили их.

Из моих бесед с Ubiquiti сложилось впечатление, что они считают нормальным скрывать код программного обеспечения под GPL, если «это делается для защиты пользователей». Более того, моя переписка с ними бесконечно прерывалась из-за задержек, якобы связанных с необходимостью передать запрос в другой неназванный отдел.

В конце концов, этот отдел так и не прислал ответа, в надежде, что я просто забуду или сдамся.

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

  • Помогите распространить информацию — голосуйте, отправляйте друзьям, напишите пост в блоге на эту тему.
  • Отправьте в Ubiquiti запрос на выдачу исходного кода — их адреса электронной почты support@ubnt.com и info@ubnt.com. Нужно попробовать оба.
  • Отправьте мне письмо и расскажите, что вы сделали. Мой адрес riley@openmailbox.org.

Комментарии (37)