The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

0-day уязвимость IPv6-стеке Linux, позволяющая удалённо вызвать крах ядра, opennews (?), 17-Май-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


233. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +2 +/
Сообщение от WatchCatemail (ok), 18-Май-23, 02:09 
Язык ADA,сделаный специально для написания высоконадежных программ, на момент создания ядра Линукса уже существовал. Но вот он был слишком сложен для большинства программистов из 90х - мало кто его знал на хорошем уровне. Хотя это мой любимый язык как раз с тех времен,но и я не скажу что знаю его идеально.
Так что Си был выбран скорее всего как наиболее общеизвестный на то время и достаточно простой. Теперь имеем такое вот легаси с которым приходится жить. Не только нам,а всему миру. По всей видимости до тех пор пока не появятся методы разработки программного обеспечения на основе искусственного интеллекта. Потому как нынешние объемы кода уже превышают возможности человеческих мозгов ими управлять. Я еще застал времена когда вполне серьезную программу мог написать и сопровождать один человек. Потом это стало под силу только командам. Потом - крупным коллективам,потом коллективы разрослись до "мирового сообщества". Но дальше расти некуда так как в слишком крупных сообществах сильно растет "оверхед" на внутреннее взаимодействие.
Единственная надежда остается на AI.

Что касается конкретно этой уязвимости - то тут вообще не язык виноват,а программист, это писавший. Вот если бы было не диагностируемое переполнение буфера - тогда да, встроенные в Аду средства контроля могли бы это предотвратить. Но здесь переполнение обнаруживается,только обрабатывается мягко говоря странно.

И еще я не согласен с оценками трудоемкости переписывания программ,приведенными выше. Потому что большинство из написанного за упомянутые 30 лет давно уже не актуально. Отечественных(да и вообще) программ-долгожителей весьма немного. Да и они обычно не один раз переписываются почти с нуля. Сомневаюсь что в Win10 сохранилось сколько-нибудь заметное количество кода от Win1.0. А Эппл менял и софт и железо на котором он работал.

В трудоемкости написания "идеально-безошибочной" операционной системы пожалуй что основную часть займет переписывание и главное отладка огромной кучи драйверов для всего огромного зоопарка самых разных устройств. На многие из которых нет даже внятной технической документации. Такой проект могло бы потянуть разве что государство с горизонтом планирования лет в 20 и государственными масштабами финансирования. По масштабам это будет сравнимо с атомным и космическим проектами.Если государству это вообще надо. Если от атомного проекта мы получили одну из лучших в мире атомную энергетику,то например выхлоп от космоса не факт что пропорционален затратам сил и средств. Нам,айтишникам, безусловно кажется что идеальная операционная система очень важна,но нас в России всего лишь миллион,а остальные больше чем 99% скорее всего имеют иное мнение. Мне например кажется что это так, глядя на абсолютно наплевательское отношение людей к вопросам личной компьютерной безопасности. Посмотрите на пароли - действительно криптостойкие встречаются не чаще чем например сейфовые двери на квартирах. Остальных и так всё устраивает.

Ответить | Правка | Наверх | Cообщить модератору

238. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +/
Сообщение от Аноним (238), 18-Май-23, 07:20 
а расскажите, что есть написанного на ада, что реально работает?
Ответить | Правка | Наверх | Cообщить модератору

241. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  –1 +/
Сообщение от mos87 (ok), 18-Май-23, 08:00 
АДА нужно примерно так же как эта портянка.
Ответить | Правка | Наверх | Cообщить модератору

273. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +1 +/
Сообщение от WatchCatemail (ok), 18-Май-23, 13:10 
> АДА нужно примерно так же как эта портянка.

Если вам в вашей работе Ада не нужна - так ведь никто и не заставляет. Я же не говорю что например Лисп не нужен только потому что его не использую и не понимаю чем он хорош. Когда в конце 90х у меня на работе был выбор на чем сервер делать - кое-кто из коллег тоже не понимал чего это я агитирую за использование любой из доступных юникс-подобных ОС,называя их "устаревшими".Восхвалял модное новейшее WinNT.
А теперь вот серверы на юниксообразных ОС у большинства стоят.
Новое - это далеко не всегда лучшее. Особенно сейчас.


Ответить | Правка | Наверх | Cообщить модератору

270. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +2 +/
Сообщение от WatchCatemail (ok), 18-Май-23, 13:02 
Наиболее известное из отечественного - бортовое программное обеспечение самолёта Бе-200. Самолёт успешно летает. В отличие от Боинг 737 MAX.
Применительно к теме данного обсуждения надежности операционных систем - ОС Muen. 64-bit only,увы. Если тут есть любители экспериментов,имеющие свободный 64-разрядный комп - интересно было бы узнать о результатах попытки запуска. Я-то нынче в деревне живу,возраст знаете ли, поэтому провести этот эксперимент мне технически затруднительно.

Из написанного на Аде мной лично за деньги - самое большое это как ни странно был складской учет для типичной в 90х торгово-посреднической конторы. Тогда было время полной свободы так сказать индивидуального творчества для программистов. Я еще и СУБД использовал довольно экзотическую,не табличную,а иерархическую, и очень быструю,пиратскую копию MDBS. Исходников набралось на полмегабайта,работало вполне нормально. Компилятор бы Meridian ADA for DOS, тоже конечно пиратская копия как и всё в то время.

Ада несколько опередила свое время - тридцать лет назад язык, у которого описание стандарта занимало полтысячи страниц, казался многим слишком сложным для освоения в сравнении с распространенными тогда языками. В то же время уровень сложности большинства проектов еще не требовал использования таких серьезных инструментов. Сейчас документация такого размера на язык программирования - даже и не самая большая из существующих. Переведенные на русский язык книги описывают только базовую часть стандарта Ады. Хотя и достаточную для многих,если не большинства, случаев также как в большинстве случаев достаточно С89. По дополнениям стандарта ADA95 и ADA2012 документация только англоязычная. Хотя надо сказать что написана она достаточно удобно для восприятия даже при не самом хорошем знании иностранного языка.

Отличный компилятор GNAT - есть в репозиториях многих линуксов. Он не единственный но самый доступный и свободно распространяемый. Даже сейчас,в условиях новой холодной войны. Это к вопросу связанности Ады с военными. Она ничуть не больше чем например у протокола TCP/IP который тоже первоначально разрабатывался для военных применений но ничего "мирного" ему на замену так всё еще и не доделали до готового к массовому внедрению вида. GNAT есть и под архитектуру ARM. Работает. Можно софт для всяких "малинок" и "апельсинок" писать. Причем вопреки мифу о тяжеловесности Ады - даже прямо на этих "фруктах" можно. Это тяжеловесна Ада была для IBM PC AT 286. Хотя с некоторыми ухищрениями работала и там (личный опыт - см.выше про складской учет). А так я несколько лет назад извратился,поставив полноценный Дебиан на "морально устаревший" смартфон HTC HD2 - c Иксами, всё по-взрослому,клава,мышь и сеть - через usb-host. Получился маленький но вполне настоящий ARM-комп. И смотрел что на этом способно работать. Ада и ее компилятор были полностью работоспособны.

Основная сложность для программистов,переходящих с Си на Аду - отличие в методологии создания программ. Если использовать Аду "по-сишному" то это будет и неудобно для программиста и неэффективно с точки зрения использования возможностей самого языка. После сишной привычки к вольному обращению с типами - компилятор Ады будет жестко бить по рукам и этим изрядно бесить. Придется себя переучивать на более строгий стиль,что безусловно полезно. Получится не сразу,потребуется время чтобы разобраться как надо писать код чтобы контроль типов помогал,а не мешал. Возможность создания хитрых производных типов и последующей удобной работы с ними - это сильная сторона Ады. В современном Си это тоже можно,но из-за того что Си допускает всякие вольности с привидением типов - обычно не заморачиваются и поэтому методологию типизации данных знают слабо.
Если же начать с изучения методологии,положенной в основу этого языка - то всё там выглядит разумно,логично и удобно. И существенно проще для понимания чем какой-нибудь Хаскель или упаси Боже Лисп.
Согласен,что что-то небольшое будет быстрее сляпать на Си,а малый размер исходника позволит отловить ошибки. На Аде мелочь писать тоже можно,но это отчасти стрельба из пушки по воробьям. Впрочем - если есть такая хорошая пушка и умеешь из нее стрелять - то почему бы и нет. А вот когда в проекте становится столько кода,что начинаешь в нем тонуть и путаться - тут от Ады очень даже польза будет так как она не дает делать простых ошибок. Которые тем не менее потом надо долго вылавливать. Впрочем, возвращаясь к теме вышеописанной уязвимости в ядре линукса - в подобных случаях Ада не поможет. Потому что тут виноват не язык,а программист,написавший на нем весьма странную обработку ошибочной ситуации. Ни в Си ни в Аде детектирование ошибочной ситуации не отменяет необходимости корректно её потом разруливать не роняя ядро в panic.
Основное же на мой взгляд неудобство "адского" программирования - это отсутствие библиотек на все случаи жизни,к чему мы все привыкли за последние годы. Библиотеки есть,но их существенно меньше и не все сделаны удобно.
Я еще застал времена когда интернета небыло и скачать готовое было негде. Поэтому приходилось напрягать мозги и писать самому руками то,что сейчас не думая дёргают из готовых библиотек. Потом правда пользователи нередко получают dll hell, но это уже становится головной болью этих пользователей,а не программистов.

Сишные библиотеки подключать можно,но это обычно требует написания "переходников" для правильного и удобного приведения внутреннего представления типов данных,ну и понятно что надежность снижается так как "сишные" ошибки в библиотеках остаются. Разве что адский контроль типов (в прямом и переносном смысле:) поможет не передать в библиотечные функции чего-нибудь такое от чего им станет плохо.
Сложнее всего ситуация с преобразованием представления строковых данных. Хотя поддержку "сишных" строк(с нулём в конце) в Аде написать можно,я именно так когда-то для себя и сделал именно потому что приходилось стыковать свой адский код с чужим сишным. А сейчас для Ады существует даже готовая поддержка юникодных строк с многобайтовыми символами если кому-то потребуется.
Готовые переходники к сишным библиотекам тоже есть,но по моему наблюдению нередко сделаны слишком примитивно,а то и вообще каким-нибудь скриптом-автогенератором. От этого пользоваться ими из Ады оказывается неудобно. Такое ощущение что некоторые из них сделаны лишь для демонстрации самой возможности,а не для реального применения.

На мой взгляд если у Ады какая проблема и есть - то только отсутствие популяризации. Молодежь часто или вообще не знает об этом языке ничего кроме названия или слышала только какие-нибудь мифы типа того что этот язык используются только военными и мирных применений иметь не может.
Хуже всего что о возможностях и достоинствах Ады не знают те кто принимает решения в области руководства программными проектами. Вспоминается известная в интернетах фраза "А что,так можно?".
Даже один заинтересованный и более-менее квалифицированный (на уровне советского ВУЗа хотябы) программист вполне способен сконфигурировать удобное рабочее окружение для написания кода на Аде,найдя и настроив готовые компоненты и дописав недостающее под свою область. Но да,такого чтобы запустить один инсталлятор, проставить галочки и всё сразу поставилось и настроилось - такого нет. Да и невозможно оно без введения существенных ограничений на применимость инструментов.
  

Ответить | Правка | К родителю #238 | Наверх | Cообщить модератору

283. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +/
Сообщение от Аноним (275), 18-Май-23, 18:28 
Ого! Спасибо за подробный комментарий! Моё почтение!
Ответить | Правка | Наверх | Cообщить модератору

324. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +/
Сообщение от Карлос Сношайтилис (ok), 29-Май-23, 09:50 
> самолёта Бе-200. Самолёт успешно летает. В отличие от Боинг 737 MAX

Показатель аварийности 737 MAX: 0.2 на миллион полётов
Показатель аварийности Бе-200: хз, но если предположить, что все самолёты за 20 лет эксплуатации летаю по 10 раз в день (что точно не так, но всё же), то показатель аварийности будет 13. А ближе к реальности: 130, то есть на три-четыре порядка хуже чем у боинга.

"успешно летает", да.

Ответить | Правка | К родителю #270 | Наверх | Cообщить модератору

247. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +/
Сообщение от 1 (??), 18-Май-23, 09:13 
> Хотя это мой любимый язык как раз с тех времен,но и я не скажу что знаю его идеально.

В АНБ работал ?

Насколько я помню, по ADA было всего несколько книг (даже одну перевели на русский язык). Компилятора, вживую, я не видАл. И потом, как ADA взяли на вооружение спецслужбы США, о ней вообще не было публикаций ... А вот поди ж ты - прошло 30лет и вспомнили старушку.

Ответить | Правка | К родителю #233 | Наверх | Cообщить модератору

261. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +/
Сообщение от Аноним (261), 18-Май-23, 11:39 
Потому что ...
  ... сейфовая дверь не защитит ни от пивной бутылки по башке, ни от людей в погонах.
Ответить | Правка | К родителю #233 | Наверх | Cообщить модератору

272. "0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."  +/
Сообщение от WatchCatemail (ok), 18-Май-23, 13:06 
>   ... сейфовая дверь не защитит ни от пивной бутылки по
> башке, ни от людей в погонах.

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру