Mempcy() zakazana

Microsoft planuje formalnie zakazać popularnej funkcji programowania, która była odpowiedzialna za niezliczone przypadki podatności na zagrożenia przez lata, nie tylko w Windowsie ale przeróżnych innych aplikacjach bazujących na języku C. Jeszcze tego roku Microsoft doda memcpy(), CopyMemory() i RtlCopyMemory() do listy fukcji uznanych za zakazane w ramach Secure Development Lifecycle.
Memcpy długo służył jako podstawowy składnik języków bazujących na C, umożliwiający prosty sposób na kopiowanie zawartości z jednej części pamięci na inną. Usterka pojawia się, kiedy źródło do skopiowania zawiera więcej bajtów niż jego miejsce przeznaczenia, co tworzy ujścia, które umożliwiają atakującym zdalnie wykonywać kod w podstawowych aplikacjach. „To ewidentnie jedna z tych notorycznie niebezpiecznych C komand” powiedział Johannes Ullrich, szef SANS Institute, który wykłada o bezpiecznych klasach kodowania. Połączył memcpy() z innymi ryzykownymi funkcjami takimi jak strcpy() i strcat(), których Microsoft zakazał już wcześniej.

Developerzy, którzy będą chcieli być zgodni z SDL (secure development lifecycle), będą zmuszeni wymienić memcpy() na memcpy s, nowe polecenie. które ma dodatkowy parametr określający rozmiar bufora docelowego. Polecenie jest już zgodne z Visual C++ Microsoftu, ale według Ullricha, nie jest jeszcze dostępny w kompilatorze GCC. Na blogu Microsoftu, gdzie ogłoszono planowaną zmianę, widnieje sugestia modyfikacji plików nagłówkowych, tak żeby kompilatory przekazywały ostrzeżenie za każdym razem kiedy używa się zakazanej funkcji. Pojawia się też pytanie, kiedy „Larry, Steve i Linuks” zamierzają wprowadzić podobne poprawki w bezpieczeństwie swoich produktów.
źródło: pcarena.pl