The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Обнаружение фактов нарушения лицензии GPL в аппаратных устройствах

19.10.2008 23:07

Armijn Hemel из компании Loohuis Consulting представил 26 страничное руководство "The GPL Compliance Engineering Guide" (PDF, 500Кб), в котором обобщил опыт участников ресурса gpl-violations.org по обнаружению GPL кода в бинарных прошивках различных аппаратных устройств.

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

Первым делом производится сканирование сетевых возможностей устройства. Тип операционной системы и серверные приложения можно обнаружить по особенностям реализации сетевого стека или протокола, например, при помощи утилиты nmap.

Второй шаг - анализ бинарной прошивки и выявление наличия сигнатур, свойственных определенным открытым программам. Для выявления использования GPL-лицензированных загрузчиков производится оценка особенностей загрузки устройства. Оценив применяемые способы сжатия образа загружаемого ядра, можно выявить применение gzip, bzip2, LZMA и 7z. Далее можно определить тип файловой системы (часто используют squashfs, ext2fs, cramfs, romfs, jffs2) и примонтировать ее для исследования содержимого.

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

В случае проблем с получением прошивки, анализ производится через физический доступ к устройству через последовательный порт или JTAG-интерфейс, выводы для которых присутствуют на плате.

  1. Главная ссылка к новости (http://www.loohuis-consulting....)
  2. OpenNews: Организации GPL-Violations.org и FSFE Freedom Task Force объявили о сотрудничестве
  3. OpenNews: Компанию Compro Technology обвинили в нарушении GPL
  4. OpenNews: Skype собирается отрицать GPL в суде
  5. OpenNews: Названы лауреаты премии за вклад в развитие открытого ПО
Лицензия: CC BY 3.0
Источник: lwn.net
Короткая ссылка: https://opennet.ru/18483-gpl
Ключевые слова: gpl, linux, opensource
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, FPGA (?), 23:33, 19/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сам интересуюсь железками на базе Linux. И возникает резонный вопрос: ну неужели так просто ломануть прошивку и исследовать её содержимое? Каким образом выполняется защита ОЗУ (в процессе распаковки ядра и расшифровки из флэши программ - ведь можно подключиться к выводам микросхемы ОЗУ)?
     
     
  • 2.2, Sky_lord (ok), 23:57, 19/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не усложняй. В подавляющем большинстве случаев на плате железки уже распаяна (а если не распаяна, то могут быть просто "точки" выводов) "гребенка" последовательной консоли. Достаточно любого переходника COM-TTL на чипе типа MAX232 (подойдут многие кабели от мобильников - от старых Сименсов, например) - выясняешь методом тыка (если производитель скрывает эти данные) нахождение на "гребенке" rx, tx и земли... И все. Подключаешься любой терминалкой, методом же тыка настраиваешь скорость... Практически в 100% случаев тут же доступен рутовый вход в консоль, а при загрузке - интерфейс загрузчика...
     
     
  • 3.4, Аноним (4), 01:19, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Такое может быть лишь в том случае, если производитель либо идиот, либо не хочет ничего скрывать. Если надо защитить прошивку - это очень просто, у микроконтроллеров есть внутренная память программ и бит защиты.
     
     
  • 4.5, Аноним (4), 02:51, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Такое может быть лишь в том случае, если производитель либо идиот, либо
    >не хочет ничего скрывать. Если надо защитить прошивку - это очень
    >просто, у микроконтроллеров есть внутренная память программ и бит защиты.

    +1. Такие методы сработают только в случае, если производитель идиот. При желании можно элементарно сделать так, что из прошивки устройства вы не прочитаете ни байта.

     
     
  • 5.10, Хелагар я..... (?), 07:30, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Такое может быть лишь в том случае, если производитель либо идиот, либо
    >>не хочет ничего скрывать. Если надо защитить прошивку - это очень
    >>просто, у микроконтроллеров есть внутренная память программ и бит защиты.
    >
    >+1. Такие методы сработают только в случае, если производитель идиот. При желании
    >можно элементарно сделать так, что из прошивки устройства вы не прочитаете
    >ни байта.

    Други мои! Вы, видимо, не вкуриваете, мягко говоря.
    Раз пердлагаете на МИКРОКОНТРОЛЛЕРЕ делать СЕТЕВОЕ устройство (роутер, NAS & etc).
    Читать подобное весьма и весьма смешно.
    Поясню для "спецов" в ватоматизации (на пальцах) - в прошивку микроконтроллера вы фиг втиснете ядро с адекватным набором сетевых возможностей. А если и втисните, то тормоз у вас выйдет неимоверный, а не железка. Посему такие вещи делаются на ARM-ах чаще всего.
    С отдельной флеш-памятью программ.

     
     
  • 6.17, Аноним (4), 11:06, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Господин ламер! По-вашему, микроконтроллеры бывают только 8-разрядные? И не бывает ARM-совместимых _микроконтроллеров_?
     
     
  • 7.20, FPGA (?), 11:44, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Господин ламер! По-вашему, микроконтроллеры бывают только 8-разрядные? И не бывает ARM-совместимых _микроконтроллеров_?

    Господин умник, узнайте для начала, что 32-разрядных ARM-совместимых контроллеров с более чем 1 Мб встроенной флэши и более чем 8 Мб встроенного ОЗУ пока что нет в природе, и поэтому прошивка у таких микроконтроллеров хранится во внешнем ПЗУ, а программа выполняется из внешнего ОЗУ... Посему защитить такое весьма проблематично, а ведь порой даже биты защиты 8-битников не спасают... ;)

     
     
  • 8.40, Denis (??), 09:38, 21/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    есть ngw100 от Atmel http atmel com dyn products tools_card asp family_id 6... текст свёрнут, показать
     
  • 3.32, User294 (ok), 18:27, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Не усложняй. В подавляющем большинстве случаев на плате железки уже распаяна (а
    >если не распаяна, то могут быть просто "точки" выводов) "гребенка" последовательной
    >консоли.

    А если ее нет - есть еще такая штука, JTAG.У почти любого современного процессора присутствует.И на большинстве железок присутствует, как минимум в виде нераспаянных точек.Потому что удобен для дебаговых целей и контроля пропайки платы.

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

     
     
  • 4.38, Sky_lord (ok), 22:35, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Не усложняй. В подавляющем большинстве случаев на плате железки уже распаяна (а
    >>если не распаяна, то могут быть просто "точки" выводов) "гребенка" последовательной
    >>консоли.
    >
    >А если ее нет - есть еще такая штука, JTAG.У почти любого
    >современного процессора присутствует.И на большинстве железок присутствует, как минимум в виде
    >нераспаянных точек.Потому что удобен для дебаговых целей и контроля пропайки платы.
    >Ну а крайнем случае флеху можно и отпаять ведь....

    Не, ну JTAG - это все-таки более специфичная штука и с ним все-таки нужно уметь работать и знать процессор... Вот, скажем, ковырял я недавно ТВ-приставку D-Link DIB-120. Даташита на процессор на сайте производителя нет - только общий обзор, т.е. даже не ясно на каких ногах JTAG. Можно было тратить время и искать, но зачем, если быстрее было подключиться к консольке (в целях общения с бутлоадером), а содержимое флеша выковырять из официальных прошивок, где оно не зашифровано и тупо лежит образом cramfs? Начинать нужно с простого. :-) А купить и распотрошить кабель для мобильника - может каждый. Как и замаунтить образ...

     
  • 4.39, grindz (?), 00:44, 21/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Не усложняй. В подавляющем большинстве случаев на плате железки уже распаяна (а
    >>если не распаяна, то могут быть просто "точки" выводов) "гребенка" последовательной
    >>консоли.
    >
    >А если ее нет - есть еще такая штука, JTAG.У почти любого
    >современного процессора присутствует.И на большинстве железок присутствует, как минимум в виде
    >нераспаянных точек.Потому что удобен для дебаговых целей и контроля пропайки платы.
    >
    >
    >Ну а крайнем случае флеху можно и отпаять ведь....

    Сейчас вполне дешего производить 2 варианта ASIC. 1-й варианд для разработки - там и JTAG и все дела. 2-й вариант для production. Там нифига нет. При попытке физического доступа к внутренностям устройства - оно физически ломается. Смотрите cпеки по Master card PTS сертификации для платежных терминалов. Правда там несколько сотен страниц на английском. Там всё написано как должно быть. И ведь делают. Знаю о чем говорю, работал в 2-х крупнейших мировых производителях платежных терминалов.


     
  • 2.31, User294 (ok), 18:24, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Так, средненько Требуются специфичные умения и скиллы но ничего такого сверхъест... большой текст свёрнут, показать
     

  • 1.3, Дмитрий Ю. Карпов (?), 01:15, 20/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я не понимаю производителей таких железок - есть же BSD!
     
     
  • 2.6, Аноним (4), 02:54, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Я не понимаю производителей таких железок - есть же BSD!

    Если идет речь о роутере или NAS-хранилище, то да, подобные девайсы на основе БСД имеются. Но существует достаточно большое количество полезного софта (кроме ОС) под ГПЛ лицензией, тут уж ничего не поделаешь...

     
  • 2.7, Vaso Petrovich (?), 05:21, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Я не понимаю производителей таких железок - есть же BSD!

    ссылки на эмбед девайсы с bsd на борту в сутдию или говову в песок

     
     
  • 3.8, Аноним (4), 06:37, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    вот и был вопрос - почему не используют BSD код. значит своровать у OpenBSD код wireless драйвера (именно своровали, обманув разработчиков помогавших в портировании кода под линукс обещав возвращение модифицированного кода обратно в BSD) - для этого код хорош. а как что - BSD отстой.
     
     
  • 4.11, Хелагар я..... (?), 07:36, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >вот и был вопрос - почему не используют BSD код. значит своровать
    >у OpenBSD код wireless драйвера (именно своровали, обманув разработчиков помогавших в
    >портировании кода под линукс обещав возвращение модифицированного кода обратно в BSD)
    >- для этого код хорош. а как что - BSD отстой.
    >

    Увы, это воровство, даже если оно было, полностью отвечает БСД-лицензии. И в этом как раз главная проблема БСД.

     
     
  • 5.13, PavelR (??), 08:35, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    нельзя перелицензировать код, написанный под BSD лицензией, в лицензию GPL, без согласия разработчиков исходного кода.

    В том случае разрабами было дано согласие, но с условием что будут возвращены изменения/доработки, это условие было и нарушено.


     
     
  • 6.21, fresco (??), 11:45, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    с BSD кодом можно делать все что угодно. главное автора упомянуть, а там пофиг че -- хоть перелицензируйте, хоть так открывайте.
     
     
  • 7.41, Square (ok), 13:04, 21/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >с BSD кодом можно делать все что угодно. главное автора упомянуть, а
    >там пофиг че -- хоть перелицензируйте, хоть так открывайте.

    теперь не надо автора упоминать. даже напротив, не рекомендуется упоминать обязательное упоминание автора при выпуске софта под бсд лицензией.

     
  • 6.28, vitek (??), 14:21, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    прикольно! :-D
    с каких это пор bsd требует возврата кода? это же Вам не gpl кокой-то!

    другое дело, что в ядро gnu/linux'а код с бздишной лицензией нельзя запихнуть... поэтому, как Вы выражаетесь, "разрабы" выпустили этот код под 2-мя лицензиями сразу - за что им и спасибо.

    да и речь идет о GPL-совместимой лицензией ISC (BSD лицензия используемая в OpenBSD и продуктах Internet Systems Consortium) http://en.wikipedia.org/wiki/ISC_license (правый верхний угол: GPL compatible - Yes)

    и уже не актуально -http://www.opennet.me/opennews/art.shtml?num=17131

     
     
  • 7.29, vitek (??), 14:27, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    а! да!
    увидеть эту лицензию можно например в linux-2.6.27.2/drivers/net/wireless/ath5k/ath5k.h
    * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
    * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    сравните с вики (url выше) :-)
     
  • 6.33, User294 (ok), 18:37, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >В том случае разрабами было дано согласие, но с условием что будут
    >возвращены изменения/доработки, это условие было и нарушено.

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

     
  • 3.9, CRAZY MAX (?), 07:16, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    D-Link DFL-1500 - например, вполне себе железка с NetBSD нав борту.
     
     
  • 4.35, User294 (ok), 18:55, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >D-Link DFL-1500 - например, вполне себе железка с NetBSD нав борту.

    А оно живое?Судя по гуглу это было несколько лет назад.Нечто писюкоподобное с соплероном 1.2ГГц на борту.На данный момент сайт длинка такую железку что-то не знает даже.Уже закопали?А то найденные упоминания девайса датированы аж 2003 годом.

     
  • 3.19, Suntechneg (?), 11:09, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    www.onstor.com

    Как минимум их Bobcat системы построены на основе OpenBSD (про другие не знаю)

     
  • 3.27, vitek (??), 13:55, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    а звонилка от эпла не подойдёт? :-)
     
  • 2.30, andr.mobi (??), 15:27, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Я не понимаю производителей таких железок - есть же BSD!

    просто на одного БЗДуна десять пингвинологов. Производителю по большому (счету) наделать, что у него в железяке крутиться будет, лишь бы работало. Ну и про линух любой манагер почти все знает, а про Беркли первый или второй раз слышит. Маздайную лицензию никто не читает, а вы хотите, чтобы разбирались в токостях BSD vs. GPL. Многа букв! Особенно во второй :)

     
  • 2.34, User294 (ok), 18:48, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Я не понимаю производителей таких железок - есть же BSD!

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

    P.S. Собственно мне честно говоря не понятно что теряет вендор выложив сорц.Собственно сорцы и так кому надо скачать может а адаптации специфичные для железки никому кроме вендора строго говоря ничего и не дают - другим придется свои адаптации делать.На халяву еще и прошивок могут альтернативных понаделать что обычно популярности железяки только в плюс (например, WL500GP и олеговская прошивка - без нее девайс тупо неюзабелен в половине сетей с PPTP VPN и страдает рядом проблем, а с оной - отличный девайс).Если вендор не тормоз - мог бы еще и улучшения внедрять сделанные народом нахаляву.Те кто это поняли - здорово экономят на разработке и получают соответствующую скорость развития :).Ну а свои специфичные программы придающие девайсу *уникальный* функционал вендор может распостранять по любой угодной ему лицензии.Сорцы этого у вендора никто с ножом к горлу не требует.Лишь бы лицензии библиотек соблюдали (для проприетарных програм годятся библы под LGPL, BSDL и т.п.).

     

  • 1.14, Аноним (4), 09:50, 20/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А D-Link не выкладывает исходники последних версий прошивок, хотя копию лицензии GPL даёт вместе с устройством.
     
     
  • 2.15, Аноним (4), 10:35, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А D-Link не выкладывает исходники последних версий прошивок, хотя копию лицензии GPL
    >даёт вместе с устройством.

    Вот некоторые вендоры ( Archos - производят PMP ) открыто говорят что их прошивка построенна на Linux. Исходники выкладывают, но есть один нюанс. Толку от них - никакого! Самостоятельно изменить что-либо там нельзя, ибо загрузчик закрыт, и все приложения подписанны цифровой подписью. И от новых версий прошивок они исходники не кладут! Их можно прижать за все это?

     
     
  • 3.18, Аноним (4), 11:07, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>А D-Link не выкладывает исходники последних версий прошивок, хотя копию лицензии GPL
    >>даёт вместе с устройством.
    >
    >Вот некоторые вендоры ( Archos - производят PMP ) открыто говорят что
    >их прошивка построенна на Linux. Исходники выкладывают, но есть один нюанс.
    >Толку от них - никакого! Самостоятельно изменить что-либо там нельзя, ибо
    >загрузчик закрыт, и все приложения подписанны цифровой подписью.

    GPL2 это не противоречит. В GPL3 включили специальный пункт, запрещающий это.

     
     
  • 4.22, Аноним (4), 11:54, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >GPL2 это не противоречит. В GPL3 включили специальный пункт, запрещающий это.

    Это настоящее гадство!!!

     
     
  • 5.26, Guest (??), 13:39, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>GPL2 это не противоречит. В GPL3 включили специальный пункт, запрещающий это.
    >Это настоящее гадство!!!

    Что не противоречит или что включили? Я вот 100% за GPL3, воров надо давить.

     
     
  • 6.36, User294 (ok), 19:51, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >надо давить.

    Давить надо жуликоватых вендоров которые пытаются потенциально поднасрать по максимуму покупателю, имхо.

     
  • 2.16, Shura (??), 10:43, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А D-Link не выкладывает исходники последних версий прошивок, хотя копию лицензии GPL
    >даёт вместе с устройством.

    Выкладывает, просто надо поискать, ну или по почте у суппорта запросить

     
     
  • 3.23, anonymous (??), 12:25, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    есть они, на ftp ихнем надо шариться.
     
     
  • 4.24, Skylord (??), 13:09, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >есть они, на ftp ихнем надо шариться.

    На фтп нет ничего. У них сайт специальный, где они выкладывают исходники: http://tsd.dlink.com.tw/

     
     
  • 5.25, anonymous (??), 13:17, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    не знаю как на сайте, но вот для DIR-400 я исходники нашел на фтп: ftp://ftp.dlink.ru/pub/Router/DIR-400/

    Не спорю, возможно это носит выборочных характер и тарболы выкладываются не для всех.

     
  • 2.37, User294 (ok), 19:56, 20/10/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А D-Link не выкладывает исходники последних версий прошивок, хотя копию лицензии GPL
    >даёт вместе с устройством.

    Все они там выкладывают.На FTP зайдите.Если вдруг нужной версии нет - напишите на мыло.Строго говоря никто не обязан сорц выдавать в каком-то определенном виде - это не регламентировано.Что и юзают (абузают?) всякие сомнительные жуликоватые конторы типа микротика, у которых получение сорца усложнено по максимуму: запрос по почте, сорцы пришлют, но - небезвозмездно, в малоудобном виде и без своих проприетарных частей.Просто изменить и пересобрать по простому - фигушки.Только в основном такие сами себя же и нагревают - ну в итоге дофига контор юзает OpenWRT вместо оного.И как бы всем хорошо :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру