Перейти к содержимому
Local
banderlog

sgauth на openwrt-роутере запустил, но...

Рекомендованные сообщения

If you still want to use these functions, you should be aware that they take each 32-bit chunk in host-byte order, which is little-endian on little-endian platforms and big-endian on big-endian ones.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

меняются местами при кодировании только в blowfish.cpp думаю попробывать стоит :)

 

хотя бы на ноуте .. чтоб сравнить ошибки :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

меняются местами при кодировании только в blowfish.cpp думаю попробывать стоит :)

 

хотя бы на ноуте .. чтоб сравнить ошибки :)

 

не вопрос. только мне нужен код который пробовать X)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

stglibscrypto.libblowfish.cpp

 

uint32_t bytes2block(const char * c)

{

uint32_t t = static_cast<unsigned char>(*c++);

t += static_cast<unsigned char>(*c++) << 8;

t += static_cast<unsigned char>(*c++) << 16;

t += static_cast<unsigned char>(*c) << 24;

return t;

}

//-----------------------------------------------------------------------------

// Note: swap bytes order for compatibility with OpenSSL

void block2bytes(uint32_t t, char * c)

{

*c++ = t & 0x000000FF;

*c++ = t >> 8 & 0x000000FF;

*c++ = t >> 16 & 0x000000FF;

*c = t >> 24 & 0x000000FF;

}

попробовать заменить на

 

uint32_t bytes2block(const char * c)

{

uint32_t t = static_cast<unsigned char>(*c++)<< 24;

t += static_cast<unsigned char>(*c++) << 16;

t += static_cast<unsigned char>(*c++) << 8;

t += static_cast<unsigned char>(*c) ;

return t;

}

//-----------------------------------------------------------------------------

// Note: swap bytes order for compatibility with OpenSSL

void block2bytes(uint32_t t, char * c)

{

*c++ = t>> 24 & 0x000000FF;

*c++ = t >> 16 & 0x000000FF;

*c++ = t >> 8 & 0x000000FF;

*c = t & 0x000000FF;

}

 

кажется так

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

очевидно, что старый новый год, и его канун, не лучшее время для ожиданий патча :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да я второй день пытаюсь завести какой-нить линукс на BE-архитектуре под qemu и пока безрезультатно :)

Не хочется "пальцем в небо" баги фиксить, но, похоже, придется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

это надо *wrt прошить какой-нить роутер на BE, а его еще надо найти. это мне 'посчастливилось'

 

я ж буду эти 'пальцы в небо' тестить не отходя от кассы и выхлопы сюда кидать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Судя по всему оно не поломалось. Оно и раньше не работало. В аттаче патч, по идее должен помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

это надо *wrt прошить какой-нить роутер на BE, а его еще надо найти. это мне 'посчастливилось'

 

я ж буду эти 'пальцы в небо' тестить не отходя от кассы и выхлопы сюда кидать

Ну не обязательно тестировать именно на *wrt и на be-железе. Достаточно любого Linux под эмулятором. Но мне так и не удалось завести на нем сеть почему-то. Так что будем "пальцем в небо" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Судя по всему оно не поломалось. Оно и раньше не работало. В аттаче патч, по идее должен помочь.

[#10171] У вас не достаточно прав для загрузки данного прикрепленного файла.

 

это при том что из других тем отлично качает

 

 

можно его куданить на pastebin или в этом роде? X)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

терь обмен 4мя пакетами: http://pastebin.com/VhVcKXJL

 

с ноутбуком не совпадают (там версия без патча, есессно, все так же как и в старых логах): http://pastebin.com/admgBwnU

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кажется кодирование сьел , теперь пакет не разобрался


  • Incorrec

  • 0x0040: 7420 7265 7175 6573 7420 4449 5343 4f4e t.request.DISCON

  • 0x0050: 4e5f 5359 4e00 0000 0000 0000 0000 0000 N_SY

 

так что почти попал пальцем в небо :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не .. не прошел

 

просто заголовок пакета зашифровался правильно ... а вот все остальное ....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

во втором пакете от тебя должно быть


  • 0x0030: 173c 853c 18b8 fbdc cda4 cff3 cd2a 2f49 .<.<.........*/I

  • 0x0040: b1e4 0a91 4a0c b2dd 444a 5c1f 4358 b05c ....J...DJ.CX.

  • 0x0050: 71e6 471a ed99 e3ab 1429 3bcb q.G......);.

а у тебя


  • 0x0030: 173c 853c 18b8 fbdc cda4 cff3 cd2a 2f49 .<.<.........*/I

  • 0x0040: b1e4 0a91 aeb1 9f07 a8cb 1674 4358 b05c ...........tCX.

  • 0x0050: 71e6 471a 4245 9dec 8bb0 e8b1 q.G.BE......

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не .. не прошел

 

просто заголовок пакета зашифровался правильно ... а вот все остальное ....

... тоже шифруется правильно. Иначе откуда бы он определил что это именно DISCONN_SYN?

 

во втором пакете от тебя должно быть


  • 0x0030: 173c 853c 18b8 fbdc cda4 cff3 cd2a 2f49 .<.<.........*/I

  • 0x0040: b1e4 0a91 4a0c b2dd 444a 5c1f 4358 b05c ....J...DJ.CX.

  • 0x0050: 71e6 471a ed99 e3ab 1429 3bcb q.G......);.

а у тебя


  • 0x0030: 173c 853c 18b8 fbdc cda4 cff3 cd2a 2f49 .<.<.........*/I

  • 0x0040: b1e4 0a91 aeb1 9f07 a8cb 1674 4358 b05c ...........tCX.

  • 0x0050: 71e6 471a 4245 9dec 8bb0 e8b1 q.G.BE......

Судя по всему он вместо CONN_ACK передает DISCONN_SYN. По размеру пакета они одинаковы. Вот только непонятно почему...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
banderlog, а можно посмотреть ваши исправленные исходники sgauth?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

там у него Incorrect.request.DISCONN_SYN т.е. типа DISCONN_SYN но кривой , думаю он превратился из CONN_SYN в DISCONN_SYN по какой то причине(кодировка,разбивание пакета на блоки .. этц) ,а не отправлялся именно DISCONN_SYN

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

там у него Incorrect.request.DISCONN_SYN т.е. типа DISCONN_SYN но кривой , думаю он превратился из CONN_SYN в DISCONN_SYN по какой то причине(кодировка,разбивание пакета на блоки .. этц) ,а не отправлялся именно DISCONN_SYN

Если посмотреть внимательно на дампы то будет видно что сообщение именно о DISCONN_SYN. Без разрывов. И нет такого хитроко преобразования которое превратило бы CONN_ACK в DISCONN_SYN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

banderlog, а можно посмотреть ваши исправленные исходники sgauth?

 

конечно можно. нопомню лишь, что исправленные исходники корректно работают собранными для LE для ноутбука.

 

ниже главный Makefile.conf, архив projects/sgauth и те либо что использует stgauth из stglibs/

 

в исходниках для роутера наложен патч из этой ветки

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: freehost
      Описание вакансии
      На постоянную работу в хостинг-компанию требуется сотрудник на первую линию службы технической поддержки. Офис расположен в Киеве.
       
      Обязанности:
      Отвечать на вопросы клиентов (работа с панелью управления, настройка POP3, SMTP, FTP) по телефону, эл. почте, решать мелкие проблемы (неверно заполненные данные и настройки в контрольной панели, проблемы с доступом и т. п.), сортировка заявок абонентов.
       
      Требования:
      - Умение работать в Интернет с основными клиентами (браузеры: IE и Mozilla, почтовые клиенты: The bat, outlook, FTP-клиенты: IE, Far, Cute FTP;
      - Иметь представление о том что такое HTML, PHP, MySQL
      - Скорость печати на клавиатуре не ниже 100 знаков в в минуту
      - Грамотное владение русским и украинским языком
      - Коммуникабельность, терпение, эмоциональная уравновешенность, способность к обучению.
      - Желание учиться
       
      Условия:
      Официальное трудоустройство
      24 дня отпуска
      Обеды за счет компании
      Рабочий график с 9 до 18 с понедельника по пятницу
      Оплачиваемый больничный
      Возможность повышения
       
      ЗП от 8 000. Пишите в личку.
    • Автор: bot
      Следом за выявленной на прошлой неделе DoS-уязвимости SegmentSmack в TCP-стеках различных операционных систем, опубликована информация о другой похожей уязвимости (CVE-2018-5391, кодовое имя FragmentSmack), которая также позволяет организовать отказ в обслуживании через отправку специально оформленного набора сетевых пакетов, при обработке которого будут заняты все реcурсы CPU. Если первая уязвимость была связана с неэффективностью алгоритма обработки TCP-сегментов, то новая проблема затрагивает алгоритм пересборки фрагментированных IP-пакетов.
       
      Атака осуществляется через отправку потока фрагментированных IP-пакетов, в каждом из которых смещение фрагмента установлено случайным образом. В отличие от прошлой уязвимости SegmentSmack, в FragmentSmack возможно совершение атаки с использованием спуфинга (отправки пакетов с указанием несуществующего IP). При этом для новой атаки требуется большая интенсивность отправки: для полной утилизации ресурсов одного ядра CPU Intel Xeon D-1587@1.70GHz необходим поток на уровне 30 тысяч пакетов в секунду, в то время как для SegmentSmack было достаточно 2 тысячи пакетов в секунду.
       
      Наличие проблемы подтверждено в TCP стеках Linux и FreeBSD. В ядре Linux проблема проявляется начиная с выпуска ядра 3.9. Обновления с устранением проблемы подготовлены для Debian, Fedora, SUSE/openSUSE, Ubuntu, RHEL и FreeBSD. В качестве обходного пути защиты в Linux можно снизить значения sysctl net.ipv4.ipfrag_high_thresh и net.ipv4.ipfrag_low_thresh до 256kB и 192kB или ещё меньших значений.
      sysctl -w net.ipv4.ipfrag_low_thresh=262144 sysctl -w net.ipv4.ipfrag_high_thresh=196608 sysctl -w net.ipv6.ip6frag_low_thresh=262144 sysctl -w net.ipv6.ip6frag_high_thresh=196608  
      Во FreeBSD в качестве обходного пути защиты рекомендовано отключить пересборку фрагментированных пакетов:
      sysctl net.inet.ip.maxfragpackets=0 sysctl net.inet6.ip6.maxfrags=0 Источник: opennet
    • Автор: bot
      После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.18. Среди наиболее заметных изменений в ядре 4.18: возможность монтирования ФС на базе FUSE непривилегированным пользователем, пакетный фильтр bpfilter, подсистема AF_XDP (eXpress Data Path), новый тип модулей ядра umh (usermode helper), device-mapper модуль writecache, поддержка SoC Qualcomm Snapdragon 845 и GPU AMD Vega 20, новый API поллинга для асинхронного ввода/вывода.

      В новую версию принято 13 тысяч исправлений от 1668 разработчиков, размер патча - 50 Мб (изменения затронули 12866 файлов, добавлено 521039 строк кода, удалено - 619603 строк). Около 49% всех представленных в 4.18 изменений связаны с драйверами устройств, примерно 14% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 5% - файловыми системами и 3% c внутренними подсистемами ядра. 9.5% всех исправлений подготовлено разработчиками компании Intel, 7.5% - Red Hat, 4.6% - AMD, 4.3% - IBM, 3.8% - Linaro, 3.4% - Renesas Electronics, 3.0% - Google, 2.9% - SUSE, 2.8% - Samsung, 2.2% - Mellanox, 2.1% - Huawei, 2.0% - Oracle.

      В состав ядра включен новый механизм фильтрации пакетов bpfilter, использующего предоставляемую ядром подсистему eBPF, но предлагая привычный синтаксис iptables. Bpfilter обрабатывает запросы API iptables и транслирует их в программы BPF, привязываемые к различным подсистемам. В настоящий момент в ядро добавлена только базовая инфраструктура для bpfilter, но ещё нехватает некоторых компонентов, необходимых для полноценного применения bpfilter для фильтрации пакетов;

      В качестве сопутствующей bpfilter разработки в ядро добавлен новый тип модулей ядра umh (usermode helper), которые выполняются в пространстве пользователя и привязываются в базовым модулям, предоставляя для них вспомогательную функциональность, которую нецелесообразно или опасно выполнять c привилегиями ядра (например в модуле bpfilter.ko через них выполняется разбор и трансляция в BPF правил фильтрации). Модули umh функционируют под управлением ядра, оформляются в виде модулей ядра и загружаются через modprobe, но выполняются в пространстве пользователя с привилегиями пользовательских приложений. Взаимодействие umh-модулей с обычными модулями ядра производится с использованием неименованных каналов (unix pipe);

      В состав ядра включена подсистема AF_XDP (eXpress Data Path), которая предоставляет средства для запуска BPF-программ на уровне сетевого драйвера, с возможностью прямого доступа к DMA-буферу пакетов, что позволяет создавать высокопроизводительные обработчики для работы в условиях большой сетевой нагрузки. В качестве примера реализованы обработчики для быстрой блокировки и перенаправления пакетов.

      Реализована возможность чтения данных из сетевого сокета в режиме zero-copy (флаг TCP_ZEROCOPY_RECEIVEY), позволяющем организовать передачу данных по сети без промежуточного копирования данных между ядром и пространством пользователя (поддержка записи в режиме zero-copy была представлена в ядре 4.14);

      В реализации протокола TLS на уровне ядра (KTLS) добавлена возможность задействования аппаратного ускорения операций с использовнием специализированных чипов. В настоящее время вынос связанных с работой TLS вычислений на плечи оборудования доступен только при использовании драйвера Mellanox mlx5;

      В TCP-стек добавлена поддержка режима сжатия для выборочного подтверждения соединений (SACK), что позволяет сократить число отправляемых SACK-пакетов при перегрузке сети;

      Добавлена возможность прикрепления BPF-программ к сокету и запуска обработчиков при вызове sendmsg(). Подобные обработчики могут применяться для выполнения такхи задач, как перезапись IP-адресов в исходящих пакетах;


      В подсистему шифрования (crypto) добавлена поддержка шифров AEGIS и MORUS, а также алгоритма сжатия Zstandard;
      Пользователь с правами root в пространстве имён идентификаторов пользователя (user namespaces) теперь может монтировать файловые системы, даже если у него нет на это прав вне пространства имён. При этом файловая система должна быть специально помечена для разрешения подобных операций (в настоящий момент операции разрешены только для ФС, реализуемых в пространстве пользователя при помощи модулей FUSE);

      В модуль fscrypt, применяемый для шифрования ФС F2FS и ext4, добавлена поддержка шифров Speck128 и Speck256, разработанных Агентством национальной безопасности США. Шифры обеспечивают очень высокую производительность программной реализации, которая обгоняет AES на системах без наличия средств аппаратного ускорения AES. Использование Speck позволяет применять шифрование на маломощных устройствах, на которых применение AES не оправдано из-за больших накладных расходов;

      Для 32-разрядной архитектуры ARM обеспечена защита от уязвимостей Spectre 1 и Spectre 2 (ранее защита от Spectre была обеспечена для архитектур x86, ARM64 и S390). Для ARM64 добавлена защита от Spectre v4.
      Проведена работа по переводу ядра на более защищёные от переполнения буфера варианты функций распределения памяти. Например, вызовы "kmalloc(count*size, gfp_flags)" заменены на "kmalloc_array(count, size, gfp_flags)";

      Изменены настройки для включения защиты от переполнения стека - теперь автоматически включается наиболее действенный механизм защиты, доступный для текущей конфигурации;


      Для Device Mapper реализован новый модуль "writecache", который может применяться для кэширования операций записи блоков на SSD-накопителях или в постоянной памяти (кэширование операций чтения не реализовано, так как такие операции и так кэшируются кэше страниц памяти в ОЗУ);

      Обеспечена возможность применения флага IOCB_FLAG_IOPRIO для операций асинхронного ввода/вывода, позволяющего установить приоритет выполнения отдельных операций;

      Добавлен новый API поллинга (определение готовности файлового дескриптора к вводу/выводу без блокировки), основанный на использовании системы асинхронного ввода/вывода (AIO);

      В файловой системе Btrfs обеспечена возможность удаления пустого подраздела при помощи вызова rmdir() без специальных дополнительных привилегий. Добавлены новые ioctl-команды FS_IOC_FSGETXATTR и FS_IOC_FSSETXATTR для манипуляции с различными атрибутами файла (append, immutable, noatime, nodump и sync), которые в отличие от команд GET/SETFLAGS могут выставить атрибуты на уровне отдельных inode. Также реализован набор ioctl-команд для получения непривилегированным пользователем информации о подразделах;

      В файловой системе XFS появилась возможность смены метки для уже примонтированной ФС, добавлена поддержка резервирования пустых областей через вызов fallocate() для файлов подкачки, задействован FUA для обеспечения прямой записи данных в режиме O_DSYNC. Кроме того, началась интеграция нового инструментария для восстановления целостности ФС на лету и выполнена переработка кода growfs с целью подготовки интеграции поддержки подразделов (subvolume);

      В файловой системе ext4 продолжена работа по чистке кода и повышению надёжности работы в условиях обработки некорректных образов ФС, специально модифицированных для вредоносных целей;

      Из раздела "staging" удалён код кластерной файловой системы Lustre. В качестве причин упоминается отсутствие должной активности по приведению имеющегося кода к соответствию с остальным ядром, плохая адаптация кода к изменениям в VFS, а также игнорирование проблем и периодическая публикация патчей, ломающих имеющуюся функциональность;
      В файловой системе F2FS улучшена поддержка режима "discard";


      В систему доменов управления питанием (genpd, generic power domain) добавлена поддержка уровней производительности, при помощи которых можно настраивать работу всей системы, включая периферийные устройства, для достижения требуемого баланса между потреблением энергии и производительностью;

      В контроллер ресурсов памяти group, позволяющий управлять расходованием памяти группой задач, добавлен параметр memory.min, который в отличие от ранее доступного параметра memory.low предоставляет более надёжную гарантию предоставления минимального размера доступной для группы оперативной памяти (не отключается при срабатывании OOM killer в условиях нехватки памяти);

      Добавлен системный вызов с реализацией перезапускаемых последовательностей (restartable sequences), позволяющих приложениям организовать неразрывное выполнение группы инструкций, не прерываемой и подтверждающей результат последней инструкцией в группе. По сути предоставляется средство для очень быстрого атомарного выполнения операций, которые в случае прерывания другим потоком очищаются и предпринимается повторная попытка выполнения. Возможность реализована для архитектур x86, ARM и PowerPC;

      Реализован новый параметр запуска ядра no5lvl, предназначенный для отключения пятиуровневых таблиц страниц памяти, даже если оборудование обеспечивает их поддержку;

      Из интерфейса /proc удалена статстика IPMI (по-прежнему оставлена в sysfs);

      Добавлена новая система определения макросов для конфигурации ядра, которую можно использовать для выноса различных тестов, выполняемых на этапе сборки, из makefile в файлы Kconfig;

      В JIT-компиляторе подсистемы eBPF реализована поддержка 32-разрядных систем x86;


      В драйвер Nouveau добавлена поддержка GPU NVIDIA Volta;

      В DRM-драйвер AMDGPU добавлена поддержка GPU AMD Vega 20, а также GPU Kabylake-G (VEGAM - intel и radeon на одном чипе). Добавлены профили управления питанием, напряжением и частотой для GPU Vega10. Реализован режим энергосбережения gfxoff для GPU Raven;

      В DRM-драйвере Intel включена поддержка чипов Icelake (ICL), проведён рефакторинг кода GuC/HuC и DPLL, включена поддержка NV12 и PSR/PSR2;

      В драйвере amdkfd для dGPU (дискретные GPU, такие как Fiji, Tonga, Polaris) добавлена поддержка GPU GFX9;
      Добавлен новый DRM-драйвер v3d для оборудования Broadcom V3D V3.x+;

      Добавлен драйвер xen-front с реализаций графического фронтэнда для гостевых систем XEN в режиме паравиртуализации (PV);

      Добавлена поддержка SoC Qualcomm Snapdragon 845, применяемого в новейших мобильных устройствах класса high-end;

      Добавлена поддержка игровых контроллеров Steam от компании Valve;


      Одновременно Латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 4.18 - Linux-libre 4.18-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске представлен новый интерфейс для загрузки прошивок (firmware_reject_nowarn), не выводящий предупреждения в случае если прошивка не найдена. Добавлена чистка блобов для драйверов psp-dev и icn8505. Обновлён код чистки блобов в драйверах c3xxx, c62x, dvb-usb, dvb-usb-v2, iwlwifi, ks7010, ath10k, andgpu, i915, tg3, silead и ca0132. Прекращена чистка блобов для atom isp. Проведены ассемблерные файлы, вынесенные из основного кода amdkfd.

      Источник: Opennet
    • Автор: bot
      Китайская компания Bitmain, выпускающая компьютерное обеспечение, представила новый роутер AntRouter R3, который способен майнить криптовалюту. Устройство предназначено для распространения интернета по Wi-Fi и майнинга электронных денег Dash и Siacoin.

      Мощность оборудования для добычи криптовалюты составляет 300 M/s для Dash и 11.54 G/s для Siacoin. Роутер весит 2 кг. Его стоимость составляет 58 долларов.



      Компания гарантирует доставку в течение 10 дней после совершения оплаты.

      Bitmain Technologies Ltd. является частной компанией со штаб-квартирой в Пекине, с офисами в Шэньчжэне, Шанхае, Чэнду, Гонконге, Фучжоу, США, Израиле, Нидерландах и Швейцарии. Компания также управляет Antpool, одной из криптовалютных крупнейших площадок.

      Product model: R3-DASH
      Hash rate: 300M/s ± 5%
      Supply voltage: 85~265 VAC
      Supply current: 0.5A
      Core voltage: 0.83V
      Mining mode: Solo/Pool
      Chip mining frequency: 500M
      220VAC Power @Mining frequency 500M@25°C: 24.37W
      220VAC Power efficiency @25°C: 0.082 J/MH
      Surface temperature @25°C: 36℃
      Operation temperature: 0-40 °C
      Storage temperature: -40-85 °C
      Operation humidity: 5%RH-95%RH,prevent condensation
      Number of channels: 1~11,A total of 11 channels
      Network standard: IEEE 802.11b/g/n
      Transmission rate 2.4G:300M, support 2*MIMO
      Network Interface: 10M/100M Adaptive WAN port
      Size (Length*Width*Hight): 208 X 148.6 X 69mm
      Noise: Maximum 40dB
      Weight(without package): 0.6kg

      Источник: finance
    • Автор: bot
      В TCP-стеке ядра Linux выявлена опасная уязвимость (CVE-2018-5390), которая позволяет удалённо вызвать отказ в обслуживании из-за исчерпания доступных ресурсов CPU. Для совершения атаки достаточно отправить поток специальным образом оформленных пакетов на любой открытый TCP-порт. Атака может быть совершена только с реального IP-адреса (спуфинг невозможен так как требуется установка TCP-соединения).

      Суть проблемы в том, что при определённых параметрах сегментирования ядро при поступлении каждого пакета вызывает достаточно ресурсоёмкие функции tcp_collapse_ofo_queue() и tcp_prune_ofo_queue(). Из-за неэффективности применяемого алгортима, необходимые для обработки сегментов ресурсы CPU линейно возрастают в зависимости от числа сегментов в очереди пересборки пакетов. При выполнении операции пересборки большого числа сегментов, cоздаваемой нагрузки достаточно, чтобы полностью загрузить процессор при обработке потока с незначительной интенсивностью. Например, для появления существенных задержек в обработке запросов системой для каждого ядра CPU достаточно потока интенсивностью всего 2 тысячи пакетов в секунду.

      Уязвимость проявляется на всех ядрах Linux, начиная с выпуска 4.9 (атака может быть проведена и против более старых ядер, но требует существенного более интенсивного потока пакетов). Проблема устранена в обновлении ядра 4.17.12. Обновления пакетов подготовлены для Debian, SUSE и Fedora, и ожидаются для Ubuntu и RHEL.

      Дополнение: Проблема также проявляется во FreeBSD и вероятно в других операционных системах. Во FreeBSD проблема пока временно решена через ограничение размера очереди пересборки пакетов (net.inet.tcp.reass.maxqueuelen).

      Источник: Opennet
×