What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

ИИ на диете из пикселей: как хакеры обманывают системы зрения

hackeryaroslav

Midle Weight
Депозит
$0

Авторство: hackeryaroslav​

Источник: xss.is​

Введение​

Читал я как то интернет и думал, какую же тему взять на будущую статью? Хотелось бы то, что мало обсуждалось и будет набирать только обороты в будущем. И тут мне пришло в голову одно...

OKGXFKulRc--ob1qBHjwNA.jpg

Давайте признаем, ИИ и виртуальная реальность технологии на своем пике. Марк Цукерберг и Илон Маск уже сделали это возможным. Но, они же тоже могут иметь уязвимости и свои цепочки атак, верно? Одной из таких угроз становится скрытая атака через дополненную реальность (Augmented Reality Hijacking), где атакующие пользуются уязвимостями AR-систем и нейросетей, управляющих ИИ. Эти атаки особенно опасны для автономных систем, где от точности восприятия реальности ИИ напрямую зависит безопасность людей или инфраструктуры.

Мы разберем, как именно работает такая атака, какие способы защиты могут помочь, попробую объяснить как можно больше аспектов.

Основы дополненной реальности и ее взаимодействие с ИИ

Чтобы лучше понять, как работают скрытые атаки, важно разобрать основы дополненной реальности (AR) и как она "сотрудничает" с ИИ. Это поможет увидеть картину в целом: как AR и ИИ взаимодействуют и где именно возникают уязвимости. Давайте начнем.

Дополненная реальность (AR)

Дополненная реальность — это технология, которая позволяет накладывать цифровые объекты на наш физический мир. Представьте, что вы смотрите на окружающее пространство через камеру смартфона или AR-очки, и на экране видите не только реальный мир, но и виртуальные объекты, которых в реальности нет. Например, может появиться 3D-модель здания или анимация с погодной информацией прямо перед вами.

Основные компоненты системы AR включают в себя:
  • Камеру — это устройство, которое фиксирует реальную картину окружающего мира.
  • Процессор — мозг системы, который анализирует поступающую информацию и накладывает цифровые элементы.
  • Дисплей — экран, через который вы видите результат объединения физического и цифрового мира.
  • Сенсоры — отвечают за отслеживание положения и движения устройства, чтобы AR-объекты корректно отображались в пространстве, даже если вы меняете угол обзора.

ИИ в AR

ИИ в этой системе выполняет ряд ключевых функций, без которых дополненная реальность не была бы такой точной и интерактивной. Основные задачи ИИ:
  • Распознавание объектов и сцен — ИИ понимает, что перед ним: человек, здание, дерево или дорожный знак.
  • Отслеживание движения и позиционирование — когда вы двигаете камерой, ИИ анализирует ваше положение и корректно перемещает цифровые объекты, чтобы они "жили" в вашей реальности.
  • Генерация и адаптация цифрового контента — создание виртуальных объектов и их настройка в зависимости от того, что происходит в реальном мире.
  • Прогнозирование взаимодействия — ИИ предсказывает, как вы можете взаимодействовать с AR-объектами, и адаптирует их поведение под ваши действия.

А какие потенциальные атаки могут появится?

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

Какие способы скрытых атак существуют?

Основные методы атаки

  • Подмена реальных объектов
  • Манипуляция визуальными характеристиками
  • Внедрение скрытых маркеров
  • Эксплуатация ограничений алгоритмов компьютерного зрения

Рассмотрим подробнее каждый из этих методов.

1. Подмена реальных объектов

Начнем с самого простого и на простых примерах. Один из самых простых и эффективных методов — это создание объектов, которые внешне идентичны реальным, но содержат элементы, способные обмануть ИИ. Например, мы можем создать дорожный знак, который выглядит как обычный "Стоп", но содержит малозаметные искажения, которые человеческий глаз не заметит, а ИИ — да.

Пример: если автономный автомобиль, управляемый ИИ, "увидит" поддельный знак и неправильно его интерпретирует, то может не остановиться на перекрестке, что приведет к аварии. Также вспомним дальних родственников по типу https://www.opennet.ru/opennews/art.shtml?num=53414

Чтобы лучше понять, как это работает, ниже приведен код, создающего такие искажения на изображении знака "Стоп". Этот код создает еле видимые искажения, которые вводят в заблуждение системы компьютерного зрения, но не привлекают внимания обычного человека.

Python: Скопировать в буфер обмена
Code:
import cv2
import numpy as np

def create_adversarial_stop_sign(image_path, output_path, epsilon=0.1):
    image = cv2.imread(image_path)
 
    image_float = image.astype(np.float32) / 255.0
 
    noise = np.random.normal(0, 1, image.shape).astype(np.float32)
 
    noise = noise / np.max(np.abs(noise))
 
    adversarial_image = image_float + epsilon * noise
 
    adversarial_image = np.clip(adversarial_image, 0, 1)
 
    adversarial_image = (adversarial_image * 255).astype(np.uint8)
 
    cv2.imwrite(output_path, adversarial_image)

create_adversarial_stop_sign('stop_sign.jpg', 'bad_stop_sign.jpg', epsilon=0.05)

Этот код использует метод добавления шума к изображению. Он "портит" изображение так, что человеческий глаз видит его как нормальный знак, а система ИИ — уже нет. Это наглядный пример того, как даже небольшие изменения в данных могут стать катастрофой для системы, опирающейся на и ИИ. Сможете заметить разницу? Справа наш "плохой" стоп знак

stop_sign.jpg

bad_stop_sign.jpg

2. Манипуляция визуальными характеристиками объектов

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

the_queen_cloaked_fawkes.jpg

Пример:​

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

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

Python: Скопировать в буфер обмена
Code:
import numpy as np
import matplotlib.pyplot as plt
def create_road_texture(size=(512, 512), line_width=20, noise_level=0.05, pattern_amplitude=0.02):
    road = np.random.normal(0.2, noise_level, size)
    road = np.clip(road, 0, 1)
 
    center = size[1] // 2
    road[:, center-line_width//2:center+line_width//2] = np.random.normal(0.9, noise_level, (size[0], line_width))
 
    x = np.linspace(0, 10, size[0])
    y = np.linspace(0, 10, size[1])
    X, Y = np.meshgrid(x, y)
    pattern = pattern_amplitude * np.sin(X*Y)
 
    road += pattern
 
    road = np.clip(road, 0, 1)
 
    return road
texture = create_road_texture()
plt.figure(figsize=(10, 10))
plt.imshow(texture, cmap="gray")
plt.axis("off")
plt.savefig("realistic_adversarial_road_texture.png", dpi=300, bbox_inches="tight")
plt.close()
plt.figure(figsize=(8, 6))
plt.hist(texture.ravel(), bins=50, range=(0, 1))
plt.title("Pixel Value Distribution")
plt.xlabel("Pixel Value")
plt.ylabel("Frequency")
plt.savefig("texture_histogram.png", dpi=300, bbox_inches="tight")
plt.close()

road.jpg

realistic_adversarial_road_texture.png

texture_histogram.png



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

3. Внедрение скрытых маркеров или паттернов

Этот метод включает добавление малозаметных меток, таких как QR-коды или другие шаблоны, в окружающую среду. Они могут быть легко проигнорированы человеческим глазом, но AR-системы и ИИ могут считывать их и реагировать на предоставленную информацию. Такие скрытые маркеры могут быть использованы для ввода ложных данных в систему.

Пример:

Умные и хитрые люди могут разместить QR-коды на здании или объекте инфраструктуры. Эти QR-коды могут содержать ложную информацию, которая будет передана AR-системе, что приведет к неправильным действиям, основанным на ложных данных. Например, при сканировании системой AR умники могут передать инструкции, которые обманут ИИ, заставив его вести себя неправильно. Звучит прикольно))

Пример кода для генерации нашего QR-кода:

Python: Скопировать в буфер обмена
Code:
import qrcode
from PIL import Image
import numpy as np

def create_hidden_qr(data, background_image_path, output_path, qr_opacity=0.1):
    qr = qrcode.QRCode(version=1, box_size=10, border=4)
    qr.add_data(data)
    qr.make(fit=True)
    qr_img = qr.make_image(fill_color="black", back_color="white").convert("L")
    background = Image.open(background_image_path).convert("RGBA")
    qr_img = qr_img.resize(background.size)
    qr_array = np.array(qr_img)
    bg_array = np.array(background)
    mask = np.where(qr_array == 0, 0, 255 * qr_opacity).astype(np.uint8)
    qr_rgba = np.dstack((qr_array, qr_array, qr_array, mask))
    qr_image = Image.fromarray(qr_rgba, "RGBA")
    result = Image.alpha_composite(background, qr_image)
    result.save(output_path)

create_hidden_qr(
    "https://google.com",
    "check-your-business-is-legitimateandrew-tate-.webp",
    "hidden_qr_building.png",
    qr_opacity=0.05,
)

hidden_qr_building.png

Код создает QR-код, который накладывается на изображение с низкой непрозрачностью, делая его практически невидимым для человеческого глаза. Но он все еще может быть распознан и считан системами компьютерного зрения, что делает его инструментом для атаки.

4. Эксплуатация ограничений алгоритмов компьютерного зрения

Этот метод заключается в том, чтобы воспользоваться уязвимостями конкретных алгоритмов компьютерного зрения, таких как YOLO (You Only Look Once) или Faster R-CNN. Атакующие могут создавать объекты или узоры, которые эксплуатируют известные недостатки этих алгоритмов, сбивая их с толку и заставляя их делать неверные выводы.

Пример:​

Представьте, что мы создаем изображение, которое алгоритм YOLO интерпретирует неправильно. Например, автомобиль может быть классифицирован как другой объект — например, дорожный знак или животное.

Пример кода для создания состязательного примера, который может обмануть YOLO:

Python: Скопировать в буфер обмена
Code:
import numpy as np
import cv2
import torch
from torchvision import models
from torchvision.transforms import functional as F

def create_adversarial_image(
    original_image_path, perturbation_pattern, output_image_path, alpha=0.5
):
    original_image = cv2.imread(original_image_path)
    original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
    perturbation = cv2.imread(perturbation_pattern)
    perturbation = cv2.cvtColor(perturbation, cv2.COLOR_BGR2RGB)
    perturbation = cv2.resize(
        perturbation, (original_image.shape[1], original_image.shape[0])
    )
    adversarial_image = cv2.addWeighted(
        original_image, 1 - alpha, perturbation, alpha, 0
    )
    adversarial_image = cv2.cvtColor(adversarial_image, cv2.COLOR_RGB2BGR)
    cv2.imwrite(output_image_path, adversarial_image)

create_adversarial_image(
    original_image_path="car.jpg",
    perturbation_pattern="attack_pattern.png",
    output_image_path="adversarial_image.jpg",
    alpha=0.3,
)

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

adversarial_image.jpg


Спускаемся вниз по айсбергу и защищаем наши системы

Эксплуатация ограничений алгоритмов трекинга в AR

Дополненная реальность (AR) – это технология, которая активно используется для наложения цифровых объектов на реальный мир. В этой технологии широко применяются системы трекинга, которые отслеживают положение объектов. Однако такие системы могут быть уязвимы для атак, в которых используются специально разработанные маркеры.


Хорошо, разобрали атаки, а как от них могут защищаться? Кратко и по делу распишу.

1. Робастные алгоритмы компьютерного зрения

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

2. Многомодальная верификация

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

3. Аномальное обнаружение

Системы аномального обнаружения необходимы для выявления отклонений от нормального поведения. Это могут быть как мелкие аномалии, так и серьезные паттерны, указывающие на возможные попытки атак или неисправности. Чтобы система могла эффективно обнаруживать такие отклонения, её необходимо "обучить" на нормальных данных. Алгоритм Isolation Forest является популярным выбором для таких задач, поскольку он изначально разработан для работы с аномалиями.

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

4. Криптографическая аутентификация AR-контента

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


Заключение

В этой статье мы рассмотрели как разными способами можно обмануть ИИ в реальном распознавании объектов. Рассмотрели множества атак с примерами и научились методами от их защиты. Надеюсь статья вам понравилась, если есть какие либо замечания к коду или недостоверность теории - поправляйте ниже. Всем спасибо за внимание, всем пока, друзья!
 
теоретически норм, а как это реализовать практически? под покровом ночи рисовать волны на асфальте? распечатать на дорогом высококачественном плоттере наклейку с особым знаком STOP? какая практическая польза всего этого? привести к запрету автономного транспорта на общих дорогах?
похоже на анекдот про хакера и солонку.

и ещё,

hackeryaroslav сказал(а):
Этот код использует метод добавления шума к изображению. Он "портит" изображение так, что человеческий глаз видит его как нормальный знак, а система ИИ — уже нет. Это наглядный пример того, как даже небольшие изменения в данных могут стать катастрофой для системы, опирающейся на и ИИ. Сможете заметить разницу? Справа наш "плохой" стоп знак
Нажмите, чтобы раскрыть...
это предположение или факт? как определить, что ИИ этот знак уже не увидит? ты давал файлы чатгопоте или самописной распознавалке картинок?
 
Top