Linux, пакеты, доверие
Каждый раз, говоря об открытом ПО в пример ставится его большая безопасность, проистекающая из открытости. Мол, тысячи глаз следят, тысячи рук исправят…
В целом разумное зерно в этом есть, но не более. Людей, способных читать код на уровне достаточном для нахождения уязвимостей и прочей вредоносной активности – единицы. Еще меньше будет желающих посвятить этому занятию свое время.
Поэтому поиском уязвимостей занимаются в основном энтузиасты, злоумышленники и специалисты по безопасности.
Мы же в свою очередь рассмотрим спектр угроз для простого пользователя Linux, а также возможные варианты противодействия им.
Начнем с самого начала – исходного кода. Код принадлежит автору и обычно расположен в его репозитории. Мы вольны изучать, собирать и изменять его в той мере, в которой это не противоречит лицензии.
Автор также волен вносить в свой код любые изменения, которые сочтет нужным.
Большинство авторов редко занимаются сборкой ПО под конкретные дистрибутивы, либо собирают под ряд наиболее популярных. В этом случае мы можем подключить репозиторий от разработчика и получать бинарные пакеты прямо из первых рук.
Но это не всегда хорошо. Почему? Потому что автор может не знать тонкостей конкретного дистрибутива и просто собрать пакет без оптимизаций и интеграций. Чтобы был.
Сборкой и поддержкой пакетов непосредственно для дистрибутивов занимаются специальные люди – мейнтейнеры (сопровождающие), которые знают все особенности дистрибутива и способны наиболее оптимальным образом собрать пакет и интегрировать его в систему.
При этом они могут менять исходный код пакета, накладывать патчи, изменять параметры сборки и т.д. и т.п. Это все отображается в репозиториях исходного кода дистрибутива.
Сегодня есть еще и третий путь – пакеты Snap, Flatpak и AppImage. Их сборкой могут заниматься как авторы ПО, так и третьи лица. Поэтому всегда нужно понимать кто собирает и поддерживает версию, которую вы хотите установить.
А теперь об угрозах. Основная – это компрометация исходного кода разработчика. Это могут сделать как злоумышленники, так и сам автор, примеров тому в последние годы было достаточно. Также возможна игра вдолгую – с постепенным перехватом управления проектом злоумышленниками.
В этом случае, если вы используете репозиторий или иные пакеты непосредственно от разработчика, то вы сразу получаете скомпрометированный пакет себе в систему после ближайшего обновления, а в случае Snap/Flatpak этого даже не потребуется, они обновятся сами. Но их, как раз, наиболее легко и просто откатить.
Определенным заслоном на этом пути становятся мейнтейнеры, которые способны выявить негативные моменты при сборке и тестировании и заблокировать дальнейшее распространение.
Также политика многих дистрибутивов не предусматривает обновления до самых последних версии и всегда остается временной зазор, который позволяет выявить негативные моменты в вышестоящем источнике.
Но может ли злоумышленником оказаться мейнтейнер? Может. И пример тому был во вчерашней заметке, где сопровождающий собрал пакет так, что он отправлял потенциально чувствительную информацию в открытом виде на китайские сервера.
Также он может собрать пакет немного не так, с отличиями от исходного кода в репозиториях дистрибутива. Это достаточно несложно обнаружить, достаточно просто пересобрать дистрибутив (или пакет) из исходных кодов, но в случае целенаправленной атаки время может быть упущено и скомпрометированный пакет разойдется пользователям.
Может мейнтейнер внезапно начать чудить? Может, кто ему не дает. Но в отличие от разработчика он связан правилами дистрибутива и такое поведение должно быть достаточно быстро пресечено.
В целом, несмотря на все потенциальные угрозы, пакеты из репозитория дистрибутива наиболее безопасны. Так как имеют временной зазор между появлением версии разработчика и ее попадания в дистрибутив, а также промежуточное звено дополнительного контроля – мейнтейнера.
Post #4644
3.07K