Jak wykryć i udokumentować naruszenie GPL?

15

Jak rozpoznać, że ktoś skopiował kod open source na licencji GPL do swojej komercyjnej aplikacji o zamkniętym źródle, gdy nie masz dostępu do jego zamkniętego kodu?

Edycja: świetne odpowiedzi! Część 2. Co zrobić, jeśli jest to aplikacja internetowa, w której nie masz nawet dostępu do plików wykonywalnych?

Scenariusz: kopiują źródło, wprowadzają niewielkie zmiany w gui, więc front jest prawie identyczny; dodaj nową funkcję do całkowicie identycznego zaplecza; i nie wypuszczę go z powrotem na open source.

siamii
źródło
1
Tak, to coś więcej niż „fajny pomysł”. Jest to wykonalne poprzez konsekwencje prawne (w wielu jurysdykcjach). Oznacza to zatrudnienie (lub pozyskanie) prawnika i zespołu analitycznego.
pst
Po edycji jest to całkiem jasne. Prawdopodobnie nie byłby migrowany w obecnej formie. Ponieważ nie można go tak łatwo odesłać, dołożyłem wszelkich starań, aby odpowiedzieć. Zmieniłem również twój tytuł.
Tim Post
Miej oko na tego faceta ;)
MarkJ

Odpowiedzi:

6

Wygląda na to, że rzeczywiście próbujesz to dostrzec , co oznacza, że ​​musisz przekopać się do skompilowanego pliku wykonywalnego (lub powiązanych bibliotek) zastrzeżonego programu, aby to powiedzieć. Szukasz ciągów i symboli, które w oczywisty sposób pasują do darmowego oprogramowania, które podejrzewasz.

W systemie operacyjnym typu UNIX stringsnarzędzie to stanowi świetną wskazówkę. Dokładna analiza zwykle ujawnia to, czego potrzebujesz. Jeśli widzisz foolib_easy_init, cóż ... skompilowany program używa foolib.

To oczywiście zmienia się w zależności od poziomów optymalizacji kompilatora, zaciemniania wykonanego przed kompilacją i usuwania symboli prawdopodobnie nieużywanych / debugowania, ale ludzie, którzy są zbyt leniwi, by pisać własne oprogramowanie, są na ogół równie leniwi, jeśli chodzi o ukrywanie tego.

Tim Post
źródło
1
Rozumiem, co jeśli program jest aplikacją internetową, w której nie masz nawet dostępu do plików binarnych? Kopiują cały licencjonowany kod GPL, zmieniają kilka elementów GUI i wypuszczają własną aplikację internetową o zamkniętym źródle z niemal identycznym interfejsem i całkowicie identycznym backendem. Następnie dodają nową funkcję do aplikacji, nie udostępniając jej jako open source. Czy można wykryć tego rodzaju naruszenie GPL?
siamii
3
@ bizso09: To nie jest naruszenie GPL, zakładając, że mówimy o zapleczu. Zobacz moją odpowiedź po więcej szczegółów.
David Thornley
2
@ bizso09 - Naruszenie GPL byłoby tylko, gdyby aplikacja została Ci przesłana w zaciemnionym / skompilowanym formacie bez kodu źródłowego. Zwykłe oddanie go w „służbie” i umożliwienie ludziom korzystania z niego nie byłoby naruszeniem. Byłoby to jednak sprzeczne z GPL Affero , która w szczególności obejmuje oprogramowanie współpracujące z siecią. Mimo to możesz go wykryć za pomocą narzędzi firebug / dev, sprawdzając wszystkie elementy (lub nawet szukając znanych błędów, które istnieją w kodzie, który, jak podejrzewasz, został niewłaściwie wykorzystany).
Tim Post
4

BusyBox miał kilka głośnych przypadków pozywania producentów sprzętu za korzystanie z BusyBox bez udostępniania źródeł. Pozwy te zostały złożone przez prawników z Software Freedom Law Center .

Jeśli Twój projekt jest wystarczająco dojrzały, aby dołączyć do Software Freedom Conservancy, możesz również skorzystać z usług SFLC. (Nie jestem pewien, czy projekty inne niż Conservancy mogłyby korzystać z usług SFLC --- należy to sprawdzić).

Chris Jester-Young
źródło
Bardzo fajny link. Nawet nie wiedziałem, że takie rzeczy istnieją.
pst
1
Czy przeprowadzają dla Ciebie badania, czy tylko zapewniają prawników? Bo myślę, że OP szukał pierwszej
TheLQ
1
-1 Chociaż interesujące, to nie odpowiada na zadane pytanie.
HedgeMage
1
@HedgeMage - pytanie było nieco bardziej dwuznaczne przed edycją.
detly
3

GPL ma tylko ograniczone zastosowanie do aplikacji internetowych po stronie serwera. Wszystko po stronie klienta jest dystrybuowane, ale zwykle jest to Javascript, a użytkownik automatycznie pobiera źródło. Wszystko, co jest ściśle po stronie serwera, jest uruchamiane, a nie dystrybuowane, a GPL dotyczy przede wszystkim dystrybucji.

Taka była motywacja Affero GPL, która (IIRC) mówi zasadniczo, że jeśli używasz oprogramowania AGPLed w czymś takim jak aplikacja internetowa, musisz zaoferować dystrybucję źródła.

David Thornley
źródło
1
Poprawny. AGPL obejmuje w szczególności „oprogramowanie współpracujące z siecią”. Miałoby to tak samo zastosowanie do ... serwera IMAP ... jak i do aplikacji internetowej.
Tim Post
2

Jeśli zachowuje się jak i działa jak twój program, możesz zacząć od objdumppodobnych narzędzi. Ten stary wpis Slashdot pokazuje inną, bardziej formalną metodę wykrywania naruszenia GPL.

vpit3833
źródło
1

Harald Welte odniósł sukces w podejściu do marchewki i kija, aby firmy, które nieprawidłowo wykorzystały jego licencjonowany kod GPL, były zgodne z warunkami licencji. Wiele firm musiało po prostu zostać poinformowanych o konsekwencjach swoich decyzji i rozwiązywać swoje problemy poza sądem.

Sarnold
źródło
-1 W rzeczywistości nie odnosi się do zadanego pytania, a mianowicie, jak rozpoznać takie nadużycia, a nie co zrobić po ich znalezieniu.
HedgeMage
5
@HedgeMage - kwestia została edytowana niedawno, to było rzeczywiście mylące tyle, że został tu migracji, podczas gdy w rzeczywistości prawdopodobnie nie należą na SO.
Tim Post
2
@Tim: Czy możemy teraz przejść i zrewanżować się @HedgeMage? Pleeeez? :-P (Dla osób postronnych: Nie, to nie jest poważna sugestia. Zarówno Tim, jak i ja jesteśmy moderatorami innych witryn SE i nigdy nie angażowalibyśmy się w coś takiego. Na pewno!)
Chris Jester-Young
1

Jeśli zauważysz naruszenie GPL (ktoś użył kodu na podstawie Twoich praw autorskich i nie zaoferował źródła podczas dystrybucji plików binarnych), skontaktuj się z naruszającym i poproś o rozwiązanie tej sytuacji. Dokumentuj wiadomości e-mail, dane kontaktu z kim itp.

Jeśli to nie Twoje prawa autorskie, ale zauważyłeś naruszenie, skontaktuj się z oryginalnym właścicielem praw autorskich obok osoby naruszającej prawo i powiedz jej również o naruszeniu. Najlepiej przed skontaktowaniem się z sprawcą naruszenia.

Jeśli oprogramowanie jest połączoną pracą z wieloma posiadaczami praw autorskich, to samo dotyczy Ciebie, jeśli jesteś tylko jednym z właścicieli praw autorskich lub tylko grupą posiadaczy praw autorskich (i nie wszystkimi). To twoje prawa autorskie, a GPL ma zastosowanie do wszelkiego rodzaju instrumentów pochodnych - dużych i małych.

Jeśli z powodu ograniczeń technicznych nie możesz zdobyć wiedzy, jeśli prawdopodobne naruszenie jest rzeczywiście naruszeniem, musisz poszukać innych sposobów, aby dowiedzieć się więcej. Np. Zadając pytanie potencjalnie sprawcy naruszenia, uzyskując dostęp do źródeł binarnych, a nawet źródeł za pośrednictwem stron trzecich itp.

Jeśli dany kod jest objęty GPL v2 i nastąpi naruszenie warunków licencyjnych, zastosowanie ma wypowiedzenie. Naruszający na zawsze utracił wszelkie prawa do korzystania z kodu GPL. Musi ponownie skontaktować się ze wszystkimi posiadaczami praw autorskich i poprosić o przywrócenie praw, w przeciwnym razie nadal używanie kodu narusza prawa autorskie.

Jeśli dany kod jest objęty licencją GPL v3 i nastąpiło naruszenie warunków licencyjnych, wypowiedzenie również obowiązuje, ale osoba naruszająca prawo może odzyskać to, zatrzymując naruszenie samodzielnie - chyba że właściciel praw autorskich poprosi o więcej.

Edycja: To tylko ogólne informacje. Jeśli chcesz przyjrzeć się konkretnej stronie prawnej, powinieneś być właścicielem praw autorskich i powinieneś skontaktować się z zespołem prawnym z góry, aby dowiedzieć się, czego potrzebujesz do dowodu i co sugeruje się, aby rozwiązać naruszenie, nawet bez prawa, ponieważ jest to o wiele bardziej praktyczne.

hakre
źródło