Более подробно об уязвимостях
Этот раздел дополняет предыдущий описанием видов и примерами уязвимостей, которые встречаются в реальных системах и используются злоумышленниками.
Как уже говорилось выше, уязвимость (vulnerablity), или "дыра" в защите - это особенность компьютерной системы (аппаратуры или программ), которая делает возможным несанкционированный доступ к информации в обход механизмов защиты или причинение ущерба компьютерной системе.
Уязвимости различаются по масштабам (в пределах системы) последствий, которые может вызвать их использование злоумышленником (exploitation) или случайное "срабатывание". Через наименее серьезные "дыры" можно организовать лишь получение общей информации о системе, которую администратор предпочел бы скрыть от посторонних; критические же уязвимости могут позволить злоумышленнику получить полный контроль над системой.
Понятно, что в качестве "злоумышленника" может выступить любой пользователь, непреднамеренно делающий ошибки при вводе данных. Даже в результате случайного стечения обстоятельств наличие уязвимости может привести к нарушению работы системы.
Появлению "дыр" в защите способствует множество факторов:
* неудачно спроектированные оборудование и программы;
* использование оборудования или программ не по назначению;
* случайные ошибки в программах;
* сбои оборудования;
* неудачное распределение полномочий между пользователями;
* "секретные" недокументированные функции ("backdoors") в программах, оставленные разработчиками;
* ошибки при настройке;
* и т.д.
Отсюда видно, что уязвимости возникают с легкостью и существуют в системе практически всегда. Очень долго они могут оставаться ненайденными, но рано или поздно любая уязвимость в достаточно широко используемой программе обнаруживается. Например, в системах Microsoft Windows 95 и NT появились узявимости, позволяющие любому пользователю получить полный доступ к компьютеру. Об этой проблеме компании Microsoft стало известно лишь в 2002 году.
Чтобы уменьшить риск причинения ущерба информации к минимуму, обычно предпринимаются следующие меры:
* активизируются и используются лишь те функции оборудования и программ, которые необходимы для нормальной работы системы;
* отслеживаются попытки использования запрещенных функций;
* пользователям назначаются минимально необходимые права;
* при обнаружении новых уязвимостей устанавливаются соответствующие "заплатки" (patches) для программ, закрывающие найденные "дыры";
* используются автоматические сканеры, проверяющие наличие в данной системе известных уязвимостей (кстати, такие сканеры популярны и среди сетевых "взломщиков");
* пользователей обучают "технике сетевой безопасности".
Эти меры помогают существенно понизить количество точек приложения сил, доступных злоумышленнику. Даже в случае получения частичного контроля над системой полезные ему функции (например, право изменения содержимого web-сайта), скорее всего, будут отключены.
Далее рассмотрим некоторые часто встречающиеся виды уязвимостей, возникающих как на аппаратном уровне, так и в программном обеспечении.