Ошибки в прикладном
программном обеспечении были и остаются
основным путем проникновения злоумышленника как
на сервера, так и на рабочие станции. Объективная
причина этого разработка подобного ПО
различными группами разработчиков, которые
просто не в состоянии уделить должного внимания
сетевой и локальной безопасности своего
продукта. И если фирмы-разработчики операционных
систем тратят огромные суммы на тщательные
испытания поведения их программ в нестандартных
ситуациях, а также активно учитывают многолетний
опыт своих же ошибок, то для небольших фирм это
просто не под силу, да и крайне невыгодно
экономически.
Ошибки активно ищутся группами
"хакеров" практически во всем более или
менее распространенном ПО, однако, наибольшую
известность приобретают, конечно, исследования
программ, установленных почти у каждого
пользователя. Так, например, в одной из недавних
версий MicroSoft Internet Explorer’а была обнаружена ошибка,
связанная с переполнением буфера, которая
приводила к тому, что часть URL-адреса попадала на
"исполнение" и трактовалась как
последовательность команд процессора. При этом
длины этого участка хватало, например, для того,
чтобы загрузить на ЭВМ из сети троянскую
программу и передать ей управление. В
последующей версии ошибка была исправлена.
Программа ICQ самый популярный электронный
пейджер в сети Интернет в очередной своей
версии была снабжена своими создателями
возможностью поддерживать миниатюрный WWW-сервер.
Однако, ошибка в его реализации позволяла при
добавлении слева точек в имени первого каталога
получать доступ ко всем файлам жесткого диска
открывался полный (!) сетевой доступ по чтению.
Многие атаки используют не только
непосредственные ошибки в реализации ПО, но и
непродуманные разработчиками аспекты
использования стандартных возможностей
программы. Так, пожалуй, самым ярким примером
этого являются MACRO-вирусы в документах системы
MicroSoft Office. Возможность исполнения макросов была
встроена в эту систему из самых благих
побуждений, но тот факт, что макросы могут
запускаться на определенные события (например,
открытие документа) и получать доступ на
модификацию к другим документам, сразу же был
использован создателями вирусов отнюдь не в
благих целях.
К подобным же примерам следует отнести
возможность запуска исполнимых DLL-файлов из
HLP-файлов. Казалось бы, открывается безобидный
текстовый файл справки, а оказывается он может
честно инициировать вызов из прилагающейся
DLL-библиотеки да еще и безо всякого уведомления
об этом пользователя.
Моралью этого параграфа является
правило "семь раз отмерь один отрежь" на
этапе разработки собственного программного
обеспечения. |