В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В ядро Linux внесены исправления, призванные ограничить использование устаревшего приема — фиктивной операции ожидания, тормозящей CPU при его переводе в состояние сна. Современные системы AMD и Intel не нуждаются в такой помощи, более того, при определенных рабочих нагрузках трюк, в котором нет необходимости, может вызвать существенное снижение производительности.

В 2002 году в Linux была добавлена поддержка стандарта ACPI (Advanced Configuration and Power Interface), согласно которому управление энергопотреблением осуществляется на уровне операционной системы. Спецификации предусматривают возможность перевода устройства в состояние сна разной степени, а также использование технологий мгновенной готовности (пробуждение по сигналу).

Однако некоторые чипсеты оказались неспособными быстро реагировать на сигнал STPCLK# (stop-clock, вызывает состояние функционирования C2, при котором питание процессора отключается, но регенерация ОЗУ продолжается; для возврата в рабочий режим требуется время). В связи с этим был придуман обходной маневр — имитация ожидания, при которой система просто считывает данные ввода-вывода, задерживая обработку инструкций.

Соответствующий код появился в Linux вместе с поддержкой ACPI и присутствует до сих пор. Современные процессоры Intel его не используют, так как давно засыпают с помощью инструкции MWAIT — ее использование обеспечивает более тонкое управление энергопотреблением неактивного состояния (их семь против трех по ACPI).

Чипсетам AMD фейковая операция ожидания тоже больше не требуется, однако для них альтернативы нет. В то же время трюк двадцатилетней давности при определенных условиях может оказаться губительным. Недавнее исследование показало, что он может сильно замедлить работу AMD Zen 3 при рабочих нагрузках Linux с быстрым переключением состояний занятости и простоя. Падение производительности особенно заметно на платформах Ryzen Threadripper и EPYC, которые используют многоядерные процессоры.

Во избежание таких потерь был предложен патч для Linux, который лимитирует использование потерявшего актуальность кода: он пускается в ход только на старых платформах (в случае с Intel это системы с микроархитектурой древнее Nehalem). Концепцию заплатки подхватил Линус Торвальдс; в итоге долгожданный фикс был добавлен в новую сборку ядра Linux (6.0), выпуск которой запланирован на 2 октября.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Протекторы скрывают около 40% уязвимостей в Android-приложениях

Специалисты Positive Technologies провели исследование и выяснили, насколько протекторы помогают скрывать уязвимости и защитные механизмы в Android-приложениях. Для анализа использовали собственный сервис защиты от реверс-инжиниринга, который позволил оценить, как меняется доступность кода для анализа злоумышленниками.

Android остаётся самой распространённой мобильной платформой в мире — ей пользуются около 75% рынка, по данным Statcounter.

Открытость системы и свободный доступ к APK-файлам упрощают реверс-инжиниринг: раскрытие логики работы приложений, поиск ошибок, копирование функциональности и извлечение чувствительных данных.

В исследуемых приложениях специалисты обнаружили более 50 потенциальных уязвимостей разного уровня риска. После применения протектора количество обнаруживаемых ошибок снизилось примерно на 40%.

Наиболее заметное уменьшение пришлось на уязвимости высокого уровня риска — минус 67%. Уязвимостей со средним уровнем риска стало меньше на четверть, а дефектов, которые могли косвенно повлиять на безопасность, — почти на 80%.

Результат оказался разным для разных категорий приложений. Лидером по снижению числа видимых уязвимостей стали сервисы доставки еды — минус 46%. Далее идут приложения для путешествий и транспорта, а также маркетплейсы — по 38%. Примерно треть уязвимостей удалось скрыть в приложениях из сфер развлечений, телекоммуникаций, финансов и платежей.

Интересный эффект наблюдался и в области скрытия защитных техник. После применения протектора количество «видимых» мер безопасности, которые можно обнаружить с помощью сканера, сократилось на 67%. Это означает, что защитные механизмы стало сложнее распознать, а значит — сложнее заранее подготовить способы их обхода.

Также уменьшилось количество обнаруживаемых ключей доступа, токенов и других чувствительных данных — в среднем на 71%. Максимальный эффект наблюдался у приложений категории «Инструменты и утилиты».

По результатам анализа, использование техник защиты от запуска в виртуальных машинах оказалось скрыто в 98% случаев. Механизмы защиты от отладки — в 91%.

Для обфускации и защит от дизассемблирования снижение заметности было менее выраженным, на 32% и 21% соответственно.

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

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

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