Evil Martians
3.86K subscribers
467 photos
3 videos
1.25K links
Мы — Злые Марсиане
evilmartians.com
Стартапы, дизайн и разработка продуктов
#devtools #opensource #rubyonrails #golang #javascript #react
Download Telegram
И новогодний подарок от Basecamp, ex-37 signals: JavaScript-фреймворк Stimulus

https://github.com/stimulusjs/stimulus

По задумке это анти-фреймворк, который работает с Turbolinks и не тянет на себя интерфейс целиком. Все, как любят в Basecamp.
Добро пожаловать в ад!

*Что*

https://meltdownattack.com/

Meltdown / Spectre, худшие уязвимости ИТ за последние годы. Heartbleed и Krack по сравнению с ними — детский сад.

Из-за Meltdown обычный процесс может шариться во всей оперативной памяти — например, чтобы вытащить пароли или любые другие интересные данные. Подвержены все десктопные процессоры за последние десять лет, включая, судя по всему, и AMD.

Фиксить придется в операционных системах, в браузерах, словом — везде. Эксплойты есть даже на JavaScript (!).

Spectre же можно эксплуатировать вообще примерно везде, простого фикса нет и не предвидится.

Переводить детали уязвимостей не буду: кому интересно, прочитает и разберется по-английски, а кому нет — так и не надо.

*Подробнее и история*

Сайт про уязвимости, с моднейшими логотипами и названиями как из фильмов про хакеров, все как полагается:
https://meltdownattack.com/

Подробнейшее описание от обнаруживших проблемы, Google Project Zero (ссылайтесь в будущем на него, а не на рандомные статьи «о господи, все пропало»)
https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html

И JavaScript тоже:
https://twitter.com/mraleph/status/948683329359970304
https://twitter.com/migueldeicaza/status/948715833605459969

AMD поспешили заявить, что проблема в Intel (на этом фоне акции Intel упали и началась истерика). Оказывается, черта с два:
https://twitter.com/internetofshit/status/948684798570188806

Подробное и простое описание уязвимости от @FioraAeterna, инженера компиляторов и «твиттер-знаменитости»:
https://twitter.com/FioraAeterna/status/948684092333158400

Что делают команды ОС, чтобы хоть что-то заштопать:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5aa90a84589282b87666f92b6c3c917c8080a9bf
https://twitter.com/aionescu/status/948818841747955713

Более-менее объяснение ситуации по-русски:
http://www.opennet.ru/opennews/art.shtml?num=47849

*И что теперь*

Активно можно сделать мало что — просто накатывать обновления по мере выхода.

На уязвимость какую-то время было эмбарго, в результате которого в самых последних версиях macOS и Windows уязвимость уже немного заштопана. Amazon AWS и Azure тоже обновились.

К сожалению, от фикса все начинает работать медленнее. Я несколько не доверяю оценке в «фикс делает все на 30% медленнее», которую растиражиловали СМИ (хайп, истерика, о чем бы еще написать), кто-то даже придумал 50%, но вот есть тред от пользователей AWS, где видно, насколько все медленее:
https://twitter.com/internetofshit/status/948682685601509377
https://twitter.com/timgostony/status/948682862844248065

И, конечно, браузеры тоже подвержены проблеме: существует эксплоит аж из JavaScript.

*Что делать*

Обязательно включить везде автообновления, в первую очередь на ОС и браузерах.

Придется обновиться на самые последние версии ОС. На старых версиях macOS отсидеться не получится, теперь действительно нужно обновляться на High Sierra.

Браузеры нужно обновить как только так сразу, однозначно есть уязвимость и в Google Chrome (хваленая изоляция не помогла), и в Firefox.

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

Все очень плохо, и масштаб проблемы (так же как и оценки того, мог ли ее кто-то эксплуатировать раньше) еще предстоит выяснить.
В LLVM (инфраструктура компиляторов, которой пользуется примерно все на macOS и iOS) появился патч для устранения части уязвимости Spectre. В треде на Hacker News — ссылка на патч и много интересных комментариев про то, что нас ждет в связи с уязвимостью

https://news.ycombinator.com/item?id=16070050
Программист из Великобритании упоролся и сделал возможность стримить рабочий стол Linux (X) через SSH в текстовом виде

https://github.com/tombh/texttop

Оправдывается тем, что так проще в путешествиях с плохой связью ходить по Интернету

https://camo.githubusercontent.com/632c0f3d4d2aeb65162ab501bcec53fe6363db15/68747470733a2f2f692e696d6775722e636f6d2f6a583376684f342e676966
Есть еще замеры производительности «фикса» Meltdown из реального мира.

Сетевые сервисы Epic Games: https://www.epicgames.com/fortnite/forums/news/announcements/132642-epic-services-stability-update

antirez, автор Redis: https://gist.github.com/antirez/9e716670f76133ec81cb24036f86ee95
Правительство Великобритании выпустило исходный код gov.uk, который многими считается образцовым государственным порталом.

Ссылка: http://amp.gs/GfgK

Очень много Ruby, очень много JS и Python.
Смотрите доклад Алексея Иванова с #FrontFest: React и данные: Эффективные способы хранения и изменения стейта

https://www.youtube.com/watch?v=6m950Hqr_eI
Stack Overflow подвели статистику жизненного цикла JavaScript-фреймворков и их выживаемости

https://stackoverflow.blog/2018/01/11/brutal-lifecycle-javascript-frameworks

Теперь спорить о том, сколько раз в год нужно все переписать, можно с фактами.
Курсовая работа по ANSI графике и связанной субкультуре.

https://spectrum.library.concordia.ca/7341/1/Hargadon_MA_S2011.pdf

Для тех, кто помоложе: это цветная псевдографика, которая вовсю использовалась при оформлении BBSок, в хакерзинах и многих других интересных местах — когда вместо интернета был модем на 56K и дозвон до BBSок и нод.
Продолжаем про языки программирования: анонсирован вариант бейсика для Nintendo Switch (писать можно прямо на свитче):

https://www.fuze.co.uk/nintendo-switch.html
На Meltdown проблемы не заканчиваются, анонсирована еще парочка с красивым названием (пока без деталей), будем следить за сайтом

https://skyfallattack.com/
Обнаружен rbspy, изумительный семплирующий профайлер для Ruby.

https://github.com/rbspy/rbspy

Главная фишка — способность подключаться к уже работающему процессу без необходимости что-то в нем запускать (как с rbtrace). Написан на rust.

Нам очень нравится, уже помог поймать кое-что.

Подробно тут: https://jvns.ca/blog/2016/06/12/a-weird-system-call-process-vm-readv/
Крутая идея, как улучшить читаемость Web Workers
http://amp.gs/GJ05
Отличный обзор нюансов, которые могут возникнуть при миграции с ActionCable на AnyCable http://amp.gs/G0OP

P.S. Для тех, кто задался вопросом «А что еще за AnyCable такой?», напоминательная ссылка: http://amp.gs/G0Oy