- PVSM.RU - https://www.pvsm.ru -
В начале месяца специалисты по ИБ обнаружили [1] в ядре Linux две новые уязвимости: SegmentSmack и FragmentSmack. Обе они связаны с работой TCP-стека и позволяют злоумышленникам проводить DoS- и DDoS-атаки на систему жертвы. «Заплатки» для большинства дистрибутивов уже выпущены.
Под катом — подробнее о сути.
[2]
/ фото Eli Duke [3] CC [4]
«Корень зла» SegmentSmack — функции tcp_collapse_ofo_queue() и tcp_prune_ofo_queue(). Злоумышленник вызывает их с помощью специальным образом модифицированных TCP-сегментов, отправленных на сервер, персональный компьютер или мобильное устройство жертвы.
Это приводит к перерасходу ресурсов памяти и процессора. Таким образом хакер может «повесить» хост или устройство трафиком всего в 2 тыс. пакетов за секунду.
На сайте RedHat приведен [5] пример результата такой атаки. Команда top показывает полную загрузку четырех ядер CPU и задержки в обработке сетевых пакетов:
$ top
%Cpu25 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.5 si, 0.0 st
%Cpu26 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st
%Cpu28 : 0.0 us, 0.3 sy, 0.0 ni, 0.7 id, 0.0 wa, 0.0 hi, 99.0 si, 0.0 st
%Cpu30 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
141 root 20 0 0 0 0 R 97.3 0.0 1:16.33 ksoftirqd/26
151 root 20 0 0 0 0 R 97.3 0.0 1:16.68 ksoftirqd/28
136 root 20 0 0 0 0 R 97.0 0.0 0:39.09 ksoftirqd/25
161 root 20 0 0 0 0 R 97.0 0.0 1:16.48 ksoftirqd/30
Отметим, что для поддержания «DoS-состояния» требуется открытая TCP-сессия, поэтому атаку нельзя проводить с помощью IP-спуфинга.
Атака FragmentSmack использует особенности фрагментации IP-датаграмм [6]. Когда IP-датаграмма передается на канальный уровень, она фрагментируется, если не помещается в кадр [7]. Таким образом, она передается по кусочкам, а хост-получатель потом собирает её воедино. Однако он узнает конечную длину датаграммы только тогда, когда получит последний фрагмент.
Злоумышленники используют эту особенность и корректируют значения смещения фрагментов, чтобы процессор сервера постоянно занимался сборкой IPv4- и IPv6-пакетов.
FragmentSmack дает работать с подставными IP-адресами, чтобы обмануть системы безопасности (получится использовать IP-спуфинг). Однако требует большей скорости отправки пакетов, чем SegmentSmack — 30 тыс. пакетов в секунду.
RedHat также приводят результат подобной атаки (ядро загружено на 99%):
top - 08:59:45 up 1:34, 2 users, load average: 0.39, 0.15, 0.08
%Cpu9 : 0.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi,100.0 si, 0.0 st
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
54 root 20 0 0 0 0 R 99.7 0.0 0:47.53 ksoftirqd/9
Подобные уязвимости обнаруживаются уже не в первый раз. В девяностых годах похожий баг нашли [8] в Windows NT 4.0, Windows 95 и версиях ядра Linux вплоть до 2.0.32. Эксплойт известен как teardrop attack [9] — злоумышленник тоже отправлял фрагментированные пакеты на целевое (сетевое) устройство, вызывая DoS. Уязвимость пропатчили, однако она проявилась позже.
В 2009 году баг вновь нашли [10] в Windows 7 и Windows Vista.
FragmentSmack угрожает [1] всем версиям ядра Linux, начиная с 3.9, а SegmentSmack — с 4.9. Список вендоров, в системах которых есть эти уязвимости, вы найдете на сайте CERT [11].
На прошлой неделе в Cisco сообщили [12], что атакам SegmentSmack и FragmentSmack подвержена их операционная система AsyncOS. Поэтому компания выпустила [13] ряд патчей.
Как отмечают в Сisco, «симптомы» уязвимости можно отследить при помощи команды netstat (пример есть на сайте Cisco в разделе Indicators of Compromise [13]). Если вывод команды покажет большое количество TCP-соединений в состоянии CLOSE_WAIT, то, вероятно, устройство подвержено этим уязвимостям.
Подробности о SegmentSmack-патчах для ряда дистрибутивов уже опубликовали на CVE [14] (например, вот патч для Ubuntu 14.04 LTS [15]). Там же вы найдете инструкции и файлы для установки заплаток для всех дистрибутивов Linux. Что касается FragmentSmack, то патчи против этой уязвимости уже выкатили [1] разработчики Ubuntu, Red Hat, Debian и Android OS.
/ фото Christopher Michel [16] CC [17]
В качестве временного решения проблемы с FragmentSmack (если патч по каким-то причинам установить не получается) можно изменить значения net.ipv4.ipfrag_high_thresh и net.ipv4.ipfrag_low_thresh на 256 и 192 Кбайт соответственно (вместо 4 МБ и 3 МБ).
Первый параметр задает максимальный объем памяти, выделяемый под очередь фрагментированных пакетов. Если длина очереди превысила его, обработчик фрагментов будет игнорировать все пакеты, пока длина очереди не станет меньше значения ipfrag_low_thresh.
Владельцы Android, как пишет Кевин Бомонт (Kevin Beaumont), эксперт по кибербезопасности, а также автор независимого блога [18] по теме, могут изменить [19] эти значения, используя команды:
echo “262144” > /proc/sys/net/ipv4/ipfrag_high_threshold
echo “196608” > /proc/sys/net/ipv4/ipfrag_low_thresh
Они должны сработать без перезагрузки устройства.
P.P.S. Еще несколько статей по теме из нашего блога на Хабре:
Автор: ИТ-ГРАДовец
Источник [25]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/290372
Ссылки в тексте:
[1] обнаружили: https://www.bleepingcomputer.com/news/linux/two-ddos-friendly-bugs-fixed-in-linux-kernel/
[2] Image: https://habr.com/company/it-grad/blog/421207/
[3] Eli Duke: https://www.flickr.com/photos/elisfanclub/5955799837
[4] CC: https://creativecommons.org/licenses/by-sa/2.0/
[5] приведен: https://access.redhat.com/articles/3553061
[6] фрагментации IP-датаграмм: https://ru.wikipedia.org/wiki/%D0%94%D0%B0%D1%82%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0
[7] кадр: https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B4%D1%80_(%D1%82%D0%B5%D0%BB%D0%B5%D0%BA%D0%BE%D0%BC%D0%BC%D1%83%D0%BD%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8)
[8] нашли: http://insecure.org/sploits/linux.fragmentation.teardrop.html
[9] teardrop attack: https://security.radware.com/ddos-knowledge-center/ddospedia/teardrop-attack/
[10] нашли: https://www.zdnet.com/article/windows-7-vista-exposed-to-teardrop-attack/
[11] на сайте CERT: https://www.kb.cert.org/vuls/byvendor?searchview&Query=FIELD+Reference=962459&SearchOrder=4
[12] сообщили: https://www.cso.com.au/article/645361/after-linux-dos-alerts-cisco-warns-security-devices-can-remotely-attacked-too/
[13] выпустила: https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20180815-wsa-dos
[14] на CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5390
[15] Ubuntu 14.04 LTS: https://usn.ubuntu.com/3742-1/
[16] Christopher Michel: https://www.flickr.com/photos/cmichel67/16144113688/
[17] CC: https://creativecommons.org/licenses/by/2.0/
[18] независимого блога: https://doublepulsar.com/
[19] могут изменить: https://doublepulsar.com/mitigating-linux-kernel-ip-fragment-re-assembly-dos-aka-cve-2018-5391-faee291f2808
[20] Бессерверные вычисления в облаке — тренд современности или необходимость? : https://iaas-blog.it-grad.ru/tendencii/besservernye-vychisleniya-v-oblake-trend-sovremennosti-ili-neobxodimost/
[21] Как протестировать дисковую систему в облаке: практические советы: https://iaas-blog.it-grad.ru/proizvoditelnost/testirovanie-diskovoj-sistemy-v-oblake/
[22] Что скрывается за термином vCloud Director — взгляд изнутри: https://iaas-blog.it-grad.ru/funkcionalnost/chto_skryvaetsa_za_terminom_vcloud_director_vzglyad_isnutri/
[23] Linux kernel 4.18: что готовит грядущий релиз: https://habr.com/company/it-grad/blog/417155/
[24] Релиз Linux kernel 4.17: что о нем нужно знать: https://habr.com/company/it-grad/blog/413931/
[25] Источник: https://habr.com/post/421207/?utm_source=habrahabr&utm_medium=rss&utm_campaign=421207
Нажмите здесь для печати.