Poniedzielnik: wieści ze świata OpenSource. Numer 113. 7


Wieści ze świata OpenSource:  4 – 9 grudnia 2013 r.

Matthew Garrett zaprezentował ciekawą metodę ataku na SecureBoot z użyciem Linuksa. Aby obejść zabezpieczenia SecureBoot potrzebna jest jedynie dystrybucja z włączonym kexec. Tę funkcję linuksowego kernela wymyślono wiele lat temu, aby móc przeprowadzić aktualizację jądra systemu bez konieczności ponownego uruchamiania maszyny. Dla serwerów wymagających 100% uptime to świetna sprawa. Dla bezpieczeństwa, jak się okazuje – nie. I nie chodzi tu o możliwość skompromitowania aktualnie uruchomionego Linuksa. Kexec wymaga uprawnień administratora i skoro się je już ma, to system został dawno skompromitowany. Opisana metoda ma znacznie ciekawsze zastosowanie, gdyż umożliwia uruchomienie za pomocą Linuksa dowolnego innego systemu na danym komputerze, nawet jeżeli ustawienia UEFI na to nie zezwalają. Co więcej, uruchomiony system będzie przekonany, że działa w trybie SecureBoot. Tak, w ten sposób można uruchomić i skompromitować dowolny system operacyjny, wliczając Windowsa.

Kto odpowiada za nielegalny kod w otwartych aplikacjach?

Czy można uznać kod programu za nielegalny z punktu widzenia prawa? Można. W Polsce posiadanie lub wyrób wytrychów przez osoby nietrudniące się odpowiednim zawodem jest wykroczeniem i to niezależnie od intencji. W ten sam sposób różne systemy prawne próbują obciążyć odium nielegalności pewną grupę programów. W czerwcu tego roku firma Appwork, rozwijająca JDownloadera, stanęła przed niemieckim sądem za rozpowszechnianie nielegalnego oprogramowania, służącego do rozkodowywania zaszyfrowanych strumieni audio/video.

Przez krótki czas plugin do rozkodowywania strumieni RTMPE był obecny w nocnych kompilacjach programu i został usunięty w momencie, kiedy deweloperzy zostali o nim poinformowani. Mimo to w czerwcu tego roku sprawa trafiła na wokandę hamburskiego sądu, który uznał, iż rzeczony kod naruszył niemieckie prawo autorskie poprzez umożliwienie obchodzenia „efektywnych środków technicznych”, służących do zabezpieczenia materiałów wideo przed kopiowaniem. Sąd wstrzymał dystrybucję JDownloadera na terenie Niemiec oraz zagroził karą w wysokości 250 tysięcy euro za „produkcję, dystrybucję i posiadanie” nielegalnego oprogramowania.

Wyrok ten odnosi się do dwóch spraw, z którymi nie radzi sobie żaden system prawny na świecie. Po pierwsze – czy oprogramowanie może być nielegalne? Wszyscy chcemy ścigania spamerów, czy twórców malware, ale gdzie postawić granicę pomiędzy oprogramowaniem żądającym haraczu za odszyfrowanie dysku twardego, a oprogramowaniem wykorzystującym biblioteki kryptograficzne do zaszyfrowania dysku?

Drugim, bardziej poważnym problemem wynikającym z tego wyroku, jest odpowiedzialność twórców otwartego oprogramowanie za wkład osób trzecich. Programista, który napisał nielegalny kod, nie był w żaden sposób związany z firmą Appwork. Kod ten trafił do nocnych kompilacji JDownloadera tylko dlatego, że co 5 minut wykonywany jest automatyczny proces budowania programu z uwzględnieniem wszystkich nadesłanych poprawek. W apelacji wniesionej przez Appwork, firma zadała sądowi pytanie o to, gdzie zaczyna się odpowiedzialność deweloperów za kod.

Odpowiedź sądu jest bardzo niepokojąca. Appwork, poprzez umieszczenie swojego logo oraz znaczka copyright w oknie „O programie”, wziął na siebie odpowiedzialność za całość programu. W praktyce oznacza to, że każda firma, chcąca skorzystać z kodu (lub jego kompilacji), musi sprawdzić linijka po linijce czy przypadkiem nie łamie on prawa któregoś z setki systemów prawnych na świecie. W praktyce jest to nie do wykonania.

Prawo nie radzi sobie z technologiami informatycznymi XXI wieku i poprzez analogie, takie jak wytrychy, próbuje nadrobić zaległości. Analogie to fajna sprawa, gdyż pozwalają laikom zrozumieć istotę skomplikowanego problemu. Ale czy prawo może polegać na analogiach? To prowadzi tylko i wyłącznie do przeniesienia części funduszy z działu „badania i rozwój” do działu „obsługa prawna” i hamuje postęp. Można się zgodzić, że ten, czy inny kod jest nielegalny, ale czy nakładanie na deweloperów odpowiedzialności za wykorzystanie kodu osób trzecich to nie jest przesada? Tym bardziej, że Appwork usunęło nielegalną wtyczkę po tym, jak zostało poinformowane o sprawie.

Źródła
TorrentFreak (1, 2)

W skrócie

Mozilla wydała wersję 26 przeglądarki Firefox. Nowości są raczej kosmetyczne, ale i tak warte uwagi. Wszystkie pluginy (poza Flashem) wymagają obecnie do aktywacji kliknięcia (click-to-play). Na przykład aplety Javy nie będą się automatycznie ładowały, ale będą wymagały potwierdzenia przez użytkownika. Menadżer haseł obsługuje teraz wygenerowane przez skrypty pola do wpisania hasła. Użytkownicy Linuksa zyskali wsparcie dekodowania materiałów w formacie H.264, o ile odpowiednia wtyczka GStreamera jest obecna w systemie (w większości dystrybucji desktopowych jest; w Ubuntu odpowiednie pakiety instalują się razem z paczką ubuntu-restricted-extras). Nowa metoda aktualizacji pozwoli użytkownikom Windowsa dokonać upgrade’u przeglądarki bez konieczności posiadania praw do zapisu w folderze, gdzie jest zainstalowany program. W wariancie windowsowym dodano także obsługę formatu mp3. We wszystkich wersjach przeglądarki naprawiono szereg błędów, w tym uciążliwe ignorowanie metadanych EXIF, dotyczących orientacji zdjęć jpeg, oraz poprawiono szybkość rysowania stron dzięki ignorowaniu niewidocznych grafik.

Pojawiła się dziewiąta wersja popularnego narzędzia TeamViewer.

NVIDIA zaktualizowała sterownik do kart graficznych starszych, niż seria 8xxx. Sterownik oznaczony numerem 173.1439 umożliwia uruchomienie na tych GPU najnowszych wersji Linuksa oraz X.orga. Ponadto, zgodnie z obietnicą złożoną we wrześniu, inżynierowie NVIDII wspomagają rozwój otwartego sterownika Nouveau. W miniony weekend udostępnili wiele informacji dotyczących dekodowania wideo w formacie H.264, co powinno zaowocować możliwością sprzętowej akceleracji wyświetlania filmów, gdy używany jest otwarty sterownik.

Valve dołączyło do Fundacji Linuksa. Piixl zaprezentował SteamBoksa montowanego do tylnej ściany telewizora, negując cały designerski szał związany z wyglądem „next-genowych” konsoli do gier.

Ustawa przeciwko trollom patentowym przeszła w amerykańskim senacie. Troll, składając pozew, będzie musiał dokładnie wykazać jak i które elementy produktu pozwanej firmy naruszają jego patenty. Ponadto musi się liczyć z tym, że w razie przegranej może zostać zmuszony przez sąd do pokrycia kosztów poniesionych przez pozwaną firmę. Producent może też wkroczyć na ścieżkę prawną, jeżeli troll patentowy zacznie wykorzystywać swoje patenty przeciwko użytkownikom danego oprogramowania. W ten sposób giganci mogą bronić społeczności użytkowników swoich produktów. W ostatecznym kształcie w ustawie nie znalazły się zapisy o dodatkowej kontroli składanych wniosków patentowych, co miało uniemożliwić przyznawanie patentów niskiej jakości. Zapisy te wykreślono z ustawy na wniosek firm, które najbardziej na niej zyskują, a mianowicie Microsoftu, IBM i Apple. Cóż, Amerykanie przyzwyczaili nas do tego, że są strasznymi hipokrytami.
(Źródło: Dziennik Internautów)

Korekta: Ionash


Skomentuj Dwimenor Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

7 komentarzy do “Poniedzielnik: wieści ze świata OpenSource. Numer 113.

  • sbv

    [quote post=”20571″]Tę funkcję linuksowego kernela wymyślono wiele lat temu, aby móc przeprowadzić aktualizację jądra systemu bez konieczności ponownego uruchamiania maszyny[/quote]
    Na pewno? Przecież kexec wymaga pełnego restartu OS – wszystkie procesy zostają zakończone przed przekazaniem kontroli do nowo załadowanego jądra. Kexec omija natomiast bootloader oraz fazy inicjalizacji sprzętu przez BIOS (lub UEFI, firmware kontrolerów itd.), co oczywiście bardzo przyspiesza restart ale go nie wyklucza i absolutnie nie gwarantuje 100% uptime.

  • ionash.

    Gdzie zaczyna się odpowiedzialność programisty za kod? Tam, gdzie kończy się jego prywatna szuflada. Skoro programista coś upublicznia, to jest za to odpowiedzialny. I, owszem, tak samo jest z wykorzystaniem czyjegoś kodu. Skoro projektując dom, posługuję się elementami prefabrykowanymi – że posłużę się analogią, z ukłonami dla Dwimenora 🙂 – to muszę wiedzieć dokładnie, jakie obciążenia dany element jest w stanie przenieść i odpowiadam za to, że ten konkretny element będzie dobrze funkcjonował w całym ustroju konstrukcyjnym. Nie wolno mi, choćby tylko ze zwykłej uczciwości, powiedzieć „tu wstawić jakąś belkę prefabrykowaną, nieistotne jaką, ja jej nie projektuję, więc nie odpowiadam za jej wytrzymałość, a jakby co, to umywam ręce”. Tak samo programista, wykorzystując jakiś gotowy kod, musi wiedzieć, co ów gotowiec robi i jak będzie współdziałać z tym, co sam napisał.
    To, że „Programista, który napisał nielegalny kod, nie był w żaden sposób związany z firmą Appwork. Kod ten trafił do nocnych kompilacji JDownloadera tylko dlatego, że co 5 minut wykonywany jest automatyczny proces budowania programu z uwzględnieniem wszystkich nadesłanych poprawek.” jest czymś horrendalnym, bo – przynajmniej w tym brzmieniu – oznacza to, że każdy, ot tak sobie, bez żadnej kontroli, mógł do kodu JDownloadera wprowadzić dowolną rzecz. Doprawdy, to nie jest normalne. I dlatego wcale mnie nie dziwi wyrok sądu. Co więcej, uważam, że był jak najbardziej na miejscu (pomijając kwestię nielegalności obchodzenia „efektywnych środków technicznych”, bo to jest co najmniej dyskusyjne).

  • Dwimenor Autor wpisu

    Ale tak się przecież buduje domy. Elementy mają certyfikat/gwarancję producenta. Ekipa im ufa bo w większości wypadków nie ma możliwości sprawdzenia jakości materiałów budowlanych. Kto odpowiada jeżeli dom się zawali, jeżeli ekipa budowała zgodnie z projektem a producent przyoszczędził na materiałach? Sprawdzanie bloczka porotermu, krokwy czy każdego worka cementu jest mniej więcej tak samo wykonalne jak sprawdzenie każdej linijki kodu.
    Projektant też nie sprawdza co ekipa użyje. W projekcie jest „sosnowa krokwa 40x40x8m”. A co jak tartak wciśnie niewysezonowane drewno?

    Ktoś zaproponował określoną funkcjonalność. Nie spełniała ona wymagań (właśnie przez to, że pozwalała rozkodowywać strumienie A/V) i została usunięta. Przecież każdy może zgłosić kod do projektu opensource. Pozostaje jeszcze kwestia kary adekwatnej do czynu. 250 tysięcy euro kary bo kawałek kodu leżał w deweloperskiej wersji programu przez 5 minut? Co innego gdyby ten kod trafił do finalnej wersji produktu.

  • alfwe

    To dalej idąc tym tropem można powiedzieć, że wszystkie kompilatory itp są zue bo pozwalają tworzyć z bełkotu ludzkiego zrozumiały kod binarny, który czasem przypadkiem umie złamać jakieś zabezpieczenie ;p

  • Dwimenor Autor wpisu

    Kompilatory to dopiero początek! Przecież system operacyjny pozwala na uruchomienie nielegalnego oprogramowania! Biblioteka standardowa upraszcza jego pisanie! Nie wspominając już o językach programowania!
    Tak, przekraczam to barierę zdrowego rozsądku. Ale jestem tylko 1 krok przed koncernami medialnymi.

    Nie wspominając już o tym, że na nowo wybucha batalia sądowa Oracle przeciwko Google w sprawie implementacji Javy na Androidzie.

  • PL_kolek

    [quote]I nie chodzi tu o możliwość skompromitowania aktualnie uruchomionego Linuksa. Kexec wymaga uprawnień administratora i skoro się je już ma, to system został dawno skompromitowany. [/quote]

    Przyczepię się. „compromised” nie przekłada się w tym kontekście na „skompromitowany” ;).

    Co do sprawy z nielegalnym kodem – trochę dziwi mnie fakt, że „przecież każdy może zgłosić kod do projektu open-source”. Każdy może zgłosić, ale to nie znaczy, że każde zgłoszenie jest automatycznie akceptowane – raczej jest ktoś, kto tym zarządza, akcepuje pull requesty. I albo ktoś wpuścił kod nie wiedząc co robi, albo zgłoszenie przyszło od „zaufanego” programisty – a to już nie jest każdy. Co oczywiście nie zmienia, że wyrok jest śmieszny.