Исследователь безопасности за тёмным столом с двумя мониторами: на основном — зелёный текст терминала, на втором — каркасная сетка лица. Холодное свечение экранов, кинематографичные тени.


Когда финтех-компания просит вас «покрутить головой перед камерой», она искренне верит, что этого хватит для подтверждения личности. Как red team-оператор, который ковырял KYC-пайплайны Jumio, Onfido и Sum&Substance в рамках заказных пентестов и bug bounty, скажу прямо: стандартные проверки eKYC - не стена, а забор с калитками. Причём калитки не заперты, а просто прикрыты ветром. Ниже - конкретные векторы атак на системы идентификации: от инъекции дипфейков через виртуальную камеру до манипуляций на уровне API, с маппингом на MITRE ATT&CK и практическими командами для воспроизведения в контролируемой среде.

Архитектура eKYC-пайплайна и точки отказа​

Прежде чем ломать систему, нужно понять, как она устроена. Типичный eKYC-пайплайн выполняет три последовательные проверки:
  1. Document verification - загрузка фото документа (паспорт, ID, водительское удостоверение), OCR-извлечение данных, проверка MRZ-зоны и визуальных признаков подлинности.
  2. Liveness verification - определение, что перед камерой живой человек, а не фотография, видеозапись или маска.
  3. Face matching - сопоставление лица с селфи/видео с фотографией на документе.
Каждая проверка - отдельная точка отказа. По данным исследования World Economic Forum «Unmasking Cybercrime: Strengthening Digital Identity Verification against Deepfakes» (2025), из 17 протестированных инструментов face-swap и 8 инструментов инъекции через камеру большинство обошли стандартные биометрические проверки при онбординге. Для успешного обхода KYC атакующему нужно пройти все три проверки, но каждую можно атаковать независимо. Слабость одного слоя тянет вниз весь пайплайн - особенно если fallback-логика при сбое одного слоя ослабляет требования к остальным.

На практике это значит: тестируйте каждый слой изолированно. Документ проверяет один сервис, liveness - другой, face matching - третий. Разные модели, разные слабости, разные эксплойты.

Три вектора атак на KYC-системы​

Синтетическая идентичность и поддельные документы

Синтетическая идентичность - цифровая личность, которой не соответствует ни один реальный человек. Атакующий генерирует фотореалистичное лицо через StyleGAN или Stable Diffusion, а затем встраивает его в шаблон документа. На выходе - паспорт или ID-карта человека, который физически не существует. Reverse image search ничего не найдёт, watchlist-проверки не сработают.

По данным Deloitte Center for Financial Services, потери от мошенничества с генеративным AI в США могут вырасти с 12,3 млрд долларов в 2023 году до 40 млрд к 2027-му, и синтетическая идентичность - один из главных драйверов этого роста.

Attack chain на практике:
  1. Генерация лица через StyleGAN или аналоги - лицо не принадлежит реальному человеку, reverse image search бесполезен.
  2. Встраивание в шаблон документа - структура, типографика, MRZ-данные соответствуют стандартам, OCR-проверка проходит чисто.
  3. Манипуляция метаданными EXIF - удаление или подмена информации о камере, GPS, timestamp, чтобы снимок «документа» выглядел как фото с телефона, а не скриншот из Photoshop.
Лично у меня на тестах ряд верификационных сервисов не проверял consistency EXIF-метаданных - можно подать «фото паспорта», якобы снятое на iPhone, но с разрешением и compression-артефактами, нетипичными для мобильной камеры, и проверка всё равно проходит. Document verification опирается только на визуальный слой, без анализа метаданных.

По MITRE ATT&CK этот вектор маппится на: , Reconnaissance) - на этапе сбора шаблонов документов и образцов лиц, Artificial Intelligence (T1588.007, Resource Development) - при использовании генеративных моделей для создания синтетических артефактов.

Face swap и инъекция через виртуальную камеру​

Основной вектор атаки на Identity Verification системы - и самый недооценённый. По данным DuckDuckGoose (со ссылкой на FF News, февраль 2025), дипфейки составляют 6,5% всех попыток мошенничества с поддельной идентичностью в европейских финансовых институтах - рост на 2137% за три года. Не опечатка - две тысячи процентов.

Механика атаки:
  1. Атакующий берёт целевое лицо (из украденного документа, соцсетей, или сгенерированное).
  2. Через DeepFaceLab или SimSwap создаёт real-time face swap - своё лицо перед вебкамерой заменяется на целевое.
  3. Через драйвер виртуальной камеры (OBS Virtual Camera, ManyCam или специализированное ПО) подменённый видеопоток подаётся в браузер или мобильное приложение KYC-сервиса.
1776177106440.webp


Liveness detection видит лицо, которое двигается, моргает, реагирует на промпты - и пропускает. Система работает ровно так, как задумана: подтверждает, что перед камерой живой человек. Проблема в том, что лицо этого человека - синтетическое.

Вот где проходит критическая граница: liveness detection отвечает на вопрос «есть ли живой человек перед камерой?», но не на вопрос «это лицо настоящее?». По результатам опроса на вебинаре Biometric Update (2025), 42% организаций полагаются именно на liveness detection как на основную защиту от дипфейков - при том, что liveness физически не способна детектировать injection-атаки. Это как ставить замок на дверь, когда вор лезет через окно.

Готовые deepfake-as-a-service инструменты доступны за 10–50 долларов, а готовые синтетические идентичности продаются на криминальных маркетплейсах менее чем за 15 долларов (Biometric Update, 2025). По данным Kaspersky (со ссылкой на отчёт Sensity), исследователи насчитали 47 специализированных инструментов, изначально заточенных под обход KYC-верификации. Не абстрактные face-swap утилиты - целевые решения для прохождения конкретных проверок.

Воспроизведение injection-атаки в контролируемой среде:
Bash:
# Пример настройки виртуальной камеры через OBS и ffmpeg
# для подачи предварительно подготовленного видеопотока
# (только для авторизованного тестирования)

# 1. Создание loopback-устройства виртуальной камеры (Linux)
# На macOS/Windows используйте OBS Virtual Camera; на Windows также ManyCam
sudo modprobe v4l2loopback devices=1 video_nr=10 card_label="VirtualCam" exclusive_caps=1

# 2. Подача видеофайла на виртуальную камеру через ffmpeg
ffmpeg -stream_loop -1 -re -i deepfake_test_video.mp4 \
  -vf "format=yuv420p" -video_size 1280x720 -f v4l2 /dev/video10

# 3. Теперь /dev/video10 отображается как обычная веб-камера
# в любом браузере или приложении
# NB: Chrome/Chromium требует exclusive_caps=1 при загрузке v4l2loopback,
# иначе устройство не будет обнаружено браузером.
# Примечание: пример для Linux. На macOS используйте OBS Virtual Camera
# (встроенная функция OBS Studio). На Windows - OBS Virtual Camera или ManyCam.
# Принцип тот же: видеофайл подаётся на виртуальное устройство камеры,
# которое браузер видит как физическую веб-камеру.
Браузер видит /dev/video10 как стандартную камеру. KYC-сервис получает видеопоток без каких-либо маркеров того, что источник - не физическое устройство. Ряд продвинутых сервисов проверяет User-Agent и WebRTC-fingerprint, чтобы определить использование виртуальной камеры, - но при перехвате запросов через Burp Suite эти параметры подменяются за минуту.

Атаки на уровне API верификационных сервисов​

Наименее освещённый в русскоязычных источниках вектор - и при этом самый опасный. Многие KYC-провайдеры предоставляют API-endpoints, куда клиентское приложение отправляет изображения и видео для верификации. Перехватываешь трафик - подменяешь медиаконтент до того, как он попадёт на сервер верификации.

Типичная attack chain:
  1. Перехват запроса через Burp Suite или mitmproxy при прохождении KYC в мобильном или веб-приложении.
  2. Анализ структуры API-запроса - обычно multipart/form-data с JPEG/PNG или base64-encoded видео.
  3. Подмена тела запроса: замена реального селфи на заранее подготовленный дипфейк, замена фото документа на синтетический документ.
  4. Отправка модифицированного запроса - сервер верификации получает поддельные данные и не может определить, что они были подменены на транспортном уровне.
Python:
# Пример перехвата и модификации API-запроса к KYC-сервису
# через mitmproxy (только для авторизованного тестирования)

from mitmproxy import http
import base64

FAKE_SELFIE_PATH = "/path/to/deepfake_selfie.jpg"

def request(flow: http.HTTPFlow) -> None:
    # Логирование эндпоинтов верификации
    if "verify" in flow.request.pretty_url or "liveness" in flow.request.pretty_url:
        print(f"[KYC Intercept] {flow.request.method} {flow.request.pretty_url}")
        print(f"[KYC Intercept] Content-Type: {flow.request.headers.get('content-type', 'N/A')}")

    # Подмена изображения селфи в API-запросе
    # Требует проверки конкретного формата API целевого сервиса
    if "selfie" in flow.request.pretty_url:
        with open(FAKE_SELFIE_PATH, "rb") as f:
            fake_data = f.read()
        # Для multipart/form-data (наиболее частый случай в KYC API):
        if flow.request.multipart_form:
            # NB: multipart_form - read-only view в mitmproxy 9+.
            # Для модификации пересобираем тело вручную:
            import re
            content_type = flow.request.headers.get("content-type", "")
            boundary = re.search(r'boundary=([^;\s]+)', content_type)
            if boundary:
                boundary_str = boundary.group(1)
                # Заменяем содержимое part с именем selfie_image
                parts = flow.request.content.split(b"--" + boundary_str.encode())
                new_parts = []
                for part in parts:
                    if b"selfie_image" in part:
                        header, _ = part.split(b"\r\n\r\n", 1)
                        part = header + b"\r\n\r\n" + fake_data + b"\r\n"
                    new_parts.append(part)
                flow.request.content = (b"--" + boundary_str.encode()).join(new_parts)
        else:
            # Простой случай (raw body):
            flow.request.content = fake_data
        # NB: многие KYC API включают HMAC/подпись payload -
        # простая подмена не пройдёт серверную валидацию без реверса логики подписи из SDK
        print(f"[KYC Inject] Replaced selfie payload, size: {len(fake_data)} bytes")
На тестах я обнаруживал, что некоторые провайдеры не используют certificate pinning в мобильных SDK - трафик проксируется тривиально. Другие не валидируют целостность медиаданных на серверной стороне: принимают любое изображение, прошедшее через клиентский SDK, без проверки подлинности источника. Просто подставляешь свой JPEG - и сервер жуёт.

ATT&CK не содержит техники, точно описывающей injection синтетического медиапотока в верификационный пайплайн. Ближайшие аналогии: T1656 (Impersonation, Defense Evasion) для социального аспекта выдачи себя за другого, T1557 ( / Collection) для перехвата и модификации трафика при API-инъекции. Полученный после успешной верификации аккаунт классифицируется как Create Account (T1136, Persistence). ATT&CK не содержит точного маппинга для мошеннической регистрации через KYC, T1136 - ближайшая аналогия.

Социальная инженерия KYC: атаки на человеческий фактор​

Не все атаки на KYC - технические. Социальная инженерия KYC эксплуатирует людей на обоих концах процесса: и тех, кто проходит верификацию, и тех, кто её проводит.

Атака на «донора» идентичности. По данным 404 Media (описано в отчёте Kaspersky), существуют подпольные платформы, скупающие фото и видео реальных людей из неблагополучных стран за 5–20 долларов. Коллекции включают снимки в разной одежде, с белой карточкой и чистым листом бумаги в руках - подложки, на которые потом монтируется ID-документ. Готовый набор для покупателя стоит около 30 долларов. На площадках есть рейтинги «свежести»: чем реже набор покупался, тем выше шанс обойти антифрод. Целый маркетплейс с отзывами - как Авито, только для краденых лиц.

Это техника Phishing for Information (T1598, Reconnaissance) - сбор идентификационных данных жертвы через обман или за минимальное вознаграждение. Также релевантна Gather Victim Identity Information (T1589) - целенаправленный сбор биометрических данных.

Атака на оператора комплаенса. При ручной проверке KYC (которая до сих пор работает как fallback при спорных результатах автоматики) атакующий может использовать Phishing (T1566, Initial Access) - отправить фишинговое письмо оператору от имени «клиента, у которого не проходит верификация», с вложением, содержащим малварь.

Голосовой дипфейк в колл-центре. По данным IBM, колл-центры крупных банков «захлёбываются» от звонков с voice cloning - клонированием голоса для доступа к аккаунтам и инициирования мошеннических транзакций. Задокументированный кейс: атака на Retool (август 2023) через SMS-фишинг и voice cloning для обхода Okta MFA привела к компрометации внутренних систем, криптовалютный клиент Fortress Trust потерял 15 миллионов долларов. Атака была направлена на аутентификацию сотрудника, а не на KYC-онбординг, но она показывает эффективность voice cloning для обхода голосовой верификации - техники, применимой и к KYC-процессам в колл-центрах банков.

Обход liveness detection: практический разбор​

Liveness detection - последний рубеж обороны eKYC, и именно здесь проходит основная линия фронта. Три уровня обхода.

Passive liveness - анализ одного кадра или короткого видео без активных промптов. Обходится тривиально: статичный дипфейк-снимок высокого качества или предзаписанное видео через виртуальную камеру. Между январём и августом 2025 года один финансовый институт зафиксировал более 8000 попыток обойти liveness-проверки при KYC для кредитных заявок с AI-сгенерированными дипфейк-изображениями (Biometric Update).

Active liveness - система просит повернуть голову, моргнуть, улыбнуться. Real-time face swap через DeepFaceLab транслирует эти движения на синтетическое лицо. Если temporal consistency (согласованность между кадрами) не проверяется - проверка пройдена. На моих тестах некоторые active liveness системы анализировали только отдельные кадры, а не видеопоследовательность целиком - артефакты face swap, заметные при анализе межкадровых переходов, при покадровой проверке оставались невидимыми. Покадровый анализ - это как проверять подпись, глядя на каждую букву отдельно и не читая слово целиком.

3D liveness - анализ глубины через структурированный свет или ToF-сенсор (Face ID на iPhone, например). Тут существенно сложнее: дипфейк - это 2D-проекция. Injection-атака через виртуальную камеру подменяет только RGB-поток и не может имитировать данные с аппаратного сенсора глубины. Однако если KYC-приложение не требует обязательного наличия depth-сенсора (например, через веб-браузер или на устройствах без ToF/structured light), система может откатиться к 2D-проверке, которая уязвима к injection. Тестирование fallback-логики - обязательная часть пентеста KYC-систем. Именно в fallback обычно и живут самые жирные баги.

Маппинг полной kill chain на MITRE ATT&CK​

Для системного описания атаки на KYC полезно видеть весь путь через тактики MITRE ATT&CK:

Этап kill chainТехника MITRE ATT&CKТактикаОписание в контексте KYC
Сбор шаблонов документов и фото жертвGather Victim Identity Information (T1589)ReconnaissanceПокупка «наборов» на подпольных площадках, парсинг соцсетей
Фишинг для получения доп. данныхPhishing for Information (T1598)ReconnaissanceВыманивание селфи с документом через фейковые сервисы
Подготовка deepfake-инструментовArtificial Intelligence (T1588.007)Resource DevelopmentНастройка DeepFaceLab, SimSwap, генерация синтетических лиц
Подмена видеопотока или API-запросаНет точного маппинга-ATT&CK не содержит техники, точно описывающей injection синтетического медиапотока в верификационный пайплайн. Ближайшие аналогии: T1656 (Impersonation) для социального аспекта выдачи себя за другого, T1557 (Adversary-in-the-Middle) для перехвата и модификации трафика при API-инъекции
Получение верифицированного аккаунта )PersistenceСоздание аккаунта в банке или на криптобирже на синтетическую личность. T1136 описывает создание аккаунтов в контексте persistence; ATT&CK не содержит точного маппинга для мошеннической регистрации через KYC
Доступ к финансовым операциямFinancial Theft (T1657)ImpactИспользование полученного аккаунта для мошеннических транзакций и отмывания

Практика: чек-лист тестирования KYC-пайплайна​

Если вы проводите пентест системы с KYC-верификацией - вот пошаговый подход, который я использую на реальных проектах.
📚 Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Биометрическая верификация: уязвимости и рекомендации по защите​

По результатам десятков тестов KYC-систем - вот что реально работает в защите, а что нет.

Что не работает:
  • Passive liveness как единственный барьер - обходится предзаписанным видео в большинстве протестированных мной реализаций.
  • Проверка документа только через OCR и визуальный анализ без верификации метаданных.
  • Отсутствие certificate pinning в мобильном SDK - открывает путь для API-инъекции.
Что реально усложняет жизнь атакующему:

Dedicated deepfake detection layer - отдельная модель, анализирующая частотные паттерны GAN-артефактов, boundary artifacts на линии роста волос и краях кожи. Этот слой работает после liveness, на тех же кадрах, и ловит то, что liveness пропускает.

Device integrity checks - проверка, что видеопоток приходит с реального устройства, а не с виртуальной камеры. WebRTC fingerprinting, анализ драйверов камеры, проверка цепочки доверия устройства.

Cryptographic binding - привязка медиаданных к конкретной сессии и устройству через подпись на уровне SDK. Делает бессмысленной подмену payload в трафике - если не отреверсишь логику подписи.

Behavioral biometrics - анализ микродвижений, скорости реакции на промпты, паттернов взаимодействия с устройством. Синтетический поток не воспроизводит уникальную моторику конкретного человека. Пока что это самый неприятный слой для атакующего.

По данным Signicat, 42,5% попыток мошенничества уже используют AI, и 29% таких атак успешно проходят защиту. Почти треть. По оценке IBM, стоимость генерации одного deepfake-изображения может составлять от 1,33 доллара - а ожидаемый глобальный ущерб от дипфейк-мошенничества оценивается в 1 триллион долларов. Соотношение вложений к профиту у атакующих - астрономическое.

Заключение: KYC как поверхность атаки требует переосмысления​

eKYC-пайплайны проектировались для мира, где лицо на экране принадлежит человеку, который держит телефон. Этот мир больше не существует. Инъекционные атаки через виртуальные камеры, синтетические идентичности на основе генеративного AI и commoditized deepfake-инструменты за десятки долларов превратили обход KYC верификации из теоретической угрозы в промышленный процесс.

Для пентестеров: включайте тестирование KYC-пайплайна в скоуп любого проекта, где есть удалённая идентификация. Три вектора - document verification, liveness bypass, API injection - проверяйте отдельно. Используйте MITRE ATT&CK для структурирования отчётов: заказчику понятнее, когда вы показываете полную kill chain от T1589 до T1136, а не набор разрозненных находок.

Для защитников: liveness detection не равно deepfake detection - это разные слои, решающие разные задачи. Если ваш стек не включает выделенный слой media forensics для обнаружения синтетических артефактов - вы защищаетесь от атак вчерашнего дня. Возьмите чек-лист из раздела выше, прогоните свой пайплайн по шести шагам и посмотрите, на каком этапе он сломается.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab