Кстати, а что думают функциональщики про spectre и meltdown? По-моему, это самое суровое и жизненное обьяснение отличия pure functional от кода с side effects, которое я встречал до сих пор. Правда, непонятно, какая в этом практическая польза.
А где можно посмотреть на массовую машинерию для исполнения pure functional code, чтобы она не была оберткой вокруг фон-неймановской ЭВМ с регистрами, кэшами, общим ОЗУ для кода и данных, и тд?
Так это же будет гол в свои ворота! Можно написать самую pure functional лямбду, а компилятор все равно внутрь вставит ту же самую неонку, с оптимизациями и спекуляциями. Или я не уловила тонкий сарказм?
Мож кто расскажет, например, что для начала нужно отказаться от массового тииражирования фон-неймановских ЭВМ. Код отдельно, данные отдельно, и это решит 99% всех проблем с локальной безопасностью. Вобщем, даешь переход на ADSP-21992, а хаскель мы туда потом подтянем.
Сбросим фон-Неймана с корабля современности? Не, ну а чо, я не против, хватит жить законом, данным Адамом и Евою, пусть будет движуха. Я б удовольствием посмотрел. Только потянут ли?
ФП имеет смысл на определенных уровнях. Функциональных машин нет; приходится моделировать на имеющемся железе. И на определенном уровне архитектуры (типа "вот вам микросервисы") ФП тоже не вписывается (ну или пока что).
От ОС немного зависит – какой-нить DOS или Cisco IOS Classic и ломать не надо (всем все можно, изоляции ноль), а в ОС с ломаемой изоляцией – изоляцию между процессами и ядром можно усилить (патчи уже вышли).
Программа, написанная на любом языке программирования (функциональном или императивным), в итоге компилируется или интерпретируется в инструкции, которые выполняются тем же самым процессором. Поскольку уязвимость в процессоре, то и эксплуатировать её можно из любого языка.
По крайней мере теоретически. Возможно, что на практике это не одинаково легко (может таймеров нужного разрешения нет или ещё какие ограничения).
Ну в каком-то смысле да, но одно из преимуществ PF, как оно продаётся, именно в том, что такого не должно происходить. Конечно, там обычно разговор о параллелизме и на другом уровне, но принцип тот же. Одно дело что-то типа rowhammer, где против лома нет приёма - а тут дело другое, тут проблема не в протечке на другой уровень, а в неправильном учёте side effects. Вот и интересно, могут ли люди, которые говорят, что они знают, как с этим бороться, что-нибудь интересное предложить.
А почему нет? Т.е. я не спрашиваю на уровне "в каждом айфоне", но насчёт каких-то экспериментальных образцов? Раньше вон пролог-машины строили, лисп-машины... Конечно, нифига не вышло, но пытались же.
Против Rowhammer мне попадалось уже N+1 приёмов, и каждый раз находят что-то новое. Но вообще утечка абстракций тут на уровне самого процессорного кеша как явления.
Думаем, что они никакого отношения к не имеет. По крайней мере в варианте недо-языков типа хаскеля. А данные уязвимости отличная иллюстрация как раз того куда приводит борьба за перформанс сингл треда в 2018 году. Когда уже даже последнему дебилу должно быть понятно, что x86 - это дорога в никуда.
Процессорный кеш как явление вполне часть этой абстракции, если говорить об уровне микрокода, управляющего работой CPU. Это всё равно как, скажем, какая-нибудь аппликация хранила бы пароли в файле /tmp/very-secret в открытом тексте с разрешением на чтение всем. Это вполне в порядке того, что должно было быть учтено в самом дизайне.
GPU - это современный процессор. Массовая мультитредность, как надо, чере файл регистров, охуеный перформанс, прямой доступ в память без кэшей, возможность управления кэшами и т.д.
Ну так я понимаю, что для GPU даже единого стандарта нет, не говоря уж о более высокой поддержке. А с security при этом там дела не лучше, думается. Ну и то - как, интересно, обеспечивать это с массовой мультитредностью и ручным управлением кешами, если то же самое не умеют делать с немассовой?
Ну не, GPU -- это скучная дорога куда. Весёлая дорога куда -- это Mills, но, к сожалению, нет никаких оснований считать, что его в обозримом времени таки построят.
Мне всё-таки непонятно, что имеется в виду в этом посте. На таком уровне, на котором контроль сайд-эффектов в случае meltdown/spectre поможет, он никакой функциональности не требует -- достаточно в обычном компиляторе (например, Си) убивать кодогенератором speculative (фенсы ставить, branch predictor обманывать, и т.д.). Понятно так же, почему это отвратительное решение.
Да все умеют, просто тормоза. Любое секьюрити для цпу - это тормоза в сингл треде. Ибо задача: скрыть лейтенси памяти, которая (относительно лейтенси АЛУ) выросла в 200(!) раз, за последние 30 лет. Ессно в современном ЦПУ столько костылей из-за этого, что чисто физически его хрен засекьюришь.
no subject
no subject
no subject
Или я не уловила тонкий сарказм?
no subject
no subject
no subject
no subject
no subject
no subject
Они используют утечку, происходящую в процессоре на микропрограммном уровне.
no subject
Без разницы
По крайней мере теоретически. Возможно, что на практике это не одинаково легко (может таймеров нужного разрешения нет или ещё какие ограничения).
no subject
no subject
no subject
no subject
no subject
no subject
А данные уязвимости отличная иллюстрация как раз того куда приводит борьба за перформанс сингл треда в 2018 году. Когда уже даже последнему дебилу должно быть понятно, что x86 - это дорога в никуда.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Ессно в современном ЦПУ столько костылей из-за этого, что чисто физически его хрен засекьюришь.