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

Переполнение буфера – одна из самых распространенных уязвимостей программного обеспечения. Она возникает в том случае, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера. Переполнение буфера представляет собой популярный способ взлома компьютерных систем, потому что большинство языков высокого уровня используют технологию стекового кадра. Это технология подразумевает размещение данных в стеке процесса, смешивая данные программы с управляющими данными.
В большинстве случаев переполнение буфера происходит из-за некорректной работы с данными, полученными извне, и с памятью, если отсутствует надежная защита со стороны подсистемы программирования и операционной системы. Результатом переполнения буфера может стать аварийное завершение или зависание программы, которые приводят к отказу в обслуживании. Помимо этого, переполнения в стековом кадре, могут позволить мошеннику загрузить или выполнить произвольный код на системе от имени программы и с правами учетной записи, от которой она выполняется.