LINUX.ORG.RU

Компания Open Source Security спонсирует разработку gccrs

 , gccrs, ,

Компания Open Source Security спонсирует разработку gccrs

2

5

12 января компания Open Source Security, известная разработкой grsecurity, объявила о спонсировании разработки фронтенда к компилятору GCC для поддержки языка программирования Rust — gccrs.

Изначально gccrs разрабатывался параллельно с оригинальным компилятором Rustc, но из-за отсутствия спецификаций к языку и частых ломающих совместимость изменений на раннем этапе разработка была временно заброшена и возобновилась только после выхода Rust 1.0.

Open Source Security мотивируют своё участие возможным появлениям кода на Rust в ядре Linux и тем, что ядро собирается чаще всего компилятором gcc. Дополнительно к этому, программы на нескольких языках сразу могут иметь уязвимости, вызванные именно этим фактом (см. Exploiting Mixed Binaries), которых бы не было в программах на чистом C или C++.

На данный момент Open Source Security спонсируют работу одного разработчика, который будет работать над gccrs в течение следующего года, с возможностью выделения средств на увеличение штата. Так же в процессе участвует британская компания Embercosm, специализирующаяся на разработке GCC и LLVM и предоставившая оформление официального трудоустройства разработчиков для данной инициативы.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 2)
Ответ на: комментарий от anonymous

нормальная система типов

ты в курсе что квадрат чмсла в раст может быть отрицательным и это документированное поведение ?

anonymous
()
Ответ на: комментарий от anonymous

переписывание и на С спасает

От логических ошибок (внезапно, rmm РЕАЛИЗУЕТ менеджер памяти) тебя не спасет ничего. От глупых багов «забыл free в нужной функции вставить» – спасет.

покажи свой код на С

Меня посадят, сорян.

anonymous
()
Ответ на: комментарий от anonymous

Rustc и его cargo подохнут благополучно, будет нормальное gccrs и make с зависимостями через pkg-config

Лучше бы pkg-config и библиотеки из репозиториев дистрибутивов бы подохли. Просто дергать версии вверх в репах дебина для Rust зависимостей занимает коллосальные усилия у мейнтенеров, я не знаю зачем они это делают, все равно это статические либы. В Rust библиотеки очень маленькие, реальный Unix-way. Как результат их много и создать бинарник у которого 200 lib*.so зависимостей - это безумие. Учитывая что у друого такого бинарника рядом - другие версии того же самого.

Репы дебиана пришли с времен когда было штук 10 библиотек-монстров с безумно протухшим интерфейсом, которые страшно менять, но мейнтенеры могли с этим совладать. Сейчас версии увеличиваются в разы быстрее и все линкуют статически

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Ну так нахер ты его привёл

Компания Open Source Security спонсирует разработку gccrs (комментарий)

фразу «этот код может компилироваться на твоем дев-локалхосте и не исполняться в продакшене.» ты не воспринял.

Ну, допустим, может быть.

Компания Open Source Security спонсирует разработку gccrs (комментарий)

Чем твой old school здесь поможет?

поможет понять, что вопрос надо решать с другой стороны. в первую очередь поможет отладка механизмов взаимодействия. см. ниже.

Как и с аналом, тебя никто за член не тянул

вот вспомнишь мой член в следующий раз и не будешь больше ничего никуда просто так «пихать».)

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

И не выйдет так, что у тебя в контейнере openssl протух

И так не выйдет, контейнер пересобирается каждый день

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

И не выйдет так, что у тебя в контейнере openssl протух

И так не выйдет, контейнер пересобирается каждый день

Вся суть. Либо вы брешите, либо смузихлёбство головного мозга. Зачем каждый день пересобирать какие-то там контейнеры, если можно каждый день пересобирать своё хозяйство по-человечески.

anonymous
()
Ответ на: комментарий от crypt

фразу «этот код может компилироваться на твоем дев-локалхосте и не исполняться в продакшене.» ты не воспринял.

Я её не понял, честно говоря. Ты имеешь ввиду код, необходимый для сборки другого кода? Ну так его не надо паковать в итоге, всё просто. От пакетного менеджера тут вообще ничего не зависит.

поможет понять, что вопрос надо решать с другой стороны. в первую очередь поможет отладка механизмов взаимодействия. см. ниже.

Каким именно образом? И почему с Flatpak понять ничего нельзя?

вот вспомнишь мой член в следующий раз и не будешь больше докер никуда «пихать».)

Поздно, чувак. У нас продакшен на докере и кубернетесе. Как и у ООООЧЕНЬ большого количества других людей.

А знаешь, почему так получилось? Потому что трудозатраты на опакечивание и деплой через rpm и deb просто конские. Никто не хочет этим заниматься. Я вот предпочитаю подружку трахать вместо этого.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Чувак, третий мир – это лялекс, если говорить про десктопы.

Десктопы - это третий мир в целом. Маленький уголочек не достойный внимания.

95% времени все сидят в браузере, в мобильных приложениях, умных устройствах и консолях. Если в ПК с большими мониторами впаять андроид, то по роду занятий 95% населения будет дальше справляться с задачами.

Так что не судим всех по себе, десктопы или умирают, или их десктопная функциональность умирает, когда люди физически вроде сидят за компом, а в нем всегда только Хром

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

И так не выйдет, контейнер пересобирается каждый день

Ну пересобираться-то он пересобирается, а тэг кто-нибудь обновляет? Потому что я видел примеры, когда используют один и тот же образ CentOS по году-два.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от anonymous

ты в курсе что квадрат чмсла в раст может быть отрицательным и это документированное поведение ?

Ага:

assert_eq!(3i8.overflowing_pow(5), (-13, true));

anonymous
()
Ответ на: комментарий от anonymous

Справедливости ради, система типов тут как раз заметна тем, что есть ещё и checked_pow, который возвращает Option

balsoft ★★
()
Ответ на: комментарий от theNamelessOne

А я и не спорю, что круто. Это анонимуса батхертит.

anonymous
()
Ответ на: комментарий от anonymous

Это поэтому у него список архитектур больше чем у Go, да? Потому что портировать сложно?

Нет, поэтому у раста список архитектур меньше чем у С.

anonymous
()
Ответ на: комментарий от anonymous

Нет, поэтому у раста список архитектур меньше чем у С.

У си фора в 45 лет.

anonymous
()
Ответ на: комментарий от anonymous

Вообще забавно, как C людей в мозг изнасиловал. Чувак, вот правда, C это язык где неправильный индекс массива позволяет выполнить код. Понимаешь? В языке нет нормальных строк и Option, зато есть встроенное в error path метапрограммирование, единственное предназначение которого – стрелять себе в ногу. Это настолько дико выглядит, что я никак не могу понять, почему люди до сих пор считают это нормальным.

Еще раз для заржавелых чуваков. С дает программисту свободу и накладывает ответственность. Да, вокруг «сишных дыр» надо плясать с бубном, чтобы дать гарантии невозможности их эксплуатации. C это системный язык, для написания портируемых низкоуровневых систем. Сишный драйвер GPU будет работать и на x86, и на arm, ppc, … Раст чтобы работать с железом тоже должен войти в спец режим ансейв!

Дико то что дистры GNU/Linux не используют в большинстве безопасных опций компиляции, линковки и безопасных настроек ядра.

Для гарантий безопасности, необходимо контроль со стороны процессора и ядра OS за памятью. И не важно на С писалась прога го или расте. Компилятор, опции компиляции и линковки важны.

anonymous
()
Ответ на: комментарий от hateyoufeel

ты смешиваешь в кучу несколько вопросов. и мне как-то уже немного лениво тебе все раскладывать по полочкам. ты изначально что спросил?

Кстати, я вот в упор не понимаю, почему линуксовые дистрибутивы обязательно должны контролировать ВООБЩЕ ВСЕ версии ВООБЩЕ ВСЕХ компонентов ВООБЩЕ ВСЕХ программ?

ты предлагаешь выкинуть deb/rpm, использовать два разных git'a и для кода, и для системы (ostree), релизить побыстрее сразу все (больше релизится, больше непредсказуемых изменений), забить на тестирование от мейнтейнеров, на уязвимости нулевого дня, и пойти трахать в *опу твою девушку.

ну ок.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

я за бекпортирование исправлений.

смешно. в дистрибутивах уязвимый софт просто всегда. Мейнтейнеры просто не умеют ничего от слова совсем, так как не программисты, и что-то исправить не могут.

Хочешь надёжной системы, обновляйся вместе с апстримом.

fsb4000 ★★★★★
()
Ответ на: комментарий от crypt

ты предлагаешь выкинуть deb/rpm, использовать два разных git’a и для кода, и для системы (ostree)

Практически так, да. Flatpak для прикладного софта, OSTree для основной системы. Заодно получаем атомарные апдейты, безболезненный откат на старые версии и прочие плюшки.

релизить побыстрее сразу все (больше релизится, больше непредсказуемых изменений)

Почему непредсказуемых-то? Они в Changelog написаны. Смотри что ставишь же ну.

забить на тестирование от мейнтейнеров

Для этого есть QA. Почему мейнтейнеры должны заниматься каким-то тестированием, я не понимаю.

на уязвимости нулевого дня

Zero day так называются, потому что о дыре стало известно тогда же, когда эксплоит появился, и исправление ещё не выпустили. Zero day могут быть и в древнем софте. От того, как долго мейнтейнеры твоего любимого дистра помедитировали на исходники, это никак не зависит.

и пойти трахать в *опу свою девушку.

Чувак, ты слишком помешан на анале. Прекращай. Выглядит не очень здорово.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от anonymous

покажи свой код на С

Меня посадят, сорян.

на горшок чтоли :)

Очевидно раст не дает преимуществ по сравнению с С в низкоуровневом программировании.

anonymous
()
Ответ на: комментарий от crypt

не согласен. я за бекпортирование исправлений.

Эт конечно да, все хотят быть богатыми и здоровыми.

Но все это прекрасное хотение упирается в нехватку ресурсов. Что бы что-то бекпортировалось, надо что б кто-то этим занимался. Что б что-то тестировалось, надо что б кто-то занимался тестами. При этом эти люди должны как-то между собой общаться и все такое.

В общем, если проект пилит полтора землекопа то будет что-то одно, либо новые фичи (а это приоритет программистов в большинстве случаев), либо стабильность могилы.

Ну и из этого следует что не всякая софтина должна быть опакечена.

anonymous
()
Ответ на: комментарий от hateyoufeel

Никто не мешает, но например в гноме если ты запустишь такой флатпак, то получишь предупреждение, что приложение пытается запускать фоновые процессы с предложением убить процесс.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от anonymous

Очевидно раст не дает преимуществ по сравнению с С в низкоуровневом программировании.

Очевидно что дает.

anonymous
()
Ответ на: комментарий от anonymous

Очевидно что дает

ОС с ядром на С и С++ являются майнстримом и с появлением Rust ничего не изменялось, так что очевидно Rust ничего не даёт. Модули на Rust в Linux связаны с переездом Торавальдса в США, там даже президент чернокожий был но совсем не значит что сейчас все президенты будут чернокожими.

anonymous
()
Ответ на: комментарий от hateyoufeel

То есть теоретически это возможно, но это будет не совсем intended use. Позиционируется он для GUI-приложений. Компоненты, не имеющте своего GUI обычно опакечиваются как рантаймы или как модули для GUI приложений.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от anonymous

Раст чтобы работать с железом тоже должен войти в спец режим ансейв!

В том то и дело, няш, расту что бы работать с железом надо войти в ансейф только в ОДНОМ месте, там где пишется непосредственно в память-мопед.

Обложить это место всеми тестами, проверками и забыть.

И весь остальной код драйвера, который по резульату пишет в память-мопед и все построенные над этим абстракции БУДУТ БЕЗОПАСНЫМИ.

anonymous
()
Ответ на: комментарий от fsb4000

нет, апстрим добавляет свежие баги. вот потом их находят на федоре, потом первых релизах рхел... а вот потом уже можно пользоваться.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Чувак, ты слишком помешан на анале. Прекращай. Выглядит не очень здорово.

я??! ты же мне свою историю поведал! я фигею.

Zero day могут быть и в древнем софте.

я за этим слежу и по факту сначала находят в новом. старые версии rhel менее подвержены, чем роллинг.

Почему мейнтейнеры должны заниматься каким-то тестированием

от дистрибутива зависит

Они в Changelog написаны.

сказочки. заюзаете 200 модулей node.js, а потом между ними нестыковки.

безболезненный откат на старые версии

да, это тебе очень понадобится при таком ведении хозяйства. «быстро поднятое» станет твоим кредо по жизни. надо понимать, что чем больше изменений ты вносишь, тем больше вероятность что-то сломать.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

А знаешь, почему так получилось? Потому что трудозатраты на опакечивание и деплой через rpm и deb просто конские. Никто не хочет этим заниматься. Я вот предпочитаю подружку трахать вместо этого.

по факту я тоже опакечивать 200 пакетов node не захотел. я действовал по своему принципу old school - занимался системой, опакечивал как считаю нужным. а node оставил на откуп девам. локализовал их помойку под их ответственность. вот они в ней и плюхались.

crypt ★★★★★
()
Ответ на: комментарий от crypt

/

crypt: х** в *опу тоже пихают. еще вопросы?

crypt: и пойти трахать в *опу твою девушку.

А помешан я, ага.

я за этим слежу и по факту сначала находят в новом. старые версии rhel менее подвержены, чем роллинг.

Но подвержены же?

от дистрибутива зависит

Нет, не зависит. Некоторые дистрибутивы имеют свой штат QA. Но это не работа мейнтейнера в любом случае.

сказочки. заюзаете 200 модулей node.js, а потом между ними нестыковки.

Кто заюзает? Я на ноде вообще не пишу, если что. Кстати, зачем тебе в дистре ченджлог для каждого изменения каждой библиотеки, используемой в софте? Потому что там часто какие-нибудь изменения API, которые юзеров вообще не касаются.

да, это тебе очень понадобится при таком ведении хозяйства.

Это нужно при любом случае. Инциденты случаются. Прикинь, во время апдейта системы БП сдохнет или ещё что.

надо понимать, что чем больше изменений ты вносишь, тем больше вероятность что-то сломать.

Ага. Именно поэтому тебе весь тред рассказывают о необходимости изоляции компонентов системы, чтобы они друг друга не ломали. Потому что, я тебе ещё раз повторю это, нет ни одной причины, почему аудиоплеер должен делить все зависимости с менеджером паролей.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)

А вот мне ещё интересно, возможно ли написать на Rust систему реального времени, как он в этой области по сравнению с Си.

Вот, гугл подсказывает, что есть Tock. Интересно, на ней что-то реальное делается, или пока это сугубо опытный проект?..

hobbit ★★★★★
()
Ответ на: / от hateyoufeel

я абстрактный пример привел, а ты перешел на личности. теперь терпи:)

hateyoufeel> Что в этом плохого-то? Я вот подружке пихал. Ей понравилось, мне тоже.

hateyoufeel> Твоя организация занимается анальным изнасилованием админов что ли? Или ты в борделе работаешь?

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: / от hateyoufeel

Прикинь, во время апдейта системы БП сдохнет или ещё что.

прикинь, если меня это беспокоит, то у меня их два обычно...

Но подвержены же?

но меньше. в этой жизни все познается в сравнении.

Кто заюзает?

я о подходе.

crypt ★★★★★
()
Ответ на: / от hateyoufeel

Именно поэтому тебе весь тред рассказывают о необходимости изоляции компонентов системы, чтобы они друг друга не ломали.

именно. ты весь тред мне твердишь про _две_ изолированных помойки с изменениями. отлично. я от одной пытаюсь уйти, а ты мне рекаламируешь двойную! браво!

crypt ★★★★★
()
Ответ на: комментарий от crypt

прикинь, если меня это беспокоит, то у меня их два обычно…

Это просто пример, как у тебя с пистоном. Суть в том, что атомарные апдейты ничего не стоят кроме лишнего места на диске под вторую копию системы и гораздо более полезны, чем этот твой олдскул. Можно использовать снапшоты, но они не дискриминируют по содержимому и ограничивают выбор ФС. Короче, в итоге получается лучше чем без них.

но меньше. в этой жизни все познается в сравнении.

Ну, раз ты говоришь о сравнении, сравни это с дырами, которые вносят мейнтейнеры софта.

Вот, например, потрясающий пример как можно насрать самим себе в штаны: https://lwn.net/Articles/282744/

я о подходе.

О подходе использования сторонних библиотек при написании программ? Потому что, я тебе гарантирую, ченджлоги буста никто в здравом уме в документацию к своему софту не включает.

именно. ты весь тред мне твердишь про две изолированных помойки с изменениями. отлично. я от одной пытаюсь уйти, а ты мне рекаламируешь двойную! браво!

Я тебя вообще не понимаю, чувак. Ты какую-то хероту тут про old school в котором всё зашибись несёшь. Ей богу, чушь какая-то.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Суть в том, что атомарные апдейты ничего не стоят кроме

понимаешь, худшее, что можно сделать, это обсуждать решение отдельно от всего остального: о, а давайте докер сделамем! о, а мне нравится флетпак!

стоит или не стоит решается организацией сториджа, схемой бекапов и т.д.

все эти решения идут под задачи. под проект и т.д. с учетом всего остального. и вот лично я бы предпочел видеть стабильный девелоперский стек в проекте, чем вот эту чехарду обновили-обновили-пофиксили...

сравни это с дырами

2008? посвежее ничего нет?

О подходе использования сторонних библиотек при написании программ?

о continuous intergration, наверное. сейчас вроде так это называется.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 3)
Ответ на: комментарий от anonymous

Именно.
А ещё я в перспективе думаю о возможности сбори ентого под e2k и тут появляются нерешаемые проблемы вроде отсутствия нативного таргета в llvm

mittorn ★★★★★
()
Ответ на: комментарий от hateyoufeel

p.s.

я только сейчас заметил, что случайно не в токсах.:( нафлудил тут с тобой понимаешь. может, попросить, чтобы топик туда перенесли.:(

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

стоит или не стоит решается организацией сториджа, схемой бекапов и т.д.

Как это связано с организацией обновления базовой системы?

все эти решения идут под задачи. под проект и т.д. с учетом всего остального. и вот лично я бы предпочел видеть стабильный девелоперский стек в проекте, чем вот эту чехарду обновили-обновили-пофиксили…

В большинстве случаев не идут. Это базовые вещи.

2008? посвежее ничего нет?

Прости, это наиболее яркий пример из памяти. Искать дальше лень, но, навскидку, перцы из Red Hat кучу раз бэкпортировали дыры из новых ядер в старые вместе с какими-то изменениями. Вот тебе и бэкпортирование.

о continuous intergration, наверное. сейчас вроде так это называется.

Нет, CI тут вообще никаким боком, прости.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Как это связано с организацией обновления базовой системы?

если мы используем схему с дедупликацией, например.

Прости, это наиболее яркий пример из памяти.

да ничего, я готов признать, что ты бываешь прав раз... в 12 лет...

перцы из Red Hat кучу раз бэкпортировали дыры

а если использовать самый старый редхат, то там все ок. я в одном таком случае точно обратил на это внимание.

Нет, CI тут вообще никаким боком, прости.

как скажешь. я думал, это там все спешат и все постоянно выкатывают, апдейтят и фиксят

crypt ★★★★★
()
Ответ на: комментарий от crypt

если мы используем схему с дедупликацией, например.

Дедупликацией чего? Базовой системы? ФС? Админа?

да ничего, я готов признать, что ты бываешь прав раз… в 12 лет…

Пока что это чаще чем ты.

как скажешь. я думал, это там все спешат и все постоянно выкатывают, апдейтят и фиксят

Погоди, то есть ты настолько не разбираешься в вопросе, но при этом имеешь мнение? CI – это всего лишь автоматизация сборки и тестирования кода.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Как это связано с организацией обновления базовой системы?

если мы используем схему с дедупликацией, например.

Дедупликацией чего? Базовой системы? ФС? Админа?

люблю содержательный диалог. дедупликация базовой системы посредством fs.

Погоди, то есть ты настолько не разбираешься в вопросе, но при этом имеешь мнение?

в каком именно вопросе? можно с примерами.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)

но из-за отсутствия спецификаций к языку и частых ломающих совместимость изменений на раннем этапе

Напомните мне, насколько часто ломают совместимость сейчас?

shkolnick-kun ★★★★★
()
Ответ на: комментарий от crypt

люблю содержательный диалог

Как ты базовую систему дедуплицируешь?

в каком именно вопросе? можно с примерами.

CI, Python и сборка кода на нём, Node.js, анальный секс.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

и где я высказываю свое мнение насчет CI? насчет python и сборки кода? почему тебя опять волнует тема секса и ты хочешь услышать мое мнение? у тебя точно есть подружка?

crypt ★★★★★
()
Ответ на: комментарий от hateyoufeel

Как ты базовую систему дедуплицируешь?

извини, это уже скучно. если имеешь что сказать - говори. а если тебе нужна консультация - $10

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

да ничего, я готов признать, что ты бываешь прав раз… в 12 лет…

Пока что это чаще чем ты.


https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2019-15666 - RHCE6 не подвержен

https://www.opennet.ru/opennews/art.shtml?num=52640 - в ядра RHEL проблемное изменение не переносилось

https://www.opennet.ru/opennews/art.shtml?num=50620 - ядро 5.0 успело войти в состав Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo и других непрерывно обновляемых дистрибутивов

https://www.opennet.ru/opennews/art.shtml?num=50197 - Уязвимость не затрагивает дистрибутивы с версией ядра меньше 4.17, например,  RHEL/CentOS. Обновления пакетов уже выпущены для Arch Linux и Fedora.

это только кернел и только за последний год. мне продолжать или признаем, что я все-таки что понимаю в этом вопросе?

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.