Po co nam aktualizacje? © dobreprogramy | Kamil Dudek

Po co nam aktualizacje? Nie każdy wie, ale są niezbędne

Kamil J. Dudek

Komputer ciągle prosi o restart, aplikacje w telefonie co tydzień wyglądają inaczej, a po pewnym czasie wszystko pracuje wolniej. Czy naprawdę potrzebujemy nieustannych aktualizacji, które wygodniej jest zignorować? Niestety, odpowiedź brzmi "tak", choć kwestia nie jest wcale oczywista.

Głównym powodem wydawania nowych wersji produktu jest, rzecz jasna, zaopatrywanie w nowe funkcje i usprawnienia. Często dzieje się nawet wtedy, gdy program dojrzeje na tyle, że de facto nowych funkcji już nie potrzebuje. Da się jeszcze wytłumaczyć konieczność dodawania nowości na siłę, żeby przekonać do zakupu nowej wersji - ale co z aplikacjami np. smartfonowymi, które są darmowe i aktualizują się same? Dlaczego i one obrastają w funkcje, które często są mało przydatne?

To zazwyczaj efekt polityki wewnętrznej. Jak zwraca uwagę Venkat Subramaniam, specjalista w dziedzinie inżynierii oprogramowania, upraszczanie i utrzymywanie często nie zapewniają pracownikom premii. Na zadane przez szefa pytanie "nad czym pracujesz", będą woleli opowiedzieć o nowej funkcji, zamiast wspomnieć, że zajmują się utrzymaniem wnętrzności i niewidzialną optymalizacją. Subramaniam za przykład podaje stronę główną Google. Domyślnie nie zawiera ona prawie nic. I to jest jej siłą. Gdyby spróbować ją sprzedać jako pomysł na start-up w dzisiejszych czasach, mogłoby się to okazać trudne.

To żaden spisek

Drugim powodem wydawania aktualizacji jest coś, co jest zupełnie nieintuicyjne dla przeciętnego konsumenta, przez co staje się źródłem teorii spiskowych. A jest to konieczność wykorzystywania nowych bibliotek, narzędzi i interfejsów. Wyjaśnijmy to. Żadne oprogramowanie nie jest dziś tworzone od zera. Do zbudowania go wykorzystywany jest zbiór gotowców, z których aplikacja jest składana jak z puzzli. Im więcej można wykorzystać puzzli-gotowców w tym procesie, tym mniej programista musi robić sam, dzięki czemu jego praca jest łatwiejsza. W efekcie, do rozwijania programu nie trzeba zatrudniać wyłącznie najlepszych, drogich ekspertów. Wystarczy kilku "rzemieślników".

Skutkiem ubocznym tego zjawiska jest nie tylko ciągły strumień aktualizacji, ale także stopniowa utrata obsługi starszych systemów i urządzeń. To właśnie to skłania wiele osób do snucia hipotez, że dzieje się to ponieważ twórcy zostali "przekupieni". Choć nie ma to żadnego sensu: nikomu nigdy nie zależy na tym, żeby mieć mniej klientów. Po prostu napisanie aplikacji na Androida 4 i Windows 7 jest trudniejsze i, w efekcie, droższe niż napisanie aplikacji na najnowszego Androida i Windows 11.

Bezpieczeństwo?

No dobrze, zaczęliśmy od tego, że aktualizacje są potrzebne użytkownikom, a póki co przytoczyliśmy tylko argumenty sensowne z perspektywy twórców aplikacji, a nie ich klientów. Jakie są powody, dla których klient powinien instalować aktualizacje? Przecież koszt tworzenia oprogramowania i wewnętrzna polityka firmy to nie są sprawy, które powinny mieć dla niego znaczenie… Tymczasem, owym istotnym powodem jest bezpieczeństwo. I jest to naprawdę rozbudowany argument. Bardzo często, niektóre jego istotne kwestie są zupełnie pomijane. Dlatego przyjrzyjmy im się dokładnie.

Aktualizacje bezpieczeństwa mogą dotyczyć błędów popełnionych przez twórców aplikacji. Ale mogą także dotyczyć błędów we wspomnianych "puzzlach". Im więcej puzzli, tym więcej potencjalnych błędów. Czy wszystkie takie błędy przekładają się na rzeczywiste zagrożenie dla klienta? Raczej nie. Ale o wiele taniej jest po prostu zbudować nową wersję niż indywidualnie analizować każdy problem (a ich mogą być setki). Jeżeli aplikacja łączy się z zewnętrzną usługą, ona też może wymagać łączności za pomocą nowszych wersji składników - z tego samego powodu. W rezultacie, w aplikacji nic się nie zmienia, ale co chwilę wychodzą jej nowe wersje, za każdym razem odrobinkę cięższe.

Tanio, szybko, dobrze

I tu docieramy do sedna problemu. Stworzenie oprogramowania, które nie polega na tylu zewnętrznych składnikach, byłoby strasznie drogie. A z kolei wydawanie dwóch wersji - jednej tylko z poprawkami, a drugiej z poprawkami i nowościami - zwiększyłoby liczbę wymaganych testów i utrudniło obsługę techniczną. De facto ponownie podnosząc koszty. Dlatego tak mało aplikacji i systemów oferuje dwie wersje według takiego schematu. Windows, wbrew pozorom, także jest testowany przed wydaniem. I jego wersja zawierająca "tylko poprawki", bez nowych funkcji, musi na to testowanie oddzielnie zarabiać. W rezultacie jest dodatkowo płatnym, drogim wydaniem.

Najwyraźniej zatem, aby otrzymać poprawki bezpieczeństwa, musimy też przy okazji zgodzić się na zmiany i nowe funkcje. A co się stanie, gdy zignorujemy aktualizacje zabezpieczeń? Z jakim rzeczywistym zagrożeniem się mierzymy? Na pewno nie jest nim Pan Haker, który upatrzy sobie akurat nas, żeby nas okraść z nieposiadanych milionów złotych. Problem z brakiem poprawek jest inny. Przede wszystkim nikt nie celuje konkretnie w jedną osobę. Mamy do czynienia z atakami na 10 tysięcy osób naraz. I nie dotyczą one wyłącznie bogaczy lub celebrytów. Każde przejęte urządzenie, zupełnie niewinnej osoby, da się wykorzystać do złośliwych celów. Owszem, często może to być wykonanie "lewego" przelewu na 10 złotych. To mało - ale gdy atakuje się po 10 tysięcy osób naraz, robią się z tego solidne pieniądze.

Każdy ma "coś do ukrycia"

Ale grozi nam znacznie więcej. Główny problem z dziurami w zabezpieczeniach polega na tym, że dziurawą aplikację da się skłonić do tego, by w niezauważalny sposób wykonała operację, o której nie będziemy wiedzieli. To, jaka to operacja nie zależy od aplikacji. Od aplikacji zależy wyłącznie to, jakimi danymi wstępnymi będzie mógł operować włamywacz. Jeżeli to komunikator, będzie możliwe podszywanie się pod nas i oszukiwanie znajomych pod nazwiskiem. Dziury w przeglądarkach mogą umożliwić kradzież haseł i przejęcie innych posiadanych kont.

Efekty mogą być różne, bo różne konta mają różną wartość. Przejęcie maila pozwoli na rozsyłanie spamu. Możemy mieć do czynienia z efektem domino: jedna dziurawa aplikacja pozwoli na kradzież danych dostępowych do konta, które zostanie zablokowane i z którego stracimy dane (lub zakupy! Na przykład gry), a w międzyczasie okaże się, że korzystając z tegoż konta, ktoś w naszym imieniu naciągnął naszych znajomych.

Najważniejszymi błędnymi poglądami na temat bezpieczeństwa są kwestie "mnie to nie dotyczy" i "nie mam nic do ukrycia". Cyberbezpieczeństwo dotyczy nas wszystkich, a co do rzeczy do ukrycia: prędko okazuje się, jak wielka to nieprawda, gdy przejęte zostaje byle puste, rzadko używane, imienne konto na Facebooku. Nagle okazuje się, że nasze imię ma niepomijalną wartość, wyrażaną chociażby zaufaniem znajomych. Wystawianym na próbę, gdy przestępca pisze do nich nie jako Pan Złodziej, a pod cudzym imieniem i nazwiskiem.

Bezpieczeństwo to nie tylko aktualizacje

Większość dzisiejszych incydentów bezpieczeństwa bierze się z ataków socjotechnicznych, to fakt. Ale jest tak właśnie dlatego, że aktualizacje stały się obowiązkowe. Wcześniej, wirusy i robaki wykorzystujące znane dziury, pałętały się po internecie przez lata, osiągając sukcesy długo po oficjalnym załataniu. Dlatego nie możemy zrezygnować z aktualizacji. Dodatkowe funkcje i wzrost objętości to cena, którą płacimy za bezpieczeństwo. Alternatywę, niestety, już kiedyś przerabialiśmy.

Stąd też tak istotną sprawą jest stosowanie oprogramowania w obsługiwanych wersjach. Często, choć nie zawsze, oznacza to wersje najnowsze. Niestety, problem dotyczy także samego sprzętu. Wiele wewnętrznych układów elektronicznych wymaga własnego, "miniaturowego" oprogramowania, działającego jeszcze zanim uruchomi się jakikolwiek system. Chodzi tu nie tylko o komputery, ale też o telefony. Taki jest koszt postępu.

Wybrane dla Ciebie