Будни технического директора «Медузы» @samatg
«Закрытие Parse и куда с него переехать», очередной лонгрид «как программируют в NASA» и прочие ссылки с hackernews. Ну и истории, конечно.
Чатик @ctodailychat
Поделиться с друзьями:
Гугл наконец-то опубликовал нормальный разбор «что делать», а то PR-опусы как исследователей безопасности (мы всё умрём) так и Intel (ничего не происходит) надоели.
Коротко: гугл починил у себя все три уязвимости и не заметил проседания производительности в продакшене.
Детали: CVE-2017-5753 нужно фиксить отдельно в каждом бинарнике, способном выполнять недоверенный код (читай браузеры, ОС и прочий JIT) — они не пишут, как именно это нужно делать; CVE-2017-5715 чинится обновлением CPU или перекомпиляцией важных бинарников (ОС и гипервизоры) компилятором, умеющим хитрый хак (Google назвал этот хак Retpoline и опубликовал его для GCC и LLVM); CVE-2017-5754 чинится обновлением ОС. Обратите внимание, что гугл не называет эти баги именами собственными, видимо не хочет добавлять хайпа.
На сладкое: status page проектов гугла относительно этих уязвимостей. Мы в Медузе не используем виртуальные машины (только baremetal, только хардкор) и у нас почти нет untrusted code execution, так что в этой серии я участвую только как зритель.
Продолжение истории: чуваки уже смогли эксплуатировать CVE-2017-5753 в Firefox для кражи паролей из джаваскрипта. Mozilla выпустил обновление только что. В обновлении они уменьшают точность таймеров и API получения времени до 20µs (sic, 20 микросекунд), пока не починят корень проблемы. Напомню, что атака основана на замере скорости выполнения операций процессором, так что не имея точного времени произвести её будет нельзя.
2018-01-05 01:50:55
Вот эпичное видео эксплуатации схожей уязвимости.
Ролик очень плохого кавера на Hello Адель (зато слова по теме!) передаётся между двумя виртуальными серверами в Amazon AWS через кеш процессора (!) и проигрывается в реальном времени.
https://www.youtube.com/watch?v=yPZmiRi_c-o
Важно, что в этом докладе речь идёт не о взломе или краже данных через процессор - на обоих серверах запущена программа, которая общается с «коллегой» с соседнего сервера через кеш процессора. Если на вашем виртуальном сервере в AWS запускают программы злоумышленники - то факт того, что ваши секретные данные были переданы наружу не через сетевое соединение, а через кеш процессора - не самая большая проблема. Это просто очень мощный пример of things to come.
Полный доклад: https://youtu.be/6bCdFmehMSY
2018-01-04 23:19:00
Вчера ночью сняли эмбарго с информации об уязвимостях процессоров.
Как мы и ожидали, речь идёт о несанкционированном доступе к оперативной памяти. Грубо говоря, каждая программа на компьютере живет в своем изолированном мире. Используя эти уязвимости, программа-злоумышленник может подсмотреть, что там происходит у соседей.
Это страшно «облакам», суть которых как раз в том, что программы разных людей делят один физический сервер. Сейчас модно называть такой подход виртуализацией. Речь идёт о более эффективном расходовании серверов: если две программы (два клиента) могут поместиться на один физический сервер - так и делаем. Принципиальное обещание «виртуализации» в том, что ваши данные так же защищены, как если бы они были на отдельном сервере. Ага.
Самих дыр не достаточно - нужно сочетание многих условий для того, чтобы извлечь из неё какую-либо «выгоду». Думаю, многие «исследователи» в кавычках и без занимаются этим вопросом прямо сейчас. Будет ли идти речь о таргетированных атаках, когда отсифонят секретные данные конкретной жертвы и используют их для дальнейших этапов атаки или о каких-то «массовых изъятиях денег у населения» - пока говорить рано. Поживём-увидим. (Я бы назвал эти уязвимости popcorn time)
Теоретически, этим атакам подвержены и наши персональные компьютеры и даже смартфоны. В софте регулярно находят ошибки, которыми пользуются злоумышленники в своих программах. Теоретически, эта ошибка на порядок больше остальных, но одной дырой больше, одной меньше, принципиальной разницы я пока не вижу. На деле, если вас угораздило запустить программу злоумышленника на своём компьютере или телефоне, вам все равно более-менее хана.
Строго говоря, речь идёт о 3 уязвимостях: bounds check bypass CVE-2017-5753, branch target injection CVE-2017-5715 и rogue data cache load CVE-2017-5754.
Интересно, что их одновременно нашли две независимые групп исследователей. Первая - звездный Project Zero из Google. Они отправили письма производителям процессоров ещё 1 июня (!) 2017. Вторая - группа исследователей из универов. Project Zero опубликовал классный технический разбор, а университеты максимально отработали PR-сторону, нагнав страху на массовую аудиторию «дизайнерским лендингом».
Боюсь показаться занудой, но включите автоматические обновления на всех своих устройствах. Против третьей из этих уязвимостей уже выпустили заплатки все крупнейший операционные системы, а по поводу первых двух CVE мы увидим ещё много обновлений самых разных программ. Применение патчей безопасности не должно требовать вмешательства пользователя, а Карфаген должен быть разрушен.
2018-01-04 22:48:10
Во всех современных процессорах Intel есть серьезная аппаратная ошибка безопасности. Производители операционок в турбо-реактивном режиме выпускают патчи, но детали уязвимости всё ещё под эмбарго.
Microsoft выпустила программный патч для Windows в ноябре. Патч к ядру Линукс от группы исследователей из технического университета Граза был окончательно принят разработчиками Linux буквально несколько дней назад. Изменения в исходном коде Linux доступны публике, но из них изъяты комментарии, объясняющие причины происходящего.
🍿🍿🍿
Патчи серьезно замедляют выполнение задач, связанных с большим числом переключения контекстов и прерываний. У одного из экспериментаторов производительность du упала почти в два раза (du — утилита, считающая объем дискового пространства, занятого файлами).
AMD утверждает, что их процессоры не имеют этой ошибки.
Супер разбор ситуации http://pythonsweetness.tumblr.com/post/169166980422/the-mysterious-case-of-the-linux-page-table
Краткий пересказ:
Указанные патчи к ядру Linux включают _kernel page-table isolation_. До этих изменений, таблица страниц (_page table_) ядра (таблица, содержащая схему перевода адресов виртуальной памяти ядра в адреса физической памяти) хранилась вместе с таблицей страниц пользовательского процесса. Пользовательским процессам эта таблица была не доступна. Это хак, но он позволяет не сбрасывать очень дорогие кеши процессора. По всей видимости, существует аппаратная ошибка в процессоре, позволяющая пользовательскому процессу прочитать, что же в этой таблице лежит.
Возможно, это timing attack, в которой измеряется время, необходимое менеджеру памяти процессора (MMU, Memory Management Unit) для того, чтобы получить физический адрес той или иной области памяти. Интересно, что другая команда исследователей из того же университета Граза буквально на днях представила доклад, где показала, как можно узнать адрес js-объекта в памяти из джаваскрипта именно через timing attack на MMU!
Пока я писал эти буквы, исследователь уже написал программу, позволяющую узнать адрес функции ядра в памяти! https://twitter.com/brainsmoke/status/948561799875502080?s=09
Так или иначе, одного этого кажется недостаточным для срочных патчей в режиме «горящей задницы». И тут мы вспоминаем третью недавнюю статью от группы исследователей из университета Граза (!). Есть так называемая Row hammer-атака. Современные DRAM-модули оперативной памяти имеют такую высокую плотность, что при обращении к определенным ячейкам памяти с высокой частотой, можно изменить данные в совершенно других областях памяти. Это происходит из-за электромагнитных наводок (!). В статье исследователи показали новую, более крутую эксплуатацию электромагнитного эффекта и успешно обошли все существующие методы защиты.
Если совместить вместе патч, доклад и факт, что в почтовой переписке разработчиков ядра Linux участвовали разработчики из Google и Amazon (два крупнейших поставщика облаков), разумно предположить, что речь идет об атаке, позволяющей злоумышленнику вылезти из виртуальной машины.
Конечно, речь идет о том, чтобы пропустить верблюда через игольное ушко несколько раз подряд, но хакеры уже не раз показали, на что способен человеческий разум.
Запасаемся попкорном и ждём дальнейших подробностей. 2018 начинается очень интересно.
P.S. Бояться, что эта уязвимость затронет ваш персональный компьютер или телефон я бы пока не стал. Только включите автоматические обновления безопасности, а то будете потом локти кусать.
P.P.S. Ноябрьская новость, что глава Intel продал все свои акции Intel заиграла новыми красками.
2018-01-03 21:43:27
Представьте, вы получили секретный документ. Как не запалить источник?
Как и в других ситуациях связанных с безопасностью, представим себе на месте противника.
Какие есть способы пометить документ?
Начнем с простого: при печати, современные принтеры добавляют невидимые невооруженному глазу точки. Если ваш источник распечатал документ на работе и противник получил высококачественные сканы или оригиналы бумаг — источник сгорел. Решение — распознавать текст, никогда не выкладывать сканы.
Если говорить о цифровой передаче, то есть несколько механизмов. Самый кондовый — умышленно допустить разные орфографические ошибки в разных версиях файла. Вариант поизощреннее - заменять буквы на похожие. Кириллическую (русскую) букву «а» сложно отличить на глаз от латинской (английской) буквы «a», но это разные символы. Даём каждому потенциальному источнику «утечки» файл с уникальными заменами и потом смотрим, какая версия оказалась в паблике. У этого способа есть недостаток — компьютерная проверка орфографии живо выявит все такие «метки».
Сегодня я наконец-то увидел в паблике гораздо более крутой способ, основанный на «символах нулевой ширины». Вот самые известные: разделитель нулевой ширины, нужный, чтобы две буквы не «слиплись» в лигатуру; пробел нулевой ширины, порой используемый для расстановки «точек желаемого переноса»; и соединитель нулевой ширины, который, как ни странно, соединяет две буквы, которые иначе бы не слиплись (используется, например, в арабском).
Как вы уже наверное догадались, эти символы можно щедро расставить в тексте (даже автоматически, на каждое скачивание секретного файла отдавать его с уникальным «цифровым отпечатком»), и потом точно определить источник утечки. Я только что проверил популярные типографы, все они оставляют эти символы нетронутыми.
Добрый человек уже написал скрипт для очистки текстов от этих символов. Вообще, есть гарантированный способ избавиться от всех этих меток: распечатать секркетный текст, отсканировать и распознать его обратно. Ну или перенабрать интересующий кусочек руками.
Вариант, когда в тексте заменяются слова на синонимы тоже имеет право на жизнь. Существует специализированный софт, который автоматизирует эти вещи.
Для желающих позалипать в википедию - вот релевантная статья про «canary trap».
2018-01-02 20:12:35
Ностальгическая статья про историю Hotmail.
Молодежь, у которой первый в жизни «ящик» заведён на Gmail, может не понять, но были времена, когда «почта» не равнялось Gmail. (Ох, сейчас прибегут адепты mailru и яндекс.почт, я знаю, вас тоже много)
Hotmail - один из первых и самых крупных бесплатных почтовых сервисов, доступный через веб. Эта была рекордно дорогая покупка стартапа - Майкрософт заплатил 450 миллионов долларов кешем в 1997 году!
Внутри статьи много историй, за которые мы и любим Hotmail. Например, как команде Windows понадобилось около 3 лет совместной работы с Hotmail, чтобы довести Windows и его веб-сервер ISS до состояния, в котором они могли заменить Solaris на бэкенде Hotmail. (Фронтенд был на FreeBSD).
Или как для установки HTTPS на страницу логина им пришлось купить аппаратные криптографические карты (процы тогда ещё не умели аппаратный TLS).
Автор проговорил с руководителем интеграции Hotmail в Microsoft Маком деМелло, рекомендую прочитать для острого приступа ностальгии.
Моя первая почта была у кировского провайдера Ezmail. Я её завёл для переписки с 2 адресатами,
после возвращения из летней компьютерной школы, проходившей в Кирове в 2002 году. Пользовался, конечно, не вебом, а почтовиком TheBat. Эх, времена!
Кстати, давайте попробуем «початиться»? Если хотите что-то обсудить по теме канала - добро пожаловать в @ctodailychat
С Новым годом!
https://arstechnica.com/information-technology/2017/12/how-hotmail-changed-microsoft-and-email-forever/
2018-01-01 13:05:22
Если вы вдруг не смотрели видео про посадку шатла — очень рекомендую — тоже отличное новогоднее залипалово https://www.youtube.com/watch?v=Jb4prVsXkZU
2017-12-29 14:52:13
Доступ к изображению возможен только в приложении Телеграм. Ассемблер-команды Аполлона
2017-12-29 14:43:46
Доступ к изображению возможен только в приложении Телеграм. UX Аполлона
2017-12-29 14:43:15