Security for all - #7 - 16 мая 2018

Sorry, but you cannot eat them - Cookies

Сегодня

Содержимое сообщений мессенджера Signal может оставаться в центре уведомлений macOS; ошибка в шифровальщике GandCrab ломает загрузку Windows 7; удаленное выполнение кода в 7-zip и Microsoft Exchange Server; малварь, ворующая сохраненные пароли из Chrome и Firefox; новая технология беспарольного логина в Firefox.

Основная тема выпуска - cookies и с чем их едят. Или не едят…

Картинки недели

http://assets.amuniversal.com/601b0650294101362c53005056a9545d http://dilbert.com/strip/2018-05-08/

http://assets.amuniversal.com/e5bade20293f01362c52005056a9545d http://dilbert.com/strip/2018-05-07

Вспомогательные темы

Шифровальщик - вредоносное приложение, которое шифрует пользовательские файлы. Чаще всего с целью требования выкупа за их расшифровку.

RCE (в русской речи чаще произносят как ЭрЦэЕ) - Remote Code Execution - удаленное выполнение кода. Перевод говорит сам за себя.

NFC - Near Field Communication - технология беспроводной передачи данных малого радиуса действия. Является продолжением технологии RFID. Может обеспечивать двустороннюю связь. Примером использования служат бесконтактные платежные карты.

Новости

Нотификации о сообщениях в Signal не удаляются из центра уведомлений macOS

В мессенджере Signal есть возможность задать для сообщений интервал, после которого они будут удалены. В своем твиттере Alec Muffett рассказал об уязвимости, которая связана с Центром Уведомлений операционной системы macOS.

Дело в том, что в Signal неправильно реализована данная функциональность, в результате чего содержимое сообщений остается доступно в Центре Уведомлений. Одним из способов борьбы с проблемой является отключение уведомлений в настройках приложения.

Данный пример показывает, насколько важно следить не только за протоколами и алгоритмами, но и за реализацией.

https://objective-see.com/blog/blog_0x2E.html

Шифровальщик GandCrab ломает загрузку Windows 7

Ошибаются не только разработчики обычного софта. Создатели вредоносного ПО также допускают ошибки. В очередной версии шифровальщика GandCrab программисты добавили новую функциональность - после шифрования файлов вредонос меняет картинку рабочего стола и перезагружает компьютер. Возможно было сделано что-то еще, но по пока непонятной причине Windows 7 зависает после перезагрузки. На Windows 8 и Windows 10 такой проблемы нет.

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

https://threatpost.ru/new-gandcrab-hangs-windows-7/25941/

Remote Code Execution в 7-zip

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

Проблема возникла из-за использования неинициализированных переменных. Баг получил идентификатор CVE-2018-10115. В описании уязвимости присутствует ссылка на статью с подробным разбором проблемы и методов ее эксплуатации.

https://landave.io/2018/05/7-zip-from-uninitialized-memory-to-remote-code-execution/

Повреждение памяти в MS Exchange Server

В почтовом сервере Microsoft Exchange также была найдена проблема, которая позволяет злоумышленнику организовать удаленное выполнение кода. Ошибка получила идентификатор CVE-2018-8154 и затрагивает сервера версий с 2010-й по 2016-ю. Обновление уже доступно для установки.

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-8154

Малварь Vega Stealer ориентирована на Chrome и Firefox

Недавно было обнаружено вредоносное ПО, которое назвали Vega Stealer. Оно нацелено на кражу сохраненных в браузерах паролей и данных о кредитных картах. Также вредонос ищет pdf, docx и другие текстовые файлы на инфицированной машине.

Написана малварь на .net и использует большую часть кода из предыдущей версии - August Stealer. В данной версии используется новый протокол и добавлена так сказать “поддержка” Firefox (предыдущая версия была нацелена только на Chrome).

https://threatpost.com/vega-stealer-malware-takes-aim-at-chrome-firefox/131924/

Firefox 60 поддерживает беспарольный вход

В новой версии Firefox был реализован механизм беспарольного входа. Вместо логина и пароля этот механизм использует асимметричное шифрование и цифровые подписи в качестве механизма аутентификации.

Примерная процедура выглядит так:

Криптография с публичным ключем используется также в механизме squirrel (SQRL), разработанном Стивом Гибсоном. Для более детального анализа этих двух технологий мне нужно время, поэтому более подробно о них я расскажу в одном из следующих выпусков.

https://www.anti-malware.ru/news/2018-05-11-1447/26217?tg_rhash=24106b4601c277 https://habr.com/company/1cloud/blog/353966/ https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API https://www.grc.com/sqrl/sqrl.htm

Cookies

Наверняка вы видели на сайтах небольшие информационные панели уведомляющие о том, что сайт использует cookies. Например: “Мы используем файлы cookie для анализа событий на нашем веб-сайте. Продолжая просмотр страниц нашего сайта, вы принимаете условия его использования”. Что это значит для обычного пользователя?

Cookies

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

Это всех устраивало до тех пор, пока не возникла необходимость различать отдельных пользователей. Например, это необходимо в онлайн банке, чтобы разные пользователи получали доступ только к своему аккаунту и счетам.

Для того, чтобы различать разных пользователей ввели концепцию cookies. Это специальный заголовок. Когда сервер хочет идентифицировать конкретного пользователя, он выбирает специальное значение и говорит клиенту: “запомни его под именем ИКС, и в следующий раз присылай его вместе с запросом”. Сервер выдает разные значения разным пользователям и тем самым может их различать.

В качестве механизма для запоминания служит заголовок Set-Cookie. Т.е. в ответе на запрос клиента сервер может указать этот заголовок, двоеточие и далее через знак равенства название куки и ее значение. Также он может определить, для каких адресов валидно значение и какой период времени оно будет оставаться действительным.

В куках может храниться разнообразная информация: о залогиненном аккаунте, предпочитаемых языках, имени пользователя и так далее.

Отслеживание

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

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

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

Аналогия

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

Защита cookies

Скрипты, которые выполняются в контексте страницы имеют доступ не только к тексту, изображениям и другим элементам, но и к значениям, хранящимся в cookie. Некоторые cookie не обязательно делать доступными скриптам, а в некоторых случаях намного безопаснее закрыть доступ. Этой цели служит специальное свойство, которое сервер может указать в заголовке Set-Cookie - HttpOnly. Увидев такое свойство браузер будет ограничивать доступ к значению.

Второй важной опцией является опция Secure. Она говорит браузеру, что значение данной cookie нужно передавать на сервер только по защищенному каналу - HTTPS. Это сделано для того, чтобы значение нельзя было подсмотреть в передаваемом трафике. Если какие-то ресурсы будут запрашиваться с сервера без шифрования, то браузер просто не будет добавлять значение защищенный cookie к запросу.

Надеюсь я пролил немного света на внутреннее устройство браузеров и сайтов и теперь вы будете понимать, с чем соглашаетесь на сайтах.

Спасибо за внимание.

Не забывайте ставить обновления. До следующей недели.