Компания Google опубликовала результаты аудита 389 crate-пакетов, используемых в проектах ChromiumOS и Fuchsia, в которых допускается разработка на языке Rust. Для использования в своих проектах предоставлен файл для проверки зависимостей при помощи команды cargo vet на предмет соответствия требованиям к безопасности, корректности и тестированию...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=59187
И в чем суть отчета?
Почитай
https://github.com/google/supply-chain/blob/main/audits.tomlПочитал. И?
Раньше, это когда еще Сишные дыры аудировали, приходилось в отчётах всё это как-то суммаризировать и расписывать. Сейчас конечно никаких проблем возникнуть не может в принципе, а отчеты мы формируем для обратной совместимости
Нет никакого отчёта. Есть предоставленные гуглом маркировки 389 пакетов, которые можно использовать для себя.
Можно список этих 389 пакетов, а то раста и карго в системе нет.
Конечно специально для тех кто больше заголовка осилить не может ловите ссылку https://github.com/google/supply-chain/blob/main/audits.toml
Выражаю особую благодарность тому, кто любит делать чужую работу! )
Помощь интеллектуально неодаренным наша обязанность!
Интеллектуалы ленивые люди, поэтому любят смотреть как другие делают работу за них.
"Раст -- это круто. Его пакетный менеджер -- тоже. Его пакеты -- как повезёт, смотреть надо. Мы посмотрели 389 из них, так что вам необязательно. Но предлагаем быть как мы: смотреть другие пакеты и делиться результатами. Наш результат пригоден для `cargo vet`. Продолжение следует. Присоединяйтесь."
> Для использования в своих проектах предоставлен файл для проверки зависимостей при помощи команды cargo vet на предмет соответствия требованиям к безопасности, корректности и тестированию.
> Применение "cargo vet" позволяет гарантировать, что в проекте используются только проверенные зависимости, которые удовлетворяют заранее определённым условиям.В Gentoo, лет 15 назад, разрабы дистрибутива выполняли эту работу. И моё мнение, что это работа именно разрабов дистрибутивов. Чтобы не было дублирования обмен патчами и координация в багтрекере конкретной программы приветствуется.
> результаты аудита 389 crate-пакетов
Советую разделять пакеты более чем на две категории по стабильности и безопасности.
1. Проверена аутентичность и целостность архива исходных текстов. (Верификация подписи OpenPGP по белому списку открытых ключей). Тестирование безошибочной сборки и работы программы в локальных репах (оверлеи Gentoo). Добавление патчей по функциональности.
2. Добавление версии пакета в нестабильную ветвь дистрибутива, для конкретной архитектуры. Публичное тестирование не менее 30 дней. Добавление стабилизирующих патчей.
3. Добавление версии пакета в стабильную ветвь дистрибутива, для конкретной архитектуры. Добавление патчей безопасности.
4. Добавление версии пакета в супер-стабильную ветвь дистрибутива после проведения рецензирования/аудита кода, для конкретной архитектуры. (Хотели в Gentoo её сделать, но 15 лет назад упустили момент с большим обёмом доверительного, рецензированного и проверенного кода. Пакеты сменили разрабов, люди рецензировавшие код и проводившие аудит разбежались. Смысла для сегодняшней супер-стабильной ветки уже нет.)
>>Смысла для сегодняшней супер-стабильной ветки уже нет.ну и очень зря, припаривает пересобирать каждый rX.
>> Смысла для сегодняшней супер-стабильной ветки уже нет.
> ну и очень зря, припаривает пересобирать каждый rX.Не в супер-стабильной ветки дело. Достаточно вернутся к старой политике безопасности. Причина, частого пересбора -rN в неверной текущей политике безопасности:
Старая, сильная и правильная, политика безопасности: https://wiki.gentoo.org/wiki/Project:Hardened
"make Gentoo viable for highly secure, high stability"Новая, слабенькая, политика безопасности: https://wiki.gentoo.org/wiki/Project:Security
"to ensure that vulnerabilities in software accessible through the Portage tree are found and fixed"
Баги фиксить все равно надо даже в Hardened системах. Хоть эксплуатация дыр значительно затруднена, но их наличие на стабильность работы при вирусной атаке будет влиять отрицательно. Hardened система дает больше времени для разработки, проверке и стабилизации патчей, плюс закрывает 0-day дыры.
> И моё мнение, что это работа именно разрабов дистрибутивов.Это _другие_ пакеты. Они не имеют отношения к пакетам дистрибутивов Линукс (если не говорить о сильно экзотических дистрибутивах а-ля NixOS).
> В Gentoo, лет 15 назад, разрабы дистрибутива выполняли эту работу. И моё мнение, что это работа именно разрабов дистрибутивов. Чтобы не было дублирования обмен патчами и координация в багтрекере конкретной программы приветствуется.Мейнтейнеры дистров не справляются. Попробуй что-нибудь типа репов пакетов ruby использовать или для common-lisp'а, да хоть для пайтона. Там у них какие-то древнючие версии пакетов, и далеко не все пакеты. Вот до чего руки дошли, то они и опакетили, а всё остальное часто доступно только если забить на системный пакетный менагер вообще.
И зачем мне мейнтейнеры дистров в багтрекере с их идеями поддерживать какие-то допотопные системы? Им надо, пускай они и заморачиваются, бекпортируют или любой другой мастурбацией занимаются. Юзеры -- другое дело, их интересы стоит учесть, но мейнтейнеры дистров здесь просто ненужная прослойка, которая мешает всем. То есть, если бы они справлялись бы с программерскими репами, откуда я могу тягать реализации алгоритмов и структур данных под свои нужды, и были бы готовы расширять поддержку в ответ на мои нужды, то с ними можно было бы разговаривать. Но когда они от меня хотят, чтобы я даунгрейдил версии... да шли бы они знаешь куда? Не могут опакетить, их проблемы. Я appimage сформирую, и пускай они дальше не опакечивают. Кому они нужны?
> Советую разделять пакеты более чем на две категории по стабильности и безопасности.
Открой данные отчёта и ты увидишь, что там сильно более двух категорий. Они по нескольким осям классифицируют, и для каждого пакета несколько градаций. Прям идеальная система прямо как тебе хочется. Ты зря нос воротишь.
Видимо так "накодили", что понадобился аудит...
TLTR: Прогнали аудит по используемым пакетам с зависимостями, расставили тэги. Делайте с этим чо хотите, мы своим PM отчитались.
Просто в голос.
Это документ для sox аудита, скорее бюрократическая мишура чтобы успокоить акционеров (ну и какой-никакой порядок для совсем уж беззаботных компаний), чем реальная польза безопасности. Буквально метки "а вот тут для расшифровки 2ух человек достаточно, если два тимлида сговорятся, то могут узнать наш страшный секрет". Потом отдел ИБ (обычно отдельный бюрократический отдел ИБ, созданный чисто для бюрократии) на встрече с внешними аудиторами (бюрократы, которым платят денежку за видимость компетенции) обсуждают что в теории можно улучшить и в итоге делают отчёт что в компании работали не полные неандертальцы и не используют md5 в паролях. Этим отчетом потом хвалится топ менеджмент.
На самом же деле все эти проверки в основном поверхностны и нередко делаются руками проверяемых. Само собой любой мало-мальский разработчик работающий приличное время в компании знает где при разработке оставили костыли и не заменили/умолчали/решили оставить как есть. По различным причинам далеко не все из них доходят до ИБ, а от них далеко не все доходят до аудиторов.
Но видимо растоманы все же совсем дегенераты и не знают этого, они просто увидели слово аудит, слово безопасность, и сразу слепили новость бесполезную чуть более чем для всех. Ну какой язык, такие и разработчики.
Интересно, когда этот самый карго долбанёт, что будут делать эти, которые сейчас "безопасный" код клепают? Сейчас же все проверки и вся "безопасность" по сути в одних руках?
Отправят недовольных читать "AS IS" в лицензии.
гошную репу пока не долбанула, а на ней пол инета крутится (докер/облака)
Смелое заявление.
В каждом апдейте что-нибудь по шифрованию подкручивают. Да и гитхаб задолбал меня письмами счастья: в вашей репе используется версия гошечки, которая имеет уязвимость в стандартной либе, номер уязвимости держите.
Так уже было же. Растоманы просто сказали что карго это не часть раста (раньше же говорили наоборот), что раст хороший, а кто там карго делает они не вдупляют. То же и про уязвимые растоманские либы говорят.
В таком случае где почитать про использование раста без карго?
А толку, если на нем даже пакетный менеджер написать не могут. А разговоров то было...
просто разворачивай свое локально карго и живи без забот
Спорим они сначала словили из какого-то пакета вирь, а уже потом провели аудит.
Скорее всего нет, аудит обычно ежегодно делаются (а то и чаще, смотря какой аудит).
Репа появилась в марте этого года. Если они делали это внутри что вряд ли, зачем это выкладывать наружу.
Почему вряд ли?
Аудит растом не ограничивается.
Гугл осмелился поставить под сомнение безопасность раста?
ДА как он смеет!?
очевидно, безопасность крейтов в общем хранилище-свалке, которые могут быть написаны кем угодно, а я не самого языка, но тебе вбросить на вентилятор надо, иначе "жисть не всласть"...
Это не отчёт. Это Филькина грамота. Кроме количества пакетов метрик тут больше нет.
Потому что это для бюрократов.
Что-то вроде "а вы следите за рисками в зависимостях?", "да, следим, вот у нас даже отчетик есть".
> Применение "cargo vet" позволяет гарантировать, что в проекте используются только проверенные зависимости, которые удовлетворяют заранее определённым условиямА если либа с нужным функционалом не помечена как безопасная, что тогда?
Тогда у тебя два варианта... ©
проверяешь ее и ее зависимости сам, всю иерархию. Очевидно же, не?
Самое главное не забыли:
https://github.com/google/supply-chain/blob/main/CODE_OF_CON...
Инфы тут побольше чем в отчете наверное все задумывалось для этого файла
Ты чё, э, а кто ж по-твоему "свободку" защищать будет?!
Максим, ну серьезно.> опубликовала результаты
Ну опубликовала. И что? Какие выводы там представлены? Что с этим делать? Все хорошо или все плохо? Кто под угрозой или кто в безопасности? Новость просто не несет смысловой нагрузки: абзац про "опубликовала результаты", и абзац про cargo vet.
Новость про то, что опубликованный список можно подключить к своему проекту и не думать о том, что в очередном обновлении может прилететь вредоносное изменение. Аудит проведён перед использованием, поэтому его можно трактовать как белый список, пакеты с проблемами в Google сразу отбраковываются. Другое дело, что список отбракованных пакетов они не опубликовали.
> не думать о том, что в очередном обновлении может прилететь вредоносное изменениеТо есть аудит каким-то образом учитывает и будущие изменения в зависимостях?
> и не думать о том, что в очередном обновлении может прилететь вредоносное изменениену зачем же врать. Там авторы крейтов мамой клянутся, что вредный код в будущем не запихнут или что всю эту систему не взломают через сторонние уязвимости? Гугловцы только на текущий, проверенный код могут дать заключение. Ведь любой код, в который позже прилетали вредоносные изменения, до момента прилета был чистым и "никто и не думал!".
о чем новость?
где выводы?
Да как нормально поставить этот Rust без мутных install.sh, которые неизвестно что наворотят, пусть даже и без рута? Вот nodejs скачал бинарник, кинул куда хочешь, прописал $PATH и запускаешь без всяких побочных эффектов (кроме папки node_modules на несколько гигов).
Твоя слакварь уже устарела, пользуйся пакетными менеджерами.
Эм... ты не в состоянии прочитать содержимое install.sh чтобы понять что он делает?
Может тебе лучше завязывать с компами и пойти в мак?
Не в Мак, а в Точку.
>Эм... ты не в состоянии прочитать содержимое install.sh чтобы понять что он делает?Интересный наброс, но скажите, вы при каждом запуске читаете скриптовые портянки? Ведь эта растопортянка из интернета в любой момент может измениться.
Вообще-то да. Но предпочитаю докер или уже в виртуалке запускать.
А вот расскажите лучше зачем ее читать КАЖДЫЙ раз?
Ты запускаешь ее всего ОДИН раз и он ставит rustup.
Вот один раз и прочитаешь его.
Причем это можно сделать просто в их гите https://github.com/rust-lang/rustup/blob/master/rustup-init.shА дальше работаешь с rustup - все обновления, настройка и переключение версий, тулчейнов и тд. идут через него.
Более того, тебе не обязательно даже скрипт запускать. Можно скачать сам rustup-init, проверить его sha и запустить. https://rust-lang.github.io/rustup/installation/other.html
Если и этого мало - собираешь с сорцов https://github.com/rust-lang/rustup и используешь его.
Вариантов просто куча, выбирай любой.
Обычно установку чего-то заворачивают в скрипт, чтобы скрыть ужас который там творится за одной красивой командой. Очень показательные примеры: Zimbra и ISPmanager. Их инсталлеры столько всего воротят, что требуют даже установки поверх чистой системы.
> Да как нормально поставить этот Rust без мутных install.sh,...
> Вот nodejs скачал бинарник,Прэлестно, просто прелэстно.
389 пакетов. Это если раньше надо было вывести мсгбокс то люди искали какой там это функцией делается. То теперь я так понимаю ищут пакет где ктото написал вывод мсгбокса.... О новый чудный мир, о новые правила....
ПОПА — Пакетно-Ориентированная Программная Архитектура
Раст это прошлый век, где новость про mojo?
Примерно там же где новости про карбон))
С mojo и карбон не уплачено.
Mojo пока что не опен
А так в телеге есть канал - там побольше новостей про него
А вместе с тем главная гугла на https://github.com/google говорит:Top languages
Python C++ Go Java JavaScriptДругих языков не просматривается.
Мозилла тоже много чего говорила
Странно, а где же карбон и можо
mojo - моко.