Станислав Гошко
Пусть что угодно говорят поклонники *nix-систем, но защита в последних
версиях операционных систем семейства Windows сделала громадный скачок вперёд.
И так как языки C и C++ очень распространены и на платформах Windows, то атаки
на переполнение буфера стали реальной угрозой безопасности. Атаки такого типа
известны уже очень давно, со времен операции «Полуденный бес», которая
проводилась в США, начиная с мая 1990 года, и была направлена против хакеров.
Её проводила «Секретная Служба». Переполнение буфера, правда, на операционные
системы семейства *nix использовалось хакерами по полной программе. Но реальная
угроза данных атак на операционные системы семейства Windows появилась гораздо
позднее, в 1995-2002 годах.
Смысл атак на переполнение буфера заключается в
том, что существуют программы, запущенные с большими привилегиями, чем у
пользователя, и благодаря переполнению буфера для пользователя стало возможно
получить эти привилегии (уязвимой программы).
Мы рассмотрим одну из самых распространённых атак
на переполнение буфера. Это так называемая атака на «срыв стека». В большинстве
своём данные атаки возможны во многих программах, написанных на языках
программирования C или C++.
Поэтому мы рассмотрим пример уязвимой программы,
а также разработаем для неё эксплоит (программу, которая реализует данную уязвимость).