Dodatkowo, możliwe jest zabezpieczenie zamkniętego oprogramowania przez taką zmianę funkcji bibliotecznych, by odrzucać relatywnie mało przydatną dyrektywę %n we wszystkich odwołaniach do biblioteki. Zmniejsza to znacznie ryzyko pomyślnego ataku, chociaż – jak zaznaczono wcześniej – nie chroni przed wszystkimi jego wariantami. W niektórych przypadkach pomocne mogą być algorytmy ochrony stosu przed wykonywaniem znajdującego się na nim kodu na architekturach, które tego nie uniemożliwiają w sposób sprzętowy lub gdy system operacyjny nie wykorzystuje takiej możliwościWiększość systemów dla architektury IA-32, nie korzysta z takiej możliwości na poziomie segmentów pamięci ze względu na małą elastyczność zarządzania nimi, choć jest to technicznie możliwe. Dopiero od pewnego czasu możliwe jest sprzętowe wspomaganie na poziomie pojedynczych stron pamięci w postaci bitu NX. Na tym poziomie najczęściej implementuje się podsystem pamięci wirtualnej we współczesnych systemach operacyjnych.. Ponadto zaleca się stosowanie pozostałych sposobów utrudniających wykonywanie kodu przemyconego do pamięci procesu (np. losowe umiejscowienie wirtualnej przestrzeni adresowej procesu).

Zobacz też przepełnienie bufora printf

Przypisy

Linki zewnętrzne Exploiting Format String Vulnerabilities

Kategoria:Programowanie komputerów Kategoria:Cyberataki