#421, 01.05.2025
Оптимизация ввода-вывода как инструмент обхода антивирусов
dl // 30.04.25 23:29
Представленный в 2019 году в Linux 5.1 асинхронный интерфейс io_uring предназначен для оптимизации операций ввода-вывода за счет буферизации пользовательских запросов к ядру и тем самым снижения числа переключений из пользовательского режима в режим ядра. Но внезапно выяснилось, что этот интерфейс позволяет прекрасно обходить мониторящие антивирусы, которые следят за системными вызовами. Ну как внезапно, первые публикации на тему потенциального использования io_uring в руткитах вышли еще три года назад, теперь же дело дошло до демонстрационного прототипа, получившего название Curing, который обошел таким образом стандартные конфигурации Falco, Tetragon и Microsoft Defender.
Антивирусы теперь планируют помечать конфигурации с разрешенным io_uring как потенциально опасные, а пользователям предлагается запретить этот интерфейс с помощью команды sysctl -w kernel.io_uring_disabled=2. Причем именно это еще в середине 2023 года сделала Google, запретив его в ChromeOS и Android.
Источник: The Register
Зловреды выбирают Lisp и Delphi
dl // 30.03.25 23:26
Исследователи из Пирейского унверситета, Афинского исследовательского центра и Делфтского технического университета на днях опубликовали любопытный препринт «Coding Malware in Fancy Programming Languages for Fun and Profit».
Как отмечается в исследовании, в текущей ситуации с обвальным появлением нового вредоносного кода (26 миллионов образцов только за начало 2025 года) одним из основных способов его идентификации остается статический анализ. Естественно, авторы зловредов это прекрасно знают и стараются по возможности применять всевозможные техники обфускации. И внезапно проще всего оказывается использовать не такой популярный язык, как традиционные C/C++. Так, недавний противоукраинский зловред от APT29 Masepie (видимо, Мазепа) был написан на Питоне, их же Zebrocy использует смесь Delphi, Python, C# и Go, Akira переехал с С++ на Rust, BlackByte с C# на Go и т.п.
С одной стороны, здесь есть признаки наивного security through obscurity — чем меньше людей знают язык, тем сложней ожидать ручного распознавания, и тем меньше образцов будет для автоматического. С другой стороны, основанные на распознавании сигнатур алгоритмы могут просто перестать работать на других языках. Haskell и Lisp, например, используют принципиально отличающуюся от C модель исполнения кода. Dart и Go добавляют в исполняемые файлы множество функций из стандартных библиотек, усложняя даже элементарные программы.
Еще более важным фактором, чем редкость языка, оказалась (не)популярность компилятора — так, гораздо хуже распознавались образцы, скомпилированные такой экзотикой, как Pelles C, Tiny C и Embarcadero Delphi (sic transit gloria mundi).
И хуже всего дело оказалось с языками, которые сами усложняют жизнь анализаторов, размазывая по исполняемому файлу строки с шелл-кодом непредсказуемым образом. Больше всего тут отличились Rust, Phix, Lisp и Haskell.
Источник: The Register
Уязвимости в Mongoose ставят под удар MongoDB
dl // 20.02.25 18:23
Библиотека Mongoose используется для интеграции MongoDB в Node.js-приложения, обеспечивая дополнительный уровень абстракции для отображения объектов JS в базы MongoDB. Две обнародованные сегодня (и уже закрытые сначала в актуальной версии) уязвимости приводят к классической SQL-инъекции (хотя для NOSQL базы звучит забавно) со всеми вытекающими последствиями вплоть до удаленного исполнения кода.
Источник: The Register