Выводы и условия принятия решения

  • Сначала проведите инвентаризацию моделей, сред выполнения вывода, логики пред- и постобработки, шаблонов промптов, учетных данных API, кэшей, логов и серверных ресурсов по отдельности.
  • Шифрование файлов защищает этап статического хранения; однако состояние среды выполнения после загрузки, вызовы API и выходные данные требуют отдельных механизмов контроля.
  • Долгоживущие ключи API с высокими привилегиями не должны храниться как клиентские секреты. Отдавайте приоритет серверным прокси, короткоживущим токенам, принципу наименьших привилегий и стратегиям отзыва доступа.
  • Play Integrity и App Attest предоставляют доказательства подлинности экземпляров приложения или сред выполнения, но окончательная авторизация и устранение рисков остаются на стороне сервера.

Декомпозиция мобильных AI-приложений на семь классов активов

Безопасность мобильных AI-приложений часто упрощается до вопроса наличия шифрования модели. В действительности поверхность атаки включает как минимум файлы моделей, среды выполнения вывода, предварительную обработку входных данных, постобработку выходных данных, промпты или бизнес-правила, учетные данные удаленного API, пользовательские данные и логи. Каждый класс активов несет различные последствия при утечке, имеет отличные механизмы обновления и отдельные зоны ответственности.

Копирование весов модели может привести к краже интеллектуальной собственности и потере бизнес-возможностей; изменение шаблонов промптов или логики постобработки может исказить бизнес-поведение; утечка долгоживущих ключей API может напрямую привести к финансовым потерям, несанкционированному доступу к данным или злоупотреблению ресурсами; логи ввода/вывода могут содержать конфиденциальные пользовательские данные. Защита только файла модели не покрывает эти остающиеся риски.

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

Активы мобильных AI-приложений и основные меры контроля
АктивОсновной рискПриоритетный контрольНе может быть заменено
Файлы моделейКопирование, статический анализ, подмена версийКонтролируемая доставка, защита файлов, проверки целостности и сопряжение версийАвторизация через API
Среда выполнения выводаИнъекции, отладка, инспекция памяти, риски зависимостейУпрочнение приложения (application hardening), управление зависимостями, валидация аномалий и совместимостиТолько шифрованием файлов моделей
Логика пред- и постобработкиОбратная разработка правил или их модификацияЗащита критических путей, серверная верификация и регрессионное тестирование (regression testing)Защитой весов модели
Учетные данные APIЗлоупотребления, превышение затрат и эскалация привилегий доступа к даннымСерверный прокси, короткоживущие токены, ограничение привилегий и ротацияОбфускацией кода или шифрованием модели
Пользовательский ввод/выводУтечка конфиденциальности, атаки инъекциями, эхо чувствительных данныхМинимальный сбор, фильтрация, маскирование и контроль доступаОбщими заявлениями о шифровании устройства
Логи и кэшиДолгосрочное хранение чувствительных материаловКлассификация, маскирование, истечение срока действия и контролируемый экспортОтключением единственного переключателя отладки
Серверные ресурсыНесанкционированные вызовы и автоматизированное злоупотреблениеПолитики учетных записей, квоты, поведенческий анализ, версионирование и стратегии обеспечения целостностиСамостоятельно сообщаемым клиентом уровнем доверия

Файлы моделей должны становиться рабочим материалом во время выполнения

Независимо от того, используется ли Core ML, LiteRT или другие локальные среды выполнения, модели должны быть загружены, проанализированы и задействованы в вычислениях. Шифрование на уровне файлов усложняет прямое копирование из установочных пакетов или каталогов приложений, но не может предотвратить доступ работающего приложения к материалам модели. Если злоумышленник контролирует процесс или наблюдает за средой выполнения, вектор угрозы смещается от статических файлов к этапам загрузки, памяти, вызовам функций и выходным данным.

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

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

Цели контроля на протяжении всего жизненного цикла модели
ЭтапПоверхность воздействияФокус контроляВопросы для валидации
Сборка и упаковкаРепозитории, конвейеры CI, установочные пакеты и каталоги ресурсовКонтроль доступа, изоляция ключей, защита файлов и идентификация артефактовКакие модели и конфигурации входят в финальный пакет?
Загрузка и обновлениеСеть, кэш и переключение версийЗащита передачи, проверка подписи или целостности, атомарная замена и откатПриведут ли аномальные обновления к загрузке несовместимых моделей?
Загрузка и инференсПамять процесса, интерфейсы среды выполнения и аппаратные бэкендыЗащита среды выполнения, минимальное время пребывания в памяти, обработка исключений и совместимостьКогда модель становится доступной и как сбой останавливает выполнение?
Вывод данных и логированиеРезультаты, оценки достоверности, отладочная информация и пользовательские данныеМинимизация вывода, маскирование, контроль доступа и срок действияУтекают ли через логи детали модели или конфиденциальные пользовательские данные?

Долгосрочные API-ключи с высокими привилегиями не должны быть клиентскими секретами

Документация по безопасности Android прямо указывает, что API-ключи, внедренные в исходный код, могут быть обнаружены посредством дизассемблирования после компиляции приложения. Обфускация и упрочнение приложения (application hardening) могут повысить затраты на их поиск, но не изменят тот факт, что клиент должен хранить и использовать эти учетные данные. Пока ключ остается долгосрочным и высокопривилегированным в универсальном клиенте, последствия его утечки трудно ограничить.

Android Keystore может гарантировать неудаляемость определенных ключевых материалов, однако официальная документация уточняет: если процесс приложения скомпрометирован, злоумышленники все еще могут использовать ключи приложения для выполнения операций. Этот механизм подходит для защиты привязанных к устройству закрытых ключей и локального шифрования, но его не следует ошибочно трактовать как защищенное хранилище для произвольных долгосрочных общих секретов удаленных сервисов.

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

  • Изолировать учетные данные по средам разработки, тестирования и промышленной эксплуатации
  • Гарантировать, что токены обладают минимальными правами доступа к моделям и данным
  • Включить отзыв на стороне сервера и обеспечить соблюдение квот и ограничений частоты запросов
  • Предотвратить хранение клиентами долгосрочных общих ключей с высокими привилегиями
Публичный псевдокод для принятия решений о токенах на стороне сервера
request = verify_user_session(input.session)
app = verify_app_evidence(input.attestation)
policy = load_policy(user=request.user, app=app.identity)

if policy.version_state == UNKNOWN:
    return CHALLENGE_OR_LIMIT
if policy.account_scope.allows(input.model_scope) == false:
    return DENY
if policy.risk_score >= HIGH:
    return STEP_UP_VERIFICATION

return issue_short_lived_token(
    scope=input.model_scope,
    quota=policy.quota,
    expires_in=policy.short_window
)

Сигналы целостности должны использоваться только для принятия решений на стороне сервера

Play Integrity предоставляет бэкендам Android сигналы об идентификации приложения, целостности устройства, лицензировании аккаунта и частичных рисках окружения. Apple App Attest помогает серверу определить, исходит ли запрос от валидного экземпляра приложения, генерируя ключи устройства, выдавая одноразовые челленджи, проверяя аттестацию на сервере и обрабатывая последующие утверждения. Общим является то, что доказательства в конечном итоге проверяются сервером.

Эти механизмы имеют четкие границы. Сигналы Play зависят от источников дистрибуции, статуса устройства и условий работы сервисов; документация Apple указывает, что App Attest поддерживается не на всех типах устройств и ни одна политика не устраняет мошенничество полностью. Сервер должен различать состояния успеха, неудачи, недоступности, временных ошибок и несконфигурированности. Он не должен приравнивать «недоступность» напрямую к атаке и не должен выполнять окончательные суждения локально на клиенте.

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

Разделение обязанностей: от сигналов к решениям
УровеньЧто предоставляетсяКто выполняет валидациюТипичное неправильное использование
Защита файлов моделейСопротивление доступу к статическому хранилищу и подменеКлиент и цепочка доставкиРассмотрение шифрования файлов как авторизации API
Play IntegrityСигналы, связанные с приложениями Android, устройствами, аккаунтами и окружениемСерверная сторонаВозврат клиентом доверенного булева значения самостоятельно
App AttestАттестация и утверждения для ключей экземпляров приложений AppleСерверная сторонаИгнорирование челленджей, счетчиков или неподдерживаемых устройств
Политики аккаунтов и бизнесаВозможность доступа пользователя к конкретным моделям, данным и квотамСерверная сторонаОпора исключительно на сигналы устройства при игнорировании прав пользователя
Контроль поведенческих рисковОграничение частоты запросов, обнаружение повторных отправок, предотвращение массовых злоупотреблений и выявление аномального контекстаСерверная сторонаПредоставление постоянного доверия после единственного успешного прохождения

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

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

Тестирование должно использовать уникальные release candidate и явные версии моделей, документируя целевые системы, возможности устройств, рантайм-бэкенды, источники моделей и состояния обновлений. Производительность инференса on-device, использование памяти и совместимость зависят от структуры модели, квантования, аппаратного обеспечения и рантайма; цифры от других моделей или устройств цитировать нельзя.

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

Матрица валидации безопасности мобильных AI-приложений
Поверхность доказательствСодержание проверкиУсловия прохожденияГраницы вывода
Установочный пакет (статика)Модели, ключи, конфигурации, маркеры логов и отладочные ресурсыОтсутствие долгоживущих секретов с высокими привилегиями; доставка моделей соответствует проектуНе может доказать, что рантайм ненаблюдаем
Рантайм моделиЗагрузка, жизненный цикл памяти, ошибки, производительность и откатСтабильная работа на целевых устройствах с безопасной обработкой исключенийНе может доказать корректность серверной авторизации
Сеть и учетные данныеВалидность токенов, права доступа, ротация, защита от повторов и политики сертификатовМинимальные привилегии и возможность отзываНе может доказать защищенность файлов моделей
Серверные политикиУчетные записи, версии, целостность, квоты и поведениеРесурсы высокого риска, окончательный статус которых определяет серверНельзя считать сигналы отдельной платформы абсолютно доверенными
Конфиденциальность и журналыВвод/вывод, кэши, диагностика и экспорт данныхМинимальный сбор, маскирование и возможность удаления по истечении срокаТребуется сочетание с требованиями классификации бизнес-данных

Выводы по архитектуре и ограничения области применения

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

Без актуальных кандидатов на выпуск (release candidates), версий моделей, целевых устройств и серверных интерфейсов возможна только проверка архитектуры и ожидание результатов валидации. Мы не можем утверждать, что модели защищены от извлечения, интерфейсы устойчивы к злоупотреблениям, внедрение кода во время выполнения заблокировано или целевые показатели производительности достигнуты. Любые такие выводы требуют предоставления актуальных пакетов доказательств.

Точка входа для услуг Yudun на этой странице предназначена для подачи заявки на упрочнение приложений (application hardening) и оценку совместимости; она не означает валидацию какого-либо конкретного фреймворка моделей или возможностей, эксклюзивных для ИИ. Область проекта должна быть подтверждена отдельно после предоставления стека технологий, способа доставки модели и критических бизнес-сценариев.

  • Вести раздельные реестры для моделей, сред выполнения, учетных данных и данных
  • Обеспечить финальную авторизацию вызовов высокого риска на стороне сервера
  • Предусмотреть пути обработки недоступности и деградации функциональности для сигналов платформы
  • Реализовать поддержку обновлений моделей с возможностью верификации, атомарного переключения и отката
  • Привязать все выводы к конкретным кандидатам на выпуск и версиям моделей

Доказательства и границы применимости

В этом разделе разделены документированные факты о платформе, инженерные решения и ограничения, которые нельзя обобщить как непроверенные заявления о продукте.

Решение по статьеФакт или инженерная основаПредел применимости
API-ключи, скомпилированные в клиентское приложение, могут быть обнаружены посредством дизассемблирования.Официальный контрольный список безопасности Android прямо указывает, что при наличии API-ключей в исходном коде злоумышленники могут дизассемблировать приложение и locate эти ресурсы.Некоторые низкопривилегированные ключи с ограничениями платформы могут размещаться на клиенте согласно правилам вендора, однако ограничение области действия и мониторинг остаются необходимыми.
Android Keystore не может предотвратить использование ключей скомпрометированным процессом.Официальная документация Android гласит, что хотя материал ключа может оставаться неэкспортируемым, злоумышленники все равно могут использовать ключи приложения, если процесс приложения скомпрометирован.Конкретные возможности защиты зависят от способа использования ключа, аппаратной поддержки, ограничений аутентификации и деталей реализации.
Аттестации и утверждения App Attest должны проверяться на сервере.Официальный рабочий процесс Yudun использует вызовы на стороне сервера, верификацию аттестации, хранение публичных ключей и последующие счетчики утверждений.Поддерживаются не все типы устройств, и Apple прямо заявляет, что ни одна политика не устраняет мошенничество полностью.
Защита файлов моделей не может заменить авторизацию ресурсов на стороне сервера.Эти механизмы защищают разные объекты: первый ориентирован на клиентские файлы и материалы времени выполнения, второй - на права доступа к учетным записям, моделям, данным и квотам.Это суждение об архитектурной ответственности, которое не подразумевает, что какая-либо конкретная реализация шифрования моделей прошла валидацию.
Выводы о производительности и совместимости моделей на устройстве (on-device) должны быть привязаны к конкретным моделям и устройствам.На результаты совместно влияют структура модели, метод квантования, среда выполнения, аппаратный бэкенд, версия системы и масштаб входных данных.Данная статья не предоставляет и не подразумевает никаких цифр производительности для моделей Yudun.

Инженерные вопросы

Модель уже зашифрована; почему я все еще не могу разместить API-ключ в приложении?

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

Является ли хранение API-ключа в Android Keystore абсолютно безопасным?

Keystore снижает риск экспорта ключевых материалов, однако скомпрометированный процесс приложения всё ещё может инициировать использование ключа. Этот механизм лучше подходит для операций, привязанных к устройству, и не заменяет принцип минимальных привилегий на стороне сервера и использование краткосрочных токенов.

Можно ли считать устройства постоянно доверенными после успешного прохождения проверок Play Integrity или App Attest?

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

Требуется ли перенос моделей с устройства на сервер?

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

Какие оценки можно провести без образцов модели?

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

Хотите протестировать это в своем собственном приложении?

Отправьте кандидата на выпуск, целевые системы и критические бизнес-пути для проверки подлинности Yudun и оценки совместимости.

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