Darmowe nie oznacza dobre - przykładem programy open-source
A closed source to nie dotyczy? xD
To chyba logiczne że jak instalujesz starą wersję prpgramu to akceptujesz ryzyko źe ktoś znalazł w nim lukę.
No tak, w closed-source mamy same 0-days bo nikt nie ma dostępu do kodu :D
Teza twórców mocno absurdalna - przeanalizowano otwarto-źródłowe aplikacje bo innych pewnie nie mogli. Albo ktoś źle łączy kropki?
Niestety nie widzę, żeby była możliwość poczytania sobie tego raportu. Te tezy są absurdalne. W dodatku cały tekst jest ubogi w szczegóły.
"oprogramowanie open source wiąże się z ryzykiem"
Dlatego właśnie w społeczności specjalistów od bezpieczeństwa praktycznie od zawsze istnieje konsensus, że najbezpieczniejsze są rozwiązania otwarte. Pozwólcie, że oddam głos ekspertowi:
"Jako specjalista od kryptografii i cyberbezpieczeństwa, nigdy nie rozumiałem, dlaczego ruch oprogramowania otwartoźródłowego jest taką sensacją. W świecie kryptografii od dziesięcioleci uważamy otwarte źródło za konieczne do osiągnięcia wysokiego bezpieczeństwa. Publicznie dostępne bezpieczeństwo jest zawsze lepsze, niż bezpieczeństwo własnościowe. To sprawdza się w algorytmach kryptograficznych, protokołach bezpieczeństwa i związanym z bezpieczeństwem kodem źródłowym. Dla nas otwarte źródło nie jest po prostu modelem biznesowym, tylko mądrą praktyką inżynieryjną." Bruce Schneier, 1999
https://www.schneier.com/crypto-gram/archives/1999/0915.html#OpenSourceandSecurity
I nic się w tej kwestii od tego czasu nie zmieniło.
"większość z nich [programistów] nie jest ekspertami ds. bezpieczeństwa i nie potrafiłoby wykryć ewentualnego zagrożenia."
No patrzcie, to dokładnie tak jak większość programistów pracujących przy programach o zamkniętym kodzie. Po to właśnie Bóg wymyślił audyty bezpieczeństwa i stworzył "bezpieczników" i programy "bug bounty", żeby sprawdzali, co programiści zepsuli. Popularne i związane z bezpieczeństwem otwartoźródłowe programy przechodzą takich audytów (oficjalnych i nieoficjalnych) więcej, niż własnościowe.
"Dotyczy to również popularnego serwera HTTP, który obsługuje obecnie znaczną część wszystkich witryn internetowych. Wykorzystano w nim około 320 projektów open source, które zawierają sporo luk"
Projekty open source często korzystają z innych projektów open source (a których mogą kryć się luki). Tak samo robią projekty własnościowe (chociaż nie mogą użyć każdego kodu OS, bo licencja nie zawsze pozwala). To normalne i ma sens, bo po co wyważać otwarte drzwi i pisać własną implementację np. pakowania i wypakowania zipów, jeśli można użyć istniejącej biblioteki? Oczywiście rozsądek nakazuje wybrać aktywnie rozwijaną, w której ewentualne błędy są łatane i ją sobie odpowiednio aktualizować.
"sprawdziła dziesiątki tysięcy projektów open source, odkrywając w nich masę luk bezpieczeństwa. Z badania wynika, że aż 82 procent programów open source, z których korzysta wielu z nas, ze względu na brak poprawek stwarza ryzyko dla użytkownika."
Jakich projektów? Oprócz Apahe, nic w tym tekście nie jest wymienione z nazwy. Co to konkretnie były za projekty i czego dotyczyły? Ile z nich było popularnych i rzeczywiście powodujących ryzyko? Jakie konkretnie były klasy podatności i jak poważne? Bo jak sobie napiszę otwartoźródlowy program graficzny, w którym zrobię podatność polegającą na tym, że odpowiednio spreparowany plik jpg mi zawiesi program, to żadna luka bezpieczeństwa, bo możliwe szkody są niewielkie (irytacja użytkownika) i (co ważniejsze) nikomu się w ogóle nie będzie chciało wyszukiwać i wykorzystywać podatności w moim programiku, który jest tak popularny, że używam go tylko ja i jeszcze 2 osoby z mojej najbliższej rodziny, bo nie chciały mi robić przykrości i powiedzieć, że program o kant tyłka rozbić.
Co ważniejsze programy otwartoźródlowe są dość dokładnie sprawdzane, zwłaszcza jeśli są związane z bezpieczeństwem (np. ProtonMail/VPN, Signal, KeePass, VeraCrypt) albo po prostu popularne (Notepad++, VLC).
Dodam, ze wiele aplikacji zamkniętoźródłowych korzysta z otwartych bibliotek, jak Qt.
No, Bo zamknięte oprogramowanie to też od samego początku wychodzi w idealnym stanie i nie można tam znaleźć żadnej luki. Zwłaszcza, jeżeli jest tworzone przez ogromne firmy zarabiającymi miliony. Oh wait:
https://www.cvedetails.com/vulnerability-list/vendor_id-26/Microsoft.html
https://www.cvedetails.com/vulnerability-list/vendor_id-49/Apple.html
https://www.cvedetails.com/vulnerability-list/vendor_id-53/Adobe.html
https://www.cvedetails.com/vulnerability-list/vendor_id-252/Vmware.html
A tu wisienki na torcie. Firmy zajmujące się zabezpieczaniem nas przed wirusami, robakami i innymi niechcianymi agentami:
https://www.cvedetails.com/vulnerability-list/vendor_id-76/Symantec.html
https://www.cvedetails.com/vulnerability-list/vendor_id-3080/Fortinet.html
https://www.cvedetails.com/vulnerability-list/vendor_id-874/Juniper.html
https://www.cvedetails.com/vulnerability-list/vendor_id-345/Mcafee.html
Dokładnie. Swego czasu MS płacił za milczenie hakerom, co znaleźli błędy bezpieczeństwa w jego programach. Pewnej grupie zapłacił za pięć lat milczenia. Po pięciu latach opublikowali raport, który pokazywał lukę, sposób użycia, a także stwierdzenie, że nadal istnieje. Do tego czasu, odkrywcy mogli sprzedawać informację o luce na czarnym rynku.
Ta, ciekawe kto sponsorował te "badania" z góry założoną tezą?
Ile "bocznych" wejść w zamkniętych programach ukryli ich twórcy? Tylko oni wiedzą.
Na prawdę? Dużo małych programów open source nie ma żadnych poważnych luk, sam produkuje takie oprogramowanie a kod w nim jest bezpieczny. I gdzie się podziały te raporty?
Jakoś Linux i Mozilla pokazują, że większość błędów jest łatana w parę dni. Nie raz czytałem art o nowej, super podatności, na którą dzień wcześniej zainstalowałem poprawkę. Także dziękuję za uświadomienie. Każdy program zawiera błędy. Błąd można odkryć, nie analizując jego źródeł. Za to dostępność źródeł ułatwia jego naprawę. Trudno naprawić błąd, gdy producent programu nam tego zabrania.
"Jakoś Linux i Mozilla pokazują, że większość błędów jest łatana w parę dni."
Parę lat temu ktoś zrobił ciekawą analizę i wynikało, że wśród przeglądarek Mozilli najdłużej zabierało łatanie luk (najwięcej dni od zgłoszenia do łatki). Nie wiem jak jest obecnie, może się zmieniło na lepsze.
"Nie raz czytałem art o nowej, super podatności, na którą dzień wcześniej zainstalowałem poprawkę."
A to dlatego, że w branży standardem jest tzw. "responsible disclosure", czyli publiczne ujawnianie podatności dopiero, gdy twórcy mają już dostępną łatkę, nie dlatego, że wszystko jest tak błyskawicznie łatane. W praktyce przyjęło się czekać półtora miesiąca, aż twórcy zareagują, a jeśli mają temat gdzieś, wtedy następuje "full disclosure", czyli pełne ujawnienie, niezależnie od tego czy błąd jest załatany, czy nie (termin zazwyczaj jest wydłużany, jeśli twórcy problemem się zajęli, ale potrzebują więcej czasu). To często skuteczna metoda na takich, którzy z różnych powodów podatności naprawić nie chcą.
I ogólnie rzeczywiście w projektach open source odnajduje się więcej błędów, co oczywiście nie oznacza, że są z założenia gorsze, ale po prostu łatwiej odnaleźć błędy, gdy masz dostęp do kodu.
ale po prostu łatwiej odnaleźć błędy, gdy masz dostęp do kodu.
Ja bym powiedział, że łatwiej jest znaleźć błędy w cudzym kodzie :)
W wypadku programów Open Source może być też więcej chętnych do sprawdzania.
Ja w ogóle miałem na myśli sprawdzanie zewnętrzne i to, że jak masz kod to łatwiej przejrzeć kod, niż dekompilować program, albo masz program jako "czarną skrzynkę" i robisz fuzzing, wprowadzając losowe dane, a potem na podstawie efektów próbujesz się domyślać jak program działa i z czego wynikają ewentualne błędy.
Ale z tym, że łatwiej wytropić błędy w cudzym, to masz rację. I to nie tylko w kodzie, ale nawet w zwykłym tekście własnych błędów człowiek nie widzi.
A mnie denerwuje, jak ktoś mówi, że w OpenSource panują inne (niższe) standardy pisania kodu. Sam piszę kod, a w korporacjach także robi się code-review, bo sam swoich błędów nie zobaczysz. W dodatku, to twierdzenie, że dokumentacja jest zbędna, jak kod jest dobrze napisany. Przecież w korporacjach także są standardy czytelności, czy nawet korzystają z narzędzi generującej dokumentację z kodu lub/i odwrotnie.
Ostatnio czytałem raport Linux Fundation (której członkiem jest również Microsoft), że statystycznie zamknięty projekt korzysta z około 200 otwartych projektów.
Więc jak się by twórcy tego raportu do tego odnieśli? Skoro zamknięty projekt korzysta z otwartego, to raczej dziedziczy wszystkie błędy.
W raporcie LF były też inne, ważne tezy, ale nie chcę mi się go ponownie czytać.