Dlaczego Open Source jest ważny?

Co to jest open source?

Oprogramowanie typu open source to oprogramowanie, którego kod źródłowy został udostępniony publicznie przez jego właściciela praw autorskich. Na podstawie prawdziwej licencji typu open source oprogramowanie jest opracowywane wspólnie, a inni programiści mogą przeglądać, modyfikować lub wykorzystywać kod do własnych celów. Ten „czysty” model open source jest często określany jako FOSS (darmowe i otwarte oprogramowanie).

Wariantem typu open source jest „dostępne źródło”, co oznacza, że ​​nie udziela się zgody na modyfikację lub użycie kodu w inny sposób, ale jest on dostępny do wglądu. Ze względów bezpieczeństwa jest to tak samo dobre, jak prawdziwe oprogramowanie typu open source, więc kiedy odnoszę się do „open source” w tym artykule, dołączam kod, który jest „dostępny jako źródło”.

Co to jest zamknięte źródło?

Większość oprogramowania jest pisana i rozwijana przez firmy komercyjne. Zrozumiałe jest, że firmy te nie chcą, aby inni ukradli ich ciężką pracę lub tajemnice handlowe, więc ukrywają swój kod przed wścibskimi oczami za pomocą szyfrowania, a każda próba użycia lub modyfikacji kodu bez pozwolenia spowoduje proces sądowy lub gorzej.

Więc jaki jest problem?

Jak mówię, wszystko to jest całkiem zrozumiałe, ale jeśli chodzi o bezpieczeństwo, stanowi poważny problem. Jeśli nikt nie widzi szczegółów działania programu, skąd możemy wiedzieć, że nie robi on czegoś złośliwego? Zasadniczo nie możemy, więc musimy po prostu zaufać zaangażowanej firmie, co jest czymś, czego my, paranoiczni zabezpieczenia, nie lubimy (nie bez powodu).

Dlaczego open source jest najlepszym rozwiązaniem?

Jeśli kod jest open source, może być niezależnie sprawdzony i skontrolowany przez każdego, kto jest do tego uprawniony, w celu sprawdzenia, czy nie ma żadnych backdoorów, luk w zabezpieczeniach ani innych problemów bezpieczeństwa. Otwarte źródło nie jest idealnym rozwiązaniem (patrz poniżej), ale jest to jedyny sposób, aby sprawdzić, czy oprogramowanie robi dokładnie to, co powinno..

Nawet jeśli kod nie został poddany audytowi, sam fakt, że jest on swobodnie dostępny do kontroli, stanowi wyraźną wskazówkę, że można mu ufać, ponieważ jest mało prawdopodobne, aby programiści umieścili złośliwy kod, a następnie pozostawili go do odkrycia każdemu, kto dba o wygląd.

Nie idealne rozwiązanie…

Niestety istnieje ograniczona liczba osób posiadających zarówno umiejętności, jak i czas na przeprowadzenie audytu oprogramowania typu open source (zazwyczaj za darmo), co oznacza, że ​​zdecydowana większość programów typu open source nie została poddana audytowi.

Problem ten komplikuje fakt, że wiele programów typu open source jest niezwykle złożonych, zawierających tysiące wierszy kodu, więc nawet jeśli zostały one poddane audytowi, jest całkiem możliwe, że audytorzy przeoczyli problem (szczególnie jeśli złośliwy kod został celowo ukryty).

Ale…

Dlatego otwarte oprogramowanie nie gwarantuje, że program jest „czysty”, ale jest to jednak najlepsza gwarancja, jaką mamy (lub możemy mieć), że tak jest. Alternatywą jest zamknięte źródło, które nie daje żadnych gwarancji.

Zawsze weryfikuj programy open source

Więc open source jest świetny dla bezpieczeństwa. Tak! Ale skąd możesz mieć pewność, że właśnie pobrany program open source nie został w żaden sposób zmieniony?

Może to zabrzmieć jak paranoiczne myślenie o spiskach z fantazją, ale w lutym 2016 r. Włamano się do witryny jednej z najpopularniejszych wersji systemu operacyjnego Linux typu open source, Linux Mint, a osobom pobierającym udostępniono skompromitowaną wersję systemu operacyjnego.,

„Hakerzy stworzyli zmodyfikowaną wersję Linux Mint ISO z backdoorem i udało się zhakować naszą stronę internetową, aby na nią wskazać”.

Zainfekowane obrazy ISO systemu Linux zainstalowały kompletny system operacyjny z tylnym wejściem Tsunami Internet Relay Chat (IRC), który dał atakującym dostęp do systemu użytkowników za pośrednictwem serwerów IRC. Więc zagrożenie jest bardzo realne.

W tym przypadku osoby pobierające, które zadały sobie trud sprawdzenia sumy kontrolnej skrótu MD5 pliku (zobacz tutaj, jak to zrobić), zauważyłyby oszustwo, ale takie kontrole skrótu nie są niezawodną ochroną, ponieważ jeśli strona internetowa może zostać zhakowana w pierwszej kolejności, trywialne jest zastąpienie opublikowanej sumy kontrolnej fałszywą, która weryfikuje zawarty plik.

Znacznie lepiej jest, gdy programiści podpisują cyfrowo swoje oprogramowanie, aby użytkownicy mogli zweryfikować pochodzenie pliku (programiści Mint byli pod tym względem bardzo pobłażliwi, ponieważ ich oprogramowanie nie było podpisane cyfrowo, a nawet używana funkcja skrótu MD5 jest znana być zepsutym!)

Zapoznaj się z moim artykułem na temat podpisów cyfrowych - dlaczego i jak należy z nich korzystać, aby uzyskać więcej informacji. Niestety weryfikacja podpisów cyfrowych jest uciążliwa, ale konieczna, jeśli zależy Ci na bezpieczeństwie.

Powinienem również zauważyć, że idealnie całe oprogramowanie powinno być podpisane cyfrowo i zweryfikowane, ale ponieważ każdy może swobodnie modyfikować otwarty kod źródłowy, łatwiej jest manipulować nim niż zamknięty kod źródłowy. Dlatego szczególnie ważna jest weryfikacja programów typu open source.

Open Source: Podsumowanie

Oprogramowanie typu open source nie jest idealnym rozwiązaniem, ale zapewnia najlepszą (i tylko!) Gwarancję, że oprogramowaniu można zaufać. Alternatywą jest zamknięte źródło, które nie daje żadnej gwarancji (poza ślepą wiarą w firmę, która nie jest godna zaufania dla firm technologicznych).

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me