#безопасность

страница 8 из 12
пост №496

Воскресная подборка, если хочется почитать:
- восстановление того, что видит человек, по fMRI! (pdf). Довольно огненно, это как если бы шуму вентилятора процессора можно было понять, что на этом процессоре считается (oh wait);
- ещё один side channel attack (в шумихе с процессорами был именно этот тип атаки) — можно понять, что за тобой следит дрон, даже не взламывая шифрование канала связи дрона (по объему передаваемых данных);
- Apple обновил документ по безопасности iOS — канонический пример того, как хорошо рассказать о технологиях;
- очень красивые фотки с завода карандашей (production porn);
- серия из трех видео про мозги, в которых девушка-математик походя объясняет, что такое симплекс;
- безопасники убера заплатил хакеру 100k USD, чтобы тот не говорил об уязвимости, через которую можно было вытащить все личные данные (и никому об этом не сказали). CSO уволили, у всех бомбит.

пост №488

Написал утром пост про очередную историю [1] [2], как разработчики удалили свои библиотеки в NPM и другие чуваки смогли загрузить другой код вместо легитимных библиотек. Вы посмотрите, какие эмоции испытывали разработчики.

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

Позавчера вышел проникновенный пост про это в стиле хоррор. Якобы, есть библиотека, которая крадет пароли пользователей с сотни популярных сайтов.

Но это всё происходит раз в месяц и уже набило оскомину.

пост №484

Вчера ночью сняли эмбарго с информации об уязвимостях процессоров.

Как мы и ожидали, речь идёт о несанкционированном доступе к оперативной памяти. Грубо говоря, каждая программа на компьютере живет в своем изолированном мире. Используя эти уязвимости, программа-злоумышленник может подсмотреть, что там происходит у соседей.

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

Самих дыр не достаточно - нужно сочетание многих условий для того, чтобы извлечь из неё какую-либо «выгоду». Думаю, многие «исследователи» в кавычках и без занимаются этим вопросом прямо сейчас. Будет ли идти речь о таргетированных атаках, когда отсифонят секретные данные конкретной жертвы и используют их для дальнейших этапов атаки или о каких-то «массовых изъятиях денег у населения» - пока говорить рано. Поживём-увидим. (Я бы назвал эти уязвимости 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 мы увидим ещё много обновлений самых разных программ. Применение патчей безопасности не должно требовать вмешательства пользователя, а Карфаген должен быть разрушен.

пост №483

Во всех современных процессорах 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 заиграла новыми красками.

пост №482

Представьте, вы получили секретный документ. Как не запалить источник?

Как и в других ситуациях связанных с безопасностью, представим себе на месте противника.

Какие есть способы пометить документ?

Начнем с простого: при печати, современные принтеры добавляют невидимые невооруженному глазу точки. Если ваш источник распечатал документ на работе и противник получил высококачественные сканы или оригиналы бумаг — источник сгорел. Решение — распознавать текст, никогда не выкладывать сканы.

Если говорить о цифровой передаче, то есть несколько механизмов. Самый кондовый — умышленно допустить разные орфографические ошибки в разных версиях файла. Вариант поизощреннее - заменять буквы на похожие. Кириллическую (русскую) букву «а» сложно отличить на глаз от латинской (английской) буквы «a», но это разные символы. Даём каждому потенциальному источнику «утечки» файл с уникальными заменами и потом смотрим, какая версия оказалась в паблике. У этого способа есть недостаток — компьютерная проверка орфографии живо выявит все такие «метки».

Сегодня я наконец-то увидел в паблике гораздо более крутой способ, основанный на «символах нулевой ширины». Вот самые известные: разделитель нулевой ширины, нужный, чтобы две буквы не «слиплись» в лигатуру; пробел нулевой ширины, порой используемый для расстановки «точек желаемого переноса»; и соединитель нулевой ширины, который, как ни странно, соединяет две буквы, которые иначе бы не слиплись (используется, например, в арабском).

Как вы уже наверное догадались, эти символы можно щедро расставить в тексте (даже автоматически, на каждое скачивание секретного файла отдавать его с уникальным «цифровым отпечатком»), и потом точно определить источник утечки. Я только что проверил популярные типографы, все они оставляют эти символы нетронутыми.

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

Вариант, когда в тексте заменяются слова на синонимы тоже имеет право на жизнь. Существует специализированный софт, который автоматизирует эти вещи.

Для желающих позалипать в википедию - вот релевантная статья про «canary trap».

пост №471

OpenSSL - один из самых важных IT-проектов, на нем держится практически все шифрование. После недавних адских ошибок безопасности они улучшили ситуацию с разработкой, но вот с документацией и UX ситуация все ещё аховая.

Хорошая порка: https://jameshfisher.com/2017/12/02/the-sorry-state-of-openssl-usability.html

пост №447

Google Prompt — очень хорошая штука для 2-факторной авторизации в гугл, гораздо человечнее всех этих totp-based решений, рекомендую https://gsuiteupdates.googleblog.com/2017/10/making-google-prompt-primary-choice-for-2sv.html

А если у вас не включена 2-факторная авторизация — самое время её включить.

пост №408

В MacOS High Sierra можно активировать root-пользователя без пароля. Достаточно в любом диалоге «элевации прав» (появляющемся при установке софта или открытии некоторых системных настроек) ввести логин root, оставить поле ввода пароля пустым и нажать несколько раз Unlock.

Это активирует root-пользователь без пароля и можно шуровать в компьютере без ограничений.

Защититься можно установив рутовый пароль (sudo passwd root) или вот официальная GUI инструкция https://support.apple.com/ru-ru/HT204012.

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

https://twitter.com/lemiorhan/status/935578694541770752

пост №395

Кстати, интересная деталь — как мы храним токены для соцсетей. Их, как вы понимаете, дофига. Хочется:
1. иметь возможность легко посмотреть и отредактировать токены в рантайме;
2. иметь защиту от того, чтобы запостить со стейджинга в продакшен.

Мы решили хранить их в основной базе данных проекта (pg), но с перфиксом env (production | staging). Таким образом, эти токены легко редактировать real-time. При этом нет опасности, что при импорте продакшен данных на стейджинг мы начнем фигачить тестовые статусы в основной паблик. И ноль дополнительных зависимостей. Достаточно элегантно, мне кажется.

Буду очень рад, если кто-то подскажет простую централизованную систему хранения секретов. Сейчас мне кажется, что, ничего проще Vault от HashiCorp нет и в любой мало-мальски большой компании без этой дополнительной зависимости (и сложности) не обойтись :(