Aktualności

2016.10
Dirty COW

Pod koniec października 2016 roku światło dzienne ujrzała groźna luka bezpieczeństwa w systemach operacyjnych Linux. Podatność umożliwia podniesienie uprawnień zwykłego użytkownika do poziomu administratora, a co za tym idzie - pozwala na uzyskanie nieograniczonego dostępu do systemu.

Mowa o CVE-2016-5195, czyli Dirty COW. Potoczna nazwa wzięła się ze skrótu niefortunnie zaimplementowanego mechanizmu Copy On Write. Co ciekawe, mechanizm ten pojawił się w Linuxie już w 2007 roku wraz z wydaniem kernela w wersji 2.6.22, więc należy przyjąć, że luka istniała w ukryciu od tamtej pory aż do dzisiaj, choć w przeszłości podjęto próbę naprawy niezbyt udanej implementacji mechanizmu Copy On Write. Problem polegał na sposobie obsługi przez podsystem pamięci obszarów pamięci, do których zwykły użytkownik w normalnych warunkach nie miałby prawa zapisu. Po stworzeniu określonych, specjalnych warunków, podsystem umożliwiał jednak zapis do teoretycznie zabezpieczonego obszaru pamięci. W efekcie zwykły użytkownik z ograniczonymi uprawnieniami uzyskiwał nieograniczony dostęp do systemu na prawach administratora. Operacja ta w żadnym miejscu nie zostawiała po sobie śladów, więc tym trudniej było wykryć anomalie. Marnym pocieszeniem jest fakt, że w przypadku tego błędu mogło dojść jedynie do eskalacji uprawnień, ponieważ najpierw należało mieć dostęp do serwera np. w postaci konta. Zawęża to w pewien sposób krąg użytkowników mogących skorzystać z omawianej luki.

W tej sytuacji jedyną metodą zabezpieczenia systemu jest aktualizacja jądra Linux. Na szczęście większość popularnych dystrybucji systemu Linux zawiera już poprawione pakiety. Niestety, na tę podatność narażone są również wszystkie urządzenia z systemem Android. W tym przypadku trzeba koniecznie zaktualizować oprogramowanie np. smartfona stosowną łatką udostępnioną przez producenta sprzętu lub operatora sieci komórkowej.

Serwery naszych Klientów zostały już zabezpieczone. Zapraszamy do kontaktu potencjalnych Klientów, którzy potrzebują zabezpieczyć swoje serwery lub chcą sprawdzić czy ich systemy są odporne na lukę Dirty COW.

2016.04
HTTP/2

Mamy za sobą już kilka wdrożeń nowego protokołu HTTP/2. Klienci są zaskoczeni szybkością ładowania stron WWW.

Czym jest HTTP? Jest to protokół używany do przesyłania zawartości stron WWW z serwera do przeglądarki internauty. Każdy z nas od lat z niego korzysta, choć nie wszyscy są tego świadomi. Protokół HTTP został opracowany i udostępniony do publicznego użytku w okolicach roku 1990, a w latach 1997-1999 nastąpiła jego aktualizacja do wersji HTTP/1.1 używanej do dziś.

Wpisując w swoim komputerze, tablecie czy smartfonie adres strony WWW technicznie rzecz ujmując zlecamy przeglądarce zainicjowanie komunikacji z serwerem. W dużym skrócie polega to na wysłaniu do serwera stosownych żądań i odebraniu od niego oczekiwanych odpowiedzi. W efekcie otrzymujemy na ekranie wybraną stronę WWW, która składa się z wielu elementów: tekstu, grafiki, multimediów, arkuszy stylów, skryptów itd. Obecnie w większości przypadków za wspomnianą komunikację odpowiada protokół HTTP/1.1, który w niezmienionej formie istnieje od prawie 20 lat. Zgadza się, od prawie 20 lat jeden z najpopularniejszych internetowych protokołów pozostawał w niezmienionej postaci, choć przez ten okres diametralnie zmieniło się właściwie wszystko - począwszy od jakości sprzętu i języków programowania, ilości dostępnych stron WWW, przez zawartość multimedialnych treści co w oczywisty sposób wpłynęło na ich "wagę", po sposób projektowania stron oraz ich funkcjonalność. W przypadku starego protokołu HTTP/1.1 każdy element strony był przesyłany osobnym połączeniem na podstawie osobnego żądania i odpowiedzi. Ponieważ współczesne strony najczęściej składają się z kilkudziesięciu elementów, bardzo często umieszczonych na wielu różnych serwerach, nietrudno sobie wyobrazić pewnego rodzaju zbędny narzut czasowy przy zestawianiu przez nasze urządzenie takiej liczby połączeń oraz ogrom teoretycznie zbędnych danych przesyłanych siecią. M.in. dlatego stary protokół już od dawna nie nadążał za dynamicznym rozwojem nowoczesnych stron WWW. To samo dotyczy technologicznie ograniczonej interakcji z użytkownikiem. Dodatkowo, w ostatnim czasie potrzebne były spore nakłady pracy, aby rozbudowane strony wyświetlały się we w miarę rozsądnym czasie. Nikt przecież nie lubi czekać w nieskończoność na wyświetlenie strony. Do tej pory trzeba również było wygenerować sporo niepotrzebnego ruchu sieciowego oraz potrzebne były dodatkowe zabiegi, aby zapewnić na stronach interaktywność. Widać było jednak potrzebę stworzenia protokołu, który nadążałby za współczesnymi potrzebami i oczekiwaniami internautów oraz twórców stron WWW.

Minęło już sporo czasu odkąd na początku 2015 roku zakończono prace nad HTTP/2, który został opracowany na bazie SPDY (stworzony przez Google) i stał się następcą protokołu HTTP/1.1. Choć praktycznie wszystkie nowoczesne przeglądarki internetowe obsługują już nowy protokół, wciąż jednak tylko kilkanaście procent serwerów na świecie udostępnia treści wykorzystując HTTP/2. Są to w głównie najwięksi gracze na rynku, np. Google, Facebook, Twitter, YouTube, Akamai, CloudFlare, czyli firmy mające miliardy odwiedzających i dla których liczy się wydajność oraz bezpieczeństwo. Dlaczego mniejsze firmy póki co nie decydują się na zmiany? Ciężko jednoznacznie stwierdzić. Być może z obaw przed nowością, być może z powodu braku czasu na wdrożenie i testy, być może z powodu niewiedzy. Aktualizując protokół wnosimy nową jakość i szereg korzyści, z którymi nie sposób dyskutować. Jakie zalety ma nowy protokół HTTP/2 w porównaniu do starego HTTP/1.1?

  • Przede wszystkim wyraźnie zauważalne zwiększenie szybkości ładowania stron internetowych dzięki ulepszeniu kompresji nagłówków, umożliwieniu przesyłania wielu odpowiedzi na żądania jednym strumieniem/połączeniem, zmianie trybu pracy z tekstowego na binarny, wprowadzeniu multipleksowania (dzięki temu można przesyłać wiele elementów strony na raz, a dodatkowo jako pierwsze są ładowane widoczne elementy strony co sprawia, że znika wrażenie etapowego ładowania strony) itp.

  • Wprowadzenie nowych możliwości takich jak np. server push co ulepszy i zoptymalizuje interaktywność na stronach WWW, a także ułatwi wprowadzanie nowej funkcjonalności. Dzięki temu rozwiązaniu serwer może wysyłać klientowi nowsze wersje treści nie czekając na otrzymanie żądania co jest szczególnie istotne przy dynamicznych usługach gdzie liczy się czas rzeczywisty (np. notowania giełdowe, konferencje, rozmowy na czacie, wiadomości e-mail).

  • Zwiększenie bezpieczeństwa i poufności przesyłanych danych. Co prawda sam protokół nie wymaga stosowania szyfrowania, ale póki co wszyscy twórcy przeglądarek internetowych zgodnie zdecydowali, że przeglądarki będą obsługiwały HTTP/2 wyłącznie w formie szyfrowanej - z wykorzystaniem HTTPS-a co wymaga użycia certyfikatów SSL.

  • Obniżenie kosztu tworzenia stron WWW oraz infrastruktury informatycznej dzięki temu, że szereg prac optymalizacyjnych do tej pory wykonywanej przez webdeveloperów i administratorów przejmą funkcje protokołu.

  • Zmniejszenie obciążenia serwerów co może pozytywnie wpłynąć na ekologię i koszty (mniejsze zużycie prądu) albo na optymalizację wykorzystania zasobów (możliwość obsługi większej liczby klientów na obecnym sprzęcie i przy dotychczasowym poziomie zużycia prądu).

Na chwilę obecną nie wszyscy mogą od razu i w pełni zrezygnować z użycia starego protokołu na rzecz nowego. Są pewne specyficzne zastosowania, w których HTTP/1.1 nadal będzie funkcjonował jeszcze przynajmniej przez jakiś czas. Można jednak być nowoczesnym, iść z duchem czasu i już teraz korzystać z dobrodziejstw, jakie udostępnia nowy protokół HTTP/2. Nic nie stoi na przeszkodzie, aby oba protokoły funkcjonowały niezależnie obok siebie. Nowy protokół jest obsługiwany przez praktycznie wszystkie najpopularniejsze przeglądarki: Firefox, Internet Explorer 11, Chrome, Opera, Safari, Amazon Silk, Edge.

W przypadku zainteresowania wdrożeniem protokołu HTTP/2 na swoich serwerach zapraszamy do kontaktu: https://www.mksys.pl/kontakt/

Korzystanie z witryny oznacza zgodę na wykorzystywanie plików cookie.

Korzystamy z plików cookie w celu zwiększenia jakości i wygody korzystania z naszej strony WWW.

OK