Файл: Методы обнаружения попыток взлома операционной системы (Методы взлома компьютерных систем).pdf
Добавлен: 05.04.2023
Просмотров: 597
Скачиваний: 7
СОДЕРЖАНИЕ
1. Теоретические особенности информационно безопасности
1.1 Основы информационной безопасности
1.2 Ключевые принципы информационной безопасности
2. Анализ методов и инструментов взлома операционных систем
2.1 Методы взлома компьютерных систем
2.2 Инструменты взлома операционных систем
3. Методы обнаружения попыток взлома операционной системы
3.1 Обнаружение вторжений в систему
Среди таких операционных систем наиболее известны Kali Linux, Arch Linux, Parrot Security OS и т.д. Большинство сборок для проведения тестов на проникновение организованы на базе операционных систем Linux. Впрочем, это и не удивительно, так как Windows, имея закрытую часть операционной системы, мало кем рассматривается в качестве подходящей операционной системы для подобных целей. Взломщики, в большинстве случаев, предпочитают операционные системы на базы именно ядра Linux, поскольку в данном случае они могут обеспечить большую анонимность и контролируемость своей деятельности [9].
Среди основных инструментов можно для взлома можно отметить такие как различные сканеры уязвимостей, генераторы эксплойтов, парсеры информации, сборщики паролей, разнообразные вспомогательные программы, которые, например, могут открывать определенные порты, создавать полезную нагрузку, отключать антивирусы и т.д.
В связи с совершенствованием программирования вредоносного программного обеспечения и развитием аппаратного обеспечения, предназначенного для взлома, в последние годы все больше набирают популярность автоматизированные атаки, когда задается широкий круг целей, а не выбираются единичные жертвы.
В качестве практического примера можно привести фреймворк masscan, с помощью которого можно сканировать диапазоны ip-адресов через сеть интернет на предмет наличия открытых портов на каких-либо хостах, чтобы затем подбирать пароли к административным панелям данных устройств и в дальнейшем внедрять вредоносный код в операционные системы, за которыми они закреплены. Как правило, от подобных массовых атак можно защититься заранее, если корректно настраивать имеющееся оборудование[3, c 325].
Гораздо более сложным вопросом становится защита от целевых атак, которые в большинстве случаев крайне тщательно готовятся и направлены для достижения вполне конкретных целей.
Например, это могут быть атаки на компьютеры банка, либо какой-то коммерческой компании, чтобы реализовать похищение денежных ресурсов. И в данном случае набор инструментов для взлома будет строго индивидуальным. При этом, как правило, пишутся специальные эксплойты, которые учитывают конкретную компьютерную архитектуру.
В целом же, можно сделать вывод, что использование каких-либо определенных инструментов для взлома компьютерных систем зависит от различных факторов, среди которых целесообразность применения тех или иных инструментов, возможности злоумышленников, особенности архитектуры, которую требуется атаковать. Одни из таких инструментов являются общедоступными, другие разрабатываются индивидуально под конкретные цели.
3. Методы обнаружения попыток взлома операционной системы
3.1 Обнаружение вторжений в систему
В данной части работы рассмотрим некоторые основные методы обнаружения вторжений в систему. Следует отметить, что рассмотреть их все было бы достаточно сложно, поскольку существует чрезвычайно обширное количество подобных методов. При всем при этом, далеко не все из них используются в практической деятельности постоянно. Зачастую требуется использование только определенного набора техник, выбор которых определяется особенностями операционной системы, условий ее использования.
Прежде всего, отметим следующее. Изменения в настройках, файлах и атрибутах различных файлов являются обычным делом для IT-отделов. Но среди огромного количества практически постоянных модификаций могут появляться те, которые оказывают непосредственное влияние на целостность файлов и настроек. Эти изменения также способны снижать уровень безопасности защищаемой системы, а в отдельных ситуациях могут послужить основными индикаторами вторжения в систему [9]. Список элементов, которые отслеживаются на предмет непредвиденных изменений в файлах или настройках, включает в себя:
- Учетные данные пользователей и администраторов
- Настройки прав доступа и прочие настройки безопасности
- Содержимое определенных файлов
- Ключевые атрибуты и размер файлов и директорий
- Хэш-суммы
- Показатели настроек (осуществляется контроль за различными параметрами)
Для отслеживания целостности файлов существует значительное коммерческих и свободных к распространению программных продуктов. Среди них можно выделить, например, следующие:
- CimTrak
- OSSEC
- Samhain
- Tripwire
- Qualys
- nCircle
- Verisys
- AIDE [4]
На рисунке 1 можно увидеть панель монитора, с помощью которой проверяется целостность файлов nCircle
Рисунок 1
Следует отметить, что в данной ситуации далеко не все в порядке. Если рассмотреть показанный ниже пример, то станет ясно, что не так на рисунке 2.
Рисунок 2
В данном случае атакующий создает в операционной системе папку с названием '. '. В нормальной ситуации команда ls –a покажет только одну директорию с подобным названием. Здесь же можно увидеть две таких папки, что должно послужить сигналом проявить более пристальное внимание. В скрытую директорию можно попасть с помощью команды cd '. ', добавив после точки один пробел.
Очень часто эти скрытые папки находятся в хорошо известных местах наподобие /root, /var/www, /home и т. д.
Дополнительные учетные записи системы. Приниматься во внимание должна каждая учетная запись системы. Если в системе существуют аккаунты, о принадлежности которых никто не знает, это может быть сигналом вторжения в систему. Пример дополнительного аккаунта DBNET показан на рисунке 3.
Рисунок 3
Далее рассмотрим метки времени. Метка времени представляет собой момент, в который событие было зафиксировано компьютером, а не момент, в который оно происходило. Во многих случаях разница может быть совершенно не значительной: время фиксации события (в журнале событий) близко ко времени совершения события[9].
Эти данные обычно представлены в определенном формате, который позволяет легко сравнить две различные записи и отследить изменения в течение какого-либо времени. Практика согласованного записывания меток времени вместе с реальными данными носит название таймс темпинга.
Предположим, что существует множество папок и исполняемых файлов в папке C:/Windows/System32, которые имеют имеют метки времени, близкие ко времени инсталляции операционной системы, но один из файлов значительно отличается по времени создания. И это может свидетельствовать о проблеме. Очевидно, что данный исполняемый файл может быть просто дополнительным программным обеспечением, которое установлено в систему позднее, но также может быть вредоносным ПО, которое располагается в данной директории. Вредоносные файлы Windows часто размещаются в данной папке. На рисунке 4 видно, что месяц модификации одной папки отличается от месяца модификации остальных[8].
Рисунок 4
Следующий важный момент касается скрытых файлов и папок. Скрытый файл представляет собой файл, который обычно не видно при просмотре содержимого директории, в которой он находится. Аналогично, скрытая папка – папка, которая обычно не видна, при просмотре содержащей ее папки. Файл является именованной коллекцией связанной информации, которая представляется пользователю как единый, неразрывный блок данных, располагающийся в некотором хранилище. Хранилищами являются компьютерные устройства или носители информации, содержащие данные относительно продолжительный период времени (годы или десятилетия), например, жесткие диски, CDROM или магнитные полосы. Этим они отличаются от оперативной памяти, которая способна сохранять данные лишь до тех пор, пока она имеет источник электрического питания.
Скрытые элементы UNIX-подобной ОС достаточно легко отличить от тех, которые не скрыты, поскольку их имена начинаются с точки. В UNIX-подобных операционных системах точки могут появляться в любом месте имени файла, папки или ссылки и произвольное число раз. Однако, особое значение они имеют только для маркировки скрытых файлов или папок.
В операционных системах Microsoft Windows скрытость объекта файловой системы является атрибутом так же, как и свойства "только чтение" или "системный" (а именно, файл, критичный для работы операционной системы). Изменение видимости подобных элементов является многоэтапной процедурой.
В UNIX-подобных операционных системах объекты файловой системы имеют больше атрибутов, чем в операционных системах Microsoft Windows. Атрибуты включают систему разрешений, которые определяют, какие пользователи имеют доступ на чтение, запись и выполнение к каждому из объектов файловой системы. Однако, видимость объекта атрибутами не задается. Это лишь неявное свойство, которое легко меняется путем добавления точки в начало имени объекта или, наоборот, ее удаления.
Многие операционные системы и приложения скрывают объекты, чтобы уменьшить вероятность того, что пользователь удалит или испортит критичные системные и конфигурационные файлы. Скрытие объектов также может быть полезно для уменьшения визуального беспорядка в папках, что упрощает пользователям поиск файлов и поддиректорий.
Сделав объекты файловой системы скрытыми, можно также защитить их от случайного подглядывания. Хотя скрытые файлы и папки легко сделать видимыми, большая часть пользователей даже не знают, что эти файлы и папки существуют (ну и не надо).
Отслеживание запущенных в системе процессов. Что не так со списком запущенных процессов Linux-системы на рисунке 5?
Рисунок 5
В данном случае следует рассмотреть процесс ./httpd. Точка и слеш в начале имени процесса свидетельствуют о том, что он был запущен непосредственно из директории. Процессы на сервере обычно не запускаются непосредственно из своих директорий. Атакующий запустил процесс и пытается спрятать его, путем переименования в ту программу, которая обычно присутствует на серверах.
Файлы со странными именами. Вредоносное ПО часто создает файлы со странными названиями. Пример таких названий для систем Windows показан на рисунке 6:
Рисунок 6
На изображении можно увидеть, что запущен файл k4hkjhl4kkl4hj.exe. Это является первым признаком того, что в системе происходят подозрительные процессы. Однако, не стоит путать с вредоносными файлами обновления операционной системы, а также некоторые другие типы файлов со случайным набором символов в наименовании [6, c. 412].
Руткит представляет собой скрытую вредоносную программу, которая создается для того, чтобы скрывать присутствие в системе определенных вредоносных программ и процессов от обычных методов обнаружения, а также для получения постоянного привилегированного доступа к операционной системе. Непосредственно сам термин «руткит» происходи тот двух слов "root" (название привилегированной учетной записи в системах семейства UNIX, из которой можно производить любые действия в системе) и "kit" (которое обозначает набор программных компонентов, входящих в состав различных пакетов программ). Термин руткит обладает негативной коннотацией из-за его связи с вредоносным программным обеспечением [6, c 320].
Обнаружение рутки товявляется крайне непростой задачей, поскольку руткит может нарушать работу программного обеспечения, предназначенного для его обнаружения. Методы обнаружения руткитов включают применение альтернативных и доверенных операционных систем, анализ поведения, сигнатурное сканирование, разностное сканирование и анализ дампов памяти. Удаление руткита может быть сложным или практически невозможным, особенно, когда руткит располагается в ядре. Единственным решением проблемы в таком случае может быть переустановка ОС. Для удаления руткитов прошивок (или ромкитов) может потребоваться соответствующее оборудование или даже замена какой-либо аппаратной части устройства.
Руткиты уровня ядра способны запускаться с наивысшими правами в операционной системе (в нулевом кольце), делают это они путем добавления кода или замены участков кода ядра операционной системы и связанных с ним драйверов устройств. Большая часть операционных систем поддерживают запуск драйверов устройств в режиме ядра, то есть, с привилегиями самой операционной системы. Поэтому многие руткиты уровня ядра создаются как драйверы устройств или загружаемых модулей, например, загружаемые модули ядра в Linux или драйвера устройств в Windows. Данный класс руткитов располагает неограниченным доступом к операционной системе, но сложнее всего в написании. Сложность порождает ошибки, а любые ошибки в коде, работающем на уровне ядра, серьезно влияют на стабильность системы, что приводит к обнаружению руткита. Один из первых широко известных руткитов был разработан для Windows NT 4.0 и опубликован в журнале Phrack в 1999 году[4, c 165]. Сейчас он интересен только в академических целях и представляет только исторический интерес.