Уязвимость девятилетней давности в Linux, актуальная для всех дистрибутивов, недавно была использована в атаке itw. Данная брешь, нареченная Dirty Cow («некорректная COW», букв. «грязная корова») из-за того, что она присутствует в Linux-функции копирования при записи (copy-on-write, COW), достаточно опасна, так как позволяет локальному пользователю получить привилегии root.

Уязвимость Dirty Cow (CVE-2016-5195) вызвана состоянием гонки при обработке COW-операций в подсистеме управления памятью и позволяет осуществить запись в области памяти, доступной только для чтения. Обновление ядра Linux было выпущено на прошлой неделе, патчи для основных дистрибутивов уже сформированы. Представитель Red Hat заявил Threatpost, что на их сервисе динамического патчинга ядра, kpatch, предлагается временное решение, оно доступно подписчикам через региональные службы техподдержки.

Факт эксплуатации CVE-2016-5195 недавно обнаружил исследователь Фил Эстер (Phil Oester), который поспешил обнародовать баг, снабдив публикацию ссылками на подробное описание и PoC-эксплойт. По свидетельству Эстера, данная уязвимость была привнесена в ядро Linux с релизом 2.6.22, то есть в 2007 году.

«Этот изъян позволяет при наличии локальной системной учетной записи изменять бинарные коды, хранящиеся на диске, в обход стандартных механизмов контроля доступа, которые пресекают модификацию при отсутствии соответствующего набора разрешений», — пишет Эстер на GitHub.

По мнению Джоша Брессерса (Josh Bressers), специалиста Red Hat по ИБ-стратегии, Dirty Cow весьма серьезна, но, поскольку ее нельзя эксплуатировать удаленно, она менее критична, чем Heartbleed и другие масштабные баги, с которыми сисадминам пришлось иметь дело за последние два года. «Она не столь взрывоопасна, как другие баги, имеющие имена, — говорит Брессерс. — Атакующему нужно предварительно внедриться, лишь после этого можно будет использовать уязвимость для получения прав root. Она серьезна, но в меньшей степени, так как в данном случае требуется не один эксплойт, а два».

Механизм COW реализован на многих платформах и используется для оптимизации потребления физической памяти. Одну и ту же отображенную страницу могут использовать многие процессы, но реальная копия этой области данных будет создана лишь тогда, когда пользователю нужно произвести запись. В этом случае страница помечается как «грязная» (флагом dirty), пояснил Брессерс.

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

Брессерс не преминул отметить, что использование виртуальных машин и контейнеров помогает ограничить возможности злоумышленников. Они, к примеру, не смогут совершить побег с VM и атаковать хост-сервер. «Современные эксплойты не рассчитаны на работу в контейнере, — поясняет эксперт. — Если эксплуатация происходит в контейнере, ограничительные механизмы воспрепятствуют выходу за пределы контейнера. Для побега понадобятся дополнительные усилия, поэтому в данном случае новейшие технологии окажутся как нельзя кстати».

Категории: Главное, Уязвимости