На проходившем в конце октября саммите разработчиков ядра Linux, один
из администраторов kernel.org выступил с докладом, в котором обобщил
известные факты о взломе инфраструктуры проекта. Питер Анвин (H. Peter
Anvin), автор проекта Isolinux, один из первых администраторов
kernel.org
и известный разработчик ядра, 28 августа обнаружил факт взлома своего
внутреннего сервера. Проверив серверы инфраструктуры kernel.org он
выявил, что некоторые из них также имеют следы проникновения
злоумышленников.
Судя по результатам расследования, атака на серверы kernel.org
была частью активности уже несколько лет существующей автоматизированной
сети, созданной для кражи паролей и параметров аутентификации. У
атакующих изначально не было цели проникновения на kernel.org и
выполнения там каких-то определённых действий, им просто повезло в том,
что они смогли получить параметры доступа, перехваченные у одного из
неосторожных разработчиков ядра. Так как у всех разработчиков, имеющих
доступ к Git-репозиторию, есть полноценный и не изолированный shell, это
упростило эксплуатацию одной из уязвимостей, позволившей получить
root-доступ. Атакующие действовали тихо, но кроме непосредственно
взлома, установки типового руткита Phalanx (запускался через правку
одного из скриптов инициализации) и нескрытого SSH-бэкдора (были
заменены ssh и sshd), злоумышленники не предприняли каких-либо
вредоносных действий. Вся активность была сосредоточена только на
перехвате паролей и записи всех действий в консоли.
Есть основание полагать, что взломанные серверы kernel.org лишь
ничем не примечательные новички в большом списке взломанных машин, при
этом с большой долей вероятности атака носила типовой характер и была
произведена автоматически. Проверка целостности файлов на серверах
показала, что данные не были изменены, а оборудование не использовалось
для совершения таких действий, как рассылка спама.
После выявления взлома администраторам понадобилось более месяца
на полный пересмотр стратегии безопасности и реализации новой схемы
доступа к Git-репозиториям, при которой разработчикам не предоставляется
shell-доступ. Все серверы были переустановлены с нуля. Новая система
работы с Git базируется на дополнении Gitolite,
поддерживающем отдельную базу виртуальных пользователей, не имеющих
системных аккаунтов и получающих доступ, используя SSH-ключи. Gitolite
позволит реализовать более гибкие полномочия: возможность доступа только
для чтения или разрешение записи в привязке к отдельным веткам,
директориям, файлам или даже тегам, а также отдельные права на слияние,
создание и удаление веток и тегов.
Для загрузки tar-архивов и создания для них цифровых подписей
задействован новый инструмент "kup". Почтовый сервер на kernel.org
отныне будет поддерживать только перенаправление на другой email,
локальные почтовые ящики больше не поддерживаются. Все списки рассылки
перенесены на отдельный хост vger.kernel.org, обслуживанием которого
займётся компания Red Hat, имеющая большой опыт в поддержке больших
списков рассылки. Несмотря на то, что работа FTP-серверов и Git
восстановлена, многие службы по прежнему остаются неактивными. Например,
до сих пор не возвращена в строй система отслеживания ошибок
(bugzilla.kernel.org), Wiki (wiki.kernel.org) и kerneloops.org.
Дополнительно для всех разработчиков инициирован процесс смены
ключей доступа и введены требования по обязательному использованию
цифровых подписей при загрузке кода в Git-репозитории kernel.org (вместо
централизованного формирования подписи, каждый разработчик теперь будет
подписывать код своим личным ключом). Конечной целью является
предоставление возможности гарантированной идентификации каждого
разработчика по его PGP/GPG ключам. Отдельно рассматривается
добавление в git нескольких усовершенствований, направленных на
автоматизацию проверки сигнатур в процессе выполнения "git pull". Для
реализации данной возможности в "git commit" планируется добавить опцию
по встраиванию GPG-сигнатуры в объект коммита. Линус Торвальдс принял решение
об ужесточении требований к принимаемым в его ветку патчам: изменения
будут загружаться только с доверительных серверов или при наличии
PGP/GPG-сигнатуры, доказывающей что код прислан именно тем
разработчиком, за которого он себя выдаёт.
Изначально kernel.org создавался исключительно для обмена
информацией между разработчиками, но позднее стал обрастать
дополнительными сервисами: была интегрирована поддержка Git, запускались
всё новые и новые web-службы (bugzilla, patchwork, wiki и т.д.).
Система усложнялась, но развивалась стихийно - многие вещи делались
наспех, без изоляции от уже запущенных служб. Росло число пользователей,
имеющих доступ к kernel.org. В ситуации, когда перехват пароля у одного
из 448 аккаунтов мог привести к беспрепятственному shell-доступу, взлом
стал делом времени.
После модернизации kernel.org доступ к shell будет иметь всего
несколько администраторов проекта (в данный момент один). Различные
сервисы теперь выполняются изолированно в разных виртуальных серверах. В
прошлом архитектура kernel.org была построена вокруг одной
централизованной системы, на которой были сосредоточены все сервисы.
Новая архитектура проекта подразумевает децентрализацию и разделение
функциональности на различные хосты, некоторые из которых могут быть
запущенны с использованием виртуализации.
Все процессы управления над kernel.org переданы организации Linux
Foundation, которая намерена нанять дополнительный персонал, который
будет отвечать за обслуживание инфраструктуры, вместо привлечения к
данной работе добровольцев. Доступ к серверам будет только у нескольких
официально принятых на работу администраторов. Дополнительно организация
Linux Foundation приняла решение о создании специальной рабочей
группы, которая будет заниматься вопросами безопасности кода ядра Linux и
процессов, связанных с разработкой ядра.
При перепечатке указание ссылки на opennet.ru обязательно |