В LLVM/Clang добавлена техника защиты стека SafeStack

В LLVM/Clang добавлена техника защиты стека SafeStack

В компилятор Clang добавлен код подсистемы SafeStack, предназначенной для защиты от типовых ошибок, вызванных повреждением памяти в результате работы со стеком и являющихся причиной большого числа эксплуатируемых уязвимостей (например, в 2014 году в Firefox было выявлено 55 подобных уязвимостей).

SafeStack позволяет предотвратить получение контроля над помещёнными в стек указателями в программах на C/C++ через сохранение указателей (адреса возврата, указатели на функции и т.п.) в отдельной изолированной области памяти, доступ к которой производится только с использованием специальных проверок корректности обращения к памяти. Таким образом, стек приложения разделяется на две части - защищённый стек для хранения указателей, адресов из регистров и локальных переменных, и незащищённый стек, в котором сохраняется всё остальное. В защищённый стек данные добавляются только после статической проверки и доступ к ним ограничен, что существенно усложняет организацию получения контроля над выполнением кода в результате совершения атак, пишет opennet.ru.

Накладные расходы от реализуемых в SafeStack дополнительных проверок несущественны и составляют 0.01-0.05%, что существенно меньше, чем при использовании методов на основе добавления меток в стек (stack cookies). Более того, в некоторых случаях наблюдается даже ускорение работы программы за счёт более эффективного использования кэша. Метод защиты отмечен как стабильный и уже опробованный при сборке Chromium, базовой системы FreeBSD и более 100 пакетов. Для включения SafeStack в clang добавлены новые опции "-fsafe-stack" и "-fno-safe-stack" (по умолчанию новый режим отключен), для отключения режима для отдельных функций реализован атрибут no_safe_stack. 

Игроки Minecraft могут стать участниками DDoS-атаки через плагин скинов

Обычная попытка поиграть на пиратских серверах Minecraft неожиданно закончилась исследованием потенциальной уязвимости. Пользователь Хабра под ником Fir3wall1 рассказал, что во время анализа популярного плагина Skins Restorer обнаружил механизм, который теоретически может использоваться для организации распределенных атак на сторонние сайты.

Плагин Skins Restorer широко применяется на пиратских серверах для смены внешнего вида персонажей.

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

 

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

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

Автор подчеркивает, что речь не идет об угрозе для крупных интернет-компаний с развитой инфраструктурой и средствами защиты. Однако небольшие сайты и сервисы без CDN, WAF и других механизмов фильтрации могут оказаться более уязвимыми.

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

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

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