Опубликован: 16.10.2006 | Уровень: специалист | Доступ: платный
Лекция 2:

Удаление, повреждение и отказ в доступе к данным

Эсплоиты, использующие уязвимые места программного обеспечения

Существует много эксплоитов, наиболее известными из которых являются следующие.

  • Эксплоиты ошибок конфигурации. Используют недостатки в системе управления привилегиями и/или уязвимые или раскрытые идентификаторы и пароли, позволяющие осуществлять прямую атаку, вход и дальнейшие действия. Если хакер добыл нужную информацию с помощью разведки, он выполнит направленный эксплоит и проникнет в систему.
  • Вредоносные эксплоиты. Размещают на сервере сторонний код, позволяющий похитить, изменить, осуществить или перехватить управление системой с помощью следующих подходов.
    • Заражение. Представляет собой атаку вредоносным кодом в форме вируса или червя, который проникает в сеть системы-жертвы с помощью внутренних пользователей (через исполняемый файл на диске, сообщение электронной почты или браузер) и быстро распространяется на большое число компьютеров произвольным образом.
    • Дефект (баг). Ошибки в программном обеспечении жертвы, демонстрационные сценарии или апплеты CGI/Java, предоставляющие возможность переполнения буфера, с помощью которых выполняется вредоносная программа с необходимыми привилегиями для несанкционированного доступа или повреждения системы.
    • Троянский конь. Программа, преодолевающая периметровую систему безопасности и защиту веб-сервера, как правило, через электронную почту (или через обмен файлами между пользователями), создающая "дыру" в безопасности системы для беспрепятственного доступа к системе.
  • Распределенные эксплоиты. Действуют на одном или нескольких компьютерах, используемых хакерами для осуществления атак на стороннюю цель. Эти эксплоиты сильно затрудняют идентификацию истинного источника атаки.

Эксплоиты, использующие ошибки в конфигурации, требуют от хакера много времени и усилий для поиска ошибок и последующего проникновения в систему. Эксплоиты других категорий требуют от него большей сообразительности и находчивости. За исключением случая, когда хакер просто повторно использует существующую программу-эксплоит, ему требуется написать некоторый код и разработать схему его доставки. Но, опять-таки, с помощью набора хакерских средств программист довольно просто скомпилирует атакующую программу и выполнит эксплоит. Другое дело – распределенные эскплоиты. Их использование требует тщательнейшего планирования и подготовки, но это компенсируется тем, что таким атакам, как правило, очень трудно противостоять.

Эксплоиты, использующие ошибки в конфигурации

В зависимости от полученных данных хакер может иметь достаточно информации для осуществления направленной атаки. Узнав об открытых портах на компьютере-жертве, о приложении или службе, использующей этот порт, выяснив поставщика и номер версии программного обеспечения, хакер может начинать атакующие действия. Имея на руках указанную информацию, взломщик обратится за помощью к своим собственным ресурсам (среди которых непременно будет перечень уязвимых мест SANS/FBI) и определит, соответствуют ли полученные данные условиям для атаки.

Иногда хакер находит незащищенный порт при подключении с помощью программы Telnet. В случае неудачи злоумышленник попытается войти в систему под учетной записью пользователя, найти домашний каталог со списком файлов и подкаталогов и т.д. Атака может быть направлена и на использование других служб IIS, таких как FTP и NNTP.

Злоумышленный или вредоносный код

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

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

Вредоносный код, расположенный на веб-страницах, является сравнительно новой угрозой, о которой будет кратко рассказано в разделе "Сценарии и Java-апплеты" данной лекции.

Вирусы, черви и "троянские кони"

Различия между вирусами, червями и "троянскими конями" совсем незначительны. Эти вредоносные программы отличаются друг от друга по своей форме и способу воздействия. Ниже приведены определения этих программ, взятые из глоссария терминов Агентства национальной безопасности США.

  • Вирус – программа, которая может "заражать" другие программы, зачастую скрываясь в них, посредством внедрения в их тело копии самой себя (возможно, эволюционировавшей). Вирусы часто используются для выполнения различных злоумышленных действий. Для распространения вирусу необходима базовая программа.
  • Червь – независимая, самодостаточная программа или алгоритм, распространяющая себя среди компьютеров через сетевые соединения, как правило, выполняющая вредоносные действия, которые заключаются в использовании ресурсов компьютеров, засорении сетей и информационных систем вследствие самораспространения программы.
  • "Троянский конь" – внешне полезная и безобидная программа, содержащая скрытый код, который может осуществлять несанкционированный сбор, использование, фальсифицирование и уничтожение данных. В отличие от вируса и червя "троянский конь" не распространяет сам себя, однако не менее вредоносен.

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

При атаке с применением вредоносного кода обычно выполняется одно (в худшем случае, все) из перечисленных действий.

  • Выполнение вредоносного кода. Это код в любой из своих форм представляет исполняемые программные инструкции. Независимо от того, является ли он вирусом, червем или "троянским конем", после загрузки инструкций программы в память компьютера может быть перехвачено управление системными ресурсами, вплоть до выполнения любых действий, соответствующих уровню безопасности текущего пользователя в операционной системе. Во вредоносном коде содержатся любые инструкции, начиная от отображения сообщений на экране и заканчивая удалением всех файлов с жесткого диска компьютера.
  • Сокрытие следов действия. Чтобы не быть обнаруженной, вредоносная программа скрывает следы своего присутствия в системе. Например, вирус, заразивший загрузочный сектор диска, будет загружаться при запуске операционной системы, что поможет ему "затеряться" в перечне запускаемых файлов.
  • Самораспространение. После загрузки в память вредоносный код использует различные методы заражения или проникновения в другие файлы, программы и компьютеры, с которыми он вступает во взаимодействие. Если вредоносный код изначально доставлен и внедрен через сообщение электронной почты, он попытается использовать электронную почту своего несущего компьютера для распространения на другие компьютеры. Если вредоносным кодом является макровирус, он загружается при открытии несущего документа и заражает другие документы, создаваемые в данном приложении.

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

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

Все вирусы похожи друг на друга тем, что они являются программами, содержащими инструкции для выполнения, и написаны на языках программирования, включая C, Java, Visual Basic и языки макросов Microsoft Office. Вирусы вставляют самих себя в несущие файлы, что способствует их скорейшей загрузке в память компьютера. Они маскируются в загрузочном секторе диска или имеют вид файла операционной системы, добавляют себя в виде строк кода к телу программы, представляют макрос в файле данных или приложении к сообщению электронной почты, скрываются в сценарии JavaScript, Java-апплете, VB Script или элементе Active X на веб-странице. В любом случае после загрузки в память и выполнения файла с вредоносным кодом загружается и выполняется программа-вирус.

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

Антон Ворожейкин
Антон Ворожейкин
Россия, с. Новоселье
Дмитрий Клочков
Дмитрий Клочков
Россия, Рубцовск