Выявление инцидентов и противодействие атакам на объекты критической информационной инфраструктуры
..pdfДалее проверяем закрылась ли уязвимость (рисунок 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