Deserializacja – niebezpieczna metoda (ataku hakerskiego, testu penetracyjnego, działań wywiadowczych – określenia zamienne ;))

W większości języków programowania możemy tworzyć obiekty – czyli instancje klas. Każdy z obiektów może przechowywać jakieś dane. Czasami istnieje potrzeba, aby te dane gdzieś zapisać.

Serializacja to sposób na przechowywanie obiektów lub struktur tak, aby mogły być łatwo zachowane i transmitowane.  Serializacja to generyczna nazwa i w różnych językach programowania te nazwy mogą się nieco różnić.

W Ruby, to „marshalling”, w go „gobbing” a w Python „pickling”.

Z niebezpieczną deserializacją mamy do czynienia jeżeli to użytkownik kontroluje zawartość zserializowanego obiektu. Serwer, aby przetworzyć tak zapisany obiekt, musi bowiem wykonać operację odwrotną, nazywaną deserializacją.

PHP

W PHP za deserializację odpowiedzialna jest funkcja unserialize.

Java

Java również jest podatna na ten rodzaj błędów. Powstało wiele prezentacji na ten temat:

.NET

.NET również nie ustrzegł się tej klasy podatnosci:

Inne przykłady

Ruby również nie jest bezpieczne (zobacz CVE 2020–8165).

A jeżeli używasz plików YAML w Pythonie – zobacz ten materiał.

Na Deserialization Cheat Sheet znajdziesz krótkie podsumowanie.

Sporo tego materiału :). Pora na ćwiczenia praktyczne.

Podziel się postem:

Najnowsze:

Bezpieczeństwo

IYPS – Czy Twoje hasło jest bezpieczne? Aplikacja, która sprawdza bezpieczeństwo haseł

W dzisiejszych czasach, kiedy coraz więcej aspektów naszego życia przenosi się do sieci, bezpieczeństwo online staje się priorytetem. Jednym z najważniejszych elementów tego bezpieczeństwa są silne i unikalne hasła. Ale jak sprawdzić, czy nasze hasła są rzeczywiście bezpieczne? Z pomocą przychodzi aplikacja IYPS – Is Your Password Secure?

Sprzęt

RTX 5090 z rekordową przepustowością pamięci

Według najnowszych doniesień Nvidia wybrała pamięć GDDR7 firmy Samsung jako preferowaną pamięć dla nadchodzącej serii kart graficznych GeForce RTX 50 “Blackwell”. Choć nie ma oficjalnego potwierdzenia, przeciek głosi, że ma być ona wykorzystana w produktach, które wejdą na rynek w 2025 roku.

Oprogramowanie

Oficjalnie wydano jądro Linux 6.12. Oto nowości

W tej wersji wprowadzono obsługę „PREEMPT_RT” w czasie rzeczywistym, nowy harmonogram o nazwie sched_ext oraz komunikaty alarmowe DRM w postaci kodów QR.

Dodaj komentarz

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