В течение долгого времени сторонники Linux демонстрировали практически абсолютную уверенность в превосходстве системы безопасности этой ОС, особенно по сравнению с Windows. Вместе с тем по мере роста ее популярности, наиболее заметном в серверном сегменте и в мобильных устройствах, угроза зловредных атак на нее значительно возрастает.

Оказывается, Linux не так хорошо защищена, как представлялось ранее. Недавно в ядре этой ОС устранена “очень опасная” уязвимость, допускавшая расширение привилегий и запуск атакующим произвольного кода с root-правами из любого GUI-приложения через X-сервер, пишет Люция Константин на сайте Softpedia. Утверждается, что данная брешь, характерная и для 32- и для 64-разрядных платформ x86, существовала со времени появления версии Linux 2.6.0.

Эта уязвимость была обнаружена Рафалем Войцуком, старшим исследователем польской фирмы Invisible Things Lab (ITL), специализирующейся в области проблем безопасности, и доведена до сведения команды безопасности X.org в июне. Как сообщила в своем блоге основавшая ITL Джоанна Рутковска, Войцук наткнулся на эту уязвимость во время работы над проектом виртуализации GUI в разработанной ITL операционной системе Qubes OS, в которой каждое приложение выполняется отдельной виртуальной машиной.

Данная уязвимость позволяет открыть непривилегированному пользовательскому процессу доступ к X-серверу, обеспечив тем самым любому GUI-приложению возможность безоговорочного предоставления прав root-пользователя, пояснила Рутковска.

Воспользовавшись, например, зараженным PDF-документом, атакующий “может обойти все хитрые механизмы безопасности Linux и получить доступ к учетной записи root, скомпрометировав таким образом всю систему”, добавляет она.

13 августа Линус Торвальдс выпустил первое исправление для решения данной проблемы, за которым последовали дополнительные заплатки для версий ядра 2.6.27.52, 2.6.32.19, 2.6.34.4 и 2.6.35.2. Тем временем совет безопасности компании Red Hat присвоил данной уязвимости рейтинг высокой опасности, сообщила Рутковска. А 17 августа Войцук опубликовал документ по обнаруженной им бреши, названный Exploiting large memory management vulnerabilities in Xorg server running on Linux (“Использование уязвимостей в управлении большой памятью на серверах Xorg под управлением Linux”).

Выявленная уязвимость продемонстрировала вызовы, которые возникают в связи с предоставлением приложениям возможности безопасного взаимодействия с уровнем GUI (через X-сервер в случае Linux), пишет Рутковска. Этот процесс “обычно использует толстый протокол GUI (X-протокол или Win32 GUI API) и очень сложный GUI-сервер”, дополняет она.

В своем блоге Рутковска также упоминает о Qubes, которая, по ее словам, “представляет собой гораздо более безопасный механизм реализации песочницы по сравнению с другими, в частности BSD jails и песочницы на базе SELinux”. Qubes не только исключает эксплойты на уровне ядра, но также “намного снижает вероятность атаки на уровне GUI”, утверждает Рутковска.

Linux Security Summit о мобильной безопасности и юзабилити

Разработчик ядра Linux Джеймс Моррис опубликовал в своем блоге на Namei.org информацию о первой ежегодной конференции Linux Security Summit (LSS), которая прошла 9 августа в Бостоне, т. е. за день до начала LinuxCon'2010.

Предполагалось, что участие в конференции примут представители сообщества конечных пользователей, а также разработчики и эксперты в области безопасности. Хотя среди 70 ее участников конечных пользователей оказалось меньше, чем ожидалось, первая LSS прошла “очень продуктивно при активном сотрудничестве всех присутствующих”, пишет Моррис.

Вопросы обеспечения безопасности мобильных устройств были в ряду ключевых на конференции в виду того, что “год Linux-десктопов теперь, видимо, наступит не скоро из-за распространения смартфонов и подобных им устройств”, пишет Моррис. В частности, по его словам, разработчики MeeGo обсудили достижения в работе над MeeGo Security Framework. А в области безопасности сетевых устройств Стефен Хеммингер из Vyatta представил доклад, посвященный интеграции средств безопасности в маршрутизаторы.

Практическим вопросам обеспечения безопасности было посвящено несколько презентаций, а также обсуждение работы Джоша Биндла над высокоуровневым языком описания политик (Lolpolicy). Тем временем З. Клифф Шреудерс рассказал о своем проекте исследования проблем юзабилити FBAC-LSM.

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

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

Стандартизованные API для защиты Linux?

На LSS состоялась открытая панельная дискуссия о принципиальной возможности разработки стандартной библиотеки API для защиты Linux. Однако все сошлись во мнении, что сейчас существует слишком много принципиально различающихся моделей обеспечения безопасности, чтобы можно было разработать стандартную библиотеку API наподобие тех, что созданы для проприетарных ОС, пишет Моррис.

В рамках других дискуссий на LSS обсуждались функции безопасности “Out of Tree”, EVM (Extended Verification Module), управление безопасностью, SELinux Sandbox и SSSD.

Идея проведения конференции Linux Security Summit зародилась в сообществе разработчиков средств безопасности Linux, которое сложилось по ходу разработки структуры LSM (Linux Security Modules), пишет Моррис. К ее организации также подтолкнули такие мероприятия, как SELinux Symposium, мини-саммиты на мероприятиях LCA (Linux.conf.au), состоявшиеся в 2008 и 2009 гг., а также секции безопасности на прошедшей в 2009 г. Linux Plambers Conference.