Часто попадаются в публикациях СМИ утверждения, что, якобы, это особенность “open source” в том, что в такие библиотеки и другое ПО включают “вредоносные возможности”. Но это не так. Модель распространения ПО никак не связана с возможностью добавления “вредоносного кода”: добавить такой код можно и в исходники, и в скомпилированный исполняемый код, а добавить что-то такое в скомпилированный код даже может быть проще, поскольку исходники ещё собирать кто-то будет и “зловредная нагрузка” может не собраться, собраться не так или не попасть в исполняемый код.

В подобных сообщениях СМИ, конечно, перепутаны подходы и термины. Открытый исходный код (Open Source) – это открытый исходный код. ПО, поставляемое с открытым исходным кодом, может быть проприетарным и коммерческим. Проблемы, о которых изначально шла речь, связаны с моделями и способами разработки кода, под открытостью тут подразумевается даже не свободная лицензия, а то, что, потенциально, любой желающий может предложить доработки и изменения. Но не факт, что предложенное будет принято безо всякой проверки. При этом в разных проектах устроены различные процессы проверки, той или иной степени защиты.

Естественно, трудности вызывает современное разделение по библиотекам и направлениям, которое приводит к тому, что возникает “развесистая” система зависимостей, за которой очень сложно, – даже невозможно, – уследить. Хрестоматийным примером тут является “экосистема” Node.js, где едва ли не под каждую элементарную подпрограмму делается отдельный “модуль”, а количество “вложенных зависимостей” очень велико. Но, естественно, речь не только про Node.js. Источники могут использовать самые разные правила добавления кода, а бывает так, что одиночная небольшая библиотека встроена в тысячи продуктов, которые тянут её код с собой. И вот, предположим, исходный репозиторий этот библиотеки оказался заброшен, а потом был взломан. Взломавший теперь получает возможность потенциальной инъекции произвольного кода в те самые тысячи продуктов. Но такая инъекция всё же может быть обнаружена.

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



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

Chain and lock, credit: HamlНемного киберпанка. Одним из направлений, связанных с перспективными системами управления “цифровыми финансами”, является ограничение платежей по месту “мгновенного” географического нахождения пользователя, который пытается что-то оплатить. Речь не об обнаружении “поддельных” попыток оплаты с чужими реквизитами, а о допусках для легитимного пользователя. То есть, если авторизованный пользователь находится за пределами, предположим, своего города, то он не может распоряжаться средствами (или частью средств) в данной цифровой платёжной системе. Как такое может быть реализовано? Понятно, что для управления финансами пользователю выдали устройство, – смартфон с приложением, предположим, – которое имеет встроенный навигационный модуль и определяет своё географическое положение. Для совершения транзакции геопривязку нужно подтвердить. Это, в принципе, можно сделать с использованием той или иной спутниковой навигационной системы. Почему ограничения должны вводиться именно на стороне пользователя? Потому что товары и услуги он может заказывать у организаций в режиме онлайн, а серверы организации могут находиться где угодно (это допускается). Конечно, ограничивать можно по месту получения товара/услуги – это место, допустим, указывается при заказе (доставка и пр.). Однако, во-первых, не всем товарам и услугам можно сопоставить место получения, во-вторых – получателем может быть другое лицо (ограничение на получателя покупок пока что не вводим).

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

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

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

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



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

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

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



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

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

Как и в восприятии цвета, с восприятием на слух связано много неожиданных эффектов и иллюзий. Как и в случае зрения – основная, содержательная часть результатов работы слуховой системы связана с предыдущим опытом. По крайней мере, та часть, процесс осознания которой индивид может попытаться объяснить. При этом, слуховое восприятие “дорисовывается”, в том числе, с опережением по времени. Сложно сказать, чего больше в конкретных слуховых ощущениях – внешних изменений звукового давления или внутренней работы, основанной на психических эффектах и опыте. Сугубо механистическая модель вполне может давать расхождения даже в таких “зашкаливающих” случаях, как рёв двигателя реактивного самолёта. Так что “преобразование Фурье”, трактуемое как алгоритмический способ превращения сигнала в конечный набор гармоник, тут может служить разве что способом записи “принятых” данных, но не механизмом транслирования звуковых колебаний в слышимое. Тем более, вовсе не обязательно приводить сигнал в другой базис строго тем или иным алгоритмом, реализующим преобразование Фурье.



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

Большое количество (сотни) низкоорбитальных спутников, действующих в составе единой системы, с синхронным временем и данными о точном местоположении, это весьма мощная платформа, которая предоставляет ранее не доступные возможности. Например, если использовать сенсоры, работающие в инфракрасном диапазоне (такие планирует штатовское агентство SDA).

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

Понятно, что и приёмник на одном спутнике, что называется, может синтезировать измеряемый сигнал по данным, полученным из разных точек орбиты этого спутника. Но тут возможности не идут ни в какое сравнение с тем, когда одна и та же цель строго одновременно (а для этого и нужно синхронное время) наблюдается с нескольких ракурсов разными приёмниками. Особенно, если наблюдаемый объект имеет скорость, сравнимую со скоростью спутника. Более того, синтезирование “по пространству” позволит найти и пронаблюдать цели, которые не были бы видны из одной точки. А так как сенсоры точно привязаны к координатам, можно с высокой точностью рассчитывать вероятные продолжения траектории. И всё это в реальном времени, ну, с учётом того, что какие-то задержки, в сотни миллисекунд, всё же будут.



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

Кстати, тут заметили, что в русскоязычной “Википедии” в статье про теорему Ферма, кроме прочего, почему-то написано так: “В 1984 году немецкий математик Герхард Фрай доказал, что решение уравнения Ферма, если оно существует, можно включить в некоторое эллиптическое уравнение…”. Занятно, но не верно. При этом со слов “эллиптическое уравнение” ещё и ссылка ведёт на статью про дифференциальные уравнения в частных производных. Естественно, “краевые задачи” математической физики (“эллиптическое уравнение”), так сказать, имеют весьма и весьма отдалённое отношение к вопросу, ведущему свою историю ещё от Диофанта. Степень отношения здесь ограничивается происхождением названия: конечно, в “эллиптическое уравнение” превратилась “эллиптическая кривая”, а правильно было бы написать, что “можно рассмотреть эллиптическую кривую, связанную с решениями уравнения Ферма” и т.д., а также поправить “двойника среди модулярных форм” (далее, в том же абзаце). Да. Вот только править эту статью в “Википедии” не разрешается – она защищена от изменений.



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

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

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

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



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

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

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



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

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

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

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

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

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



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

Добавили обработку записей с информацией о DMARC и SPF на сервис проверки настроек интернет-узлов audit.statdom.ru (сервис, кстати, называется САБИУ): проверяется наличие соответствующих TXT-записей, для DMARC определяется заявленная политика.

Сам сервис позволяет получить отчёт о настройках интернет-узла, как эти настройки видны снаружи: вводите DNS-имя – получаете сведения о настройках DNS, TLS, HTTP, HTTPS, MX и показатель рейтинга в баллах (максимально – 100). Полезно при оценке того, как настроен ваш веб-узел и параметры почты. Из суперсовременных технологий – audit.statdom.ru умеет определять DNS-over-TLS на авторитативных серверах.



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

Воскресное чтение манускриптов. На скриншоте ниже – фрагмент манускрипта Codex Vaticanus из Ватиканской апостольской библиотеки.
Manuscript citation (Vat.gr.1209)
Манускрипт датируют четвёртым веком, но запись обновлялась позже, то есть, не только вносились редакторские правки/комментарии, но и буквы обводились новыми чернилами, что нетрудно увидеть на скриншоте. Именно интересный эффект такого обновления тут хорошо заметен: часть записи текста (Второе послание к Коринфянам) предшествующей версии не обновилась. Почему? Видимо, потому что это повтор (диттография): более блеклая часть повторяется далее. Соответствующий повторный фрагмент начинается словами κάλυμμα ἐπὶ τὴν καρδίαν αὐτῶν κεῖται (“покрывало на сердце их лежит”), но при этом κάλυμμα (“покрывало”) встречается ещё раз уже через несколько слов (см. конец третьей снизу строки и начало второй). Это, естественно, широко известный фрагмент (речь про запись). Можно предположить, что служащий скриптория, копировавший текст первоначально, отвлёкся, а потом ошибочно начал с того же слова, но стоявшего чуть раньше (ну или это были разные переписчики, но, как я понимаю, считается, что нет, не разные). В этом же фрагменте ещё отмечают правку “ε” в “αι” (см. между строк, над “περιερειται”), которая внесена дважды – и в “удалённый” фрагмент, и в обновлённый.



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