Читаем Защити свой компьютер на 100% от вирусов и хакеров полностью

Переполнение буфера (Buffer Overflow). Переполнение буфера на сегодняшний день является самой распространенной уязвимостью в области безопасности ПО. Первая атака с применением данной уязвимости использовалась в вирусе-черве Морриса в 1988 году. Червь, созданный студентом Корнельского университета, всего спустя пять часов после активации умудрился инфицировать около 6000 компьютеров – по сегодняшним меркам не очень много, но не будем забывать про год! Среди пострадавших – такие монстры, как Агентство Национальной безопасности и Стратегического авиационного командования США, лаборатории NASA (в частности, в вычислительном центре NASA в Хьюстоне червь попытался взять под контроль систему запуска кораблей многоразового использования Space Shuttle). Помимо прочего, червь успел насытить свои низменные гастрономические пристрастия исследовательским центром ВМС США, Калифорнийским НИИ, крупнейшими университетами страны, а также рядом военных баз, клиник и частных компаний. С тех пор количество способов реализации атак на переполнение буфера только увеличилось.

Эксплуатация переполнения буфера позволяет злоумышленнику изменить путь исполнения программы методом перезаписи данных в памяти системы. Переполнение возникает, когда объем данных превышает размер выделенного под них буфера. Когда буфер переполняется, данные переписывают другие области памяти, что приводит к возникновению ошибки. Если злоумышленник имеет возможность управлять процессом переполнения, это может вызвать ряд серьезных проблем.

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

Используя переполнение буфера, можно перезаписывать служебные области памяти, например адрес возврата из функций в стеке. Кроме того, при переполнении могут быть переписаны значения переменных в программе.

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

Переполнение буфера обычно возникает при создании программ на языках C и C++. Если часть сайта создана с использованием этих языков, сайт может быть уязвим для этой атаки.

Атака на функции форматирования строк (Format String Attack). При использовании этих атак путь исполнения программы модифицируется методом перезаписи областей памяти с помощью функций форматирования символьных переменных. Уязвимость возникает, когда пользовательские данные применяются в качестве аргументов функций форматирования строк, таких как fprintf, printf, sprintf, setproctitle, syslog и т. д. Если атакующий передает приложению строку, содержащую символы форматирования (%f, %p, %n и т. д.), то у него появляется возможность:

выполнять произвольный код на сервере;

считывать значения из стека;

вызывать ошибки в программе/отказ в обслуживании.

Вот пример: предположим, веб-приложение хранит параметр emailAddress для каждого пользователя. Это значение используется в качестве аргумента функции printf: printf(emailAddress). Если значение переменной emailAddress содержит символы форматирования, то функция printf будет обрабатывать их согласно заложенной в нее логике. Поскольку дополнительных значений этой функции не передано, будут использованы значения стека, хранящие другие данные.

Возможны следующие методы эксплуатации атак на функции форматирования строк.

Чтение данных из стека. Если вывод функции printf передается атакующему, он получает возможность чтения данных из стека, используя символ форматирования %x.

Чтение строк из памяти процесса. Если вывод функции printf передается атакующему, он может получать строки из памяти процесса, передавая в параметрах символ %s.

Запись целочисленных значений в память процесса. Используя символ форматирования %n, злоумышленник может сохранять целочисленные значения в памяти процесса. Таким образом можно перезаписать важные значения, например флаги управления доступом или адрес возврата.

Перейти на страницу:

Похожие книги

Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Максим Анатольевич Беляев , Вадим Васильевич Лысенко , Лариса Александровна Малинина

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Исповедь кардера-2
Исповедь кардера-2

Русь всегда славилась своими «левшами», не изменилась ситуация и сейчас. Не зря ведь большинство специалистов американской Силиконовой долины имеют русские корни.В продолжении фантастического романа о приключениях кардера Изи Питерского и его команды читатель вновь сможет оценить изворотливость и выдумку новых русских хакеров. Более того, теперь они работают на страну, для ее блага и процветания, создавая свой аналог известной долины разработчиков в США — Русскую Таежную опушку.Подпольная битва между кибер-войсками НАТО и русскими хакерами, противостояние спецслужб великих держав — со всем этим и многим другим читатель сможет познакомиться в книге Алексея Малова «Исповедь кардера — 2».

Алексей Малов

Детективы / Зарубежная компьютерная, околокомпьютерная литература / Криминальные детективы / Прочая компьютерная литература / Книги по IT