Большой проблемой современного мира являются хакерские атаки. Соответственно, ищутся способы защиты от них, а для этого необходимо представление о способах их проведения.
Возникает вопрос, какие факторы дают нарушителю возможность проникновения в чужие системы. К ним можно отнести:
1. Открытость системы, свободный доступ к информации по организации сетевого взаимодействия, протоколам и механизмам защиты;
2. Наличие ошибок в программном обеспечении, операционных системах и утилитах, которые открыто публикуются в сетях;
3. Разнородность используемых версий программного обеспечения и операционных систем;
4. Сложность организации межсетевого взаимодействия;
5. Ошибки конфигурирования систем и средств защиты;
6. Неправильное администрирование систем;
7. Несвоевременное отслеживание и выполнение рекомендаций специалистов по защите и анализу случаев вторжения для ликвидации лазеек и ошибок в программном обеспечении;
8. «Экономия» на средствах и системах обеспечения безопасности или игнорирование этих систем;
9. Умолчание о случаях нарушения безопасности своего хоста или сети [1].
Если формализовать процесс взлома, то он будет состоять из следующих этапов:
1. Сбор информации;
2. Подбор инструментов;
3. Доставка;
4. Эксплойт;
5. Установка дополнительного программного обеспечения;
6. Управление и контроль;
7. Действия.
Атаки должны планироваться на основе актуальной и достоверной информации о целях; так же нужно иметь информацию о своих собственных имеющихся ресурсах. Сбор может быть пассивным, когда информация находится из открытых источников, и активным, когда недостающую информацию достают своими силами.
Активный сбор всегда начинается со сканирования портов. Это можно осуществить с помощью различных сканеров: сканеры портов, сканеры безопасности, сканеры открытых ресурсов [1].
После того, как было определено, что закреплено за каждым портом, можно воссоздать информацию о системе. Следующим шагом определяется конфигурация системы. Можно узнать какая операционная система стоит, программное обеспечение и его версии.
Необходимо постоянно обновлять полученную информацию, т. к. владельцы могут применять дополнительные меры по защите своих систем.
Подбор инструментов
Далее необходимо выбрать эффективные способы воздействия на цель. Под этим подразумевается аппаратное и программное обеспечение, например вирусные программы.
Есть три категории целей:
1. Незащищенные;
2. Стандартно защищенные — используются антивирусы и межсетевой экран;
3. Особо защищенные цели — к стандартным механизмам добавляются IPS (система предотвращения вторжений) и IDS (система обнаружения вторжений).
Для взлома незащищенных целей можно обойтись простыми инструментами из Интернета. Что касается стандартно защищенных целей, то, нужен код, который сломает защиту, и полезная нагрузка, которая будет воздействовать на цель. Полезная нагрузка включает данные, которые нужны для манипуляций с атакуемой системой. Но для этого сначала нужно выяснить, какие уязвимости в системе есть. В базах данных CVE (Common Vulnerability and Exposure) есть сведения об уязвимостях, выявленных аналитиками безопасности и исследователями.
Подбор инструментов — это повторяющийся процесс, т. к. информация о системе постоянно обновляется, и возможно придется выбирать новые инструменты.
Фаза доставки описывает перенос инструмента к системе, выбор способа доставки зависит от выбранных инструментов.
Если есть пользовательские ошибки, то доставка очень проста. Зачастую в системе контроля есть брешь, или она отключена, тогда полезная нагрузка может быть просто загружена и установлена. Но такое бывает крайне редко. Для выбора способа пользуются информацией, полученной на этапе сбора. Простейший способ — воспользоваться учетными данными пользователя на уровне администратора, тогда у взломщика есть неограниченные возможности по эксплуатации системы, включая установку и удаление программного обеспечения.
Если есть учетные данные без администраторских прав, то, воспользовавшись ими, можно доставить полезную нагрузку, а затем с помощью инструментов поднять привилегии. Есть два способа доставить полезную нагрузку без прав доступа к атакуемой системе: создать пользователя с достаточными правами доступа или взломать систему и установить данные без входа в нее.
Также можно воспользоваться методами социальной инженерии и выведать у пользователей необходимую информацию.
Если пользователь системы никак не может помочь хакеру в доставке, то ему остается использовать уязвимые службы в системе. Уязвимая служба может позволить загрузить вредоносный код без учетных данных пользователя и проверок безопасности.
Доставку можно автоматизировать. Самая известная форма автоматизированной доставки — компьютерные вирусы.
Главным инструментом становятся ботнеты, которые автоматизируют процесс и могут делать это целенаправленно. Они позволяют автоматизировать значительную часть операции, т. к. можно автоматизировать команды, контроль и все действия, совершаемые в атакуемой системе, которые в случае ботнета заключаются в заражении большего числа машин или модификаций системы.
После того как доставка была осуществлена, необходимо активировать полезную нагрузку. Этот этап называется эксплойт.
Когда данные пользователей не позволяют получить администраторский доступ к системе, нужно искать способы управления системой для исполнения системной нагрузки.
Большинство программных эксплойтов основаны на искажении данных в памяти. К ним относятся такие стандартные приемы, как эксплойт переполнения буфера и менее распространенный эксплойт форматной строки. Во всех случаях конечной целью является получение контроля над выполнением атакуемой программы, с тем, чтобы заставить ее выполнить вредоносный фрагмент кода, который теми или иными средствами удалось поместить в память. Это называется выполнением произвольного кода, поскольку хакер может заставить программу делать практически что угодно [2].
Успешный эксплойт обеспечивает привилегированный доступ к целевой системе без учетных данных пользователя. Проведенные изменения не являются постоянными, полезная нагрузка только хранится в оперативной памяти и выполняется в ней. Чтобы создать постоянный черный ход в систему или подготовить и выполнить намеченные мероприятия требуется другое вредоносное ПО.
Единственный способ контролировать такие модификации — это создание копий содержимого памяти, которые должны анализироваться на отдельной машине. Это очень продвинутая технология, требующая экспертных знаний и много ресурсов, и поэтому будет использоваться только в самых исключительных случаях.
Установка дополнительного программного обеспечения
После успешного эксплойта или получения доступа к системе из-за неправильной конфигурации или пользовательских ошибок для исполнения задуманных действий может потребоваться установка дополнительного ПО, если нельзя воспользоваться функциональностью предоставляемой ОС целевой системы или установленным ПО. Если взлом проводится для уничтожения системы, установка не требуется.
В большинстве случаев нужно установить средство удаленного управления, которое должно быть постоянно доступно и открывало бы злоумышленнику черный ход для контроля над системой. Такое средство должно удовлетворять требованиям:
1. Пользователи и администраторы системы не должны узнать, что у них установлено средство удаленного доступа, поэтому оно должно быть невидимым для них;
2. Средство удаленного доступа должно быть постоянно установлено и должно выдерживать перезагрузку системы;
3. Средство удаленного доступа должно быть устойчиво к патчам и установке и удалению ПО.
Скрытие средства удаленного доступа является наиболее важной задачей. После того как оно будет обнаружено, администраторы целевой системы узнают, что их система была взломана и примут меры для его удаления. Было разработано множество стратегий скрытия средств удаленного доступа, включая:
1. Установка в системных папках;
2. Установка во временные папки;
3. Установка в папках данных.
Чтобы повысить устойчивость средства удаленного доступа, используются так называемые руткиты. Они характеризуются по их способности скрывать или удалять пути их размещения, деятельности или существования. Вместо того чтобы выполняться как постороннее приложение, традиционные руткиты заменяют особо важные исполняемые программы операционной системы, чтобы позволить атакующему иметь доступ через черный ход и скрываться в системе [2]
Если руткит был успешно установлен, его не обнаружили и не удалили, то целевая система контролируется злоумышленником, и могут быть проведены любые вредоносные действия. Руткиты и средства удаленного доступа часто сочетаются злоумышленником для поддержания доступа. Установив такое сочетание на целевой системе, злоумышленник может контролировать ее и исполнять любую команду.
Если все ПО, требуемое для взлома, было установлено на целевую систему, нужно начинать запланированные действия. Для этого должны быть предусмотрены средства управления и контроля, с помощью которых злоумышленник может производить изменения в системе. Они состоят из средства удаленного доступа, блока контроля, и средств связи.
Управление и контроль обычно осуществляются посредством сети связи. В то время как защищенные системы следят за своим сетевым трафиком и проверяют его на подозрительную активность, командование и контроль обычно спрятаны в скрытых каналах, где связь нарушителя с целевой системой встроена в другую сетевую связь. Если на целевую систему были установлены руткиты, их тоже можно использовать для скрытия связи. Нахождение скрытых каналов очень сложно и требует много опыта и специальных инструментов для статистического анализа.
Чтобы избежать отслеживания операторами целевой системы, каналы контроля и управления должны устанавливаться динамически и только при необходимости.
Если злоумышленники могут успешно выполнить любую команду на целевой системе, список возможных действий неограничен. Уничтожение системы — самое известное воздействие от атак, но не трагичное для операторов целевой системы, т. к. вторжение мгновенно замечается и можно восстановить систему из резервных копий или провести переустановку системы. Тем не менее, система простаивает.
Этого нельзя сказать о раскрытии информации. Потеря бизнес-данных или даже конфиденциальной информации может нанести вред бизнесу, государственным структурам или пользователям. Такой эффект может быть более разрушительным, чем уничтожение системы.
Самое изощренное — это провести изменения, которые нарушают работу системы и заставляют ее операторов выяснять какие изменения в данных или ПО были сделаны.
Заключение
Очевидно, что взлом скорее искусство, чем наука: это инстинкт талантливого хакера. Хакерство — это не миф, это случается и случается каждый день. Невозможно найти решение, которое бы полностью обезопасило ИТ системы, поэтому, чтобы не стать уязвимыми, нужно постоянно быть в курсе новых методов проведения атак и существующих инструментов. Гонка между теми, кто занимается взломом и тем, кто защищает системы, не прекратится, единственная возможность максимально обезопасить себя это идти в ногу с быстро развивающимися технологиями.
Литература:
1. Глушаков, С. В. Секреты хакера: защита и атака / С. В. Глушаков, М. И. Бабенко, Н. С. Тесленко. — изд. 2-е, доп. И перераб. — М.: АСТ: АСТ МОСКВА: Хранитель, 2008. — 544 с. — (Учебный курс);
2. Эд Скудис. Противостояние хакерам. Пошаговое руководство по компьютерным атакам и эффективной защите: Пер. с англ. — М.: ДМК Пресс. — 512 с.: ил. (Серия «защита и администрирование»). 2003;
3. Козиол Дж., Личфилд Д., Эйтэл Д., Энли К. Искусство взлома и защиты систем. — СПб. Питер, 2006. — 416 с.: ил.;
4. Katharina Ziolkowski (ed.), Peacetime Regime for State Activities in Cyberspace. International Law, International Relations and Diplomacy, NATO CCD COE publication, Tallinn 2013.