The OpenNET Project / Index page

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

Инструмент для выявления фактов использования GPL-кода в бинарных файлах

16.04.2010 11:43

Компании Loohuis Consulting и Opendawn, при поддержке организаций NLnet Foundation и Linux Foundation, представили свободный инструмент Binary Analysis Tool для обнаружения фактов использования кода GPL-проектов в бинарных прошивках. Для определения в бинарном файле наличия включения целых программ или их фрагментов программа использует специальную базу знаний, построенную на основе доступных исходных текстов. База включает в себя такие данные как символьные и строковые сигнатуры популярных программ, данные о файловых системах, драйверах, данные о чипсетах и связанной с аппаратными платформами информацией. В процессе проверки может быть использована как централизованная база знаний, так и БД, подготовленная собственными силами, например, с целью выявления следов использования определенной программы.

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

В базовом виде программа позволяет выявить в бинарной прошивке факты использования Linux ядра и BusyBox, показать их версии и параметры конфигурации, определить тип задействованной внутри прошивки файловой системы и показать размещенные на ней типовые системные утилиты.

Binary Analysis Tool представляет собой модульный фреймворк, написанный на языке Python и распространяющийся в рамках лицензии Apache. Для построения поискового индекса задействован модуль PyLucene, работающий поверх написанного на языке Java поискового движка Lucene. Из дополнительных зависимостей названы: binutils, e2tools, squashfs-tools, module-init-tools, gzip и xz. Процесс использования программы наглядно продемонстрирован на специально подготовленном видеоролике.

  1. Главная ссылка к новости (http://lwn.net/Articles/383504...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/26255-gpl
Ключевые слова: gpl, analyzer, firmware, search
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (21) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Unixoid_потому_что_кривые_руки_писали_этот_модуль (ok), 15:37, 16/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ждём массовых новостей типа "в продукте XXX выявлено использование GPL кода YYY".
     
     
  • 2.26, warlomak (?), 21:34, 16/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Ждём массовых новостей типа "в продукте XXX выявлено использование GPL кода YYY".
    >

    не обновлений прошивок ;-)

     

  • 1.3, Gra2k (ok), 15:46, 16/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Не понимаю как это делается без реверса, упаковщики же разные бинарный код тоже. Или я что то пропустил?
     
     
  • 2.4, VarLog (ok), 15:54, 16/04/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я в этом нифига не смыслю, но предположу, что выявление подобно выявлению вирусов антивирусными системами по сигнатурам из БД. Не?
     
     
  • 3.7, anonymous (??), 17:00, 16/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Неа. Еще никто не запрещал делать на бинарники ldd и strip. Это не декомпиляция и не дезассемблирование. Это поиск с стрингам на наличие узнаваемых сигнатур.
     
     
  • 4.15, Gra2k (ok), 18:33, 16/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я про что и спрашиваю, как найти эту сигнатуру не распаковывая бинарник, хорошо есть заранее известные популярные паковщики, вернее паковщик. Но борьба с реверсом идет и могут жать чем то своим еще и шифровать, для поиска по сигнатуре код надо будет пожать вот этим "своим" и потом уже использовать его как сигнатуру, как то так.
     
     
  • 5.27, XoRe (ok), 00:32, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Я про что и спрашиваю, как найти эту сигнатуру не распаковывая бинарник,
    >хорошо есть заранее известные популярные паковщики, вернее паковщик. Но борьба с
    >реверсом идет и могут жать чем то своим еще и шифровать,
    >для поиска по сигнатуре код надо будет пожать вот этим "своим"
    >и потом уже использовать его как сигнатуру, как то так.

    $ cat hello.c
    #include "stdio.h"

    void main()
    {
      printf("hello, megamaza!\n");
      return;
    }

    $ gcc -o hello hello.c

    $ grep megamaza ./hello
    Двоичный файл ./hello совпадает

    Кстати, в том же самом файле hello есть строчки о версии компилятора и т.д.
    И я не думаю, что в дешевых модемах/роутерах/плеерах будет шифрование прошивки.

     
     
  • 6.31, User294 (ok), 08:18, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Если там кроме декомпрессии делать еще и расшифровку - юзер устанет ждать загрузки девайса. Алсо, наличие ОС проверяется по куче признаков. Как то реализованные протоколы, их свойства, глюки и особенности, поддерживаемые ФС, набор ПО и функицонала, etc. При том чем сильнее некто прячет шило в мешке, тем приятнее будет найти и въ...ь посильнее за это дело. И как бы надежный метод спрятать - один: переписать все с нуля, ха-ха :)
     
     
  • 7.35, XoRe (ok), 00:48, 18/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Если там кроме декомпрессии делать еще и расшифровку - юзер устанет ждать
    >загрузки девайса. Алсо, наличие ОС проверяется по куче признаков. Как то
    >реализованные протоколы, их свойства, глюки и особенности, поддерживаемые ФС, набор ПО
    >и функицонала, etc.

    Да ладно, какие там признаки, когда подрубаешься к консоли той же voip железки от linksys, а там linux+asterisk =)

    >И как бы надежный метод спрятать - один: переписать все с
    >нуля, ха-ха :)

    Угу.
    Или просто выложить исходники (раз уж взяли gpl'ный код).

     
  • 2.19, ххх (?), 19:21, 16/04/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    этот инструмент возможно полезен при большом количестве проверяемых файлов, отделят подозрительные и проверят вручную.
     

  • 1.9, fa (??), 17:33, 16/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как-то ненадежно. Прошивка может быть пожата, или еще как-нибудь перелопачена. Походу, на основании такой тулзы нельзя будет с уверенностью сказать, что в прошивке не линукс.
     
     
  • 2.32, User294 (ok), 08:19, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Кроме тулзов есть еще глаза и мозг :)
     

  • 1.13, klalafuda (?), 17:58, 16/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/

    $ strings VeryBadApp | grep GPL

    Где-то на этом уровне.

     
  • 1.16, Аноним (-), 18:44, 16/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Показательно, что рядом новость "RIAA намерена следить за лицензионной чистотой программ на домашних компьютерах"
     
     
  • 2.30, аноним (?), 03:27, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Показательно, что рядом новость "RIAA намерена следить за лицензионной чистотой программ на домашних компьютерах"

    При том:

    Ассоциации звукозаписывающих компаний и кинопроизводителей Америки (RIAA/MPAA) РАССМАТРИВАЮТ ВОЗМОЖНОСТЬ

    Компании Loohuis Consulting и Opendawn, при поддержке организаций NLnet Foundation и  Linux Foundation, ПРЕДСТАВИЛИ свободный инструмент

     

  • 1.24, Аноним (-), 20:27, 16/04/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а если они не код своровали, а идею? посмотрели как там, поменяли местами пару операторов, вставили своих и все уплыл код GPL
     
     
  • 2.25, Аноним (-), 20:31, 16/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Реализуют поиск нечетких дублей
     
  • 2.28, XoRe (ok), 00:34, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >а если они не код своровали, а идею? посмотрели как там, поменяли
    >местами пару операторов, вставили своих и все уплыл код GPL

    Исполняемый код - да.
    А вот данные (текстовые, бинарные), имена функций, библиотек - нет.

     
  • 2.29, anonymous_peer (ok), 02:09, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А что, на идеи уже распространяется GNU GPL? :)

    Вообще-то это проприетарщики пытаются идеи тоже заковать в юридические наручники.

    Я не знаю, как обстоят дела на самом деле, но думаю, просто поменять пару операторов будет точно не достаточно, чтобы рассматривать код как свой собственный. Это скорее как раз модифицированный gpl-ный код.

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

    Ну, а написать с нуля никто не мешает (в нормальных странах без кривых патентов).

     
  • 2.33, Аноним (-), 16:37, 17/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А мне кажется, что все приличные и значимые идеи имеются в книжках, и необязательно воровать, да ещё и перелопачивать чей-то код.
     
     
  • 3.36, XoRe (ok), 00:50, 18/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    В книжках базовые идеи и теория.
    В коде - идеи по применению на практике.
     

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



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

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