Security for all - #3 - 17 апреля 2018

Сим-сим, откройся... - Пароли

Сегодня

Сегодня новости в основном про уязвимости и патчи. Проблемы нашлись в менеджере паролей CyberArk Enterprise Password Vault, а Microsoft выпустила плановое обновление безопасности. Мы узнаем, все ли производители смартфонов на Android добавляют патчи безопасности в прошивки своих устройств. Последняя новость будет про то, как T-Mobile Австрия хранит пароли в базе.

На этой неделе я решил поговорить о паролях. Эта тема достаточно щекотливая. О паролях можно говорить долго, заходить с разных сторон - смотреть на них с точки зрения пользователей или разработчиков. Кто-то может посчитать озвученные сегодня доводы и предложения чересчур упрощенными и недостаточными или же наоборот, слишком сложными. Несмотря на это, я решил, что уж лучше расскажу не все и с небольшими недостатками, чем вообще ничего не расскажу :)

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

300 кг видеокарт https://twitter.com/jmgosney/status/837050427300511749

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

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

Новости

Уязвимость в менеджере паролей CyberArk Enterprise Password Vault

Уязвимость на стороне компонента Web Access, которые отвечает за удаленный доступ. Сервер приложения небезопасным образом обрабатывает токены от клиентов, из-за чего у злоумышленников есть возможность удаленного выполнения кода. Исправление уже выпущено.

https://thehackernews.com/2018/04/enterprise-password-vault.html

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

Два эксперта из фирмы Security Research Labs проанализировали прошивки около 1200 смартфонов и пришли к данному выводу. Google раз в несколько месяцев выпускает обновления безопасности для Android. Однако не все производители применяют данные изменения к прошивкам для своих телефонов, тем самым оставляя устройства пользователей уязвимыми к некоторым атакам. Для проверки эти исследователи выпустили приложение SnoopSnitch (https://play.google.com/store/apps/details?id=de.srlabs.snoopsnitch&hl=en). С его помощью можно проверить, все ли патчи присутствуют на устройстве. К сожалению для некоторой функциональности программы нужны права root. Также могут быть проблемы при проверке кастомных прошивок.

Microsoft выпустила плановое обновление безопасности.

В рамках Patch Tuesday компания закрыла несколько критических уязвимостей в операционной системе и других продуктах. Часть из этих уязвимостей позволяет скомпрометировать компьютер при простом посещении сайта. 5 из закрытых уязвимостей была в компоненте Windows Graphics Component в логике обработки системных шрифтов. При открытии специально сформированного сайта с уязвимого компьютера, контроль за машиной может попасть в руки злоумышленника. Вне зависимости от того, какая операционная система на вашем компьютере, проверьте, все ли обновления безопасности установлены.

T-Mobile Австрия хранит пароли в базе в незашифрованном виде

Хранить пароли в открытом виде уже давно считается небезопасных. В случае компрометации базы данных, пароли попадают к злоумышленникам как есть и им не приходится тратить время и ресурсы на их восстановление. Новость была бы не столь примечательной, если бы представитель T-Mobile не стала доказывать в твиттере, что так и должно быть. К счастью T-Mobile поступила правильно и уже заявила, что будет исправлять ситуацию.

История началась еще в середине позапрошлой недели и именно она подтолкнула меня к теме паролей.

Пароли

История первая - кофейная

Приходит наш герой в кафе, заказывает себе кофе, берет его и идет за столик. Между делом решает проверить новые сообщения на форуме. Он достает ноутбук, подключается к бесплатному Wi-Fi, открывает свой любимый браузер и заходит на форум. Форум был настроен давно и никто не заморочился с конфигурацией защищенного доступа по HTTPS, о чем браузер пишет в строке адреса - “не защищено”. Но кто обращает внимание на такую мелочь? Тем более он уже сто раз здесь логинился, и ничего страшного не произошло.

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

Что же могло произойти? Как кто-то узнал пароль? Некоторые наверняка догадались, что его пароль можно было просто подсмотреть. При чем это можно было сделать как из-за его плеча, так и в сетевом трафике. Дело в том, что информация, которая передается в общих Wi-Fi сетях видна всем, кто подключен к этой сети или знает от нее пароль. Поэтому, если соединение с сайтом не защищено, все данные передаются в открытом виде и при желании их можно видеть. При этом не нужно будет какого-то редкого или дорогого оборудования.

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

А вы помните, какие из посещаемых вами сайтов не имеют защищенного подключения?

История вторая

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

Как так то? Давайте разбираться, что не так в этот раз. Оказывается, что один из посещаемых сайтов был взломан и злоумышленники получили доступ к базе данных, содержащей логины и хеши паролей. Хеш - некоторое значение, которое получается из пароля путем применением к нему односторонней функции. Такая функция гарантирует, что нет простого способа зная хеш, узнать исходный пароль. К несчастью для нашего героя можно просто перебирать все значения паролей и применять такую же хеш функцию, которую использует сайт. И если для какого-то проверочного пароля посчитанный хеш совпал с хешом из базы, то такой пароль совпадает с искомым.

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

Если использовать один пароль на нескольких сайтах, то в случае компрометации одного сайта, злоумышленники могут использовать этот же пароль на других сайтах.

Как защищаться?

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

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

При выборе менеджера паролей нужно обращать внимание на несколько аспектов.

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

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

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

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

Как проверить?

Как же проверить, был ли скомпрометирован ваш аккаунт или нет? Трой Хант (Troy Hunt) организовал и поддерживает сервис https://haveibeenpwned.com/ На его сайте вы можете проверить, был ли ваш аккаунт скомпрометирован. Вы НЕ сможете посмотреть, какой пароль был у вашего аккаунта на момент компрометации, но вы сможете узнать, какой сервис был скомпрометирован. Также вы можете подписаться на уведомления, в случае если ваш адрес электронной почты появится на этом сервисе.

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

Идею для второй версии Трою подсказал один из инженеров компании CloudFlare. Вместо того, чтобы передавать пароль или хеш от него, теперь браузер считает хэш по алгоритму sha1, берет первые пять символов и отправляет на сервер. В ответ сервер присылает список хешей, которые начинаются с отправленных 5 символов, и количество раз, которые эти хеши встречается в базе. В среднем в списке 470 элементов. Если исходный хеш найден в ответе сервера, значит пароль в базе есть. При таком подходе у сервера нет точных данных, какой пароль вы хотели проверить.

Рекомендации

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

Не вводите пароли на сайтах без защищенного соединения.

Не используйте один пароль на нескольких сайтах.

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

Для всего остального используйте менеджер паролей.

Не вводите используемый на данный момент пароль для проверки на утечку или сложность на сторонних сайтах.

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

Спасибо за внимание. Используйте хорошие пароли и защищённые соединения. Всем удачи. До следующей недели.