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

Bezpieczeństwo domowej sieci WI-FI. 10 punktowy poradnik

Bezpieczeństwo domowej sieci Wi-Fi jest bardzo ważne, ponieważ w dzisiejszych czasach wiele urządzeń jest podłączonych do sieci, a wiele z nich przechowuje wrażliwe dane. W tym artykule przedstawimy kilka porad, jak zabezpieczyć swoją sieć Wi-Fi przed nieautoryzowanym dostępem.

Nauka

AI zmieni wszystko. Google pokazuje przykłady

Sztuczna inteligencja to najważniejsza technologia tego roku. I choć Microsoft wyprzedził Google’a w wyścigu o AI, to ten drugi wcale nie zamierza się z tym godzić. W najbliższych tygodniach da nam na to co najmniej kilka przykładów.

Inne

Zapowiedź cyfrowego euro. Europejczycy bez kont w banku?

Po 25 latach działalności Europejski Bank Centralny pochwalił się projektem cyfrowego euro. Nowa waluta ma mieć stabilną wartość i uniezależnić Europę od banków oraz pozaeuropejskich systemów płatniczych.

Dodaj komentarz

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