В 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. 

Корпоративный бумеранг: основатель WordPress пережил попытку переворота

В Automattic случился корпоративный переворот со скоростью ситкома. 9 сентября совет директоров отправил основателя и гендиректора Мэтта Малленвега в принудительный оплачиваемый отпуск. Спустя два дня он вернулся к управлению, а теперь прежний состав совета сам покидает компанию.

Решение об отстранении Малленвега поддержали трое из четырёх директоров. Сам основатель проголосовал против.

По данным СМИ, резолюцию он получил всего за 50 минут до заседания и не успел проконсультироваться с юристами. Временным гендиректором назначили финансового директора Марка Дэвиса.

Малленвег отказался признавать поражение, удалил других администраторов из корпоративного Slack и сообщил сотрудникам, что снова руководит компанией. Свой новый статус он описал коротко: «Теперь я пират».

Уже в пятницу основатель заявил, что совет снова пришёл к согласию, а руководство WordPress публично поддержало его возвращение. The Verge подтвердил, что двухдневная ссылка закончилась.

Секрет такого камбэка оказался в корпоративном праве. Совет директоров действительно может снять гендиректора, но состав самого совета определяют акционеры.

Малленвег контролирует достаточно голосов, чтобы переизбрать директоров, решивших его отстранить. В итоге попытка дворцового переворота развернулась на 180 градусов: по данным TechCrunch, прежний совет теперь уходит.

Почему директора начали операцию, не обеспечив поддержку акционеров, пока неизвестно. Возможно, они переоценили собственные позиции или рассчитывали на союзников.

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