LINUX.ORG.RU
ФорумTalks

Linux опять похвастался качеством кода

 ,


0

1

Все, что надо знать о качестве кода в Linux:

https://1.bp.blogspot.com/--SpB2lfBGpk/YEq0vAipK6I/AAAAAAAABgM/Ozwzp0JVKtUxxiSHzQ-z-fApaio4FigngCLcBGAsYHQ/s779/vuln.png

ну и эксплоит для локального повышения привилегий:

https://github.com/grimm-co/NotQuite0DayFriday/tree/trunk/2021.03.12-linux-iscsi

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

А сколько еще таких перлов припасено в Linux…

★★★★★
Ответ на: комментарий от andalevor

Это потому что на дырявой сишке

Да хотя бы на C++ писали, уже было бы в разы меньше уязвимостей. Си — решето.

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

Это потому что на дырявой сишке, а не расте.

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

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

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

Так это хорошо. Вот если б язык появился и ничего на нём не писали, это было бы печально.

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

А это статическими анализаторами для Си разве не ловится? Не пишу на Си

Только самые простые ошибки. В языке Си просто нет способов описать отношения данных, чтобы потом было их статически проверять.

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

Почему «мой»? Где «мой» openssh на Си?

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

Просто лишний раз напомню, что написанная на Си программа не должна светиться в сеть

Тем временем в реальном мире миллионы, если не миллиарды машин держат попой в интернеты sshd из OpenSSH, написанный угадай на чем, nginx/lighttpd/Apache/Squid, написанные угадай на чем, bind9, написанный угадай на чем, postfix/exim/sendmail, написанные угадай на чем, крутят виртуальные машины в QEMU, написанном угадай на чем, и все это на ядрах, написанных угадай на чем. Что ж они все такие дебилы, тебя не слушают?

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

Тем временем в реальном мире миллионы, если не миллиарды машин держат попой в интернеты sshd из OpenSSH, написанный угадай на чем, nginx/lighttpd/Apache/Squid, написанные угадай на чем, bind9, написанный угадай на чем, postfix/exim/sendmail, написанные угадай на чем, крутят виртуальные машины в QEMU, написанном угадай на чем, и все это на ядрах, написанных угадай на чем. Что ж они все такие дебилы, тебя не слушают

А еще ездят непристегнутыми, бухими, курят, и долбятся в пуканы. Это, однако, не значит, что они поступают наиболее оптимальным образом. Более того, они даже не задаются вопросом какой-то там оптимизации — они просто делают так, как делают все. Все пользуются nginx — я буду пользоваться nginx. Если бы отдельные корпорации не выдавали щедрые гранты за найденные уязвимости, то весь интернет был бы завален похаканными серверами — как это было когда-то, с юниксами и не только, еще на заре становления интернетов, когда вопросами безопасности не особо парались. Ну а чо, бекап есть, «переустановлю виндовс», и всё. Собственно, у особо отбитых до сих пор водятся ботнеты, когда целую сеть организации сношают через единственный эксплойт. Ну а чо, если ты делаешь стартап, и сомневаешься, что он проживет хотя бы 2 года — какая нафик разница?

Челы, вон, сделали криптовалютную биржу с транзакциями на монге, их через эту монгу и ограбили до трусов. Они тоже думали «монга — это надежно, стабильно, много кто пользуется». Многие по этому поводу даже не строят никаких иллюзий: «мы приняли меры по минимизации ущерба, так что если нас похакают, то скорее всего ущерб будет минимальным». Речь не идет ни про какие «нас точно не похакают» — похакают обязательно, рано или поздно, потому что софт-то на сишке писан.

миллиарды машин держат попой в интернеты sshd из OpenSSH

Они светят в интернет только аутентификацию — шанс подставиться в таком случае сильно меньше. А вот остальные его фичи регулярно радуют дырами:
https://www.cvedetails.com/vulnerability-list/vendor_id-97/product_id-585/Ope...

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

Дык дело не в том, что пишут или нет. А втом, что до сих пор есть хомячки, которые порят херню про кристальную безопасность раста. Как будто на нем нельзя говнокодить. На си можно писать нормально, равно как и на расте пистать говно. Так что харэ уже эту мантру про «переписать на расте» копипастить.

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

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

Как будто здесь есть что-то плохое. Ну…кроме езды бухим за рулем.

Все пользуются nginx — я буду пользоваться nginx.

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

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

Дык это - во-первых смысл десяткам глаз смотреть бесплатно, так хоть поиметь кого-то можно. Во-вторых - смотреть десятком глаз в проприетарное без доступа к исходникам - требует на порядок больше специфичных навыков, но при этом, эти ваши, проприетарные - могут(или нет, но тогда оно слишком дёшево стоит) себе позволить проводить регулярный аудит безопасности как black так и white box, т.к. прибыль от решения сконцентрирована в одной точке и её распределение поддаётся планированию, в том числе и долгосрочному.

pon4ik ★★★★★
()

Интересно, есть ли в NSA/CIA/FBI люди, у которых в обязанностях прописан ежедневный мониторинг подобных исправленных CVE и вычёркивание их из некоего «списка»? :)

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

А еще ездят непристегнутыми, бухими, курят, и долбятся в пуканы. Это, однако, не значит, что они поступают наиболее оптимальным образом. Более того, они даже не задаются вопросом какой-то там оптимизации — они просто делают так, как делают все.

т.е. ты задумывался об оптимизации выше перечисленного? и как успехи?

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

раста. Как будто на нем нельзя говнокодить.

В стиле С? С разыменованием нулевых указателей и с доступом по указателю за пределами выделенной памяти? Только если внутри блоков unsafe, а некоторые события уже показали, что когда кто-то интересуется чужим кодом в раст, первым делом лезет смотреть в unsafe и это очень круто. Потому что сабж показывает, что очевидные ошибки (и потенциальные уязвимости) могут жить годами и даже десятилетиями в открытом коде, который каждый может посмотреть и многие смотрят.

На си можно писать нормально, равно как и на расте пистать говно.

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

andalevor ★★★
()

Но постойте, как же так, ведь тысячи жадных до аудита глаз

Ну вот же, глаза нашли кусок, который ты выше привёл. Или он сам всплыл?

turtle_bazon ★★★★★
()

Ну да, опять длина буфера в Си-шке подкузьмила.

ну и эксплоит для локального повышения привилегий:

Вообще локальное повышение привилегий сейчас мало где опасно на самом деле.

Есть два сценария, когда оно может доставить проблемы:

1. Если какой-то троян проник локально и ему нужно освоить всю систему.

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

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

Ну то есть, неприятность, да. Но такая себе.

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

На си можно писать нормально, равно как и на расте пистать говно. Так что харэ уже эту мантру про «переписать на расте» копипастить

В Си есть определенные архитектурные решения, которые создают потенциал написания багов на ровном месте, не давая при этом программисту взамен ни более широких возможностей писания алгоритмов, ни скорости выполнения, ни скорости компиляции, ни скорости разработки. Просто потому, что в языке толком нет системы типов, у него вырвиглазный синтаксис, который тяжело парсить глазами и алгоритмами, у него динамические буфера в стэка вызовов без малейшего намека на автоматический контроль границ этих буферов, и всё это припудрено нуль-терминированными строками, которые на мой взгляд являются топ 1 худшим решением K&R. Я называю это «язык без архитектуры».

Даже C++, при всей моей неприязни к нему, является намного более удобным и безопасным инструментом. Не говоря уже про раст. Еще в восьмидесятые тебе бы ответили «зачем мне Си, если на ассемблере можно писать нормально?». Вот ты сейчас высказываешь аналогичную позицию.

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

Как будто здесь есть что-то плохое. Ну…кроме езды бухим за рулем

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

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

Я боюсь, что лично меня переписать всё на свете не хватит. Особенно забесплатно.

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

Интересно, есть ли в NSA/CIA/FBI люди, у которых в обязанностях прописан ежедневный мониторинг подобных исправленных CVE и вычёркивание их из некоего «списка»?

В NSA — да. Естественно, их интересуют только самые вкусные уязвимости, и это не значит, что они знают про все-привсе на свете уязвимости. Мы лишь изредка узнаем про какую-нибудь уязвимость, через которую NSA десять лет имело своих клиентов. Но, очевидно, это лишь верхушка айзберга. ЦРУ и ФБР несколько другими вещами занимается.

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

т.е. ты задумывался об оптимизации выше перечисленного? и как успехи?

Не курю, не бухаю, пристегиваюсь, анально девственен.

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

Через 15 лет, да

Но ведь нашли же

Я представил, как спустя еще 25 лет всплывает другая внесенная 15 лет назад бага, и ты такой «да, спустя 40 лет — но нашли же».

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

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

Во-о-от, и я о том же. Доступ к шэлу под любым юзером = рутовый доступ. А теперь вопрос: зачем в линуксе вообще пользователи и права доступа? Причем, продакшен уже давно это понял, потому беспощадно режет права доступа даже у рута.

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

А ты представь, что не в линуксе, а чём-нибудь закрытом, до сих пор не нашли

В том числе поэтому ядро мака опенсорсно.

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

В том числе поэтому ядро мака опенсорсно.

Ну компьютер это не только ядро. И мак это не единственное ядро, к тому же не самое популярное.

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

В том числе поэтому ядро мака опенсорсно.

Ну компьютер это не только ядро. И мак это не единственное ядро, к тому же не самое популярное

Бага в файндере намного менее опасна, чем бага в ядре. Аналогично, браузеры нынче предпочитают опенсорсные, потому что на них запускается недоверенный контент, а стандарты веба адово переусложнены. А тот же MS свое ядро режет, выкидывая из него старый GUI.

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

Бага в файндере намного менее опасна, чем бага в ядре.

Ты серьёзно так думаешь?

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

А как же миф с тысячиглаз и через 15 лет увидели?

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

В Си … толком нет системы типов

Ок, дальше можно не продолжать.

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

А теперь вопрос: зачем в линуксе вообще пользователи и права доступа?

Фактически для изоляции добросовестных приложений и упорядочивания работы.

Причем, продакшен уже давно это понял, потому беспощадно режет права доступа даже у рута.

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

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

Причем, продакшен уже давно это понял, потому беспощадно режет права доступа даже у рута.

А вот это уже из желания фактически отобрать права распоряжаться компьютером как хочется его владельцу

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

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

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

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

А вообще, вот что интересно. Почему-то меры, направленные на поддержку более серьезных мер защиты уровня ядра не нашли понимания на мейнстримном уровне. Я не имею ввиду формальные настройки безопасности по типу https://www.tecmint.com/security-and-hardening-centos-7-guide/ а то, что делают патчи PaX, grsecurity

Их не делают разработчики ядра линукс (по крайней мере в официальных версиях kernel.org), хотя бы на уровне опций компиляции ядра, пусть бы и отключенных по умолчанию.

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

чуваки проверили плюсовый код и за пару дней наловили все то же самое

Не тоже самое, а намного меньше. И это с учётом того, что Fuchsia — новая ОС, в результате её эксплуатации ещё не нашли много уязвимостей. Линукс в начале своего существования был просто фантастическим решетом по сравнению с Fuchsia. Эпичного бага, аналогичного багу в заглавном посте, там в Fuchsia не нашли.

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

Практика показывает, что ломают и без рута, а вот юзера часто ограничивают принципиально, как Apple

Не, Android/Apple и невозможность взаимодействовать со своим собственным устройством по USB — это порно. Я все-таки имел в виду SELinux/AppArmor.

что делают патчи PaX, grsecurity

Эм-м-м... а что, линукс до сих пор не запрещает выполнение данных? Семерка запрещает — у меня в свое время из-за этого отваливался старый кривой софт. И рандомизация адресов тоже есть, что меня бесило при отладке. Вот зачем нужно grsecutiry — я не совсем понимаю. Но, наверное, кому-то нужно.

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

Эм-м-м… а что, линукс до сих пор не запрещает выполнение данных?

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

X512 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.