Выводы и условия принятия решения
- Сначала проведите инвентаризацию моделей, сред выполнения вывода, логики пред- и постобработки, шаблонов промптов, учетных данных API, кэшей, логов и серверных ресурсов по отдельности.
- Шифрование файлов защищает этап статического хранения; однако состояние среды выполнения после загрузки, вызовы API и выходные данные требуют отдельных механизмов контроля.
- Долгоживущие ключи API с высокими привилегиями не должны храниться как клиентские секреты. Отдавайте приоритет серверным прокси, короткоживущим токенам, принципу наименьших привилегий и стратегиям отзыва доступа.
- Play Integrity и App Attest предоставляют доказательства подлинности экземпляров приложения или сред выполнения, но окончательная авторизация и устранение рисков остаются на стороне сервера.
Декомпозиция мобильных AI-приложений на семь классов активов
Безопасность мобильных AI-приложений часто упрощается до вопроса наличия шифрования модели. В действительности поверхность атаки включает как минимум файлы моделей, среды выполнения вывода, предварительную обработку входных данных, постобработку выходных данных, промпты или бизнес-правила, учетные данные удаленного API, пользовательские данные и логи. Каждый класс активов несет различные последствия при утечке, имеет отличные механизмы обновления и отдельные зоны ответственности.
Копирование весов модели может привести к краже интеллектуальной собственности и потере бизнес-возможностей; изменение шаблонов промптов или логики постобработки может исказить бизнес-поведение; утечка долгоживущих ключей API может напрямую привести к финансовым потерям, несанкционированному доступу к данным или злоупотреблению ресурсами; логи ввода/вывода могут содержать конфиденциальные пользовательские данные. Защита только файла модели не покрывает эти остающиеся риски.
Реестр активов должен документировать местоположение хранения, источник генерации, путь передачи, паттерны использования в среде выполнения, механизмы обновления и отката, принципы наименьших привилегий, область логирования и сроки хранения. Активы без определенного жизненного цикла не следует считать защищенными исключительно путем включения переключателя шифрования.
| Актив | Основной риск | Приоритетный контроль | Не может быть заменено |
|---|---|---|---|
| Файлы моделей | Копирование, статический анализ, подмена версий | Контролируемая доставка, защита файлов, проверки целостности и сопряжение версий | Авторизация через 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, использование памяти и совместимость зависят от структуры модели, квантования, аппаратного обеспечения и рантайма; цифры от других моделей или устройств цитировать нельзя.
Пути обработки исключений критичны: отсутствующие или поврежденные файлы моделей, прерванные обновления, неподдерживаемые рантаймы, истекшие серверные токены, недоступные сигналы целостности, неудачные выгрузки логов и отозванные права пользователей. Система должна безопасно деградировать, обеспечивая восстанавливаемые состояния как для пользователей, так и для операционных команд.
| Поверхность доказательств | Содержание проверки | Условия прохождения | Границы вывода |
|---|---|---|---|
| Установочный пакет (статика) | Модели, ключи, конфигурации, маркеры логов и отладочные ресурсы | Отсутствие долгоживущих секретов с высокими привилегиями; доставка моделей соответствует проекту | Не может доказать, что рантайм ненаблюдаем |
| Рантайм модели | Загрузка, жизненный цикл памяти, ошибки, производительность и откат | Стабильная работа на целевых устройствах с безопасной обработкой исключений | Не может доказать корректность серверной авторизации |
| Сеть и учетные данные | Валидность токенов, права доступа, ротация, защита от повторов и политики сертификатов | Минимальные привилегии и возможность отзыва | Не может доказать защищенность файлов моделей |
| Серверные политики | Учетные записи, версии, целостность, квоты и поведение | Ресурсы высокого риска, окончательный статус которых определяет сервер | Нельзя считать сигналы отдельной платформы абсолютно доверенными |
| Конфиденциальность и журналы | Ввод/вывод, кэши, диагностика и экспорт данных | Минимальный сбор, маскирование и возможность удаления по истечении срока | Требуется сочетание с требованиями классификации бизнес-данных |
Выводы по архитектуре и ограничения области применения
Шифрование моделей целесообразно, но представляет лишь одну точку контроля в жизненном цикле модели. Коммерческим ИИ-приложениям также необходимо защищать логику пред- и постобработки, исключать попадание долгоживущих ключей с высокими привилегиями на клиент, обеспечивать финальную авторизацию на сервере, реализовывать отказоустойчивость при обработке сигналов целостности платформы и регулировать работу с пользовательскими данными и журналами.
Без актуальных кандидатов на выпуск (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 и оценки совместимости.