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.

Tagi:

Podziel się postem :)

Najnowsze:

Bezpieczeństwo

Menadżer haseł Norton złamany! Wyciek danych użytkowników

Znany producent oprogramowania odpowiadającego za bezpieczeństwo naszych komputerów i danych — Norton — poinformował o złamaniu zabezpieczeń usługi LifeLock, służącej m.in. do przechowywania haseł. Hakerzy mogli uzyskać dostęp do kont niektórych klientów.

Bezpieczeństwo

Każdy smartfon można podsłuchać. Wystarczy sprytny trik z akcelerometrem

Ataki bocznokanałowe to fascynująca sprawa. Przyznajcie, pomysły takie jak wykorzystanie regulacji prędkości obrotowej wentylatorów komputera do przesyłania danych alfabetem Morse’a robią wrażenie. Oto kolejny z nich. Nie mniej zaskakujący, za to potencjalnie niebezpieczny, bo pozwala napastnikowi podsłuchiwać rozmowy. W pewnym sensie.

Oprogramowanie

Programiści wolą Linuksa od Maca. Dlaczego?

Linux wygrywa z systemem macOS wśród programistów. Kodowanie to jedno z tych zastosowań, wśród których „Pingwinek” odgrywa naprawdę dużą rolę.

Dodaj komentarz

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