Niebezpieczny spyware na Linux i Windows
Nie potrzeba wiele, by oddać cyberprzestępcom kontrolę nad komputerem. Wystarczy otworzyć zainfekowany plik PDF. Niebezpieczna podatność zagrażała użytkownikom Windowsa i Linuksa.
Korda z- #
- #
- #
- #
- #
- #
- 10
- Odpowiedz
Komentarze (10)
najlepsze
Chyba każdy standardowy antywirus ma opcję skanowania przykładowo plików ZIP. Wiadomym jest, że pod względem i wydajności i optymalizacji, lepiej jak antywirus przeskanuje sobie taki plik w pamięci roboczej. Ale żeby to zrobić, antywirus musi najpierw ogarnąć informację o takim pliku ZIP, tzn. odczytać ze struktury pliku nagłówek zawierający informację o tym jakie pliki są zawarte w archiwum, jakie mają rozmiary, jakim algorytmem je skompresowano, jaka jest ich suma kontrolna itp. (przykład struktury: https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html)
Problem pojawia się wtedy kiedy podczas takiego odczytu/parsowania danych, programista popełnia błąd np. przy alokacji miejsca w pamięci. Przykładowo (w dużym uproszczeniu dla zrozumienia) programista antywirusa założył że nazwy plików nie mogą być dłuższe niż 512 znaków, więc w swoim kodzie alokuje 512 bajtów aby tam ewentualnie "włożyć" nazwę pliku którą odczyta z nagłówka ZIP.
I tu pojawiają się schody, bo programista nie przewidział, że nazwa jednego z plików (zgodnie ze standardem) może mieć więcej niż 512 bajtów, przykładowo będzie ich 2048 bajtów. Więc w momencie tej operacji, pierwsze 512 bajtów z nazwy pliku jest faktycznie umieszczane w alokowanej pamięci, ale reszta tj. 2048-512=1536, czyli 1536 bajtów, nadpisuje obszar pamięci zaraz za 512-tym bajtem. Czyli w tym momencie, cała pamięć/kod który jest po 512-tym bajcie, zostaje nadpisana przez 1536 bajtów z reszty nazwy pliku. Oto klasyczne przepełnienie bufora (bufor miał 512 bajtów miejsca, a skopiowano do niego 2048).
JEŚLI w którymś miejscu od 513 bajta do 2048 bajta jest możliwość kontroli kodu i zostanie to odpalone, to wtedy możesz odpalić swój dowolny kod. Czyli zmyślny haker, może stworzyć złośliwy kod o ile zmieści się on w tych 1536 bajtach (chodzi
W C/C++, gdy stworzysz zmienną w heap i po jej zużyciu jej nie zwolnisz, to będzie Ci zawalać miejsce w pamięci. Gdy skorzystasz dużo razy z funkcji która tworzy taką zmienną a jej nie zwalnia, po
Z artykułu wynika że w windzie po przeskanowaniu dostawało wyższe uprawnienia ale nie ma mowy o linuksie i ciekawi mnie czy podatność linuksowa a dokładniej przeglądarki pod linuksem nie pozwalała tylko na wykonanie kodu ale bez uprawnień roota.