Злоумышленники атаковали несколько ключевых серверов kernel.org, на которых хранится исходный код ядра Linux. Вероятность того, что хакеры смогли модифицировать исходный код, мала, так как он распределен среди тысяч компьютеров разработчиков, говорят специалисты, занимающиеся поддержкой кода.
Хакеры смогли модифицировать некоторое количество файлов и журналов регистрации действий пользователей на зараженных серверах, о чем сообщили на сайте kernel.org 31 августа. Также хакерам удалось модифицировать клиент OpenSSH и ПО, установленное на серверах, подвергшихся атаке, при этом исходный код OpenSSH не был изменен.
Атака произошла “некоторое время назад” в августе, этот факт был обнаружен 28 августа представителями Linux Kernel Organization, о чем говорится в официальном сообщении на сайте kernel.org. Разработчики уже получили соответствующий e-mail, также информация была распространена посредством Pastebin на веб-сайте.
“Сегодня мы обнаружили троян в обоих компьютерах HPA — colo и hera”, — говорится в сообщении. Аббревиатура HPA означает инициалы разработчика ядра Эйч Питера Анвина (H. Peter Anvin). Другие машины kernel.org тоже были подвержены воздействию того же самого трояна. Загрузочный файл трояна внедрился в загрузочные сценарии подверженного атаке сервера и исполнялся при начале работы на компьютере.
Администраторы сайта отключили зараженные серверы и сейчас создают резервные копии и переустанавливают системы, согласно сообщению kernel.org. Расследование атаки продолжается.
Хакеры, очевидно, получили доступ к корневому разделу одного из серверов, используя учетные данные зараженного пользователя, сообщается в электронном сообщении. По словам специалистов по безопасности, пока неизвестно, каким образом злоумышленники использовали данные пользователя, чтобы попасть в корневой раздел.
Джоанан Корбет, разработчик ядра Linux, написал на linux.com, что хотя хакерам и удалось заразить сервера kernel.org, это не значит, что они модифицировали исходный код ядра. Тысячи копий исходного кода ядра хранятся в компьютерах разработчиков по всему миру, поэтому если кто-либо попытается внедрить вредоносный или модифицированный код, изменения будут отмечены посредством распределенной системы контроля, называемой “git”, отметил Корбет.
“Git” генерирует безопасный алгоритм криптографического хэширования SHA-1 для каждого из почти 40 000 файлов, составляющих ядро Linux. Имя каждой версии ядра зависит от полной истории разработки, с самого начала до последней версии, и с того момента, как опубликована последняя версия, старые версии нельзя изменить так, чтоб этого никто не заметил. Любые изменения исходного кода будут замечены всеми, кто обновит свою персональную копию кода, согласно уведомлению системы безопасности сайта.
Kernel.org — это “только точка распределения”, и серверы непосредственно не заняты в разработке, утверждает Корбет. “Когда мы говорим, что исходный код ядра не был поврежден, мы действительно уверены в этом”, — пишет Корбет.
The Register пишет, что троян оказался самозагружающимся руткитом, также известным как Phalanx, о чем сообщил Джон Оберхайд, один из исследователей вопросов безопасности, которого Linux Kernel Organization пригласила для расследования атаки. Вариации трояна Phalanx сначала внедрились в наиболее слабые системы Linux, чтобы выкрасть ключи Secure Shell (SSH) для доступа к серверам и внедрения через уязвимости ядра.
Хакеры обычно не использую готовые руткиты типа Phalanx, говорит Оберхайд. “В большинстве ситуаций, если ваша цель настолько значима, вы, скорее всего, воспользуетесь каким-нибудь особым средством, и вряд ли прибегнете к чему-то, что легко обнаружить или отследить”, — сообщил Оберхайдер The Register. Наиболее вероятно, что исходный код не был целью злоумышленников, иначе сценарий атаки был бы совершенно другой, добавил он.
Такие ситуации случались и в прошлом, к примеру, в январе атака была направлена на серверы, используемые проектом Fedora, коллективной версией Red Hat Enterprise Linux. Примерно в это же время атаке подвергся SourceForge, а также были зарегистрированы атаки на веб-сайты Apache.