The OpenNET Project / Index page

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



"Уязвимость в snapd, позволяющая получить root-привилегии в с..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Уязвимость в snapd, позволяющая получить root-привилегии в с..." +/
Сообщение от Ordu (ok), 14-Фев-19, 15:44 
>> Хочешь я тебе ссылок накидаю на то, какие ошибки позволяет
>> отлавливать rust?
> На каком языке написан ваш rust?

Какая разница? Ты ошибку-то посмотрел по ссылке? Это реальная ошибка, которая реально была поймана. Вне зависимости от того, на чём написан rust. Его можно написать на ассемблере, или на lisp'е, или даже в машинных кодах написать, он всё равно отловит ту ошибку.

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

Нет не даст. И не заметит. Это особенности функционирования человеческой психики, человеческое мышление постоянно "срезает углы", оно всё построено на "срезании углов", на том, чтобы не думать одну и ту же мысль дважды. И никакие тренинги не могут научить человека не срезать углов. Можно научить его не срезать некоторые углы, но он всё равно продолжит срезать другие. А чтобы отловить ошибку вызванную изменением кода, надо обдумать всё-всё-всё заново. Целиком и полностью заново.

Вам не приходилось сидеть и двадцать минут тупо смотреть на ошибку в коде и не видеть её? Утомительная отладка привела к выводу, что вот они 15 строк кода, в которых запрятана ошибка. Но разглядывание этих строк кода не приводит к идентификации ошибки. Через двадцать минут надоедает, начинаешь смотреть ассемблерные дампы, и вдруг видишь косяк. Я нашёл баг в компиляторе! Я нашёл баг в компиляторе? хммм... дай ка я напишу минимальный код, демонстрирующий баг... но баг не вылезает на минимальном коде... ммм... и ассемблерные дампы его выглядят правильно... а может... да хз... ёёёппп... мать ж твою за ногу, просто слов таких матерных нет, чтобы описать свою тупость, которая провела два часа времени, пытаясь заметить, что в третьей строчке сверху не та переменная используется... Она давно там используется, уже пару недель, но раньше это не было заметно, в силу стечения всяких обстоятельств. А потом я привык к тому, что эта переменная там, и перестал её замечать. И потребовались невероятные сознательные усилия, чтобы заметить её вновь.
Не случалось такого? Если нет, то значит у вас ещё всё впереди.

Вам не приходилось читать о типографских ошибках, и как люди начиная с древних времён боролись с опечатками? Как они вкидывали невероятные ресурсы в то, чтобы избавить книгу от опечаток, и тем не менее эти опечатки допускали? Они придумывали кучу всяких методов как читать книгу так, чтобы не пропускать опечаток. Но всё бестолку. Если интересно, я могу поискать, и может даже найду -- я как-то читал текст, который описывал насколько всё безнадёжно. Было безнадёжно до появления компьютеров. С компьютерами же надежда забрезжила. Где-то в светлом будущем, наполненном AI.

И психика не просто кеширует мысли, она заполняет пустоты. И не только в мыслях, в ощущениях даже. Описывали человека с "дырой" в сетчатке: она у него повреждена была, был кусок сетчатки нечувствительный к свету. Но эта дыра воспринималась человеком не как чёрное пятно, она _заполнялась_ окружением. Он смотрел на небо, и небо было без дыр. Он переводил взгляд на белую стену, и... дыра появлялась, как кусочек неба на стене. Через десяток секунд кусочек неба пропадал. Но если он переводил взгляд обратно на небо, то на небе было белое пятнышко стены. Невозможно сознательными усилиями заметить такое слепое пятно, которое психика заботливо заполнила чем-то, чтобы оно не маячило в поле зрения и не отвлекало от более важных вещей. Его можно заметить, если психика ошиблась, из-за того, что работала на другом уровне, и заполнила неправдоподобно. Доверять такой психике писать программы можно только от безысходности, только потому, что другого инструмента для написания программ у нас нет.

Даже процесс переписывания программы -- это _пере_писывание, человек будет пользоваться кешированными мыслями при этом, и он будет повторять те же ошибки, но всё же ему придётся проводить много времени с кодом, ему придётся продумывать мысли на определённую глубину, чтобы создать код, и... может быть из этого что-то и выйдет. Я не уверен, но это единственный способ заставить человека думать заново, который мне приходит в голову. А! Ну да! Можно постоянно менять программистов! Новый программист, скорее всего не думал эту программу, и он будет вынужден думать её заново.

>> И развитие языков программирования идёт в сторону автоматизации этого процесса. Даже если
>> мы посмотрим на C, мы увидим, что он развивается в сторону
>> автоматизации этого процесса.
> вот тут я не понял какой именно процесс и его автоматизация?

Уууу... Вот эта ваша фраза наводит на мысль, что одному из нас двоих не помешает познакомиться с ассемблером, и этот один -- не я. Попробуйте писать на ассемблере. Под linux на асме писать -- одно удовольствие. Удобные сисколлы, индивидуальное адресное пространство для процесса, которое гарантирует, что не удастся нечаянно завалить ядро или какой-нибудь посторонний процесс. Или вогнать нечаянно какую-нибудь железку в какое-нибудь странное состояние, из которого её потом не удастся вывести. Куча библиотек и никаких проблем с тем, чтобы подгружать их динамически. Единственное что: не знаю хорошего отладчика для asm'а, но если обвешать gdb скриптами, то в принципе можно жить. Во всяком случае, если не забывать про отладочную информацию -- как отлаживать без отладочной информации я до сих пор не понимаю, в этом смысле линь cocёт у видны причмокивая. Но если писать код, то отладочная информация -- не проблема, и в целом выходит очень приятно. Попробуйте. И продолжайте пробовать до тех пор, пока вы не почувствуете растущего внутри раздражения от того, что вам приходится раз за разом выполнять одни и те же тупые действия, которые gcc может делать за вас автоматически. Я именно таким образом когда-то переключался с асма на C, и готов порекомендовать это любому. Очень просветляет. И вопрос о том, что именно автоматизирует компилятор, после такого опыта не возникает вообще.

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

Оглавление
Уязвимость в snapd, позволяющая получить root-привилегии в с..., opennews, 13-Фев-19, 11:22  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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