Security for all - #25 - 21 сентября 2018
Трансляция сетевых адресов - NAT
Сегодня
Вторник патчей Microsoft; уязвимость в Tor браузере; исследователи научились угонять автомобили Tesla; ботнет Hakai набирает обороты.
В конце я расскажу про технологию трансляции адресов (NAT), которая используется во многих роутерах.
Канал на YouTube
Сначала небольшой анонс. Чтобы Вам, слушателям было удобно оставлять комментарии к конкретному выпуску, задавать вопросы и обсуждать, я сделал канал на YouTube, который называется “Безопасность для всех”. Я уже выложил там все предыдущие выпуски.
Вспомогательные темы
Клетка Фарадея - устройство, изобретенное физиком Майклом Фарадеем для защиты аппаратуры от электромагнитных полей. В оригинальном исполнении представляет из себя клетку из хорошо проводящего ток материала. В повседневной жизни под клеткой Фарадея можно понимать любую оболочку, которая защищает от электромагнитного излучения. В самом простом случае, для защиты от излучений можно использовать алюминиевую фольгу, просто обернув защищаемый предмет.
Раз уж я завел речь про фольгу, упомяну и одно исследование. Как выяснили британские ученые, шапочка из фольги вовсе не защищает от внешних излучений, а наоборот их усиливает!
Новости
Вторник патчей Microsoft
В нынешнем вторнике патчей компания Microsoft исправила 61 уязвимость, 17 из которых отмечены как критические.
Уязвимость с идентификатором CVE-2018-8475 затрагивает все версии операционных систем Windows и позволяет вызвать выполнение кода. Для этого атакующий должен заставить пользователя скачать и просмотреть специально сформированное изображение.
Вторая уязвимость была обнародована через Twitter. Про нее я рассказывал в прошлом выпуске подкаста. Уязвимость позволяет локальному пользователю повысить свои привилегии. По словам Microsoft уязвимость активно эксплуатируется, поэтому установить обновление рекомендуется как можно скорее.
Третья публично раскрытая уязвимость затрагивает браузеры Edge и Internet Explorer 10 и 11 версий. Она связана с движком обработки скриптов и позволяет злоумышленнику выполнить в системе код с правами текущего пользователя.
Также были исправлены две уязвимости в системе виртуализации Hyper-V. Из-за ошибок, локальный пользователь гостевой системы мог выполнить произвольный код в системе хоста.
https://thehackernews.com/2018/09/microsoft-software-updates.html
Уязвимость в Tor браузере
Компания Zerodium в своем твиттере сообщила об уязвимости в Tor браузере 7-й версии. Специалистам компании удалось полностью обойти функцию отключающую JavaScript. Ошибка была в расширении NoScript “classic”, которое поставляется вместе с браузером. Менее чем через час после получения информации об ошибке, автор расширения исправил проблему и выпустил новую версию 5.1.8.7.
Хочется отметить, что в Tor браузере версии 8 этой проблемы нет. Так же как и в новой версии расширения NoScript 10 Quantum.
https://latesthackingnews.com/2018/09/11/tor-browser-zero-day-vulnerability-discovered/
Исследователи научились угонять Tesla
Команда исследователей из Бельгийского университета KU Leuven разработала технику клонирования ключей от автомобилей Tesla. В автомобилях этой марки используется система бесключевого доступа. Такие системы позволяют открыть и завести машину если владелец с ключем, а точнее беспроводным брелоком, находится рядом.
Схема работы достаточно проста. Машина периодически посылает в эфир сообщение, содержащее ее идентификатор. Когда брелок находится рядом, он принимает это сообщение, сверяет идентификатор автомобиля с тем, что зашит у него, и, если это нужный автомобиль, посылает ответ, сообщающий о готовности пройти проверку. Для проверки используется алгоритм шифрования DST40. Автомобиль посылает случайное проверочное сообщение длиной 40 бит, брелок, используя зашитый в него ключ шифрования, производит над ним вычисления и отправляет ответ длиною 24 бита. После получения ответа, автомобиль должен проверить его правильность, прежде чем разблокировать двери. Такой же процесс происходит при попытке завести автомобиль.
У данной конкретной реализации есть недостатки. Первый - отсутствие аутентификации. Иными словами, ни брелок, ни автомобиль не проверяют источник данных. Любой, кто знает идентификатор автомобиля, может послать брелоку запрос и получить от него ответ. А свой идентификатор автомобиль все время транслирует в открытом виде, поэтому узнать его не составляет труда.
Другая проблема связана с криптографией. Используемые 40 битные ключи в настоящее время являются достаточно слабой защитой. Длина ответа брелока - 24 бита, поэтому для точного определения 40-битного ключа нужно получить два ответа.
Слабая криптография и отсутствие аутентификации позволило реализовать атаку. Исследователи выбрали один запрос и посчитали все возможные ответы. Это сделано, чтобы по первому ответу брелока ограничить список возможных ключей. Одно и то же значение ответа может выдать один из 65535 ключей. Следом за первым запросом посылается второй и начинаются вычисления, которые устанавливают, какой именно из полученных на предыдущем этапе ключей используется. На Raspberry Pi вычисления занимают менее 2 секунд. Теперь, зная ключ, можно формировать ответы на любые запросы автомобиля.
Исследователи подтвердили атаку только на автомобиле Tesla Model S, но возможно, что такую же схему используют некоторые другие производители.
Для защиты есть несколько решений. Первое - хранить ключи в клетке Фарадея, чтобы блокировать электромагнитную коммуникацию. В этом случае злоумышленник не сможет связаться с брелоком и вычислить ключ.
Tesla недавно внесла изменения в программное обеспечение автомобиля, и теперь у пользователей есть возможность не использовать бесключевой доступ и в добавок можно задать пин код, который нужен, чтобы завести автомобиль.
Еще один способ - модифицировать брелок и добавить кнопку, которая будет активировать беспроводную связь. Это сделает атаку более сложно реализуемой на практике, хотя и не полностью от нее защитит.
https://www.wired.com/story/hackers-steal-tesla-model-s-seconds-key-fob/
Ботнет Hakai набирает обороты
В 17 выпуске я рассказывал про ботнет из 18 тысяч устройств, который был собран практически за сутки. Создатель ботнета тогда сам связался с одним из исследователе и явно жаждал славы и внимания.
Первая версия этого ботнета, который называется Hakai, использовала всего одну уязвимость и была нацелена на роутеры Huawei. Со временем на вооружение были приняты еще несколько эксплоитов. Теперь ботнет атакует роутеры D-Link и Realtek. Также под контроль попадают роутеры, где используется пароль по-умолчанию или где его можно подобрать простым перебором.
Недавно в сети появились две модификации ботнета. Эксперты считают, что это связано с тем, что исходные коды ботнета утекли. Автор оригинального ботнета потерял желание общаться и перестал выходить на связь. Вероятно, это связано с арестом оператора ботнета Satori. Он тоже охотно общался с журналистами и экспертами по информационной безопасности.
https://xakep.ru/2018/09/04/hakai-botnet/
NAT
Новости про ботнеты всплывают в последнее время достаточно часто. Это натолкнуло меня на мысль, что стоит коснуться темы роутеров и некоторых технологий, которые в них используются. В частности сегодня я расскажу про NAT - Network Address Translation. Эта технология защищает многие домашние роутеры от прямого подключения из сети интернет. Хотя создавалась она вовсе не для этого.
Порты
Чтобы понять, как работает NAT, вернемся немного назад и вспомним некоторые принципы функционирования сетей. Каждое устройство в сети должно иметь уникальный IP адрес. IP адресов не так много, поэтому выделять на один сервер несколько - накладно, и чтобы с одного IP адреса можно было предоставлять несколько сервисов, стали использовать так называемые порты. Порт - это просто числовой идентификатор. От 1 до 65535. Некоторые номера портов жестко зафиксированы за сервисами определенного типа. Например, порт 80 закреплен за веб сервисами работающими по протоколу HTTP.
Так же как и на стороне сервера, на стороне клиента используются порты. Получается, что обмен данными идет между двумя IP адресами и на каждом узле еще используется и номер порта. Всего 4 значения, которые идентифицируют канал данных.
Зачем нужен NAT
А теперь вернемся к сути технологии NAT. Создана она была из-за проблем с IP адресами. А именно из-за малого их количества. Каждое устройство в сети интернет должно иметь уникальный IP адрес. И в какой-то момент стало ясно, что устройств становится очень много и на всех адресов не хватит. Тогда решено было использовать один адрес для целых сетей. Например, чтобы сеть предприятия или домашняя сеть имела один публичный адрес. Таким образом можно было бы для внутренних сетей использовать одинаковые адреса, и они не конфликтовали бы друг с другом.
Соединение
Теперь рассмотрим как устроен процесс обмена данными. Клиентское устройство хочет начать взаимодействие с сервером. Оно знает адрес сервера и порт сервиса. Также у устройства есть собственный адрес. В качестве номера порта на клиенте обычно берется любое незанятое на текущий момент значение. Теперь клиент формирует пакет данных, в котором содержатся 4 вышеописанные значения и отправляет его в сеть.
Роутеры
Для удобства будем считать, что между сервером и клиентом находится лишь один роутер. На самом деле их больше, но сейчас это не играет роли. Получив пакет данных от клиента роутер должен отправить его на сервер. Но чтобы не было конфликтов адресов, IP адрес клиента роутер должен заменить на свой. Также обычно меняется и номер порта. В этот момент роутер запоминает, что его определенный порт транслирует данные для конкретного клиента. А в зависимости от режима трансляции, он может также запомнить, что перенаправлять данные клиенту он будет только от конкретного сервера и ни от кого другого.
Таким образом получается, что во внешнюю сеть роутер посылает данные со своего адреса. Сервер в свою очередь ничего не знает про внутренний адрес клиента и видит только, что с ним общается роутер. Когда сервер посылает ответ, в качестве данных получателя он, естественно, использует IP адрес и порт роутера. Получив пакет, роутер ищет в своих записях, какому клиенту надо отправить только что полученную информацию.
Незапланированная защита
Если до этого клиент не посылал никаких данных, то роутер просто не будет знать, куда отправлять данные и отбросит пакет. Таким образом получилось, что NAT волей неволей защищает клиентские устройства от внешних подключений. При этом наш домашний роутер для роутера провайдера будет являться обычным клиентом и тем самым он будет частично защищен.
Почему частично? Потому что есть способы воздействовать на роутер, стоящий за NAT’ом, через браузер пользователя. Но об этом как нибудь в другой раз.
Не забудьте поставить обновления и не используйте стандартные пароли. До следующей недели.