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

Łańcuch Eksploatacji w Linux: Jak Dwa Błędy w PAM i udisks Prowadzą do Pełnego Przejęcia Systemu (CVE-2025-6018 & CVE-2025-6019)

W cyfrowym świecie bezpieczeństwa, eskalacja uprawnień (privilege escalation) jest jednym z najpoważniejszych zagrożeń. Umożliwia atakującemu, który posiada jedynie podstawowe konto użytkownika, zdobycie pełnej kontroli administracyjnej (root) nad systemem. Niedawne odkrycie przez Qualys Threat Research Unit stanowi podręcznikowy przykład tego, jak dwie pozornie odizolowane podatności mogą zostać połączone w niszczycielski łańcuch ataku.

Bezpieczeństwo

Oprogramowanie Open Source w służbie wojskowej: Jak drony z ArduPilot zmieniają oblicze wojny na Ukrainie

W dzisiejszych czasach, gdy technologia odgrywa kluczową rolę na każdym polu, od medycyny po rozrywkę, nie jest zaskoczeniem, że jej wpływ jest coraz bardziej widoczny również w dziedzinie wojskowości. Jednak to, co może być zaskakujące, to fakt, że oprogramowanie open-source, tworzone przez społeczność entuzjastów i programistów z całego świata, staje się potężnym narzędziem w rękach armii. Niedawny, zmasowany atak dronów przeprowadzony przez Ukrainę na rosyjskie bazy lotnicze, jest tego najlepszym przykładem i dowodem na to, jak technologie o otwartym kodzie źródłowym rewolucjonizują współczesne pole walki.

Oprogramowanie

Unia Europejska przejdzie na Linuxa? Powstaje dystrybucja EU OS

Unia Europejska może wkrótce podjąć kroki w kierunku uniezależnienia się od amerykańskiego oprogramowania. Społeczność entuzjastów pod patronatem władz UE pracuje nad projektem EU OS, który ma zastąpić system operacyjny Windows w instytucjach rządowych. Wybór padł na modyfikację dystrybucji Fedora Linux, która zostanie dostosowana do potrzeb urzędników poprzez interfejs przypominający Windows.

Dodaj komentarz

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