LINUX.ORG.RU
ФорумTalks

Гугл: переходим постепенно на безопасные ЯП

 


0

3

Сегодня читал со смартфона новый (начало марта 2024г.) технический отчёт от гугловцев, в котором они объявляют о постепенном переходе на ЯП с memory safety. Сейчас не могу найти ссылку, но вот, что по сути.

Вводится таксономия ошибок при работе с памятью (типа пространственная и временная безопасность и проч.). Наверное уже миллион раз это уже предлагалось, и у Эппла есть аналогичная классификация. Для каждого типа ошибок предлагается решение.

Далее интересная штука. Ввиду того, что уже дофига кодовой базы на сишке и плюсах, переписывать это никто не будет, поэтому предлагается всё новое начинать на безопасных ЯП, а небезопасные подмножества использовать только для интерфейса с Легаси кодом, и привлекать к ревью небезопасного кода мощных экспертов.

Приводится какая-то статистика, что типа в Андроиде 70% критических уязвимостей - ошибки в работе с памятью. Но тогда возникает логичный вопрос, ведь кроме ядра в Андрюше очень мало плюсового кода, это какие-то нижние части HAL или что там у них, всякая околосистемная мишпуха, может быть кодеки какие анально огороженные, а всё что выше и остальное уже давным давно на память-безопасных мега языках. И что тогда переводить на эти безопасные языки, если всё, что можно уже и так переведено…

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

Упоминаются языки на VM, а также Rust, Carbon (экспериментальны проект, типа безопасный C++), Go (блин, он-то тут при чём, если это ниша веб-сервисов? Кто-то пишет вебсервисы на сишке, что это прямо такая глобальная проблема?). Ни слова о Аде. Видимо, упоминаются только те ЯП, в которые Гугл вложился и теперь пиарит.

★★★★★

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

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

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

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

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

Секундочку. А кто же будет делать нам Андроид?

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

Если он и правда кому то окажется нужен (мне - не нужен) то те и будут делать. И кстати гугл его не создал а купил.

firkax ★★★★★
()

Ни слова о Аде.

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

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

Если он и правда кому то окажется нужен

здрасьте… Смарты на Андроиде занимают большую часть рынка смартов. Миллиарды людей хотят выхода новых версий и поддержки старых.

И кстати гугл его не создал а купил.

Да какая нахрен разница?! Захавал рынок он при Гугле.

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

Т.е. пока какой-то чувак не запилил раст, всем было по большому счету насрать на безопасность, а теперь вдруг «кококо опасносте». А почему корпы сами не запилили в свое время безопасную альтернативу сишке-плюсишке, а продолжали писать дырявый софт?

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

Т.е. пока какой-то чувак не запилил раст, всем было по большому счету насрать на безопасность, а теперь вдруг «кококо опасносте».

Ну это, конечно, не так. Меры борьбы предпринимались уже давно. А гугловцы давно уже были в комитете стандартизации плюсов. Собственно говоря, новые стандарты плюсов после 2011г. и старались по чуть-чуть исправлять ситуацию. Просто за последние 10 лет компьютеризация достигла таких масштабов, что некоторые потребительские товары стали физически опасны из-за уязвимостей ПО, чего раньше не было (см. фейерический удаленный хак инфотейнмент системы Jeep), и смартфоны за эти 10 лет меньше не стали использиваться. И Google Project Zero появился не сегодня.

seiken ★★★★★
() автор топика

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

MKuznetsov ★★★★★
()

кроме ядра в Андрюше очень мало плюсового кода

Дохрена, там HAL весь на нём вроде был + куча либ более или менее стандартных. Либа для графики там какая-то была тож на плюсах.

А это и есть 70% андроида наверное. Баги в приложениях же там не учитывались?

А все эти jit и ява-машины ещё.

нафига нужно будет с этого безопасного подмножества переписывать на Rust?

Я тож думаю проще было в сях и в плюсах сделать подстандарты и ключ компилятора.

https://github.com/Speykious/cve-rs

cve-rs allows you to introduce common memory vulnerabilities (such as buffer overflows and segfaults) into your Rust program in a memory safe manner.

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

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

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

термин «безопасные яп» как раз рассчитан на технически безграмотных эффективных повесточных балаболов

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

джоп безопасным, никто кроме автора и Столмана таким кодом владеть не сможет

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

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

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

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

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

здрасьте… Смарты на Андроиде занимают большую часть рынка смартов.

Смарты не нужны.

Миллиарды людей хотят выхода новых версий и поддержки старых.

Ну раз есть спрос - найдётся и предложение.

Да какая нахрен разница?! Захавал рынок он при Гугле.

А вообще, монополизм это плохо, надо исправлять.

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

Смарты не нужны

Луддиты не нужны.

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

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

А что ещё делать с сишниками-то? Без говнокода сишники просто не могут.

hateyoufeel ★★★★★
()

Глядь! Если обезопасить C++, то получится Pascal по скорости работы. Раньше скорость была ключевой фишкой C++, а теперь идёт откат мнения. Шатания из стороны в стороны с максимальной выкачкой денежек из нас.

xwicked ★★☆
()
Последнее исправление: xwicked (всего исправлений: 2)

Go (блин, он-то тут при чём, если это ниша веб-сервисов? Кто-то пишет вебсервисы на сишке, что это прямо такая глобальная проблема?)

стереотипы? Go вроде общего назначения, то что бекендеры на нем web-ню пишут еще не показатель, можно по такой логике и python с перлом к «web-языкам» приписать

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

Go вроде общего назначения

Да, но некоторые вещи на нем вызывают ощущение диких костылей. Например, если ты хочешь написать консольную утилиту — это вот прям топ язык. А если гуй — то кошмар.

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

Кстати, а почему как замену сишке не продвигать например Паскаль? Неужто в том же фри Паскале нет того, что есть в сишке?

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

Гугл ищет способ как руками макак, подкостыленных компиляторными проверками, слепить что-то не забагованное

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

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

Где же взять немакак?

Гуглу - уже почти нигде. Я ж говорю ему кроме как закрыться норм вариантов нет.

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

Вообще-то это во всех языках так, и Си ничем не исключение.

Почему сами обличители макак пишут дерьмо, на которое без слез смотреть невозможно?

А вот это уже враньё.

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

Судя по отзывам сотрудников с 15+ лет стажа в вышеупомянутой шараге, этот регистрант прав.

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

Гуглу - уже почти нигде. Я ж говорю ему кроме как закрыться норм вариантов нет

Ты не кривляйся, а отвечай на вопрос.

Вообще-то это во всех языках так, и Си ничем не исключение.

В нормальных языках не будет таких идиотских ошибок, если ты намеренно не полезешь на рожон.

А вот это уже враньё.

Это правда. Столярова со стенсоном тут уже обсуждали.

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

Кстати, а почему как замену сишке не продвигать например Паскаль?

А смысл в чём? Какие преимущества может дать Паскаль, при замене Сишечки, или Крестов?

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

В нормальных языках не будет таких идиотских ошибок, если ты намеренно не полезешь на рожон.

Я по личному опыту написания идиотского дерьма говорю: дерьмо можно писать и на супер-мега-безопасно-нормальных языках.

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

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

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

Ну, по понятиям сишников - beginend-ы в этих ваших паскале-адах не крааасивые; более реалистичое и честное - как на другом языке показать какой ты крутой сишный хакир? а никак, нет больше нигде такой зацикленности на возне с сыроуказателями и их грязнокастами, и фокусами-покусами с препроцессором или switch-ем не по выпендриваться, а если будешь бегать по интернетам с глазами по пятаку и говорить что вот на таком-то языке можно написать всё, прям вот всё, покрутят пальцем у виска, факт тьюринг-полноты таких восторгов как у сишки почему-то не вызывает

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

Все там есть. Проблема в количестве строк кода, написанном на С и в специфике некоторых его применений, например, в случае noeabi.

LongLiveUbuntu ★★★★★
()

переписывать это никто не будет

Как обычно, у нас уже есть куча говна, давайте рядом нахерачим ещё одну.

ya-betmen ★★★★★
()
Ответ на: комментарий от hateWin

Немакаки заняты хеллоуворлдами на лишпе :)

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

yu-boot ★★★★
()
Ответ на: комментарий от QsUPt7S

Я не про замену крестов, а именно си. Ну более строгая типизация, вообще более строгий язык, код нужно аккуратнее писать, нет ерунды вида if (a |= 3) (по коду явно сравнение с тройкой подразумевалось), и ты ды.

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

В итоге лучше оно не становится, только тянет зависимости

LongLiveUbuntu ★★★★★
()

Но тогда нафига нужно будет с этого безопасного подмножества переписывать на Rust?

Ты не сделаешь безопасное подмножество плюсов на уровне rust без потери обратной совместимости с плюсами. Так что это только временное решение.

блин, он-то тут при чём, если это ниша веб-сервисов?

Действительно, у гугла ведь ни одного веб-сервиса...

Ни слова о Аде.

Потому что язык и раньше не был популярен.

atrus ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)