Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
На дворе – 21 век. Уже довольно давно. Тем не менее, официальный сайт корпорации Northrop Grumman содержит занимательный дефект, в духе 90-х. Дефект находится на виду, в довольно привлекательном разделе – News (“Новости”). Выявить этот дефект не составляет труда даже для начинающего веб-разработчика. Посмотрим на структуру URL-ов, которые используются в этом разделе, а собственно, на единственный параметр, который также представляет собой URL:
art=http://www.globenewswire.com/newsarchive/noc/press/xml/nitf.html?d=10076335
Полный исходный URL:
http://www.northropgrumman.com/mediaresources/Pages/NewsArticle.aspx?art=http://www.globenewswire.com/newsarchive/noc/press/xml/nitf.html?d=10076335
Думаю, многие уже догадались: URL из параметра – это ссылка на страницу-источник текста новости. Конечно, он не фильтруется сервером, можно подставить всё что угодно. Вместо фильтрации – некий сервис Yahoo, с помощью которого реализована данная замечательная возможность на сайте, исправно приходит по подставленному URL-у, и скачивает всё, что ему подсунут, транспортируя содержимое на сервер и показывая результат доверчивому пользователю под доменом www.northropgrumman.com. Что именно нужно подсунуть на специально подготовленной странице, которую можно разместить на любом внешнем сервере, выяснить несложно – достаточно посмотреть в исходный код штатных новостей PR-провайдера globenewswire.com: там, надо сказать, весьма прозрачный формат – и это единственный положительный момент в данной истории из области веб-разработки.
Очевидно, что, используя описанный механизм, можно “опубликовать” на официальном сайте Northrop Grumman любую удивительную новость, а потом поделиться ссылкой, в том числе, с прессой. Тем более, что параметры URL нетрудно закодировать URL encoding, спрятав подозрительный домен-источник (хорошо подходят IDN-ы, кстати).
Это не бог весть какая ошибка (которая, впрочем, может послужить основой для серъёзных проблем, если кому-то придёт в голову использовать её в составе методов социальной инженерии), но наблюдать её на сайте, где на первой же странице сказано о киберугрозах и их детальном понимании – несколько странно. Впрочем, удивляться тут особенно нечему.
Comments Off on Дефект сайта Northrop Grumman
В одной из записок про OpenSSL упоминается каталог уязвимостей, вероятно, используемый NSA (АНБ). Поясню, о чём идет речь: АНБ – всегда было агентством с большими аналитическими способностями; если посмотреть на известную часть истории, то АНБ активно конкурировало с ЦРУ именно на поле аналитических служб и методов обработки информации, с целью извлечения полезных сведений. Соответственно, было бы удивительно узнать, что специальная группа внутри АНБ не следит пристально за всеми обновлениями и изменениями одной из самых распространённых в мире криптобиблиотек – OpenSSL.
Уже для того, чтобы готовить отчёты и комментарии по результатам работы группы, требуется как-то анализировать исходный код, а не просто считать строки и операторы goto. Естественно, полагать, что специалисты АНБ находят все уязвимости – было бы преувеличением. Но достаточно прозрачные вещи, вроде Heartbleed, они должны иногда замечать.
Что касается оперативности: если процесс анализа выстроен синхронно текущему изменению состояния исходников OpenSSL, то и многие уязвимости могут обнаруживаться достаточно быстро, раньше, чем их увидят другие аналитики. Естественно, всё это предположения, и не факт, что качество анализа АНБ сильно превосходит аналогичный показатель разработчиков сообщества OpenSSL, которые (возможно) читают новый код. Но даже при равных показателях, АНБ может иногда повезти: они заметят дефект, который пропустили “конкуренты”.
Comments Off on Реплика: каталоги уязвимостей и АНБ
Ещё немного про OpenSSL. Вся эта история с возможными утечками данных через Heartbleed является полезным уроком. Например, она показала, как очередной небольшой шаг в сторону усложнения и без того непростых протоколов семейства TLS привёл к огромному снижению уровня безопасности.
Откуда взялась уязвимость? В TLS добавили расширение Heartbeat (RFC 6520), довольно экзотическое, и уж точно не критическое для большинства современных сценариев использования TLS в Интернете. По сложившейся традиции, реализацию этого расширения быстренько загнали в OpenSSL. А в результате внедрения этой мало кем востребованной штуки – миллионы сервисов, сами того не желая, получили по огромной дыре. Они, выходит, использовали данное расширение TLS только для того, чтобы желающие могли получать несанкционированный доступ к оперативной памяти. Такая вот безопасность.
Что же было на другой чаше весов? То есть, ради чего добавляли новый код? Что могли бы получить такого полезного от данного расширения TLS все те миллионы сайтов, если бы реализация была выполнена без ошибки? Да в общем – ничего особенного: гипотетическую оптимизацию вычислительных затрат на управление TLS-сессиями. Очевидно, есть некие “структурные проблемы” в процессах создания протоколов, раз так получается.
Хотя, конечно, TLS не сломан, всё идёт своим чередом. Есть шансы, что новая версия TLS будет проще, а пачку расширений отрежут. Посмотрим.
Комментарии (3) »
По крайней мере, “углубившийся” анализ исходного кода криптобиблиотек даёт свои результаты – в OpenSSL открылась уязвимость, приводящая к утечке содержимого памяти (и на сервере, и на клиенте – без разницы: уязвимость универсальная). Естественно, такая утечка означает, что могли утечь секретные ключи; смена секретных ключей влечёт за собой смену сертификатов, в общем, проблем добавится.
Скорее всего, обнаружение подобных шедевров в коде наиболее распространённых библиотек продолжится. Конечно, с каждой найденной ошибкой защищённость растёт, это факт. Но если учитывать, что в АНБ (наверняка) есть хорошо аннотированные каталоги подобных уязвимостей, то рост защищённости уже не кажется таким уж многообещающим.
Кстати, это очередной хороший пример, объясняющий, почему может быть полезно хранить полный дамп шифрованного трафика. В штатных логах данная утечка никак не отражается, то есть, обнаружить в логах, что утекли ключи – не выйдет (только предположить, что могли утечь). А вот в дампе трафика ключи вполне себе будут заметны, и утечку можно детектировать с высокой точностью.
Пара полезных ссылок:
Diff исправления уязвимости (добавлена проверка границы области памяти, в общем-то, достаточно очевидная для опытного аудитора кода; но такой аудитор должен был ещё посмотреть в код, да).
Онлайн-инструмент для проверки уязвимости конкретного веб-сервера (проверил – похоже, работает корректно).
Комментарии (3) »
Сейчас нередко приходится слышать, что тотальный переход сайтов на HTTPS помешает проведению “мягких блокировок” избранных сайтов провайдерами. Потому что в HTTPS, для инспектора трафика, не видны полные URL. Впрочем, тут можно напомнить про SNI – в рамках этой технологии, практически все современные браузеры, охватывающие, наверное, не менее 90% пользователей, передают имя хоста, с которым устанавливают TLS-соединение (HTTPS), в открытом виде:

То есть, хоть URL-ов и не видно, но адрес сайта, с которым пытается соединиться пользователь, системам инспекции трафика (DPI) доступен: блокируй – не хочу.
Вообще, полезно иметь в виду, что ни TLS, ни, тем более, HTTPS, не разрабатывались для преодоления систем фильтрации и блокирования доступа, так что как-то радикально повлиять на ситуацию они не могут. Хотя, конечно, проведение “тонкого блокирования” затрудняют. Но проблема не в этом. Да и “тонкое блокирование” – похоже, мало кому нужно.
А проблема со всей этой набирающей обороты “фильтрацией доступов” в том, что в реальность сетевых инженеров входят новые сложные инструменты, от которых зависит связность Сети. К сожалению, в этой же самой реальности, многие действующие специалисты (даже крупных провайдеров) не умеют правильно настроить более простые и хорошо изученные системы. А тут – непонятная добавка, какое-то блокирование. Так что, вне зависимости от того, наступит тотальное распространение HTTPS или нет, мы, в ближайшее время, встретимся с большим количеством “странных проблем” связности, когда большие кластеры интернет-ресурсов (вполне себе российских) не будут доступны для большого количества пользователей. Решать эти проблемы будет сложно, потому что мало кто будет понимать, что вообще происходит, и кто первый бросил снежок, вызвавший лавину. (Понимание – это отдельная история: сейчас хорошо видно, как это понимание покидает сообщество, а на смену ему приходят карго-культы.)
Комментарии (3) »
Кстати, действия турецких провайдеров в отношении DNS вполне хорошо иллюстрируют, зачем может понадобиться “сложная конфигурация” DNS (сервиса доменных имён, то есть) в домашней сети и на персональных компьютерах. Я пару лет назад писал, что держу собственный рекурсивный резолвер на внешнем сервере, а его ответы проверяю локально, благо сделать это несложно. Раньше многие удивлялись такому решению. Сейчас удивления остаётся всё меньше.
В старой записке про аутентификацию внутри DNS, в качестве примера упоминается именно та ситуация, которая (кто бы сомневался!) приключилась в турецком сегменте Сети:
Предположим, что у вас настроен в качестве резолвера собственный сервер (пусть это будет BIND), доступный по IP-адресу 1.2.3.4. Откуда ваша локальная операционная система знает, что, отправляя запросы и получая ответы от 1.2.3.4, – она “разговаривает” именно с нужным резолвером?
Комментарии (1) »
Пишут, что турецкие провайдеры, в целях блокирования доступа к интернет-ресурсам, перехватывают трафик, идущий в сторону сервисов Google Public DNS. То есть, трафик пользователей, предназначенный для 8.8.8.8 и 8.8.4.4, заворачивается на локальные узлы провайдера, которые отдают поддельные ответы DNS (в частности, об адресах twitter.com). Перехват касается и других хорошо известных сервисов DNS-резолвинга.
После того, как местные провайдеры начали подменять ответы DNS на собственных, провайдерских, резолверах, пользователи массово перешли на резолверы Google (думаю, многие видели фотографию из Турции, запечатлевшую написанный большими буквами на стене дома адрес 8.8.8.8). Следующим шагом стало заворачивание провайдерами трафика, адресованного данному сервису, на свои узлы. Надо заметить, что, из-за популярности Google, мера наверняка оказалась эффективной.
Вообще говоря, это очередной (и достаточно ожидаемый) шаг в сторону разрушения традиционной связности Интернета. А наличие популярных и хорошо централизованных, в адресном смысле, сервисов, вроде гугловского DNS, только подстёгивает процесс.
(Замечу, что DNSSEC, которая упоминается в статье по ссылке, тут никак не поможет – потому что эта технология не предотвращает блокирование, а только позволяет обнаружить подмену ответов. Интересно, что наличие заранее распределённых по пользователям ключей, являющихся доверенными, создаёт отличный фундамент для введения универсальной системы преодоления подобных преград, выставляемых провайдерами; и не важно, с какой целью эти ключи распределялись – для использования в DNS или ещё для чего-то. Но вот только пользователи всё равно не умеют с ключами обращаться.)
Комментарии (2) »
Смартфоны, которые находятся в распоряжении у граждан, это хорошая основа для создания децентрализованных сетей связи, сетей обмена сообщениями. Я писал о таких mesh-сетях раньше и не раз. Самый доступный вариант создания подобной сети – специальное приложение, исполняемое смартфоном. А самый простой вариант сети – сеть, ретранслирующая текстовые (возможно, гипертекстовые) сообщения так, что в итоге они доступны всем участникам сети. Распространение сообщений может идти достаточно медленно, скажем, от минут до нескольких часов (полезна и функция отложенной передачи, когда долгое время отсутствовавший в сети узел может получить сообщения, накопившиеся за несколько суток).
Протокол обмена сообщениями должен быть независимым от транспорта передачи данных. Тогда для обмена данными годятся любые доступные смартфону средства коммуникации. Если есть доступ к Интернету, то данные передаются через глобальную Сеть. Есть только локальный WiFi – данные передаются через него. Есть только GSM – передача происходит через SMS (MMS). Совсем плохо со связью – узлы, находящиеся в непосредственной близости, синхронизируются через Bluetooth. Одна из непростых задач состоит в том, чтобы успешно реализовать анонсирование разнообразных адресов (для разных коммуникационных транспортов) новых узлов. Но эта задача решаема (подобные протоколы уже разработаны). И, конечно, из-за наличия GSM в сети будут проблемы с анонимностью, но это отдельная проблема. А вот скрыть сам трафик сети, так, чтобы он не обнаруживался и не блокировался системами DPI, проще.
Как бороться с такой сетью? Самый очевидный вариант: блокировать сервис, раздающий приложения (например, Google Play Market или Apple App Store). Однако пользователи могут начать обмениваться кодом приложения между собой, хоть это и потребует дополнительных усилий. В общем, как и другие децентрализованные решения, основанные на современных доступных коммуникационных устройствах, сеть получается очень устойчивой и живучей (хоть и заведомо медлительной).
Комментарии (4) »
Между прочим, сильный противник в Интернете может сделать гораздо больше, чем просто устраивать банальные DDoS. Сильный противник – это игрок уровня АНБ, например. А самый действенный вариант здесь – активная атака на ключевые маршрутизаторы и на BGP.
Известно, что системное программное обеспечение маршрутизаторов содержит уязвимости. Это касается не только “домашних роутеров”, но и дорогих продуктов уровня Cisco. Эти уязвимости, вероятно, позволяют не просто остановить работу маршрутизатора, но повлиять на то, как работает большой сегмент сети, где взломанный маршрутизатор находится. Маршрутизатор позволяет делать с трафиком всё что угодно, в том числе, проводить инъекцию пакетов, заменять данные в пакетах и выполнять другие, не менее занимательные, вещи. Атаковать маршрутизатор можно удалённо, а если он удачно расположен, то послужит отличной отправной точкой для проведения других атак.
Что касается BGP (это протокол обмена информацией о сетевых маршрутах, определяющий то, как ходят пакеты в Сети): здесь поможет использование точек присутствия на основных магистралях для воздействия на BGP . При должном масштабе и информированности атакующего эта, вполне себе инфраструктурная, атака может заставить трафик в выбранном сегменте Интернета “ходить не туда”. Естественно, захваченные чужие маршрутизаторы служат идеальным базисом для BGP-атак.
Комментарии (1) »
В связи с некоторым обострением международных отношений интересно вспомнить, что базовые системы адресации Интернета управляются из США, что только добавляет пикантности ситуации. (Предложения о прекращении предоставления адресного пространства в рамках санкций – уже встречались; правда, инициатором их была негосударственная организация из США.)
Надо сказать, что и у ICANN, и у “подведомственных” ей структур, есть технические возможности по весьма эффективному блокированию национальных сегментов Интернета, в том числе, национальных доменов. Да, эти возможности, пока что, – скорее теоретические, но они есть. А в данном контексте важны именно возможности, а вовсе не намерения, как можно было бы подумать.
Поделюсь несколькими ссылками на прошлые записки по теме (кто бы мог подумать, что они опять станут актуальны):
- ICANN и управление Интернетом;
- ICANN, правительство США и “независимость” Интернета (2009 год, между прочим);
- Новые домены, DNSSEC и главный рубильник.
И ещё одно наблюдение, по близкой теме:
Комментарии (10) »
Нашли как бы ответ на Goto fail от GnuTLS (это очень распространённая библиотека криптографических функций) – некорректная обработка сертификатов в GnuTLS приводит к тому, что сессию можно перехватить. Пишут, что эту свежую ошибку в GnuTLS выявили в рамках аудита кода для Red Hat.
Очень много подобного добра в коде криптобиблиотек, к сожалению. Сейчас, хотя бы, стали чуть более тщательно исследовать этот код, из-за шума вокруг деятельности АНБ.
Комментарии (1) »
Новый