Google помогла устранить более тысячи проблем в исходном коде проекта FFmpeg

Google помогла устранить множество проблем в исходном коде проекта FFmpeg

Корпорация Google поделилась деталями проекта, связанного с поиском и устранением ошибок в открытом мультимедиа пакете FFmpeg, который, как оказалось, активно используется внутри корпорации и в её продуктах, включая YouTube и Google Chrome.

В течение последних двух лет для процесса тестирования кодовой базы были задействованы 500 компьютерных ядер, а также исходный мультимедиа материал, собранный со всего интернета, включая файлы из самого проекта, находящиеся на сайте samples.mplayerhq.hu и собственный набор для тестирования регрессий проекта FFmpeg под названием FATE.

Тестирование заключалось в изменении исходных файлов и добавлении разнообразного случайного мусора с тем, чтобы выявить проблемы в функциях, занятых обработкой исходного материала для кодирования и декодирования - в компьютерной среде этот способ обыкновенно называется fuzzing. Другой способ тестирования - это прямой вызов функций библиотеки с не совсем корректными данными, чтобы проверить надёжность обработки подобной информации. Впоследствии, проект был расширен до 2000 ядер, а методы мутации исходных материалов были сделаны более разнообразными, пишет opennet.ru.

В ходе работы над проектом было выявлено более 1120 ошибок, которые уже устранены. Найденные ошибки можно разделить на следующие классы:

  • Разыменование NULL-указателей;
  • Неверные вычисления указателей, приводящие к SIGSEGV из-за использования "чужой" памяти;
  • Чтение и запись за пределы стека, кучи и массивов;
  • Неверные вызовы free(), а также двойное освобождение указателей;
  • Ошибки деления;
  • Ошибки assert();
  • Использование неинициализированной памяти.

Google таким же образом помогла форку FFmpeg, libav, в котором было устранено 413 ошибок.

Атака через видеопамять: Rowhammer на GPU Nvidia даёт root-доступ на хосте

Исследователи показали новый вектор атаки на мощные GPU от Nvidia: бреши класса Rowhammer теперь могут использоваться не только против обычной оперативной памяти, но и против видеопамяти GDDR6. В некоторых сценариях атакующий может добраться до памяти хост-машины и получить root-доступ к системе.

Напомним, Rowhammer — это класс атак, при котором многократные обращения к определённым участкам памяти вызывают битовые сбои в соседних ячейках.

Долгое время такие атаки в основном ассоциировались с CPU и DRAM, но теперь две независимые исследовательские группы показали (PDF), что похожая логика работает и с GPU-памятью Nvidia поколения Ampere. В центре внимания оказались две техники — GDDRHammer и GeForge.

Первая атака, GDDRHammer, была продемонстрирована против Nvidia RTX 6000 на архитектуре Ampere. Исследователи утверждают, что смогли многократно повысить число битовых сбоев по сравнению с более ранней работой GPUHammer 2025 года и добиться возможности читать и изменять GPU-память, а затем использовать это для доступа к памяти CPU.

Вторая техника, GeForge сработала против RTX 3060 и RTX 6000 и завершалась получением root на Linux-хосте.

 

Ключевой момент здесь в том, что атака становится особенно опасной, если IOMMU отключён, а это, как отмечают исследователи, во многих системах остаётся настройкой по умолчанию ради совместимости и производительности.

При включённом IOMMU такой сценарий существенно осложняется, потому что он ограничивает доступ GPU к чувствительным областям памяти хоста. В качестве ещё одной меры снижения риска исследователи и Nvidia указывают ECC, хотя и он не считается универсальной защитой от всех вариантов Rowhammer.

На сегодня  подтверждённая уязвимость касается прежде всего Ampere-карт RTX 3060 и RTX 6000 с GDDR6, а более ранняя работа GPUHammer фокусировалась на NVIDIA A6000.

 

Для более новых поколений, вроде Ada, в этом материале рабочая эксплуатация не показана. Кроме того, исследователи прямо отмечают, что случаев реального использования это вектора в реальных кибератаках пока не известно.

RSS: Новости на портале Anti-Malware.ru