Проблемы обеспечения безопасности стали одним из основных барьеров на пути стремительного развития Internet.
Пользователи, к сожалению, не всегда способны определить, с какой стороны ждать угрозы и какой вред могут нанести их собственные действия их же компьютеру. Часто атака бывает настолько неожиданной, что кажется нереальным определить ее причину. Понять свойства каждой атаки позволяет их классификация — именно об этом мы и поговорим. Конечно, классифицировать нападения можно по самым разным признакам, но мы остановимся на трех основных: цели нападения, методе его реализации и типе дефекта.
Цель нападения
В основном хакеры совершают атаки для использования чужих компьютеров в личных целях. Цели их бывают самыми разными — от безобидной шутки до полного «захвата» чужого компьютера, но среди них можно выделить следующие наиболее «популярные».
Помеха
Одна из целей подобной атаки — банальное отвлечение пользователя от исполнения служебных обязанностей. Помехи бывают вполне безобидными и даже забавными, если оформлены в виде шутки. Однако атаки такого типа зачастую оказываются весьма назойливыми. В частности, к ним относится спам — привлечение внимания в рекламных целях. Кроме того, помехи применяются для отвлечения и запутывания службы безопасности. Изменение содержания Web-сервера («дефейс») порой применяется как средство «черного» PR, что также может принести определенный доход одной стороне и ущерб другой.
Получение конфиденциальных данных
Нередко целью атак данного типа является получение паролей, номеров и PIN-кодов кредитных карточек и другой конфиденциальной информации, которая в дальнейшем позволит осуществить более опасные нападения. Атака обычно проводится незаметно для пользователей или маскируется под какие-либо легальные действия. Этот тип атак часто бывает одним из этапов нападения, хотя получение реквизитов платежных карт или другой конфиденциальной информации может иметь и самостоятельную ценность. Основной источник дохода лиц, промышляющих сбором конфиденциальной информации, — получение денег из систем электронной коммерции (так называемый кардинг).
DoS-атака
Атаки типа «отказ в обслуживании» (DoS) используются при намерении приостановить работу какой-нибудь службы, приложения или целой системы. Они бывают двух видов: инициация программной ошибки, например бесконечного цикла, и перевод системы в критический режим работы. Вывод из строя сервера или важного приложения может принести серьезный вред компании, против которой была направлена атака. Ходят слухи, что хакеры принимают заказы на проведение DoS-атак против определенных сайтов, так что этот тип нападений уже становится полноценным бизнесом.
Захват
Цель захвата — получить контроль над вычислительными ресурсами, причем желательно, чтобы их легальный владелец максимально долго оставался об этом в неведении. Захваченный ресурс можно задействовать как для решения определенных вычислительных задач (например, вскрытия зашифрованного сообщения), так и для использования его сетевых возможностей (скажем, рассылки спама). Злоумышленники получают доход от продажи захваченных мощностей спамерам или кардерам (лицам, занимающимся подбором паролей). Захваченные машины часто служат плацдармом для дальнейших нападений.
Все перечисленные цели имеют оригинальную бизнес-модель и могут приносить преступникам определенный доход, за счет которого методы атак с каждым днем совершенствуются. Впрочем, встречаются и атаки, не приносящие прибыли, такие как вандализм или месть бывшим работодателям.
Отметим, что атака может быть комплексной, то есть направленной на достижение сразу нескольких целей. Например, червь Mydoom, чья эпидемия пришлась на февраль, собирал адреса электронной почты, относящиеся к конфиденциальной информации, встраивал в атакованную машину сервис, через который ее можно было в дальнейшем захватить, и организовывал DoS-атаку на сайты компаний SCO и Microsoft.
Методы нападения
Под методом атаки мы подразумеваем технологию нападения, с помощью которой нападающий, с одной стороны, достигает цели, а с другой — скрывается от разоблачения. Существуют следующие методы нападений.
Ловушка
Этот метод подразумевает определенные действия со стороны пользователя: хакер старается обмануть атакуемого, имитируя сайт, которому тот доверяет. Сейчас этот тип нападения принято называть CSS (Cross-Site Scripting) — исполнение опасного кода внутри доверенной и, следовательно, менее защищенной зоны. Ловушки, как правило, основаны на дефектах графического интерфейса или неоправданно высоких функциональных возможностях исполняемого компонента. С помощью ловушки можно достигнуть практически любой цели.
Ловушки бывают двух подтипов: активные и пассивные. Активные ловушки могут самостоятельно «размножаться» без участия их разработчика, а для распространения неактивных ловушек нападающий должен выполнить определенные действия. К неактивным ловушкам, в частности, относятся «троянские кони» и программы-обманки, а к активным — черви.
Распределенные атаки
Для распределенной атаки хакер использует не отдельные компьютеры, а целую сеть захваченных и скоординированных им машин. Аккумулированные таким способом ресурсы позволяют ему решать очень сложные задачи. Например, порой распределенная атака служит для взлома шифра или подбора пароля. От ловушки она отличается тем, что владельцы компьютеров, объединенных в глобальную сеть, могут и не знать о своем участии во взломе.
Подвидами данного метода также являются активные и неактивные атаки. В первом случае захваченный компьютер тут же сам начинает атаковать другие компьютеры, а во втором центральный сервер только захватывает ресурсы, но не наделяет «подчиненных» возможностью размножать вредоносную программу. Наиболее известны пассивные нападения данного типа — распределенные отказы в обслуживании (DDoS) и спам-сети, которые иногда базируются на десятках тысяч захваченных машин. С активными распределенными атаками — червями и вирусами — знакомы практически все пользователи Internet.
Индивидуальные атаки
Атаки этого типа плохо поддаются автоматизации, поскольку направлены против конкретной конфигурации операционной системы. Они полностью контролируются нападающим, поэтому менее заметны и наиболее опасны. Как правило, такие атаки состоят из нескольких этапов и заканчиваются полным подчинением компьютера хакеру. Каждое нападение индивидуально по технологии реализации, и создать правила для ее блокировки практически невозможно. Атака представляет собой дуэль между нападающим и специалистом по безопасности, и ее исход, как правило, зависит от квалификации сторон.
Перечисленные методы могут использоваться совместно для достижения разных целей. Например, уже упоминавшийся вирус Mydoom для захвата компьютеров применял ловушку (он подделывался под сообщение об ошибке), а для DoS-атаки задействовал распределенный принцип. В то же время устанавливаемый им сервис скрытого управления ПК позволял проводить в отношении захваченных машин индивидуальные действия.
Тип дефекта
Каковы бы ни были цель и метод атаки, она направлена на использование конкретного дефекта в конкретной программе. По типу дефекта определяется возможность достижения цели: так, с помощью одних ошибок удается исполнить любой код на атакуемой системе, а с помощью других — лишь организовать DoS-атаку. К сожалению, каждая программная ошибка индивидуальна и не всегда поддается классификации, но можно выделить достаточно большие классы ошибок с некоторыми общими чертами.
Ошибки конфигурации
Они возникают при неправильной конфигурации программного обеспечения, плохой настройке администратором механизмов защиты. Эти ошибки обычно индивидуальны, и их практически невозможно использовать массово — за исключением тех случаев, когда ошибка присутствует в конфигурации систем по умолчанию. Раньше корпорация Microsoft поставляла свои операционные системы со слабыми ограничениями прав доступа, а администраторы редко перенастраивали параметры «по умолчанию» и отключали неиспользуемые сервисы. Из-за этого появлялись возможности для организации массовых атак. Сейчас для атак применяются обработчики файлов «по умолчанию», привязанные к их расширениям.
Ошибки формата
Работа современной сети подразумевает передачу сообщений с определенным форматом. Изменение формата можно использовать для организации нападений. Именно на этом основан метод «инъекций», т. е. введения в поле Web-формы команд для какого-нибудь интерпретируемого языка, скажем PHP или SQL. Возможность «инъекции» следует рассматривать как ошибку программирования. Массово такие ошибки используются в наиболее популярных решениях, предназначенных для Web-систем: службах управления контентом, форумах и других компонентах.
Переполнение буфера
Это подвид ошибки неправильного форматирования, при котором в программу можно передать слишком длинное сообщение и таким образом нарушить функционирование системы управления памятью. Встречается и целочисленное переполнение буфера: когда вместо беззнакового типа величин используется знаковый, злоумышленник может так подстроить параметры, чтобы в результате получилось отрицательное число. Данная ошибка очень часто используется для нападения. Хотя для переполнения буфера требуется определенное мастерство нападающего, наиболее опасные вирусные эпидемии основаны именно на таких ошибках.
Ошибки доступа к файлам
Они связаны с созданием временных файлов, в которых может храниться конфиденциальная информация. В некоторых случаях с помощью символьных ссылок удается изменить права доступа к временным файлам. Часто неправильная работа с файлами используется для загрузки на атакуемую машину необходимых программ и сценариев. В частности, задействуются файлы системных журналов, к которым известен путь доступа. Подобные ошибки применяются и как дополнительный механизм для захвата или получения конфиденциальной информации.
Ошибки в протоколах
Эти ошибки, хотя и встречаются реже других, наиболее сложно устранимы. Они появляются еще на этапе проектирования протоколов взаимодействия систем и обычно возникают, когда протокол начинают использовать в непривычных для него условиях. На них опираются преимущественно для организации DoS-атак, но возможны и более серьезные последствия, затрагивающие много пользователей и программных продуктов. Так, дефект протокола TCP может привести к разрушению инфраструктуры Internet, поскольку на его основе базируются протоколы маршрутизации.