Uploaded by - Токарев

Выявление инцидентов и противодействие атакам на объекты критической информационной инфраструктуры.

advertisement
Министерство науки и высшего образования РФ
Томский государственный университет
систем управления и радиоэлектроники
А.А. Конев, А.Ю. Якимук
ВЫЯВЛЕНИЕ ИНЦИДЕНТОВ И
ПРОТИВОДЕЙСТВИЕ АТАКАМ НА ОБЪЕКТЫ
КРИТИЧЕСКОЙ ИНФОРМАЦИОННОЙ
ИНФРАСТРУКТУРЫ
Учебно-методическое пособие
для студентов направлений подготовки
10.00.00 Информационная безопасность
Томск
2022
УДК 004.056
ББК 32.973.26-018.2
К 64
Рецензент:
Давыдова Е.М., доцент кафедры комплексной
информационной безопасности электронновычислительных систем ТУСУР, канд. техн. наук
Конев, Антон Александрович
К 64 Выявление инцидентов и противодействие атакам на
объекты критической информационной инфраструктуры:
учебно-методическое пособие / А.А. Конев, А.Ю. Якимук.
– Томск: Томск. гос. ун-т систем упр. и радиоэлектроники,
2022. – 174 с.
Настоящее учебно-методическое пособие содержит описания
лабораторных и самостоятельных работ по дисциплине «Выявление
инцидентов и противодействие атакам на объекты критической
информационной инфраструктуры» для направлений подготовки, входящих
в укрупненную группу специальностей и направлений 10.00.00
Информационная безопасность.
УДК 004.056
ББК 32.973.26-018.2
© Конев А.А., Якимук А.Ю. 2022
© Томск. гос. ун-т систем упр. и радиоэлектроники, 2022
2
СОДЕРЖАНИЕ
Введение........................................................................................................... 4
ЛАБОРАТОРНАЯ РАБОТА №1
Выявление инцидентов информационной безопасности ............................ 5
ЛАБОРАТОРНАЯ РАБОТА №2
Защита баз данных предприятия ................................................................. 39
ЛАБОРАТОРНАЯ РАБОТА №3
Защита контроллера домена предприятия .................................................. 61
ЛАБОРАТОРНАЯ РАБОТА №4
Защита данных файлового сервера ............................................................. 82
ЛАБОРАТОРНАЯ РАБОТА №5
Защита данных сегмента АСУ ТП ............................................................ 104
ЛАБОРАТОРНАЯ РАБОТА №6
Защита научно-технической информации предприятия ........................ 123
ЛАБОРАТОРНАЯ РАБОТА №7
Защита корпоративного портала от внутреннего нарушителя .............. 145
Литература ................................................................................................... 174
3
Введение
Целью преподавания дисциплины является освоение основных
принципов
управления
инцидентами
информационной
безопасности и основ мониторинга инфраструктуры организации,
а также формирование знаний о процессах и системах
мониторинга.
Задачи изучения дисциплины – получение студентами:
‒ знаний о принципах определения событий информационной
безопасности (ИБ) как инцидентов ИБ;
‒ умений и навыков по оценке и реагированию на
идентифицированные инциденты ИБ;
‒ знаний об основных методах контроля обеспечения
информационной безопасности в организации;
‒ умений и навыков нормативному обеспечению управления
инцидентами информационной безопасности;
‒ умений и навыков планирования, подготовки, использования,
анализа и улучшения процесса управления инцидентами
информационной безопасности;
‒ умений и навыков реагирования на инциденты
информационной безопасности.
4
ЛАБОРАТОРНАЯ РАБОТА №1
Выявление инцидентов информационной безопасности
В лабораторной работе были рассмотрены аспекты работы с
комплексом Ampire от лица преподавателя, участника группы мониторинга
и группы реагирования.
Программный комплекс Ampire предназначен для обучения будущих
сотрудников профильных подразделений методам выявления компьютерных
атак, развитию практических навыков расследования компьютерных
инцидентов ИБ, алгоритмам группового взаимодействия, реализации
защитных
мер
по
устранению
найденных
недостатков
ИБ
в
информационных сетях общего и специального назначения (кредитнофинансовая сфера, КИИ, телеком и т.д.). Ampire в учебном процессе – это
платформа, позволяющая проводить практические занятия на цифровом
двойнике реальной инфраструктуры.
Назначение учебно-тренировочной платформы Ampire:
–
отработка навыков выявления компьютерных атак;
–
отработка навыков расследования инцидентов ИБ;
–
отработка
навыков
оценки
защищённости
элементов
информационных сетей;
–
отработка взаимодействия между подразделениями;
–
отработка методических рекомендаций по нейтрализации
компьютерных атак;
–
отработка
превентивных
мер
по
предупреждению
компьютерных атак и инцидентов.
Организация процесса отражения атаки происходит с участием двух
команд: мониторинга и реагирования.
Задачи группы мониторинга: анализ событий ИБ, заведение карточек
инцидентов, описание вектора атаки (Cyber Kill Chain). Задачи группы
реагирования: расследование инцидентов, устранение уязвимостей.
5
Ход работы
1.
Начало работы с Ampire
Перейдите на ресурс Ampire. Для этого введите в поисковой строке
браузера ampire.am.int (Рисунок 1).
Рисунок 1 – Переход на сайт Ampire
Перед вами всплывает окно авторизации (Рисунок 2). Для
дальнейшей работы в системе у каждого пользователя должна быть своя
учетная запись (обратиться к преподавателю).
Рисунок 2 – Окно авторизации Ampire
Если вам будет одобрен доступ к системе с учетной записи
преподавателя – самостоятельно перейдите во вкладку Пользователи и
добавьте новую группу (Рисунок 3).
6
Рисунок 3 – Окно добавления новой группы
После ввода названия группы можно перейти к регистрации новых
пользователей. Нажмите на кнопку Добавить в окне Пользователи и введите
соответствующие данные. Регистрация нового пользователя представлена на
рисунках 4–5.
Рисунок 4 – Создание нового пользователя
Рисунок 5 – Новый пользователь
7
После создания группы и добавления в неё пользователей можно
перейти к созданию новой тренировки. Для этого в верхнем правом углу
перейдите во вкладку Тренировки и нажмите на кнопку Добавить (Рисунок
6).
Рисунок 6 – Вкладка создания новой тренировки
Перед вами появится окно создания новой тренировки (Рисунок 7).
Рисунок 7 – Окно создания новой тренировки
Заполните соответствующие поля. Выберите шаблон, содержащий
сценарий (Рисунок 8).
8
Рисунок 8 – Выбранный шаблон
Выберите сценарий, по которому будет проходить тренировка. На
момент написания методических указаний в систему интегрированы 6
сценариев (Рисунок 9).
Рисунок 9 – Сценарии тренировки
Выберите длительность тренировки. Продолжительность выбирается
в зависимости от цели запуска тренировки. Для проверки навыков
прохождения можно поставить более низкую продолжительность. Для более
подробного
знакомства
с
системой
поставьте
максимальную
продолжительность (Рисунок 10).
По истечении таймера вы всё так же сможете работать с системой
сценария и самостоятельно закрывать уязвимости, однако индикаторы
закрытия уязвимости на сайте Ampire обновляться больше не будут.
9
Рисунок 10 – Выставление продолжительность тренировки
В поле Группа выберите группу из которой далее будут добавлены
участники тренировки.
После выбора группы выберите участников тренировки. Во вкладке
участники отметьте галочками тех, кто будет добавлен в команду
мониторинга. Те, кого не отметят галочками автоматически будут
добавлены в группу реагирования.
Далее, выберите лидера команды группы реагирования. Лидер
группы реагирования будет распределять карточки инцидентов, полученные
от группы мониторинга между участниками группы реагирования, то есть,
по сути будет распределять обязанности для оперативного закрытия
уязвимостей.
Рисунок 11 – Выбор лидера команды группы реагирования
Сохраним изменения. Теперь новая тренировка будет отображаться в
окне так, как показано на рисунке 12.
10
Рисунок 12 – Созданная тренировка
Кликнув на тренировку можно просмотреть информацию о ней
(Рисунок 13).
Рисунок 13 – Информация о тренировке
Для запуска тренировки нажмите на кнопку Начать. Начнется
подготовительный процесс проведения атаки (Рисунок 14). В это время двум
командам следует подготовиться к началу работы.
11
Рисунок 14 – Подготовительный процесс проведения атаки
Можно просмотреть подробную информацию о сценарии.
–
Если нажать на вкладку Шаблон Корпоративная сеть – можно
увидеть логическую схему прохождения соответствующего сценария
(Рисунок 15). На схеме показаны все узлы, задействованные в процессе
совершения атаки. Логическая схема будет доступна для всех участников
тренировки.
Рисунок 15 – Логическая схема прохождения сценария
–
Если нажать на вкладку Сценарий Защита базы данных
предприятия – начнется скачивание архива с руководствами по эксплуатации
приложений к соответствующему сценарию (Рисунок 16).
12
Рисунок 16 – Загрузка материалов
В нижней части находятся логи прохождения атаки. В них отражены
действия нарушителя, проводящего атаку. Логи можно увидеть только с
учетной записи преподавателя.
О завершении подготовительного процесса можно узнать через
полоску загрузки, либо просмотрев последний лог (Рисунок 17). По логам
при необходимости можно организовать поиск, нажав на соответствующую
кнопку поиска (Рисунок 18).
Рисунок 17 – Завершение подготовительного процесса
Рисунок 18 – Поиск по логам
13
При необходимости тренировку можно досрочно завершить и
перезапустить (Рисунок 19).
На
время
написания
методических
указаний
перезапускать
тренировку крайне не рекомендуется. Лучшим решением в случае
необходимости будет завершение текущей тренировки и создание новой.
Рисунок 19 – Кнопки завершения и перезапуска тренировки
Далее, можно приступать к прохождению сценария. Для удобства во
время тренировки можно вывести всю необходимую информацию на
главный монитор. Для этого перейдем на вкладку Главное и нажмем на
вкладку тренировки (Рисунок 20).
Рисунок 20 – Вкладка тренировки
Прогресс прохождения тренировки будет отображен на дашборде
(Рисунок 21).
14
Рисунок 21 – Дашборд прогресса тренировки
Разберем обозначения индикаторов.
1.
Состояние закрытия уязвимостей. После успешного закрытия
одной из уязвимостей соответствующий индикатор загорится зелёным. При
потере подключения с сервером индикатор загорится голубым.
2.
Индикатор карточек инцидентов. Здесь отображается отношение
закрытых карточек (карточка считается полностью закрытой после
оценивания её преподавателем) к их общему числу.
3.
Индикатор
закрытых
уязвимостей.
Здесь
отображается
отношение закрытых уязвимостей к их общему числу.
4.
Коэффициент
эффективности
прохождения
сценария.
Показатель рассчитывается с учётом нескольких параметров, отражающих
продуктивность прохождения тренировки.
2. Работа команды мониторинга
С учетной записи участника группы мониторинга перейдем к
запущенной тренировке (Рисунок 22).
15
Рисунок 22 – Активная тренировка
Перед пользователем появится вся необходимая информация для
выполнения своей цели в прохождении сценария в рамках участника группы
мониторинга (Рисунок 23).
Ключевым полем является список IP адресов для подключения к
средствам обнаружения вторжений (Рисунок 24), где будут отображены
события и инциденты в рамках сценария. Для начала работы с этими
средствами достаточно просто нажать на их название, осуществится переход
по соответствующему IP.
Рисунок 23 – Список IP-адресов для подключения к средствам IDS
На
момент
написания
методических
указаний
в
системе
использованы 3 средства для обнаружения вторжений:
1)
Сетевой сенсор VIPNET IDS NS
ViPNet IDS NS обеспечивает автоматическое обнаружение угроз и
регистрацию событий в журнале. Информация о зарегистрированных
16
событиях хранится в базе данных ViPNet IDS NS. В базе данных выполняется
циклическая перезапись информации, при которой самые старые записи
журнала удаляются, а освободившееся место используется для записи новых
данных.
Для начала работы необходимо авторизироваться, используя
существующую учетную запись (обратиться к преподавателю) (Рисунок 24).
Рисунок 24 – Вход в учетную запись ViPNet IDS NS
Главная
веб-страница
программно-аппаратного
представлена на рисунке 25.
17
комплекса
Рисунок 25 – Главная страница ViPNet IDS NS
Для обнаружения уязвимости необходимо проанализировать журнал
событий ИБ сетевого сенсора ViPNet IDS NS. Для этого перейдите на вкладку
События (Рисунок 26).
Рисунок 26 – Журнал событий ИБ сетевого сенсора ViPNet IDS NS
ViPNet IDS NS обеспечивает автоматическое обнаружение угроз и
регистрацию событий в журнале. Информация о зарегистрированных
событиях хранится в базе данных ViPNet IDS NS. В базе данных выполняется
циклическая перезапись информации, при которой самые старые записи
журнала удаляются, а освободившееся место используется для записи новых
18
данных.
Для каждого зарегистрированного события в журнале может быть
зафиксирована информация, представленная на рисунках 27-29.
Рисунок 27 – Возможные параметры зарегистрированного события
19
Рисунок 28 – Возможные параметры зарегистрированного события
Рисунок 29 – Возможные параметры зарегистрированного события
Примените фильтрацию для выявления соответствующего события.
Особое внимание обратите на поля: название правила, уровень важности, IPадрес источника, IP-адрес получателя, порт получателя.
Проанализируйте подробную информацию о событии (Рисунок 30).
20
Рисунок 30 – Дополнительная информация о событии
Находите необходимую информацию, используя инструменты
фильтрации (Рисунок 31) и фиксируйте её.
21
Рисунок 31 – Параметры фильтрации событий
2)
TIAS
ViPNet TIAS (Threat Intelligence Analytics System) представляет собой
систему интеллектуального анализа угроз безопасности информации,
относящихся к атакам.
ViPNet
TIAS
предназначен
22
для
автоматического
выявления
инцидентов информационной безопасности в информационных системах на
основе анализа информации о событиях информационной безопасности,
поступающей от источников – сенсоров систем обнаружения атак
(вторжений).
ViPNet TIAS поддерживает работу со следующими источниками
событий информационной безопасности (далее – сенсоры):
–
Сетевой сенсор системы обнаружения атак ViPNet IDS NS
версии 2.4.3, 3.5.0, 3.5.1 и 3.6.0.
–
Система обнаружения вторжений ViPNet IDS HS версии 1.2.5,
1.4.0 и 1.5.0.
–
Межсетевой экран ViPNet xFirewall версии 5.0.1.
Для начала работы необходимо авторизироваться, используя
существующую учетную запись (обратиться к преподавателю) (Рисунок 31).
Рисунок 31 – Вход в учетную запись TIAS
Главная
веб-страница
программно-аппаратного
представлена на рисунке 32.
23
комплекса
Рисунок 32 – Главная страница TIAS
Чтобы узнать тип зарегистрированного события следует обратиться
к блокам с информацией, отражающей динамику регистрации событий на
стартовой странице TIAS (вкладка Инфопанель) (Рисунок 33).
Рисунок 33 – Блоки с информацией, отражающей динамику
регистрации событий
В рамках работы с системой Ampire следует обратить внимание на
вкладку События (Рисунок 34).
24
Рисунок 34 – Сетевые события TIAS
Принцип работы примерно такой же, как и в ViPNet IDS. Обозначения
тоже практически идентичны. Используйте инструмент фильтрации для
поиска
инцидентов.
Анализируйте
и
фиксируйте
подозрительные
происшествия.
3)
SECONION
Security Onion основан на Ubuntu и содержит Snort, Suricata, Zeek,
OSSEC, Sguil, Squert, NetworkMiner, Elastic Stack и многие другие
инструменты безопасности.
Для начала работы необходимо авторизироваться, используя
существующую учетную запись (обратиться к преподавателю) (Рисунок 35).
25
Рисунок 35 – Вход в учетную запись SecOnion
Kibana – один из инструментов, входящих в состав Security Onion,
позволяет быстро анализировать и переключаться между всеми различными
типами данных, генерируемыми данным дистрибутивом (Рисунок 36).
Рисунок 36 – Интерфейс визуализации данных Kibana
Squert - веб-приложение, которое используется для запроса и
26
просмотра данных о событиях, хранящихся в базе данных Sguil. Для того,
чтобы просмотреть данные о событиях, нужно кликнуть ссылку на вебприложение Squert на главной странице Kibana (Рисунок 37).
Рисунок 37 – Переход в Squert
Далее открывается веб-приложение Squert - визуальный инструмент,
предоставляющий дополнительный контекст для событий с помощью
метаданных. На картинке показан общий перечень идентифицированных
событий (Рисунок 38).
27
Рисунок 38 – Общий перечень идентифицированных событий
Для перехода на страницу с группировкой событий одного типа,
нужно нажать на цифру в столбце «QUEUE», выделено на картинке (Рисунок
39).
Рисунок 39 – Количество сгруппированных событий в очереди
28
Далее происходит переход на страницу с группировкой событий
одного типа (Рисунок 40).
Рисунок 41 – Перечень инцидентов, связанных с эксплуатацией
конкретной уязвимости
Функционал вышеперечисленных инструментов очень обширен,
однако для работы с системой Ampire на данном этапе будет достаточно
знаний об анализе событий и инцидентов. Для более подробного
ознакомления с системами можно обратиться к методическим материалам
(Рисунок 15).
После анализа событий участнику группы мониторинга следует
заполнить карточку описания вектора атаки Cyber Kill Chain (Рисунок 41).
В карточке следует описывать обновленную информацию, которую
удается выяснить в процессе расследования инцидента. Такую карточку
может заполнят любой участник группы реагирования. После сохранения
данных, внесенных в карточку её содержимое могут просмотреть все
29
участники тренировки. Таким образом удобно обмениваться информацией
между участниками.
Рисунок 42 – Перечень инцидентов, связанных с эксплуатацией конкретной
уязвимости
Рисунок 43 – Перечень инцидентов, связанных с эксплуатацией конкретной
уязвимости
30
Результатом работы участников группы мониторинга должны быть
корректно заполненные карточки инцидентов, в которых содержится
максимально точная и корректная информация об обнаруженном действии
нарушителя. Общий вид новой карточки инцидента представлен на рисунке
43.
Рисунок 44 – Общий вид карточки инцидента
Следует придерживаться следующим рекомендациям:
поле «Название» - указывается краткое описание выявленного инцидента с
привязкой к объекту и способу воздействия;
–
атака.
поле «Источник» - указывается ip-адрес, с которого проводилась
Это
может
быть
«прямой»
адрес
нарушителя
или
адрес
промежуточного узла (сетевой порт указывать не нужно);
–
поле «Пораженные хосты» - указывается ip-адрес узла (или
узлов) на которые проводится воздействие. Если узлов несколько, то
указываем их через запятую;
–
поле «Индикаторы» - значение поля может быть взято из
классификации атаки в том средстве защиты, которое используется в
тренировке;
–
поле «Дата» - указывается дата и время фиксирования инцидента
31
с помощью всплывающего календаря и часов;
–
поле «Файл» - в поле прикладывается либо дамп трафика из
системы обнаружения вторжений либо лог прикладного сервиса. Файл
помогает группе реагирования быстрее оценить ситуацию;
–
поле «Описание» - приводятся детали атаки, которые были
получены участниками группы мониторинга при анализе событий в
средствах
защиты,
поиска
информации
в
открытых
источниках,
коллективном обсуждении и т.д.;
–
поле
«Рекомендации»
-
приводится
перечень
мер,
предназначенных для локализации нарушителя, изолировании пораженных
узлов, способам устранения и т.д.
Сведения в полях «Описание» и «Рекомендации» должны быть
конкретными и не расплывчатыми.
Основную информацию для заполнения карточки можно найти,
используя средства обнаружения вторжений.
Пример хорошего заполнения карточки инцидента представлен на
рисунке 44.
Рисунок 45 – Пример хорошего заполнения карточки инцидента
32
После сохранения карточки она будет помещена в панель Инциденты
(Рисунок 45). Нажав на неё можно получить всю информацию (Рисунок 46).
Рисунок 46 – Отображение карточки инцидента
Рисунок 46 – Созданная карточка инцидента
После создания необходимого количества карточек – дело переходит
в руки группы реагирования.
3.Работа команды реагирования
Предварительно авторизировавшись под своей учетной записью и
узнав о своей роли лидера группы реагирования, перейдём к текущей
тренировке (Рисунок 47).
33
Рисунок 47 – Окно тренировки лидера группы реагирования
Нажмем
на
появившуюся
карточку
инцидента,
нажмем
на
соответствующую кнопку и назначим ответственного (Рисунок 48).
Рисунок 48 – Назначение ответственного
Статус карточки изменился. В примере карточка выдана самому себе,
так что имеется возможность её закрыть. После закрытия инцидента
преподаватель может рассмотреть закрытую карточку инцидента и
34
поставить соответствующую оценку, то есть, оценить, насколько хорошо
студент справился с закрытием предназначенного ему инцидента.
Так же, как и у участника группы мониторинга, у участника группы
реагирования есть окно с IP адресами (Рисунок 49). Однако теперь адрес
один и ведёт он к удалённому рабочему месту через RDP-подключение.
Для подключения к удаленному рабочему столу необходимо открыть
средство для подключения к удаленном рабочему столу. Введите указанный
IP (рисунок 49).
Рисунок 48 – IP адрес для удаленного подключения
35
Рисунок 49 – Средство подключения к удаленному рабочему столу
После успешного подключения необходимо авторизирироваться под
одной из учетных записей (Рисунок 50) (обратиться к преподавателю).
Рисунок 50 – История запросов
После успешного входа под одной из учетных записей вам откроется
удаленный рабочий стол (Рисунок 51). PDF-файл с необходимыми
паролями для перехода к виртуальным машинам находится на рабочем
столе.
36
Рисунок 51 – Удаленный рабочий стол
Далее
происходит
закрытие
уязвимостей
в
соответствии
с
методическими указаниями.
После закрытия всех уязвимостей и карточек инцидентов тренировку
необходимо завершить с аккаунта администратора.
37
Контрольные вопросы:
1.
Для чего предназначен программный комплекс Ampire?
2.
Как происходит организация процесса отражения атаки?
3.
Своими словами объясните: для чего предназначена логическая
схема сценария.
4.
Что значит каждый индикатор на дашборде при прохождении
тренировки?
5.
Что вы уже знаете про средства обнаружения вторжений?
6.
Кратко расскажите о сетевом сенсоре VIPNET IDS NS.
7.
Кратко расскажите о TIAS.
8.
Кратко расскажите о SecOnion.
9.
Для чего предназначены карточки инцидентов? Поясните, как их
нужно заполнять.
10. Для чего предназначены карточки Cyber Kill Chain?
11. В чём роль лидера группы реагирования?
38
ЛАБОРАТОРНАЯ РАБОТА №2
Защита баз данных предприятия
В
лабораторной
работе
была
рассмотрена
атака
злоумышленника на сайт компании с целью получения доступа к
внутренним ресурсам.
После обнаружения и эксплуатации уязвимости нарушитель
получает доступ к серверу, который помимо основной
информационной задачи предоставляет пользователям компании
инструмент для генерации отчетов. С помощью этого вектора
нарушитель пробует получить доступ на рабочие машины
сотрудников.
Главная цель – сделать дамп корпоративной базы данных.
Квалификация нарушителя средняя. Он умеет использовать
инструментарий для проведения атак, а также знает техники
постэксплуатации.
Средство обнаружения вторжений – программно-аппаратный
комплекс для обнаружения вторжений в информационные системы
ViPNet IDS.
Рассматриваемые уязвимости:
1. drupalgeddon2 (CVE-2018-7600);
Drupalgeddon2 (CVE-2018-7600) - критическая уязвимость
удаленного выполнения кода в программном обеспечении Drupal
CMS. Drupalgeddon2 позволяет удаленному злоумышленнику, не
прошедшему проверку подлинности, выполнять вредоносный код
при стандартной или стандартной установке Drupal с правами
пользователя.
Drupal (CMS) - это информационная система или
компьютерная программа для обеспечения и организации
совместного процесса создания, редактирования и управления
контентом.
Основные функции CMS:
– предоставление
инструментов
для
создания
содержимого, организация совместной работы над
содержимым;
– управление содержимым: хранение, контроль версий,
соблюдение режима доступа, управление потоком
документов;
39
– публикация содержимого;
– представление информации в виде, удобном для
навигации, поиска.
2. слабый ssh пароль доступа к SQL серверу;
SSH (англ. Secure Shell — «безопасная оболочка») — сетевой
протокол прикладного уровня, позволяющий производить
удалённое управление операционной системой и туннелирование
TCP-соединений. SSH допускает выбор различных алгоритмов
шифрования. SSH по умолчанию использует TCP-порт 22.
1) Запрет на удалённый root-доступ.
2) Запрет подключения с пустым паролем или отключение
входа по паролю.
3) Выбор нестандартного порта для SSH-сервера.
4) Использование длинных SSH2 RSA-ключей (2048 бит и
более).
5) Ограничение списка IP-адресов, с которых разрешён
доступ.
6) Запрет доступа с некоторых потенциально опасных
адресов.
7) Отказ от использования распространённых или широко
известных системных логинов для доступа по SSH.
8) Регулярный просмотр сообщений об ошибках
аутентификации.
9) Установка систем обнаружения вторжений (IDS).
10) Использование ловушек, подделывающих SSH-сервис
(honeypot).
Атака Brute-force – это одна из самых опасных кибератак, с
которой сложно справиться.
Ее целями становятся веб-сайты, безопасность устройств,
пароли для входа или ключи шифрования. Известно, что
используется метод непрерывных проб и ошибок, чтобы получить
нужные данные. Брутфорс еще называют методом исчерпывания,
так как верная комбинация выявляется путем анализа всех
возможных вариантов и отбрасывания каждого неподходящего
сочетания.
Способы осуществления атак Brute-force: гибридные атаки
(осуществляется отправка и подбор верной фразы с помощью
40
словаре), обратные атаки (злоумышленник пытается получить
ключ вывода пароля с помощью тщательного исследования).
Способы защиты от атаки Brute-force:
1) создавать длинный пароль из букв, цифр и
спецсимволов;
2) не использовать в пароле личную информацию или
какие-либо элементы логина;
3) для всех аккаунтов создавать свои уникальные пароли,
менять их при подозрении на компрометацию;
4) на веб-сайтах защищать вход от многочисленных
попыток ввода данных
5) переименование страницы авторизации;
6) ограничение доступа к админскому разделу по ipадресам (белый список, географический или иной
принцип деления);
7) двухфакторная аутентификация.
3. пароль к базе данных в отрытом виде в файле .bash_history
Для контролирования всех изменений пароли необходимо
хранить в открытом виде, что сводит на нет организацию
безопасности кампании. Злоумышленником был проведен взлом на
уровне хоста, который не был выявлен автоматизированными
средствами защиты.
Для предотвращения инцидента необходимо:
1) мониторить активные подключений с кодом процесса;
2) просматривать логи подключений по ssh;
3) просматривать журнала загрузок для выявления пакетов
с вредоносным содержимым;
4) мониторить доступ к файлу .bash_history;
5) мониторить логи подключений на SQL – сервере;
6) мониторить загрузки файлов через sqlmap;
Ход работы
1. Drupalgeddon2 (CVE-2018-7600)
Нарушитель проводит сканирование сети 185.88.181.0/24 и
находит сервер с CMS Drupal. Эксплуатируя уязвимость
Drupalgeddon2, нарушитель получает контроль над хостом. Далее
41
нарушитель генерирует reverse shell, загружает на сервер и ожидает
его запуска администратором.
После запуска тренировки инциденты отображаются на
главном экране (Рисунок 1).
Рисунок 1 – Панель открытых уязвимостей
Для обнаружения уязвимости необходимо подключиться к
удалённому рабочему столу через ip, который указан на странице
участника группы реагирования ampire (Рисунок 2).
Рисунок 2 – IP адрес для удаленного подключения
Откройте средство для подключения к удаленном рабочему
столу. Введите указанный IP и имя пользователя (рисунок 3).
42
Рисунок 3 – Подключение к удаленному рабочему столу
На сервере WebPortal2 находится сайт на Drupal CMS,
уязвимость в котором позволяет незарегистрированному
пользователю выполнять любые команды на целевой системе.
Данные, необходимые при создании запрашиваемой страницы
и отдельных ее частей, хранятся в виде особых массивов до этапа
рендеринга, что предоставляет широкие возможности для
изменения разметки или самого содержания страницы в любой
момент на этапе загрузки или после него.
Для обнаружения уязвимости воспользуйтесь ViPNet IDS NS и
авторизуйтесь, используя существующую учетную запись
(Рисунок 4).
43
Рисунок 4 – Вход в учетную запись ViPNet IDS NS
Для обнаружения уязвимости необходимо проанализировать
журнал Журнал событий ИБ сетевого сенсора ViPNet IDS NS. Для
этого перейдите на вкладку События (Рисунок 5).
Рисунок 5 – Журнал событий ИБ сетевого сенсора ViPNet IDS NS
Примените фильтрацию для выявления соответствующего
события. Особое внимание обратите на поля: название правила,
уровень важности, IP-адрес источника, IP-адрес получателя, порт
получателя.
Проанализируйте подробную информацию о событии
(Рисунок 6).
44
Рисунок 6 – Дополнительная информация о событии
Просмотрите журнал. Обратите особое внимание на текст
правила. Найдите в тексте строки, связанные с атакой на вебсервер, скорее всего это и будет критическое событие.
Для устранения уязвимости необходимо в панели
администрирования
отключить
свободную
регистрацию
пользователей. Для этого необходимо перейти на сайт компании
через удаленное рабочее место и с правами изменения параметров
менеджера определить права регистрации новых аккаунтов
(рисунок 7).
45
Рисунок 7 – Главная страница сайта компании
Авторизуйтесь под учетной записью администратора. Данные
для входа находятся в PDF-файле на рабочем столе удаленного
рабочего места.
Перейдите по пути Manage-Configuration-Account settings
(Рисунок 8).
Рисунок 8 – Переход в Settings
Поставьте указатели так, как показано на рисунке 9. Теперь
только администратор может создавать новые аккаунты.
46
Рисунок 9 – Изменение правил для регистрации новых аккаунтов
Сохраните изменения. После успешного закрытия уязвимости
можно увидеть соответствующее уведомление (Рисунок 10).
Рисунок 11 – Уведомление об успешном изменении конфигурации
Перейдём на веб-страницу Ampire и убедимся в успешном
закрытии уязвимости (рисунок 11).
Рисунок 12 – Уведомление об успешном закрытии уязвимости
2. Слабый ssh пароль доступа к SQL серверу
С помощью ViPNet IDS NS можно обнаружить
подозрительные сканирования (рисунок 13), производящиеся с
рабочей станции менеджера (ip: 10.10.4.11) и адресованные SSHсерверу (ip: 10.10.2.14).
Рисунок 13 – Сканирование портов SSH-сервера
47
После прочтения текста правила «ET SCAN Potential SSH Scan
OUTBOUND» становится понятно, что данное правило определяет
подключение из локальной сети во внешнюю сеть по 22 порту TCP
(SSH). Таким образом, сработавшее правило может быть
признаком сканирования, попытки подбора паролей, либо
признаком ошибки соединения.
Далее необходимо подключиться к серверу, подвергшемуся
сканированию, и проверить лог-файл подключений по SSH. Для
этого подключитесь к серверу через PuTTY (рисунок 14).
Рисунок 14 – Подключение к серверу с помощью PuTTY
Войдите с учетной записью root (рисунок 19), потому что
учетной записи с правами пользователя просмотр лог-файлов
недоступен.
Для входа необходимо ввести логин «root» пароль
«qwe123!@#».
48
Рисунок 15 – Вход на SSH-сервер с помощью
учетной записи root
Для просмотра лог-файла подключений выполните команду,
показанную на рисунке 16, а именно «grep ‘sshd’ /var/log/auth.log».
49
Рисунок 16 – Просмотр лог-файла
Для закрытия уязвимости необходимо поменять пароль на
более сложный, не содержащийся в словаре. Для этого следует под
50
учетной записью user сменить пароль командой «passwd», что
показано на рисунке 17.
Рисунок 17 – Изменение пароля
Таким образом, уязвимость закрыта (рисунок 18).
Рисунок 18 – Устраненная уязвимость
3. Пароль к базе данных в отрытом виде в
файле .bash_history
На данном этапе необходимо закрыть уязвимость хранения
паролей в различных history файлах.
После того как злоумышленник с помощью брутфорса получил
ssh пароль к SQL-серверу, он подключился к нему. На рисунке 19
отображено событие, которое говорит о подключении с машины с
ip адресом 10.10.4.11 (рабочая станция менеджера, которой
управляет злоумышленник) к машине 10.10.2.13 (SQL-сервер
компании).
51
Рисунок 19 – Событие с подключением к SQL-серверу
В интернет-пакете не было зафиксировано подозрительных
инцидентов, поэтому необходимо сразу подключиться к удаленной
рабочей машине и начать устранять уязвимость.
После этого, уже используя утилиту Bitvise SSH Client (разница
с программой PuTTY невелика, можно пользоваться той, которая
наиболее удобна), введем данные для подключения к SQL-серверу
(рисунок 20) и введем пароль (рисунок 21).
52
Рисунок 20 – Подключение к SQL-серверу
Рисунок 21 – Ввод пароля
53
После этого откроется 2 окна, в одном будет консоль, для ввода
команд, которые будут исполняться сервером, а во втором
представлены файлы, находящиеся в базовой директории
«/home/user». Введите команду history (рисунок 22) и увидите,
каким образом злоумышленник получил пароль непосредственно к
базе данных MySQL. Помимо основной истории можно
просматривать и другие с помощью файлы с помощью команды
«cat /путь к файлу», чем тоже воспользовался злоумышленник, это
видно в 13 строке на рисунке 22.
Рисунок 22 – История запросов
Чтобы не сохранять введенные команды текущей сессии
можно использовать команду «unset HISTFILE». Далее необходимо
подключиться к базе данных MySQL с помощью команды «mysql –
u root –p» и ввести пароль (рисунок 23), который также находится
в общем списке всех данных для подключений.
54
Рисунок 23 – Выполненный вход в базу данных
Затем для смены пароля нужно ввести следующую команду:
«SET
PASSWORD
FOR
'root'@'localhost'
=
PASSWORD('ваш_пароль');», где «ваш_пароль» - это новый пароль
для учетной записи базы данных. Выполнение данной команды
показано на рисунке 24.
Рисунок 24 – Успешная смена пароля к базе данных от
пользователя root
55
Таким образом, уязвимость закрыта (рисунок 25). Для выхода
из базы данных необходимо ввести команду «quit» и почистить
историю команд с помощью «history –c» (рисунок 26).
Рисунок 25 – Устраненная уязвимость
Рисунок 26 – Выход из базы данных и очистка истории
В целом, на данном этапе можно было закончить выполнение
работы, однако с помощью команды «history –c» чистит только
базовую историю введенных команд (рисунок 27). Воспользуйтесь
командой для предотвращения дополнительных инцидентов.
56
Рисунок 27 – Успешно очищенная базовая история
Файлы .bash_history и .mysql_history, в свою очередь, остаются
нетронутыми, их тоже желательно почистить, ведь в них сейчас
хранятся старые данные для аутентификации. Сделать это можно с
помощью
двух
способов:
командами
«history
–c
/home/user/.bash_history», «history –c /home/user/.mysql_history»
(рисунок 28) или с помощью графического интерфейса. Для этого
нужно через SFTP окно открыть файлы «.bash_history» и
«.mysql_history» с помощью текстового редактора, полностью
очистить файлы и сохранить изменения (рисунок 29).
57
Рисунок 28 – Очистка файлов .bash_history и .mysql_history
Рисунок 29 – SFTP окно с содержимым базовой директории
сервера
58
Индивидуальное задание
Заполните карточку инцидента в соответствии со своим
вариантом (таблица 1). В результате выполнения индивидуального
задания должны получиться корректно заполненные карточки
инцидентов, в которых содержится максимально точная и
корректная информация об обнаруженном действии нарушителя.
Корректное заполнения карточки инцидентов и карточек
описания вектора атаки можно найти в 1-ой лабораторной работе.
Таблица 1 – Варианты
Вариант
Уязвимость
Пароль в открытом виде в
файле .bash_history
Слабый SSH пароль
1
2
3
Таблица 2
безопасности
Название
Drupalgeddon2
–
Карточка
Источник
Пораженные хосты
Индикаторы
Дата
Файл
Описание
Рекомендации
59
инцидента
информационной
Контрольные вопросы:
1. Объясните своими словами что такое CMS?
2. Назовите основные функции CMS.
3. Что такое уязвимости сайтов?
4. Приведите примеры уязвимостей сайтов.
5. Объясните своими словами суть уязвимости Drupalgeddon2
(CVE-2018-7600).
6. Что такое SSH и Telnet?
7. Перечислите основные отличия SSH от Telnet.
8. Что из себя представляет атака Brute-force?
9. Объясните своими словами к чему может привести слабый
пароль.
10. Назовите виды систем обнаружения вторжений.
11. Что необходимо сделать, чтобы команда не записалась
в .bash_history?
60
ЛАБОРАТОРНАЯ РАБОТА №3
Защита контроллера домена предприятия
В лабораторной работе была рассмотрена атака злоумышленника на
сайт компании с целью получения доступа к внутренним ресурсам.
Обнаружив несколько уязвимостей на внешнем периметре и
закрепившись на одном из серверов, Злоумышленник проводит разведку
корпоративной сети с целью захватить контроллер домена.
Квалификация
инструментарий
нарушителя
для
средняя.
проведения
атак,
Он
а
умеет
также
использовать
знает
техники
постэксплуатации.
Злоумышленник обладает опытом проведения почтовых фишинговых
рассылок.
Средство
обнаружения
вторжений
–
программно-аппаратный
комплекс для обнаружения вторжений в информационные системы ViPNet
IDS.
Рассматриваемые уязвимости:
1. SQL инъекция;
Внедрение
SQL-кода
(англ.
SQL
injection)
—
один
из
распространённых способов взлома сайтов и программ, работающих с
базами данных. Суть уязвимости — выполнение произвольного запроса к
базе данных.
Эксплуатация SQL инъекции:
–
Атакующий
изменяет
запрос,
нарушая
логику
его
выполнения;
–
Вызывает ошибку синтаксиса SQL запроса;
–
Внедряет свой запрос, эксплуатируя SQL инъекцию;
–
Получает учетные данные доступа к сайту из базы данных.
Эксплуатация SQL инъекций, в зависимости от типа используемой БД
и
условий
внедрения,
позволяет
61
атакующему
выполнить
произвольный запрос к базе данных и в результате прочитать
содержимое любых таблиц БД сайта (в том числе содержащие имена и
пароли администраторов, зарегистрированных пользователей сайта),
удалить, изменить или добавить данные, получить возможность чтения
и/или записи локальных файлов и выполнения произвольных команд
на атакуемом сервере.
Для установления наличия уязвимости в сети имеется масса готовых
автоматизированных программных комплексов. Но можно осуществить
простую проверку и вручную. Для этого нужно перейти на один из
исследуемых сайтов и в адресной строке попробовать вызвать ошибку базы
данных. К примеру, скрипт на сайте может не обрабатывать запросы и не
обрезать их. Например:
некий_сайт/index.php?id=38
Самый лёгкий способ - поставить после 38 кавычку и отправить
запрос. Если никакой ошибки не возникло, то либо на сайте фильтруются все
запросы и правильно обрабатываются, либо в настройках отключён их
вывод. Если страница перезагрузилась с проблемами, значит, уязвимость для
SQL-инъекции есть.
При написании логики сайта следует особенно внимательно
относиться к полям для ввода данных. Фильтрация параметров, работающих
с базой данных.
–
Проверка валидности числовых параметров. В PHP можно
использовать функцию is_numeric(n); для проверки параметра.
–
Проверка валидности строковых параметров.
–
Экранизация символов.
В
PHP
можно
использовать
функции
addslashes($str);
и
mysql_real_escape_string($str). В базе данных следует закрыть доступ к
таблицам, которые содержат конфиденциальные данные.
Пароли ни в коем случае не стоит хранить в открытом виде.
62
2. Отключенная защита антивируса;
Web shell — это сценарий, который загружается на сервер и служит
для удаленного администрирования. Вредоносным он становится только
тогда, когда им пользуется злоумышленник с целью управления чужими
сайтами и серверами, перебора паролей, доступа к файловой системе . Если
у провайдера данные различных ресурсов и клиентов не отделены друг от
друга, то внедрение шелла позволяет злоумышленникам получить доступ
сразу ко множеству сайтов.
Веб-шеллы можно идентифицировать по ряду внешних признаков:
–
периоды аномально высокой нагрузки на сервер;
–
наличие файлов с подозрительной временной меткой (например,
более поздней, чем время последнего обновления ПО);
–
наличие подозрительных файлов в доступных из интернета
местах;
–
наличие файлов, в которых имеются ссылки на cmd.exe, eval и
подобное;
–
наличие подозрительных авторизаций из внутренней сети;
–
наличие файлов, генерирующих несвойственный им трафик.
Существует ряд различных сканеров, представляющих целый набор
механизмов для выявления веб-шеллов. В основе этих приложений лежат
следующие технологии:
–
поиск по ключевым словам;
–
сигнатурный анализ;
–
анализ наиболее длинных строк
–
расчет шенноновской энтропии в исходном коде;
–
поиск вредоносного кода методом индекса совпадений.
Схема очистки веб-шеллов:
1)
Просканировать сайт автоматически, используя специальные
антивирусные программы и сканеры хостинга.
63
2)
Анализ вручную.
3)
Поиск «дыры» и её закрытие.
4)
Создание бэкапа сайта и базы после чистки.
Далее, рассмотрим веб-шеллы. Запросов много и они маленькие. Так
бывает, когда злоумышленник нарочно создает мини-шеллы, так как их
заметить гораздо сложнее, ибо в логах не будет никаких запросов и в теле
шелла сложно найти аномалию. Большие же веб-шеллы обнаружить гораздо
проще, поэтому злоумышленник и не использует их.
3. Слабый пароль учетной записи.
Наиболее распространенные уязвимости в системах связаны с
недостатками парольной политики, говорится в исследовании Positive
Technologies.
К учётной записи администратора на одной из виртуальных машин
установлен, что позволяет нарушителю перебирать его, используя методы со
словарями и атаками брутфорс.
64
Ход работы
1.
SQL инъекция
Нарушитель проводит сканирование сети 185.88.181.0/24 (события в
ViPNet IDS NS с элементом «ET SCAN» в названии правила). Далее
сканирует веб сервер на предмет возможности реализации SQL инъекций
утилитой sqlmap, что можно увидеть на рисунке 1.
Рисунок 1 – Поиск SQL инъекции в веб-приложении
В IDS сделаем сортировку событий по важности и увидим событие с
попыткой реализации SQL инъекции (рисунок 2). Скачаем пакет и
просмотрим его в Wireshark (рисунок 3). Можно заметить попытку SQL
инъекции с использованием параметра id.
65
Рисунок 2 – Событие попытки реализации SQL инъекции
Рисунок 3 – Попытка реализации SQL инъекции
В ходе реализации SQL-инъекции злоумышленник вводит в окно
пользовательского запроса (это может быть окно приложения, окно ввода
данных в веб-сайте, http-запрос к веб-сайту, и т.п.) замаскированный от
приложения
SQL
код,
который
впоследствии
интерпретируется
приложением не как переменная в запросе, как предполагалось его
разработчиками, а как код, потому что происходит конкатенация этих
пользовательских данных с заранее определённой строкой кода SQL запроса.
Зайдя на сайт, можно увидеть передачу параметра id, что является признаком
наличия уязвимости к SQL инъекции (рисунок 4).
66
Рисунок 4 – Веб приложение компании
Одним из основных программных методов защиты от SQL инъекции
является фильтрация по типу данных и типизация данных – данные,
полученные от пользователя ни в коем случае нельзя напрямую вставлять в
SQL-запрос, так как он мог допустить ошибку во время ввода данных, либо
же этот пользователь – злоумышленник, пытающийся реализовать атаку на
веб-приложение. Следовательно, полученные данные (в данном случае это
параметр id) необходимо в обязательном порядке проверять на тип данных,
который ожидается базой данной, путем исправления участка кода, где этот
параметр передается. В случае несовпадения типа параметра id по
умолчанию будет передаваться единица. Для изменения кода сначала
требуется подключиться к CMS Drupal по SSH (10.10.1.20) через, например,
PuTTY (рисунок 5).
67
Рисунок 5 – Подключение к CMS Drupal по SSH
После подключения откройте файл CModel.php, который находится в
директории components, найдите функцию «findById» (рисунок 6) и измените
её, чтобы проверялся тип параметра id (рисунок 7). В результате будет
закрыта уязвимость (рисунок 8).
Рисунок 6 – Исходный код функции «findById»
68
Рисунок 7 – Исправленный код функции «findById»
Рисунок 8 – Закрытая уязвимость
2.
Отключенная защита антивируса
В IDS можно увидеть попытки нарушителя загрузить файл на веб
сервер (рисунок 9).
69
Рисунок 9 – Попытки загрузки файла
На почту администратора пришло подозрительное письмо с файлом
(рисунок 10). Чтобы зайти в почту, необходимо в браузере виртуальной
машины перейти по адресу https://10.10.2.11. Далее вводим в поле логина
«ampire\Администратор» и в поле пароля «qwe123!@#».
Рисунок 10 – Подозрительное письмо
Помимо этого стоит обратить внимание на события эвристического
анализа трафика. На рисунке 11 можно увидеть аномальное поведение
70
(увеличенный трафик).
Рисунок 11 – Аномальное поведение, увеличенный трафик
Зайдем на виртуальную машину AMpire_DEV2_Enterprise_UO_Admin
(10.10.4.10). Откроем консоль Windows PowerShell и введем команду
«netstat». В результате можно увидеть признаки взаимодействия с
нарушителем (рисунок 12). Введем команду «Get-MpPreference» и увидим,
что выключен мониторинг в реальном времени (рисунок 13).
Рисунок 12 – Признаки взаимодействия с нарушителем
71
Рисунок 13 – Настройки Windows Defender
Зайдем в реестр и заметим в папке Windows Defender ключ
DisableAntiSpyware (рисунок 14). Удалим запись в реестре. В консоли введем
команду (рисунок 15) и убедимся что в папке Windows Defender нет ключа
(рисунок 16).
72
Рисунок 14 – Ключ в реестре
Рисунок 15 – Удаление записи DisableAntiSpyware в реестре
73
Рисунок 16 – Результат выполнения команды
Далее в Windows Defender перезапустим Virus & Threat Protection
(рисунки 17-18) и включим Real-time Protection (рисунок 19). Защита в
реальном времени (Real-time protection) – это модуль антивируса в Windows,
который предоставляет постоянную защиту вашей системы, проверяя
запускаемые приложения на выполнение подозрительных действий. В
настройках вы можете указать, нужно ли выводить сообщения об опасной
активности приложений на экран, и нужно ли сканировать загруженные и
прикрепленные файлы. В результате включения модуля будет закрыта
уязвимость (рисунок 20).
Рисунок 17 – Windows Defender
74
Рисунок 18 – Security at a glance
Рисунок 19 – Включение Real-time protection
Рисунок 20 – Закрытая уязвимость
75
3.
Слабый пароль учетной записи
В ViPNet IDS NS рассмотрим события связанные с RDP подключением
к хосту AD&DNS (10.10.2.10). Необходимо смотреть именно на IP-адрес
источника, так как в событиях регистрируется ответ от компьютера, к
которому идет подключение. Увидим событие высокой важности, где в
названии будет ключевое слово “bruteforce” (рисунок 21).
Рисунок 21 – Событие «Брутфорс пароля администратора»
Таким образом, кто-то пытается подобрать пароль к учетной записи
администратора
AD&DNS.
Зайдем
на
компьютер
администратора
(10.10.2.10) и посмотрим логи в программе Event Viewer – компонент,
включенный в состав операционных систем семейства Windows (рисунок
22).
76
Рисунок 22 – Event Viewer
Найдем нужный лог, чтобы убедиться в том, что злоумышленник всетаки получил доступ к хосту AD&DNS. Для этого следует отсортировать
события по Event ID и найти три лога с Event ID 1158, среди них интересен
лог с именем заканчивающимся на /admin и датой, совпадающей с событием
в IDS (рисунок 23). Также найдите лог с Event ID 1149 (означает успешную
аутентификацию), где прописано о успешной аутентификации пользователя
«администратор» по RDP подключению (рисунок 24).
77
Рисунок 23 – Логи в Event Viewer
Рисунок 24 – Лог с Event ID 1149
Подтвердили факт наличия атаки. Теперь закроем уязвимость, для
этого на компьютере администратора поменяем пароль для учетной записи –
в cmd пропишем команду “net user Administrator * ”. Необходимо ввести
сложный пароль и подтвердить его (рисунок 25).
Рисунок 25 – Cмена пароля через cmd
78
В случае установки достаточно сложного пароля уязвимость будет
успешно закрыта (рисунок 26).
Рисунок 26 – Закрытая уязвимость
79
Индивидуальное задание
Заполните карточку описания вектора атаки Cyber Kill Chain в
соответствии со своим вариантом (таблица 1). В результате выполнения
индивидуального задания должны получиться корректно заполненные
карточки описания вектора атаки, в которых содержится максимально точная
и корректная информация об инциденте.
Корректное заполнения карточки инцидентов и карточек описания
вектора атаки можно найти в 1-ой лабораторной работе.
Таблица 1 – Варианты
Вариант
Уязвимость
1
SQL инъекция
2
Слабый пароль учётной записи
3
Отключённая защита
антивируса
Таблица 2 – Карточка Cyber Kill Chain
Название атаки
Нарушитель внутренний?
(да/нет)
Конечная цель нарушителя
Какие промежуточные узлы
сети нарушитель атаковал?
Последовательность действий
Какие уязвимости нарушитель
эксплуатировал
Комментарии
80
Контрольные вопросы:
1.
Когда
можно
сказать,
что
веб-приложение
содержит
неисправную аутентификацию?
2.
Что из себя представляет атака внешнего объекта XML?
3.
Назовите самые распространенные ошибки, которые делают
возможной атаку на веб-приложение.
4.
Объясните своими словами понятие SQL-инъекции.
5.
Назовите способы защиты от SQL-инъекций.
6.
Что из себя представляет вредоносный скрипт Web-shell?
7.
Как можно обнаружить вредоносный Web-shell?
8.
Объясните своими словами суть интернет-атак Phishing и
приведите несколько типов данных атак.
9.
Что такое RDP?
10. Назовите не меньше трёх уязвимостей, связанных с RDP.
11. Что нужно делать в случае обнаружения следов успешного
проникновения через RDP?
12. Как можно защитить учётные записи пользователей?
81
ЛАБОРАТОРНАЯ РАБОТА №4
Защита данных файлового сервера
В лабораторной работе была рассмотрена атака злоумышленника на
сайт компании с целью получения доступа к внутренним ресурсам.
На сайте был обнаружен раздел для входа в личный кабинет, который
не содержит механизмов от атаки перебора учетных данных. Нарушитель
смог успешно подобрать параметры входа для одного из пользователей.
Использование одинаковых паролей для различных сервисов позволило
нарушителю получить доступ к почтовому ящику сотрудника и далее
успешно подключиться к его рабочей станции, с которой он атаковал
внутренний файловый сервис с помощью уязвимости SMB-протокола.
Квалификация
инструментарий
нарушителя
для
средняя.
проведения
Он
умеет
использовать
атак,
а
также
знает
техники
вторжений
–
программно-аппаратный
постэксплуатации.
Средство
обнаружения
комплекс для обнаружения вторжений в информационные системы ViPNet
IDS.
Рассматриваемые уязвимости:
1. Простой пароль пользователя веб-приложения предприятия;
На одной из виртуальных машин виртуальной машин обслуживается
веб-сайт
предприятия.
В
веб-приложении
существует
механизм
аутентификации пользователей.
Пароль пользователя веб-приложения часто встречается в различных
утечках информации, таким образом, его включают в словари перебора
паролей.
Способ эксплуатации уязвимости: перехват пакета аутентификации с
любыми
данными.
аутентификационные
С
помощью
пакеты
на
словаря
основе
82
паролей
формируются
перехваченного
пакета
и
отправляются в адрес веб-приложения, до тех пор, пока оно не передаст
атакующему сообщение об успешной аутентификации.
Как предотвратить возникновение инцидентов:
–
Не давать никому (кроме root учетных записей MySQL)
доступ к user таблице в mysql системной базе данных.
–
Узнать, как работает система привилегий доступа MySQL.
Не предоставлять привилегий больше, чем необходимо. Никогда не
предоставляйте привилегии всем хостам.
–
Не хранить пароли в открытом виде в своей базе данных.
–
Не выбирать пароли из словарей.
–
Использовать
брандмауэр.
Разместить
MySQL
за
брандмауэром или в демилитаризованной зоне (DMZ).
–
Не передавать простые (незашифрованные) данные через
Интернет.
2. Служба RDP на порту установлена по умолчанию;
RDP или Remote Desktop Protocol это протокол удалённого рабочего
стола в операционных системах Microsoft Windows. Используется для
удаленной работы сотрудника или пользователя с удаленным сервером.
Удаленный рабочий стол (Remote Desktop) — это термин, которым
обозначается режим управления, когда один компьютер получает права
администратора по отношению к другому, удаленному. Связь между
устройствами происходит в реальном времени посредством Интернет или
локальной сети.
Уровень
определяется
доступа
в
конкретными
режиме
задачами
удаленного
и
может
администрирования
быть
изменен
по
необходимости. Например:
–
в одном случае, подключение к рабочей сессии дает возможность
полного контроля и взаимодействия с удаленным компьютером, при котором
допускается запуск на нем приложений и манипуляции с файлами;
83
–
в другом, удаленный доступ к рабочему столу позволяет лишь
вести наблюдения за процессами, без вмешательства в работу его системы.
Рисунок 1 – Взаимодействие RDP Клиента и сервера терминалов
Рисунок 2 – Слабости RDP
Рисунок 3 – Концепция безопасности при удаленном подключении по RDP
84
3.Уязвимость MS17-010 файлового сервера.
Эксплуатируемая уязвимость – CVE-2017-0144.
Опасный
эксплоит
EternalBlue,
разработанный
Агентством
национальной безопасности (АНБ) США для эксплуатации уязвимости в
протоколе Microsoft Server Message Block, (SMB) продолжает представлять
серьезную угрозу для многих организаций по всему миру более чем через
четыре года после выпуска исправления.
Методы защиты:
–
Отключение SMBv1.
–
Установка обновлений от Microsoft.
–
В большой сети провести мониторинг сетевого трафика с
выявлением станций, использующих SMBv1. Далее необходимо провести
анализ возможности отключения SMBv1 на них, а в случае невозможности анализ
целесообразности
использования
этих
хостов,
возможности
временной изоляции за WAF, а также планирование их последующей
модернизации.
Для предотвращения инцидентов следует:
1)
Установить системное обновление безопасности MS17-010
2)
Следить за обновлениями остальных компьютерных программ.
3)
Установить надежное антивирусное средство.
4)
Никогда не открывать электронные письма, которые приходят от
незнакомцев или компаний, с которыми у вас нет бизнеса.
5)
Отключить SMBv1, используя инструкции, предоставленные
Microsoft.
85
Рисунок 4 – Эксплойт EternalBlue
Ход работы
1.
Простой пароль пользователя веб-приложения предприятия.
Нарушитель проводит поиск активных хостов в сегменте внешнего
периметра предприятия DMZ (сеть 185.88.181.0/24), сканирует их на предмет
открытых HTTP/HTTPS портов. Далее осуществляется поиск страницы
аутентификации в обнаруженном во время сканирования веб-приложении
ampire.com (хост 185.88.181.95). На данном этапе атакующий выполняет
перебор (брутфорс) аккаунта менеджера manager@ampire.corp.
Проведите анализ системы на предмет вторжений, используя ViPNet
IDS. Найдите события класса атак на веб-приложение (рисунок 5).
Рисунок 5 – Атаки на веб-приложение
Найдите аналогичные инциденты с обнаружением сетевого трояна
(Рисунок 6). Не используйте фильтр по Важности события, он ненадежен и
может предоставлять недостоверную информацию (цвет идентичных
86
событий может различаться).
Рисунок 6 – Обнаружение сетевого трояна
Зафиксируйте атаки на 20 и 21 IP (Рисунок 7).
Рисунок 7 – Атаки на порты 10.10.1.21 и 10.10.1.20
Перейдем к закрытию уязвимости. Для этого подключимся через
удалённое рабочее место через ip, который указан на странице участника
группы реагирования ampire. Зайдём под одной из учётных записей.
Войдём в систему под одной из учетных записей (Рисунок 8).
87
Рисунок 8 – Вход в систему
Далее, необходимо аутентифицировать на виртуальной машине
Enterprise_DMZ_WebPortal_1.
Скачайте
материалы
для
прохождения
сценария из Ampire и откройте логическую схему. В интересующей нас среде
DMZ WebPortal имеет IP 10.10.1.20 (Рисунок 9). Нас будет интересовать
виртуальная машина с этим IP.
Рисунок 9 – DMZ-среда в логической схеме сценария
Перейдем к списку виртуальных машин и найдем IP 10.10.1.20. Таким
образом, необходимо перейти в CMS Drupal (Рисунок 10).
88
Рисунок 10 – Данные для входа в виртуальные среды
Зайдите под учетной записью root через MySQL DB. Далее
необходимо выполнить команду:
mysql –uroot –password=qwe123asd toppro –e “update user set
password = ‘YOUR_PASSWORD’ where name = ‘Manager1’”
, как показано на рисунке 11. Новый пароль не должен содержаться в
словаре rockyou.txt.
89
Рисунок 11 – Изменение пароля через root
Если зайти под root не удалось – воспользуйтесь учетной записью user
и SSH 10.10.1.20.
Найдите на рабочем столе ярлык Bitvise SSH Client и введите данные
как показано на рисунке 12. Пароль пользователя user указан в таблице на
рисунке 10.
Рисунок 12 – Переход в учетную запись user через клиент SSH
90
Подождите немного, процесс подключения может занять минуту.
После успешного подключения откроются окна SFTP и консоли от имени
user.
Рисунок 13 – Успешное подключение к SSH
В консоли введите необходимые команды, как показано на рисунке
14. При вводе команды update user при выборе параметра в set password
придумайте свой надежный пароль, который не содержится в словаре
паролей rockyou.txt.
91
Рисунок 14 – Успешное изменение пароля для Manager1
Перейдите в Ampire и убедитесь в успешном устранении уязвимости
(Рисунок 15).
Рисунок 15 – Успешное устранение уязвимости Web1 MySQL Password
92
2. Служба RDP на порту установлена по умолчанию.
На виртуальной машине менеджера Enterprise_UO_Manager1 для
внешней сети открыт порт 3389, обслуживающий соединения по протоколу
RDP.
Откроем ViPNet IDS NS и выставим фильтры, как на рисунке 16. В
результате не отобразится ни одного события, соответственно, выполнялись
легитимные действия.
Рисунок 16 – События в IDS
Просмотрим почту сотрудника Manager1. Для этого подключимся по
RDP: 10.10.4.11. Далее откроем браузер и введем “https://10.10.2.11”. Введем
данные и нажмем sign in (рисунок 17).
93
Рисунок 17 – Почта Outlook
Просмотрим входящие письма и увидим письмо от администратора
(рисунок 18). Доступ из локальной сети по RDP необходимо оставить, а
доступ из интернета – убрать (рисунок 19).
Рисунок 18 – Письмо от администратора
94
Рисунок 19 – Схема корпоративной сети
Зайдем на EdgeGW (WEB: https://10.10.1.254). Введем данные и нажмем
sign in (рисунок 20).
Рисунок 20 – EdgeGW
95
Разрешающее небезопасное правило подключения по RDP из
интернета показано на рисунке 21.
Рисунок 21 – Небезопасное правило
Отключим доступ по RDP для виртуальной машины менеджера
Enterprise_UO_Manager1 (рисунок 22). Сохраним изменения (рисунок 23). В
результате была закрыта уязвимость RDP Checker (рисунок 24).
96
Рисунок 22 – Отключение правил проброса RDP
Рисунок 23 – Сохранение изменений
Рисунок 24 – Успешное закрытия уязвимости
97
3. Уязвимость MS17-010 файлового сервера
С помощью ViPNet IDS NS можно обнаружить попытку атаки на
SMB-протокол (рисунок 25), производящуюся с маршрутизатора (ip:
10.10.2.254) и адресованную файловому серверу (ip: 10.10.2.12).
Рисунок 25 – Атака на SMB-протокол
Также можно обнаружить успешную эксплуатацию уязвимости CVE2017-0144 (рисунок 26), производящуюся с атакующим (ip: 185.88.181.55) и
адресованную файловому серверу (ip: 10.10.2.12).
Рисунок 26 – Успешная эксплуатация уязвимости CVE-2017-0144
98
После анализа действий нарушителя можно определить: сформировав
и передав на узел особым образом подготовленный пакет, он смог получить
удалённый доступ к системе и запустить на ней произвольный код.
Для того чтобы устранить данную уязвимость сначала необходимо
подключится к RDP файлового сервера (Рисунок 27).
Рисунок 27 – Подключение к RDP файлового сервера
Для закрытия уязвимости необходимо отлключить SMB (Server
Message Block) – сетевой протокол для удаленного доступа к файлам и
принтерам, проверить наличие которого можно в менеджере сервера
(рисунок 28).
99
Рисунок 28 – Проверка SMB 1.0/CIFS File Sharing support (installed)
Для
его
отключения
необходимо
выполнить
команду
«Set-
SmbServerConfiguration –EnableSMB1Protocol $false» в Windows PowerShell
(рисунок 29).
Рисунок 29 – Отключение SMBv1 на сервере
Для проверки отключения данного протокола используется команда
«Get-SmbServerConfiguration» (рисунок 30).
100
Рисунок 30 – Проверка сервера SMB после отключения
Таким образом, уязвимость закрыта (рисунок 31).
Рисунок 31 – Устраненная уязвимость
101
Индивидуальное задание
Также, как и в предыдущих работах, заполните карточку инцидента в
соответствии со своим вариантом (таблица 1). В результате выполнения
индивидуального задания должны получиться корректно заполненные
карточки инцидентов, в которых содержится максимально точная и
корректная информация об обнаруженном действии нарушителя.
Также индивидуально заполните карточку описания вектора атаки
Cyber Kill Chain.
Корректное заполнения карточек инцидентов и карточек описания
вектора атаки можно найти в 1-ой лабораторной работе.
Таблица 1 – Варианты
Вариант
Уязвимость
Простой пароль пользователя
1
веб-приложения предприятия
Служба RDP на порту
2
установлена по умолчанию
Уязвимость MS17-010
3
файлового сервера
Таблица 2 – Карточка инцидента информационной безопасности
Название
Источник
Пораженные хосты
Индикаторы
Дата
Файл
Описание
Рекомендации
102
Таблица 3 – Карточка Cyber Kill Chain
Название атаки
Нарушитель внутренний?
(да/нет)
Конечная цель нарушителя
Какие промежуточные узлы
сети нарушитель атаковал?
Последовательность действий
Какие уязвимости нарушитель
эксплуатировал
Комментарии
Контрольные вопросы:
1.
Объясните, к чему может привести слабый пароль пользователя
веб-приложения предприятия.
2.
Как
можно
заранее
предотвратить
перехват
пароля
злоумышленником?
3.
Опишите своими словами понятие RDP.
4.
Опишите взаимодействие RDP Клиента и сервера терминалов.
5.
Объясните своими словами, в чём суть уязвимости MS17-010
файлового сервера?
6.
Какие методы защиты от эксплуатации уязвимости MS17-010 вы
знаете?
7.
Какие
существует
способы
предотвращения
инцидентов,
связанных с уязвимостью MS17-010 файлового сервера?
8.
Какой протокол нужно отключить для закрытия уязвимости
MS17-010? Как это сделать?
103
ЛАБОРАТОРНАЯ РАБОТА №5
Защита данных сегмента АСУ ТП
В лабораторной работе рассматривается атака злоумышленника на
сегмент АСУ ТП предприятия с целью получения доступа к внутренним
ресурсам.
После обнаружения и эксплуатации целого ряда уязвимостей
нарушитель получает доступ к серверу, на котором установлен SCADA,
благодаря чему злоумышленник может как заполучить необходимую
информации, так и нарушить работоспособность АСУ ТП.
Главная цель – заполучить данные с АСУ ТП предприятия.
Квалификация
нарушителя
высокая.
Он
умеет
использовать
инструментарий для проведения компьютерных атак, а также знает техники
постэксплуатации.
Средство
обнаружения
вторжений
–
программно-аппаратный
комплекс для обнаружения вторжений в информационные системы ViPNet
IDS.
Рассматриваемые уязвимости:
1. уязвимая версия Axis2 (CVE-2010-0219);
Apache Axis (Apache eXtensible Interaction System) – фреймворк вебсервиса с открытым исходным кодом. Apache Axis2 же в свою очередь – это
механизм полная переработка широко используемого стека Apache Axis
SOAP. Axis2 предоставляет возможность добавлять интерфейсы Webсервисов в Web-приложения. Он также может работать как автономный
сервер. Приложение, созданное с помощью Axis2, можно развернуть на
Tomcat или любом другом совместимом сервере приложений.
Основные особенности Axis2: скорость, низкий объем занимаемой
памяти,
гибкость,
стабильность,
расширяемость,
AXIOM,
горячее
развертывание, асинхронные веб-службы, поддержка MEP, компонентноориентированное развертывание, транспортная структура, поддержка
104
WSDL.
Основными проблемами безопасности при работе с Axis2 является:
некорректная настройка параметров безопасности(проблемы с контролем
доступа и аутентификацией), межсайтовое выполнение сценариев (XSS),
использование компонентов с известными уязвимостями, разглашение
конфиденциальных данных, внешние сущности XML(XXE).
Самыми действенными способами обеспечения безопасности при
работе с Axis2 является: своевременное обновление программной части и
грамотное ведение политики безопасности в компании.
2. уязвимая версия программы CoolReaderPDF (CVE-2012- 4914);
CoolReaderPDF
платформенным
по
своей
приложением
сути
для
является
просмотра
обычным
файлов
кросс-
различных
расширений, в данном случае с помощью этого приложения открывался
PDF-файл. Многие знают, что приложенные с письмом архивы(расширения
.rar .zip) могут содержать в себе вредоносные файлы, однако не каждый
догадывается, что в документы Microsoft Office и PDF-файлы тоже возможно
встроить различные «скрипты», которые активируется при просмотре
конкретной страницы.
Дело в том, что PDF-файлов – не просто конвертированный текст или
изображение, он имеет конкретную структуру и может содержать в себе до
восьми типов объектов: boolean-значения, числа, строки, имена, массивы,
словари, потоки, null-объекты. Именно благодаря этому возможно
выполнение вредоносного кода при просмотре, казалось бы обычной,
очередной страницы файла.
Основные способы защиты от вредоносных файлов:
1)
Фильтрация электронной почты и содержимого веб-
страниц.
2)
Использование системы предотвращения вторжений.
3)
Запрет JavaScript.
105
4)
Запрет отображения PDF-файлов в браузерах.
5)
Запрет доступа к файловой системе и сетевым
ресурсам для приложений, предназначенных для чтения PDFфайлов.
3. уязвимая версия IGSS (CVE-2011-1567).
Interactive Graphical SCADA System (IGSS) – это интерактивное
графическое приложение для SCADA системы, которое позволяет
специалисту обеспечивать контроль за технологическими процессами на
АСУ ТП в реальном времени. АСУ ТП, в свою очередь, является комплексом
программных и технических средств, предназначенных для создания систем
автоматизации
управления
технологическим
оборудованием
и
производственными процессами на предприятиях, то есть для максимальной
автоматизации производства.
Основными уязвимостями
в корпоративных информационных
системах промышленных организаций являются:
1)
Доступность интерфейсов администрирвоания (SSH, Telnet,
RDP) внешнему нарушителю.
2)
Словарные пароли привилегированных пользователей.
3)
Доступность подключения к СУБД внешнему нарушителю.
4)
Уязвимые версии ПО.
5)
Использование открытых протоколов передачи данных.
6)
Загрузка произвольных файлов на компьютеры предприятий
пользователями.
7)
Избыточность привилегий пользователей и ПО.
8)
Хранение важных данных в открытом виде или доступе.
При
отсутствии
всех
вышеперечисленных
уязвимостей
в
корпоративной информационной системе риск проникновении внешнего
нарушителя значительно снижается.
106
Ход работы
1.
Уязвимая версия Axis2 (CVE-2010-0219)
Для обнаружения уязвимости воспользуйтесь уже хорошо знакомым
ViPNet IDS, подключимся по заданному ip и авторизуемся. Далее
отсортируйте события, оставив только высокий и средний уровень важности.
Как видно на рисунке 1, в самом начале выполнения сценария посвилось
множество событий с правилом «ET SCAN Nmap», что говорит о
сканировании сети предприятия из внешней сети. Также на рисунке 1
выделены те правила, которые сообщают нам о том, что злоумышленник
нашел сервер с отрытым портом и начал эксплуатировать уязвимость,
связанную с axis2, которая позволяет получить доступ к конфигурационному
фалу и отправлять отчеты менеджеру.
Рисунок 1 – События в ViPNet IDS
На рисунке 2 показано другое событие, правило которого сообщает
об эксплуатации уязвимости, связанной с командой «netcat» внутри http
запроса.
107
Рисунок 2 – Событие с правилом о нестандартной команде внутри http
запроса
Для устранения уязвимости подключимся к удаленному рабочему
столу. Далее с помощью PDF-файла с информацией о подключениях к
различным узлам сети компании найдем необходимый нам сервер с axis2. В
данном случае он имеет ip-адрес 10.10.1.24, чтобы зайти непосредственно в
саму среду axis2 нужно также прописать в строке запроса порт и
необходимое средство. Итоговый запрос и сайт выглядят следующим
образом: «10.10.1.24:8080/axis2» и рисунок 3.
Рисунок 3 – Cайт с axis2
108
Первая проблема в данном случае заключается в том, что из
конфигурационного файла axis2.xml можно получить данные учетной записи
администратора (рисунок 4). Далее с помощью полученных данных можно
авторизоваться под учетной записью администратора (рисунок 5).
Рисунок 4 – Конфигурационный файл
109
Рисунок 5 – Авторизация под учетной записью администратора
Далее злоумышленник с помощью эксплойта добавляет в папку
services вредоносный сервис со случайным именем и запускает его. Сервисы
расположены в папке /opt/tomcat/webapps/axis2/WEB-INF/services. Однако
просмотреть данную папку через SSH-соединение с помощью программы
Bitvise или PuTTY возможно только лишь с учетной записи root, к которой
нет доступа (рисунок 6).
Рисунок 6 – Отсутствие доступа к нужной папке от пользователя user
Но также можно просмотреть весь список сервисов через запрос
«10.10.1.24:8080/axis2/services/listServices» в адресной строке (рисунок 7).
Здесь
видно
вредоносный
сервис
со
случайным,
созданный
злоумышленником, а также ссылку, по которой можно просмотреть код
данного сервиса.
110
Рисунок 7 – Список сервисов
Перейдя по ссылке, в коде можно увидеть строчку, которая и отвечает
за эксплуатацию уязвимости (рисунок 8).
Рисунок 8 – Код вредоносного сервиса
Чтобы закрыть данную уязвимость, необходимо авторизоваться на
данном сервисе от имени менеджера и свернуть все сервисы по пути axis2,
нажатием на кнопку «Undeploy» (рисунок 9), после этого уязвимость будет
устранена (рисунок 10). А для того, чтобы такие атаки не реализовывались в
111
будущем, необходимо обновить axis2.
Рисунок 9 – Отключение сервисов axis2
Рисунок 10 – Устраненная уязвимость axis2
2. Уязвимая версия программы CoolReaderPDF (CVE-2012- 4914)
Все с помощью той же ViPNet IDS можно обнаружить сетевую
активность между машиной злоумышленника и рабочей станцией менеджера
(ip: 10.10.4.11), что отображено на рисунке 11. Также правило одного из
событий гласит, что на машине менеджера обнаружена сетевая активность
вредоносного ПО.
112
Рисунок 11 – Сетевая активность между хостом менеджера и машиной
злоумышленника
Вызвана данная активность открытием менеджером PDF-файла с
вредоносным содержимым, который с помощью эксплойта был отправлен по
почте от пользователя dev1. На рисунке 12 показано как именно
злоумышленник отправил вредоносный файл менеджеру.
Рисунок 12 – Способ отправки вредоносного вложения менеджеру
113
Если подключиться к машине менеджера еще во время выполнения
сценария(очень важно ничего не трогать, не закрывать/открывать какие-либо
программы и окна, так как скрипт может не сработать и сценарий не
выполнится до конца), то можно увидеть, как на электронную почту
приходит сообщение с вредоносным вложением (рисунок 13), и каким
образом открывается PDF-файл, после чего он пролистывается до страницы
со встроенным скриптом (рисунок 14). Причем CoolPDFReader перестает
отвечать на команды перед открытием последней страницы, так как
происходит переполнение буфера.
Рисунок 13 – Письмо с вредоносным PDF-файлом на почте у менеджера
114
Рисунок 14 – PDF-файл с вредоносным содержимым, встроенным в
страницу
Именно при переполнении буфера при выполнении вредоносного
кода и устанавливается канал связи между машиной злоумышленника и
хостом менеджера, таким образом, злоумышленник получает доступ во
внутреннюю сеть компании (рисунок 15). Интересно отметить, что
злоумышленник после получения доступа над компьютером менеджера,
сразу же удаляет письмо, чтобы замести следы проникновения (рисунок 13).
115
Рисунок 15 – Сетевое соединение с хостом нарушителя
Для того чтобы устранить уязвимость, необходимо в первую очередь
установить новую портативную версию. Для этого достаточно просто
удалить .exe файл с рабочего стола менеджера, а на его место перенести
новый .exe файл с машины, к который происходит изначальное подключение
при работе с виртуальными машинами Ampire, на рисунке 16 показана
разница в версиях программ.
Рисунок 16 – Разные версии программы Cool PDF Reader
Затем в Windows Firewall необходимо создать запрещающее правило
116
на исходящие подключения от программы CollPDFReader (рисунок 17).
Рисунок 17 – Созданное запрещающее правило в Windows Firewall
После проделанных действий уязвимость будет закрыта (рисунок 18)
Рисунок 18 – Устраненная уязвимость CoolPDFReader
3. Уязвимая версия IGSS (CVE-2011-1567).
На данном этапе необходимо закрыть уязвимость IGSS.
Снова откройте ViPNet IDS, в самом конце проникновения
нарушителя в сеть предприятия можно обнаружить подключение хоста
менеджера (ip: 10.10.4.11) непосредственно к серверу со SCADA (ip:
10.10.3.10), что отображено на рисунке 19. Правила данных событий говорят
о том, что в программе с графическим интерфейсом SCADA переполняется
стек. В дальнейшем это приводит к выполнению вредоносного кода и
117
прямому подключению злоумышленника к серверу.
Рисунок 19 – Эксплуатация уязвимости на SCADA-сервере
Если опять же подключиться к машине со SCADA-сервером на
конечных этапах выполнения сценария, то в программе IGSSDataServer
можно увидеть активное соединение данной машины с хостом менеджера
(рисунок 20).
Рисунок 20 – Подключение машины менеджера к SCADA-серверу
Также, если открыть консоль на данной машине и прописать команду
«netstat –ano», то появится информация обо всех подключениях данной
машины к другим узлам с момента запуска, как видно на рисунке 21, сервер
имеет установленное соединение с компьютер злоумышленника.
118
Рисунок 21 – Активная сессия между сервером и компьютером нарушителя
Далее приступим к устранению уязвимости, для этого нужно на
сервере включить Windows Firewall (рисунок 22), а также убрать из
исключений все сервисы IGSS (рисунок 23).
Рисунок 22 – Включение Windows Firewall
119
Рисунок 23 – Отключение исключений для IGSS
После выполнения данных действий уязвимость будет устранена, на
рисунке 24 продемонстрированы все три закрытые уязвимости.
Рисунок 24 – Устраненные уязвимости
120
Индивидуальное задание
Также, как и в предыдущих работах, заполните карточку инцидента в
соответствии со своим вариантом (таблица 1). В результате выполнения
индивидуального задания должны получиться корректно заполненные
карточки инцидентов, в которых содержится максимально точная и
корректная информация об обнаруженном действии нарушителя.
Корректное заполнения карточки инцидентов и карточек описания
вектора атаки можно найти в 1-ой лабораторной работе.
Таблица 1 – Варианты
Вариант
Уязвимость
1
Уязвимая версия Axis2
2
Уязвимая версия программы
CoolReaderPDF
Уязвимая версия IGSS
3
Таблица 2 – Карточка инцидента информационной безопасности
Название
Источник
Пораженные хосты
Индикаторы
Дата
Файл
Описание
Рекомендации
121
Контрольные вопросы:
1.
Объясните своими словами что такое Apache Axis. В чем его
особенности?
2.
Как обеспечить безопасность Apache Axis? Какие у него главные
уязвимости?
3.
Поэтапно расскажите, в рамках представленного сценария, какие
меры нужно принять для закрытия уязвимости Axis2 (CVE-2010-0219)
4.
Что вы знаете о внедрении и выполнении вредоносного кода
через приложение?
5.
Назовите основные способы защиты от внедрения вредоносного
6.
Поэтапно расскажите, в рамках представленного сценария, какие
кода.
меры нужно принять для закрытия уязвимости CoolReaderPDF (CVE-20124914).
7.
Назовите
основные
уязвимости
в
корпоративных
информационных системах промышленных организаций.
8.
Поэтапно расскажите, в рамках представленного сценария, какие
меры нужно принять для закрытия уязвимости IGSS (CVE-2011-1567).
122
ЛАБОРАТОРНАЯ РАБОТА №6
Защита научно-технической информации предприятия
В лабораторной работе была рассмотрена атака внутреннего
нарушителя на внутренних сотрудников компании и на сервера ЦОД. В
результате он смог подключиться к внутренней базе данных и получить
значения технических параметров работы новых насосных станций.
Внутренняя служба безопасности не смогла обнаружить в новом
сотруднике специально подготовленного агента, который устроился в
компанию для получения сведений, касающихся разработки новых насосных
станций.
Квалификация нарушителя
высокая. Он умеет использовать
инструментарий для проведения атак, а также знает техники пост эксплуат
ации.
Средство
обнаружения
вторжений
–
программно-аппаратный
комплекс для обнаружения вторжений в информационные системы ViPNet
IDS.
Рисунок 1 – Определение внутреннего нарушителя
123
Под
внутренними
угрозами
информационной
безопасности
понимаются угрозы со стороны сотрудников компании как умышленные
(мошенничество, кража, искажение или уничтожение конфиденциальной
информации, промышленный шпионаж и т.п.), так и неумышленные
(изменение или уничтожение
информации из-за низкой квалификации
сотрудников или невнимательности), а также сбои программных
или
аппаратных средств обработки и хранения информации.
Рассматриваемые уязвимости:
1. Слабый пароль на файловом сервере;
Нарушитель методом брутфорса подбирает пароль на файловый сервер
и меняет существующий на сервере файл файлом с бэкдором. Теперь на
сервере есть файл с вредоносным кодом, при запуске которого нарушитель
получит контроль над компьютером пользователя.
Вредоносный код — это компьютерный код или веб-скрипт,
преднамеренно разработанный для создания уязвимостей в системе, с
помощью которых он выполняет несанкционированные вредоносные
действия, такие как кража информации и данных и другие потенциальные
повреждения файлов и вычислительных систем.
Внедрение вредоносного кода - прикрепление вредоносного кода к
файлам, сообщениям электронной почты или другим файловым объектам, а
также запись вредоносного кода в различные области оперативной или
дисковой памяти, не имеющим прямого отношения к файлам Вредоносный
код
предоставляет
киберпреступникам
возможность
получить
несанкционированный удаленный доступ к атакованной системе ( «бэкдор»)
и похитить важные данные компании.
Чаще всего вредоносный код появляется на сайте в результате взлома
или
использования
украденного
пароля
для
доступа
к
сайту.
Злоумышленники получают пароли и ценную информацию при помощи
124
вирусов, которые могут оставаться на личном компьютере вебмастера или
администратора сайта длительное время.
При обнаружении вредоносного кода на сервере следует:
–
проверить рабочие станции и сервера антивирусом;
–
cменить пароли от FTP, административной панели CMS,
СУБД, SSH (если используете данный протокол для доступа к вебсерверу), а также от панели управления веб-хостингом (DirectAdmin,
cPanel, ISP Manager и т.п.);
–
проверить на другие виды заражения.
Рисунок 2 – Рекомендации для предотвращения внедрения
вредоносного кода
2. XSS (уязвимость CVE-2019-17427);
Межсайтовый скритинг (XSS) – это тип уязвимости программного
обеспечения,
свойственный
атакующему
внедрить
Web-приложениям,
клиентский
просматриваемые другими пользователями.
125
сценарий
который
в
позволяет
web-страницы,
Рисунок 2 – Цели нарушителя при эксплуатации узявимости XSS
Рисунок 3 – Схема хищения данных при эксплуатации XSS
3. Blind SQL (уязвимость CVE-2019-18890).
Эксплуатируемая уязвимость – CVE-2017-0144.
SQL-инъекция называется слепой (англ. blind SQL injection) в том
случае, когда результат выполнения запроса недоступен злоумышленнику.
При этом уязвимый веб-сайт по-разному реагирует на различные логические
выражения, подставляемые в уязвимый параметр. Таким образом,
злоумышленник может подобрать значения некоторых параметров (версия
СУБД, текущее имя и права пользователя и т. д.), подставляя в запрос
соответствующие логические выражения.
Рассмотрим следующий код:
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM catalog WHERE id = $id");
if (mysql_num_rows($result) != 0)
// Вывод описания товара…
else
echo "Товар не найден!";
Его задача — вывести описание товара из таблицы catalog по
указанному id. В случае, если товара с заданным id не существует, будет
126
выведено соответствующее сообшение.
Если в качестве id передать строку 1 AND 1 = 1, то условие запроса не
изменится, поскольку выражение 1 = 1 всегда истинно. Если товар с id
равным 1 существует, то в ответ будет получена страница с его описанием.
Если затем в качестве id передать строку 1 AND 1 = 2 с заведомо ложным
условием, то будет получено сообщение о том, что запрошенный товар не
существует. Таким образом, можно подобрать значения некоторых
параметров БД, например, условие SUBSTR(@@version, 1, 1) = 5 будет
верным только если версия СУБД равна 5.
Ход работы
1. Слабый пароль на файловом сервере
Сигналом для проверки пароля на файловом сервере (10.10.2.12)
являются попытки подключения к серверу с помощью .bat файла и .exe
(рисунок 1).
Рисунок 1 – События подключения к файловому серверу
Помимо этого, было обнаружено событие с трояном “LaZagne”
(рисунок 2).
127
Рисунок 2 – Событие с вредоносным софтом
Далее через встроенное в ОС средство «Event Viewer» в папке
«SMBServer» обнаруживаем ошибки с Event ID 551 (рисунок 3).
Рисунок 3 – Логи
После чего на файловом сервере находим файл с вредоносным софтом
(рисунок 4).
128
Рисунок 4 – Троян на файловом сервере
В файле “changelog.txt” видим, что пользователь “dev1” подобрал
пароли к redmine и файловому серверу (рисунок 5).
Рисунок 5 – LaZagne changelog
Смотрим текст .bat файла (рисунок 6).
129
Рисунок 6 – Текст файла “start.bat”
После чего закроем уязвимость. Для этого необходимо зайти на Active
Directory сервер и в оснастке пользователи и компьютеры поменять пароль
для компьютера пользователя “dev1”, так как он и являлся внутренним
нарушителем (рисунки 7 и 8).
Рисунок 7 – Оснастка пользователи и компьютеры
Рисунок 8 – Смена пароля
130
Далее проверяем закрылась ли уязвимость (рисунок 9).
Рисунок 9 – Смена пароля
2. XSS (уязвимость CVE-2019-17427).
С помощью IDS отследим события высокой важности.
Рисунок 10 – События высокой важности
Заметим, что часто фигурирует ip-адрес 10.10.2.15. Это может
свидетельствовать об атаке на этот адрес.
Проведём анализ pcap-файла, на которое сработало правило.
131
Рисунок 11 - Анализ pcap-файла, на которое сработало правило
Зайдём на сервер redmine.ampire.corp. Войдём на сайт за пользователя
dev1. Данные для входа можно найти в файле, расположенном на рабочем
столе.
Рисунок 12 – Авторизация на сайте за пользователя dev1
132
После этого перейдём на страницу Wiki для проcмотра находящегося
там кода.
Рисунок 13 – Код, находящийся на страницы Wiki пользователя dev1
Данный код включает REST API, если выполняется с учетной записи
admin.
На странице Wiki можно написать код. Так, например, можно написать
код, который будет выводить XSS при нажатии на поле Wiki.
Рисунок 14 - Пример добавление кода, выводящего на экран надпись XSS в
wiki страницу
133
Рисунок 15 – Выведенная надпись
Перейдём на сайт по адресу 10.10.2.15. Проверим, включён ли REST
API, так как он может использоваться для эксплуатации уязвимости. Для
этого авторизуемся на сайте. Необходимо войти за администратора. Данные
для входа можно найти в файле, расположенном на рабочем столе.
Рисунок 16 - Включенное API в админке сайта
Проверим, какая версия стоит на сервере.
134
Рисунок 17 – Установленная версия Redmine.
В нашем случае используется версия Redmine 3.3.4.stable. Данная
версия уязвима для CVE. Просмотрим уязвимости CVE для нашей версии.
Рисунок 18 – Перечень уязвимостей CVE для нашей версии
Более детально рассмотрим уязвимость XSS в Redmine.
135
Рисунок 19 – Детальное описание уязвимости XSS в Redmine
На github существует более подробное описание данной уязвимости.
Для
просмотра
этого
описания
перейдём
по
адресу
github.com/RealLinkers/CVE-2019-17427.
Рисунок 20 – Подробное описание уязвимости XSS в Redmine на сайте
github
136
Чтобы получить ещё больше информации об этой уязвимости
произведём запрос в google, как показано на рисунке ниже.
Рисунок 21 – Запрос в google
Перейдём по третьей ссылке.
Рисунок 22 – Страница описания уязвимости
137
Здесь представлена информация о нашей уязвимости, а также ссылка
на git debian, где сказано, как исправить уязвимость.
Из описания уязвимости понятно, что нужно искать библиотеку для
преобразования textile разметки в html. В Redmine за это отвечает Redcloth
(файл redcloth3.rb в папке /var/www/redmine/lib).
Рисунок 23 – Содержимое файла redcloth3.rb
Нас интересуют последние 5 строк. Перейдём по ссылке на git
debian, указанной выше.
138
Рисунок 24 – Fix для CVE-2-19-17427
Обратим внимание на изменения в файле redcloth3.rb.
Красным помечена та часть кода, которую необходимо убрать, а
зелёной – которую необходимо добавить. Добавим этот патч в исходник
файла redcloth3.rb.
139
Рисунок 25 – Добавление патча в исходник файла redcloth3.rb
На забываем перезапустить nginx.
Рисунок 26 – Перезапуск nginx
Проверим, устранена ли уязвимость.
Рисунок 27 – Уязвимость устранена
140
3. Blind SQL (уязвимость CVE-2019-18890).
В IDS можно увидеть множество событий с SQL инъекциями
(рисунок 1), где целью является Redmine с ip-адресом 10.10.2.15.
Рисунок 28 – События с SQL атаками
Далее
необходимо
перейти
на
следующий
сайт
https://bugs.launchpad.net/ubuntu/+source/redmine/+bug/1853063 (рисунок 29)
и ознакомиться с информацией об эксплуатируемой уязвимости.
Рисунок 29 – Уязвимость CVE-2019-18890
Следующим действием будет переход в раздел, выделенный на
рисунке 2, в нем находится информация об изменении файлов, которое
позволяет закрыть уязвимость.
141
Ознакомившись
с
методом
решения
проблемы,
необходимо
отредактировать строку в файле «query.rb», находящемся на Redmine по
следующему пути «var/www/redmine-3.3.4/app/models» (рисунок 30).
Рисунок 30 – Содержимое файла «query.rb»
После редактирования файла следует перезагрузить NGINX с
помощью команды, показанной на рисунке 31.
Рисунок 31 – Перезагрузка NGINX
142
Индивидуальное задание
Заполните карточку описания вектора атаки Cyber Kill Chain в
соответствии со своим вариантом (таблица 1). В результате выполнения
индивидуального задания должны получиться корректно заполненные
карточки описания вектора атаки, в которых содержится максимально точная
и корректная информация об инциденте.
Корректное заполнения карточки инцидентов и карточек описания
вектора атаки можно найти в 1-ой лабораторной работе.
Таблица 1 – Варианты
Вариант
Уязвимость
Слабый пароль на файловом
1
сервере
2
XSS
3
Blind SQL (уязвимость CVE2019-18890)
Таблица 2 – Карточка Cyber Kill Chain
Название атаки
Нарушитель внутренний?
(да/нет)
Конечная цель нарушителя
Какие промежуточные узлы
сети нарушитель атаковал?
Последовательность действий
Какие уязвимости нарушитель
эксплуатировал
Комментарии
143
Контрольные вопросы:
1.
Чем внутренний нарушитель отличается от внешнего?
2.
Какие внутренние угрозы ИБ вы можете назвать?
3.
Что следует предпринять при обнаружении вредоносного кода на
сервере?
4.
Как вы поняли, что на сервер был внедрён файл с вредоносным
содержимым?
5.
Расскажите своими словами про XSS (уязвимость CVE-2019-
17427).
6.
В каком случае SQL-инъекция называется слепой?
7.
В рамках данного сценария, расскажите, как можно закрыть
уязвимость XSS?
8.
В рамках данного сценария, расскажите, как можно пресечь
слепую SQL-инъекцию?
144
ЛАБОРАТОРНАЯ РАБОТА №7
Защита корпоративного портала от внутреннего нарушителя
В лабораторной работе была рассмотрена атака внутреннего
нарушителя на внутренний портал организации.
Нарушитель проводит ряд успешных атак на внутренние сервера
Компании. В результате он смог получить административный доступ к
корпоративному порталу, что дало ему возможность размещать любую
информацию.
Квалификация
инструментарий
для
нарушителя
средняя.
проведения
Он
умеет
использовать
атак,
а
также
знает
техники
вторжений
–
программно-аппаратный
постэксплуатации.
Средство
обнаружения
комплекс для обнаружения вторжений в информационные системы ViPNet
IDS.
Автоматическое выявление инцидентов на основе интеллектуального
анализа событий информационной безопасности - программно-аппаратный
комплекс ViPNet TIAS.
Специализированный
предотвращение
контроль
проникновения,
сетевой
безопасности
упрощающие
и
централизованное
управление сетью - Security Onion.
Рассматриваемые уязвимости:
1. Apache Struts2 RCE (уязвимость CVE-2017-5638);
Apache Struts - это платформа веб приложений с открытым исходным
кодом для разработки веб приложений Java EE. Он использует и расширяет
API сервлетов Java, чтобы побудить разработчиков принять архитектуру
модель представление-контроллер (MVC Model-View-Controller).
Struts был создан для того, чтобы чётко разделить модель (бизнеслогику), представление (HTML-страницы) и контроллер (отвечающий за
передачу данных от модели к представлению и обратно).
145
Apache Struts 2 не обеспечивает никакого механизма безопасности это просто чистый веб-фреймворк. Уязвимость Jakarta Multipart парсера в
Apache Struts CVE-2017-5638 является одной из самых опасных уязвимостей
по данным 2020-го года.
Рисунок 2 – Рекомендации для предотвращения внедрения
вредоносного кода
2. CMS Made Simple Privilege Escalation (уязвимость CVE-201810519);
Повышение привилегий — это использование компьютерного бага,
уязвимостей, ошибки в конфигурации операционной системы или
программного обеспечения с целью повышения уровня доступа к
вычислительным ресурсам, которые обычно защищены от пользователя.
Повышение привилегий может быть горизонтальное или вертикальное
(Рисунок 3).
146
Рисунок 3 – Виды повышения привилегий и их последствия
Потенциальные слабые места веб-приложений и ситуации, которые
могут привести к горизонтальному повышению привилегий (Рисунок 4).
Рисунок 4 – Слабые места веб-приложений и ситуации, которые могут
привести к горизонтальному повышению привилегий
147
Снизить риск эксплуатации уязвимости повышения привилегий
можно несколькими способами (Рисунок 5).
Рисунок 5 – Способы снижения риска повышения привилегий
3. CMS Made Simple RCE (уязвимость CVE-2018-10515);
RCE (Remote code execution) - угрозы являются одной из
разновидностей видов инъекций и считаются одними из самых опасных
уязвимостей сайтов. Возможность эксплуатации RCE возникает из за
грубейших ошибок разработки сайта, отсутствия фильтрации передающих
параметров,
использование
небезопасных
функций
и
приемов
программирования. Возможность удаленного внедрения кода в серверный
скрипт в 100% случаев приводит к взлому ресурса. С помощью RCE
злоумышленник сразу получает доступ к серверу атакуемого сайта,
размещая на нем веб-шеллы, или любой другой вредоносный код. На
практике встречались случаи, когда RCE эксплуатировали боевые скрипты,
148
размещенные на хакерских серверах, которые отслеживали наличие
вредоносной составляющей, вирусов шеллов и т.п. на сайте.
Когда программисты сайта пытались удалить вредоносные скрипты с
своих сайтов, они появлялись заново, в течении секундю
Обычным удалением вирусов троянов и шеллов в таком случае не
обойтись. Первоначально нужно найти и устранить уязвимость в коде,
позволяющую эксплуатировать RCE
Пример уязвимого PHP скрипта:
Файл vuln.php
<?
eval($_GET['code']);
?>
Вызов скрипта:
http://vulnserver.com/vuln.php?code=phpinfo();
Результат:
Выполнение PHP кода, а именно команды phpinfo();
Для защиты следует проводить:
–
фильтрацию параметров, передающих данные в
eval(); assert(); и т.д.
–
проверку валидности запросов а также данных в
передающих параметрах.
4. Windows Local Privilege Escalation (уязвимости CVE-2019-1405 и
CVE-2019-1322).
Учетные записи локальных пользователей по умолчанию - это
встроенные учетные записи, которые создаются автоматически при
установке Windows.
Привилегированный пользователь - это любой пользователь,
использующий в настоящее время привилегированный доступ, например,
через привилегированную учетную запись.
Привилегированные учетные записи — это учетные записи с
149
расширенными полномочиями, которые по сравнению с обычными
учетными записями предоставляют возможность неограниченного и,
возможно, анонимного доступа ко всем объектам инфраструктуры.
Повышение привилегий состоит из различных методов, которые
злоумышленники используют для получения разрешений более высокого
уровня в системе или сети. Злоумышленники часто входят в сеть и исследуют
ее с непривилегированным доступом, но для достижения своих целей
требуются повышенные разрешения, что достигается путём использования
слабых мест системы, неправильной конфигурации и уязвимостей.
На
рисунке
6
представлены
некоторые
методы
привилегий.
Рисунок 6 – Методы повышения привилегий
150
повышения
Ход работы
1.
Apache Struts2 RCE (уязвимость CVE-2017-5638)
Перейдём в VipNet IDS и зафиксируем многочисленные атаки на вебприложения с IP 10.10.4.17 на IP 10.10.1.24. Для удобства используйте
фильтрацию списка по IP или по названиям правил, в которых присутствуют
упоминания об Apache Struts2 (Рисунок 7).
Рисунок 7 – События со спецификацией ApacheStruts2
После успешной атаки злоумышленник должен будет закрепиться в
системе. Найдем и зафиксируем множественные активности эксплойтов и
попытки внедрения вредоносного кода с участием всё тех же IP-адресов
(Рисунки 8-9).
151
Рисунок 8 – События со спецификацией EXPLOIT Apache Struts
Рисунок 9 – События со спецификацией trojan-activity
Воспользуемся средствами обнаружения вторжений от TIAS. С их
помощью можно также отследить вторжение (Рисунки 10-11).
152
Рисунок 10 – Резкое повышение сетевой активности в динамике событий
Рисунок 11 – События со спецификацией Apache Struts в TIAS
Также следы вторжения можно найти и в SecOnion. Воспользуемся
Squert для просмотра событий и найдем там необходимую информацию.
Зафиксируем её (рисунок 12).
153
Рисунок 12 – События со спецификацией Apache Struts в SecOnion
Для парсинга пользовательских POST-запросов используется класс
JakartaMultiPartRequest.
Сам процесс загрузки файлов контролируется
классом FileUploadInterceptor. И если обработчик запроса возвращает какието ошибки, то он пытается их отобразить. Если в найденном тексте ошибки
имеются конструкции вида
${...}
или
%{...},
то они попадают в парсер
выражений OGNL и выполняются. А поскольку сообщение об ошибке,
которую вызывает эксплоит, содержит в себе текст из заголовка Content-Type,
то манипуляции с заголовком могут привести к исполнению произвольного
кода.
Есть несколько способов закрытия представленной уязвимости. Один
из них - установка secure Jakarta Multipart parser plugin.Так как уязвимость
сосредоточена в компоненте Jakarta Multipart parser, для закрытия
уязвимости следует заменить его на аналог, не подверженный данной
уязвимости Однако есть и более простой способ, который будет рассмотрен
ниже.
Перейдём к закрытию уязвимости. На узле Tomcat развернут
тестовый сервис с использованием фреймворка Apache Struts2, где
существует уязвимость удаленного выполнения кода, которая заключается в
некорректной логике обработки сообщений об ошибках. Если текст ошибки
содержит языковые конструкции OGNL, то они будут выполнены. Таким
образом, атакующий может отправить специально сформированный запрос,
который повлечет за собой исполнение произвольного кода.
154
Подключимся к удалённому рабочему столу и перейдём на сайт
Tomcat (IP по умолчанию 10.10.1.24, 8080 порт) (рисунок 13). Зайдём по
учётной записью администратора. Данные для входа находятся на рабочем
столе удалённого рабочего места.
Рисунок 13 – Вход и авторизация на узле
Перейдите во вкладку manager (чтобы не искать нужную вкладку,
просто введите запрос как показано на Рисунке 14). Перед вами отроется
панель приложений.
155
Рисунок 14 – Панель приложений
Здесь важно поле /struts2-showcase-2.3.12. Увидим, что running=true, а
значит – компонент в данный момент активен. Для закрытия уязвимости
следует просто остановить работу приложения, нажав на кнопку Stop. После
приостановки появится уведомление (Рисунок 15).
156
Рисунок 15 – Работа компонента приостановлена
Перейдем в Ampire и убедимся, что уязвимость устранена (Рисунок 16).
Рисунок 16 – Закрытая уязвимость
2. CMS Made Simple Privilege Escalation (уязвимость CVE-201810519)
Для
обнаружения
уязвимости
157
воспользуемся
ViPNet
IDS.
Подключимся по заданному ip и авторизуемся. Отсортируем инциденты по
времени. Просмотрим инциденты высокой важности.
Рисунок 17 – События высокой важности
Рисунок 18 – Описание события высокой важности
158
В этих инцидентах фигурируют слова «TROJAN» и «EXPLOIT» и все
они направлены на сервер 10.10.2.16. Это может означать, что на сервер
10.10.2.16 злоумышленник производит атаку.
С помощью программы Wireshark более подробно изучим события.
Рисунок 19 – Попытка обращения к бэкдору
Также заметим User-Agent нарушителя: Mozilla/5.0 (X11; Linux x86_64;
rv:60.0) Gecko/20100101 Firefox/60.0\r\n.
Зайдём на сервер 10.10.2.16 и проверим версию его CMS.
159
Рисунок 20 – Сайт по адресу 10.10.2.15/cmsms/
Войдём в учётную запись администратора. Логин – admin, пароль –
qweQWE123.
Рисунок 21 – Вход в учётную запись администратора
160
Рисунок 22 – Учётная запись администратора
Для проверки версии CMS перейдём в Site Admin – System Information.
Рисунок 23 – Версия CMS
Проверим, какие уязвимости существуют для установленной версии
CMS.
161
Рисунок 24 – Уязвимости для установленной версии CMS
Найдём возможную уязвимость.
Рисунок 25 – Возможная уязвимость
162
Суть
уязвимости
CVE-2018-10519
заключается
в
том,
что
злоумышленник может обойти механизм проверки и получить привилегии
учётной записи admin.
На этой вкладке также написан возможный способ повышения
привилегий.
Рисунок 26 – Возможный способ повышения привилегий
На сервере 10.10.2.16 анализируем лог веб-сервера с CMS Made Simple.
Для этого подключимся к удалённого рабочему столу по ip 10.10.2.16. По
пути C:\xampp\apache\logs найдём файл access. Отроем его с помощью
Notepadd++.
163
Рисунок 27 – Лог веб-сервера
Найдём в логе признаки эксплуатации уязвимости для повышения
привилегий.
Рисунок 28 – Признак эксплуатация уязвимости
Кешируемые
файлы
хранятся
в
папке
C:\xampp\htdocs\cmsms\tmp\cache.
Проверим, открыт ли доступ к директории cache. Для этого зайдём на
сайт по адресу 10.10.2.16/cmsms/tmp/ и обнаружим, что доступ к директории
cache открыт.
164
Рисунок 29 – Проверка доступа к директории cache
Ограничим доступ в директорию cache. Для этого создадим .htaccess
файл с пустым расширением и пропишем в нём правило на перенаправление
при попытке доступа. Поскольку данные файлы имеют расширение cms,
можно ограничиться следующим регулярным выражением (отправлять код
403 при попытке доступа к файлам с расширением cms) .
Рисунок 30 – Содержимое файла .htaccess
После этого уязвимость будет устранена.
165
Рисунок 31 – Устранённая уязвимость
3. CMS Made Simple RCE (уязвимость CVE-2018-10515)
Операция «file unpack» содержит уязвимость удаленного выполнения
кода, так как зловредный php-файл может быть распакован из ZIP-архива.
В папке upload загружен шелл нарушителя (рисунок 32).
Рисунок 32 – Шелл нарушителя
Рассмотрим файл action.unpack.php (рисунок 33).
166
Рисунок 33 – Вызов функции разархивации
В файле action.unpack.php интересна функция extract, находящаяся в
EasyArchive.class.php. Рассмотрим участок, связанный с распаковкой ZIP
(рисунок 34). Отсюда следует, если файл имеет расширение zip, то все его
содержимое распаковывается.
167
Рисунок 34 – Разархивирование в случае расширения zip
Для того, чтобы устранить уязвимость необходимо ограничить доступ
к php-скриптам.
Для этого перейдем в папку uploads (рисунок 35).
168
Рисунок 35 – Содержимое файла .htaccess
Рисунок 36 – Отсутствие ограничений
Для ограничения доступа к файлам следует создать .htaccess файл
и прописать в нем соответствующее правило. Поскольку загружаемые
файлы хранятся в папке uploads или в какой-нибудь подпапке, то
.htaccess файл рекомендуется создать в этой папке (рисунок 36).
169
Рисунок 36 – Обновленный файл
Проверяем ограничен ли доступ к php-скриптам (рисунок 37).
Рисунок 37 – Доступ к файлу заблокирован
170
4. Локальное повышение привилегий Windows.
Так как нарушитель пытается использовать уязвимости Windows
необходимо ее проверить с помощью команды «systeminfo.exe» (Рисунок 38).
После чего становится понятно, что на данной виртуально машине стоит
старый билд и нет патчей.
Рисунок 38 – Информация о системе
Выполняемые вредоносные файлы сохраняются на хосте жертвы в
директорию, куда позволяют имеющиеся права (в данном случае в папку
Temp), далее они запускаются.
Решением данной уязвимости
безопасности
(KB4519338).
Данное
официальной страницы Microsoft.
171
является
установка обновление
обновление
можно
скачать
с
После установки необходимо перезагрузить виртуальную машину.
Проверить наличие обновлений можно в журнале обновлений или с
помощью WMIC (Windows Management Instrumentation Command) (Рисунок
39).
Рисунок 39 – Проверка наличия обновления
172
Контрольные вопросы:
1.
Объясните своими словами уязвимость Apache Struts 2
2.
Какие вы знаете методы защиты от внедрения вредоносного
3.
Объясните своими словами что такое уязвимость повышения
кода?
привилегий.
4.
Какие вы знаете виды повышения привилегий? Какие у них
могут быть последствия?
5.
Из-за каких слабых мест приложения может произойти
эксплуатация уязвимости повышения привилегий?
6.
Как
снизить
риск
эксплуатация
уязвимости
повышения
привилегий?
7.
Что такое RCE? Объясните своими словами.
8.
Какими способами можно локально повысить привилегии
учетной записи в ОС Windows?
173
Литература
1. Девянин, П. Н. Модели безопасности компьютерных систем.
Управление доступом и информационными потоками [Электронный ресурс]:
учебное пособие / П. Н. Девянин. — 2-е изд., испр. и доп. — Москва : Горячая
линия-Телеком, 2017. — 338 с.
2. Фомин, Д. В. Информационная безопасность и защита информации
[Электронный ресурс]: специализированные аттестованные программные и
программно-аппаратные средства : методические указания / Д. В. Фомин. —
Благовещенск : АмГУ, 2017. — 240 с.
3. Ермакова, А. Ю. Методы и средства защиты компьютерной
информации [Электронный ресурс]: учебное пособие / А. Ю. Ермакова. —
Москва : РТУ МИРЭА, 2020. — 223 с.
4. Моргунов, А. В. Информационная безопасность : учебнометодическое пособие / А. В. Моргунов. - Новосибирск : НГТУ, 2019. - 83 с.
5. Абденов, А. Ж. Анализ, описание и оценка функциональных узлов
SIEM-системы : учебное пособие / А. Ж. Абденов, В. А. Трушин, К.
Сулайман. — Новосибирск : НГТУ, 2018. — 122 с.
174
Download