- PVSM.RU - https://www.pvsm.ru -

Ситуация: закрыты две уязвимости в TCP-стеке ядра Linux

В начале месяца специалисты по ИБ обнаружили [1] в ядре Linux две новые уязвимости: SegmentSmack и FragmentSmack. Обе они связаны с работой TCP-стека и позволяют злоумышленникам проводить DoS- и DDoS-атаки на систему жертвы. «Заплатки» для большинства дистрибутивов уже выпущены.

Под катом — подробнее о сути.

Ситуация: закрыты две уязвимости в TCP-стеке ядра Linux - 1 [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.

Ситуация: закрыты две уязвимости в TCP-стеке ядра Linux - 2
/ фото 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.S. Пара дополнительных материалов из Первого блога о корпоративном IaaS:

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