Переполнение буфера



Переполнение буфера

Многие годы проблемы, связанные с переполнением буфера, были серьезным недостатком системы защиты системы UNIX. После появления в 1995 году статьи How to write buffer overflow в мире UNIX многое переменилось. В классической статье Алефа Вана (Aleph One) Smashing the stack for fun and profit, впервые опубликованной в журнале Phrack Magazine в 1996 году, подробно описано, насколько просто добиться переполнения буфера. 
Для тех, кто незнаком с этой концепцией постараемся ее четко сформулировать. Переполнение буфера позволяет взломщику поместить в переменную значение, которое больше, чем максимально допустимое. После этого он сможет выполнить произвольный код с привилегиями текущего пользователя, обычно root. В большинстве случаев проблема заключается в плохо написанном коде. Примером такого кода может быть программа, помещающая данные в буфер и не проверяющая их размер. Наиболее популярная команда, которую можно удаленно выполнить в системе Solaris, выглядит примерно следующим образом: /usr/openwin/bin/xterm -display <your_IP_address>: 0 . 0 &.
Рассматриваемые ниже изъяны позволят получить полное представление о методах, которые взломщики используют для удаленного переполнения буфера. Имея такую информацию, вы сможете улучшить качество и надежность своих программ.



Содержание раздела