В заметке, объясняющей, как работает GPS-спуфинг (подделка сигнала GPS, либо другой спутниковой навигационной системы), упомянута группа приёмников, попавших под одну и ту же помеху. Например, несколько приёмников под воздействием простого спуфинга (из одного источника) переместятся в одну виртуальную точку, но, так как расстояние от конкретного приёмника до источника помехи может различаться, получат рассогласование GPS-времени. Это рассогласование можно обнаружить.

Посмотрим на онлайн-навигаторы, работающие на базе смартфонов. Эти приложения отправляют данные о местоположении и параметрах движения конкретного смартфона на центральный сервер (стандартная практика, позволяющая, например, собирать информацию о транспортном трафике). Соответственно, центральный сервер мог бы определять наличие GPS-спуфинга на основе анализа данных, поступающих от множества устройств. Скажем, несколько сотен устройств, согласно данным GPS, внезапно и синхронно “конденсировались” в одну точку – это уже надёжный признак, что все они оказались в зоне спуфинга. Смартфон видит дополнительные данные, которые можно использовать для геопривязки: идентификаторы базовых станций GSM, параметры точек доступа WiFi. Перепрыгнувшие в одну точку устройства, которые в реальности находятся достаточно далеко друг от друга (сотни метров), будут видеть различную конфигурацию этих вспомогательных параметров. Получаем ещё один признак наличия спуфинга. Возможны и различные другие алгоритмы, учитывающие скорость движения смартфона, данные от акселерометра и так далее.

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



Комментировать »

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

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

Простой поиск, опять же, легко реализуется штатными средствами нашего условного ПО. Однако нужно ожидать большого процента ложных срабатываний. Понятно, что если к интересным относить все файлы, содержащие слово missile, то даже при ограничении выборки на определённые ПК, в ответ приедет слишком много мусора, и не приедет слишком много интересного, потому что, например, действительно интересные файлы программный комплекс неправильно преобразовал, перепутав кодировку. Перепутать что-то довольно легко: предполагается, что программа работает на самых разных конфигурациях ОС и прикладных пакетов.

С другой стороны, можно и не сужать выборку, нацеливаясь только на определённые ПК, а наоборот – использовать всё разнообразие данных для определения точных целей. Например, интересны только редкие документы со словом missile (пример, понятно, условный), тогда отнесём к “редким” такие документы, для которых совсем не найдено похожих или дублей на других доступных ПК (напомню: подразумевается, что пользователей очень много). Сравнение документов, да ещё удалённое, представляет отдельную, весьма непростую, проблему: вычисление хеш-суммы для всего файла позволит обнаружить только в точности совпадающие – даже две версии PDF-файла, содержащие идентичный текст, но отличающиеся форматированием, дадут разное значение хеш-функции. То есть, для определения того, насколько один документ похож на другой, необходимо ввести некоторую сложную метрику (сложную – в плане реализации, значение может быть элементарным, например, вектор из нескольких 64-битных целых значений). Это до сих пор большая прикладная проблема, хотя и хорошо разработанная. Тем не менее, некоторые практически полезные метрики придумать вполне реально, например, если у вас есть возможность запускать на машине пользователя сложные алгоритмы обработки файлов.

Предположим, что такая метрика есть. Тогда можно забирать с данного пользовательского компьютера только те файлы, со словом missile, которые совсем не похожи на встречающиеся на других ПК. Для формирования полной выборки – не нужно забирать все файлы, со всех доступных компьютеров: достаточно вычислить и передать в центральное хранилище короткое представление для каждого из них. На следующем шаге центр находит некоторое ядро для заданных сигнатур (это не обязательно слова), а потом запрашивает “редкие” файлы, оказавшиеся в данной метрике далеко за пределами ядра, но содержащие нужные признаки интересности.

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

Интересно, что если всё же вернуться к антивирусу, то такая система оказывается чрезвычайно полезна для обнаружения новых “штаммов” вредоносного ПО. Такое ПО, как раз, содержит некоторые короткие известные сигнатуры (по длинным сигнатурам – определять нет смысла, потому что каждый тщательно проектируемый “троянец” прежде всего пропускают через все доступные сканеры, чтобы убедиться, что они не распознают в нём вредоноса), но в целом не попадает в ядро, состоящее из уже известных программных кодов. Заметьте, что тут нужно использовать некоторое специальное представление, которое не зависит от того, в какой форме вредонос запакован – понятно, что основное тело может быть зашифровано, а загрузчик – генерироваться каждый раз новый. Это старая техника, скорее теоретическая, потому что с ней мало кто умеет работать, как со стороны антивирусов, так и со стороны зловредов. Тем не менее, даже базовая реализация позволяет приводить к единому виду разноформатные текстовые документы (или базы данных – не так важно).

Другими словами, для поиска и извлечения с пользовательских компьютеров потенциально “интересных файлов”, не нужно создавать аналог поиcковой системы Google. Достаточно договориться, что является “интересным” и нормировать возникшее понимание по имеющимся вычислительным мощностям и желанию разбирать миллионы мусорных файлов. Впрочем, всё это сугубо теоретические рассуждения.



Комментировать »

Ещё немного о навигации: из NASA сообщают, что успешно на практике использовали рентгеновские пульсары для определения положения аппарата в космическом пространстве. В качестве приёмника сигналов послужила рентгеновская обсерватория NICER, установленная на борту Международной космической станции, а сам эксперимент называется SEXTANT (Station Explorer for X-ray Timing and Navigation Technology).

Логика работы данного прототипа навигационной системы такая же, как описана в научной фантастике: периодические сигналы пульсаров обладают высокой стабильностью, соответственно, если их правильно подобрать, то можно вычислять положение приёмника. Что и продемонстрировали для МКС – отклонение (радиус) получилось лучше 10 миль, для космической навигации вполне достаточно (обещают улучшить).

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



Комментарии (3) »


Комментировать »

Год 2018, новый

Время традиционной новогодней записки на dxdt.ru. На этот раз завершается 2017 год, в котором число записок, опубликованных на dxdt.ru, уменьшилось радикально. Мне это не нравится, но что с этим делать я пока не придумал. Я не придумал даже какого-то существенного объяснения данному “феномену”. Обычно, в новогодней записке я пишу, что хорошо бы как-то увеличить число (содержательных) публикаций здесь, вернувшись к старым показателям. Но вернуться пока не получилось. Так что в данной записке этот момент постараюсь обойти. Будем считать, что, в принципе, какие-то занятные публикации всё же выходили. Например – вот, и ещё вот, и ещё про смартфон.

В общем, если кто-то ещё читает, то спасибо вам и с наступающим Новым Годом!



Комментарии (4) »

Прошло три года с тех пор, как я сделал на dxdt.ru HTTPS основным протоколом. До сих пор на запросы по URL, начинающимся с http://, веб-сервер отвечает редиректом (301) на соответствующий HTTPS-адрес. То есть, HTTP всё ещё поддерживается в качестве “точки входа”. При этом в ответах сервера присутствуют заголовки HSTS, соответственно, браузер, однажды обратившись по HTTPS, уже не должен использовать HTTP для доступа к dxdt.ru (формально – в течение длительного времени, которое определено в заголовке HSTS). Обращения по http:// всё ещё видны в логах (всякие старые ссылки и пр.), поэтому отключать HTTP совсем – я пока не планирую. Идея такая, тем не менее, есть. Вообще, учитывая весьма небольшой трафик на dxdt.ru и тот факт, что те, кто сайт читает, очевидно, имеют возможность подключаться по HTTPS, отключение HTTP не выглядит абсурдным.

Кстати, за три года общее проникновение HTTPS выросло весьма и весьма заметно. Если взглянуть на статистику по зоне .RU, то даже с 2015 года число узлов с корректной настройкой TLS для HTTPS выросло в 12 раз (прописью: в двенадцать раз). Ни одна другая фундаментальная технология доставки контента не демонстрирует сейчас подобного роста.



Комментарии (5) »

Около года назад я кратко описывал возможную атаку на протокол биткойн, основанную на быстром вычислении дискретного логарифма при помощи квантового компьютера, что ломает подпись ECDSA. Вот, появилась весьма подробная научная публикация на эту же тему: Quantum attacks on Bitcoin, and how to protect against them – в работе рассматриваются и квантовые атака на алгоритм “доказательства проведённой работы” (PoW), они, впрочем, признаны неэффективными на практике.



Комментировать »

Киберпанковская история про обезличивание персональных данных. Предположим, есть база данных, в которой содержатся сведения о мгновенном расходе электроэнергии в домохозяйстве, привязанные ко времени, сведения собираются с “умных счётчиков”. К базе данных получают доступ хакеры, их цель – выяснить, по какому адресу находится стиральная машина, удалённый доступ к которой они уже получили ранее, в рамках целевой атаки. Метод, впрочем, довольно очевидный: ночью стиральную машину включают и выключают несколько раз, записывая время включения и выключения. На втором шаге – в базе данных электропотребления ищется соответствующая сигнатура (скачки потребляемого тока), а уже по ней определяется адрес, где установлен счётчик и находится стиральная машина.

Занятно, что новомодные “умные города”, в перспективе, предоставляют огромное количество незащищённых источников информации, позволяющих распутывать клубки из разрозненных данных, удалённо идентифицируя что угодно и как угодно. Основная причина тут в том, что паттерны использования техники довольно сильно различаются, поэтому сигнатура, построенная на нескольких источниках, не поддаётся анонимизации на практике (только в теории, да и то, с серьёзными ограничениями).



Комментарии (1) »

ICANN отложила ротацию корневого ключа DNSSEC на неопределённое время. Первоначально, фактическую ротацию планировали провести 11 октября этого года. В качестве причины указаны данные о недостаточном распространении нового KSK (корневого ключа) по резолверам. Напомню, что корневой ключ (RSA, разрядностью в 2048 бит) в DNSSEC не менялся с момента внедрения технологии в глобальной DNS, то есть, с 2010 года. О механизме ротации при запуске просто забыли. За это время такой алгоритм ротации был предложен и утверждён согласно процессу IETF (RFC 5011), но теперь ICANN при помощи другого технологического механизма (RFC 8145) и косвенных данных обнаружила, что алгоритм ротации не работает.

В принципе, учитывая общую инертность глобальной DNS, а также разнообразие сочетаний платформ и настроек в базовых транспортах Интернета, откладывать ротацию можно сколь угодно долго: среди трафика, пригодного для анализа, всегда найдутся следы дефектных реализаций, которые могут сломаться при замене KSK. При этом, вовсе не факт, что послужившие источником “проблемных сигналов” системы вообще умеют валидировать DNSSEC. В Сети действует огромное количество “аномальных систем”, которые по тем или иным причинам пренебрегают требованиями протоколов. В классической DNS такая ситуация особенно распространена: протоколы спроектированы таким образом, что продолжают худо-бедно решать основные задачи даже при весьма существенных ошибках и нарушениях в реализации. Поэтому сомневаться, что при замене корневого KSK что-то сломается – не приходится в любом случае. Самое занятное, что сломаться могут даже те системы, которые не проводили валидацию DNSSEC.



Комментарии (1) »
Навигация по запискам: Раньше »