Conclusões e condições de decisão
- Primeiro, faça um inventário separado de modelos, tempos de execução de inferência, lógica de pré/pós-processamento, modelos de prompt, credenciais de API, caches, logs e recursos no lado do servidor.
- A criptografia de arquivo protege a fase de armazenamento estático; contudo, o estado de execução após o carregamento, as invocações de API e as saídas exigem controles separados.
- Chaves de API de alto privilégio e longa duração não devem residir como segredos no cliente. Priorize proxies no lado do servidor, tokens de curta duração, privilégio mínimo e estratégias revogáveis.
- O Play Integrity e o App Attest fornecem evidências de instâncias ou ambientes de aplicação, mas a autorização final e a remediação de riscos permanecem no servidor.
Deconstrua Aplicações Móveis de IA em Sete Classes de Ativos
A segurança de IA móvel é frequentemente simplificada excessivamente para saber se o modelo está criptografado. Na realidade, a superfície de ataque inclui pelo menos arquivos de modelo, tempos de execução de inferência, pré-processamento de entrada, pós-processamento de saída, prompts ou regras de negócios, credenciais de API remotas, dados de usuário e logs. Cada classe de ativo carrega consequências diferentes em caso de vazamento, mecanismos de atualização distintos e responsabilidades de propriedade separadas.
Copiar pesos de modelo pode levar ao roubo de propriedade intelectual e perda de capacidade de negócios; modificar modelos de prompt ou lógica de pós-processamento pode alterar o comportamento de negócios; vazar Chaves de API de longa duração pode resultar diretamente em perda financeira, acesso não autorizado a dados ou abuso de recursos; logs de entrada/saída podem conter dados de privacidade do usuário. Proteger apenas o arquivo de modelo falha em cobrir esses riscos restantes.
Um registro de ativos deve documentar localização de armazenamento, fonte de geração, caminho de transmissão, padrões de uso em tempo de execução, mecanismos de atualização e rollback, princípios de privilégio mínimo, escopo de log e períodos de retenção. Ativos sem um ciclo de vida definido não devem ser considerados protegidos apenas pela ativação de uma chave de criptografia.
| Ativo | Risco Primário | Controle Prioritário | Não Pode Ser Substituído Por |
|---|---|---|---|
| Arquivos de Modelo | Cópia, análise estática, substituição de versão | Entrega controlada, proteção de arquivo, verificações de integridade e pareamento de versão | Autorização de API |
| Tempo de Execução de Inferência | Injeção, depuração, inspeção de memória, riscos de dependência | Hardening de aplicação, governança de dependências, validação de anomalias e compatibilidade | Criptografar apenas arquivos de modelo |
| Lógica de Pré/Pós-Processamento | Reversão ou modificação de regras | Proteção de caminho crítico, verificação no lado do servidor e testes de regressão | Proteção de pesos de modelo |
| Credenciais de API | Abuso, estouro de custos e escalonamento de privilégios de dados | Proxy no lado do servidor, tokens de curta duração, restrição de privilégios e rotação | Ofuscação de código ou criptografia de modelo |
| Entrada/Saída do Usuário | Vazamento de privacidade, ataques de injeção, eco de dados sensíveis | Coleta mínima, filtragem, mascaramento e controle de acesso | Promessas genéricas de criptografia de dispositivo |
| Logs e Caches | Retenção de longo prazo de material sensível | Classificação, mascaramento, expiração e exportação controlada | Desativar uma única chave de depuração |
| Recursos no Lado do Servidor | Invocações não autorizadas e abuso automatizado | Políticas de conta, cotas, análise comportamental, versionamento e estratégias de integridade | Confiança autorrelatada no lado do cliente |
Arquivos de Modelo Devem Tornar-se Material Utilizável Durante a Execução
Seja usando Core ML, LiteRT ou outros runtimes no dispositivo, os modelos devem ser carregados, analisados e utilizados em computação. A criptografia em nível de arquivo reduz a conveniência da cópia direta a partir de pacotes de instalação ou diretórios do aplicativo, mas não impede que o aplicativo em execução acesse os materiais do modelo. Se um atacante controlar o processo ou observar o runtime, o risco muda de arquivos estáticos para carregamento, memória, invocações de função e saídas.
Isso não implica que a criptografia de modelos seja inútil. Ela eleva o custo de cópias de baixo esforço, impede a substituição direta e compõe uma estratégia de defesa em profundidade junto com proteção de pacote, verificações de integridade, detecção de ambiente de runtime e pareamento de versões. O essencial é apresentar o benefício como aumento do custo para o atacante e redução da superfície de exposição, em vez de afirmar que a extração é impossível.
Atualizações de modelo também introduzem desafios de compatibilidade. As versões do modelo devem ser pareadas com lógica de pré-processamento, formas de recursos, versões de runtime, capacidades de hardware e regras de pós-processamento. Falhas na atualização exigem rollbacks seguros para evitar combinações aleatórias de modelos antigos e lógica nova.
| Fase | Superfície de Exposição | Foco do Controle | Perguntas de Validação |
|---|---|---|---|
| Compilação e Empacotamento | Repositórios, pipelines de CI, pacotes de instalação e diretórios de recursos | Controle de acesso, isolamento de chaves, proteção de arquivos e identidade de artefatos | Quais modelos e configurações aparecem no pacote final? |
| Download e Atualização | Rede, cache e alternância de versões | Proteção de transmissão, assinatura ou verificações de integridade, substituição atômica e rollback | Atualizações anômalas carregarão modelos incompatíveis? |
| Carregamento e Inferência | Memória do processo, interfaces de runtime e backends de hardware | Proteção de runtime, residência mínima, tratamento de exceções e compatibilidade | Quando o modelo se torna disponível e como uma falha interrompe a execução? |
| Saída e Registro (Logging) | Resultados, pontuações de confiança, informações de depuração e dados do usuário | Saída mínima, mascaramento, controle de acesso e expiração | Os logs vazam detalhes do modelo ou informações sensíveis do usuário? |
Chaves de API de Alta Privilégio e Longa Duração Não Devem Ser Segredos no Cliente
A documentação de segurança do Android afirma explicitamente que Chaves de API incorporadas ao código-fonte podem ser descobertas via descompilação após a compilação do app. Ofuscação e aplicação de hardening podem aumentar o custo para localizá-las, mas não alteram o fato de que o cliente deve manter e usar essas credenciais. Enquanto uma chave permanecer de longa duração e altamente privilegiada dentro de um cliente genérico, o impacto de um vazamento será difícil de conter.
O Android Keystore pode manter certos materiais de chave não exportáveis, mas a documentação oficial esclarece que, se o processo do aplicativo for comprometido, os atacantes ainda poderão usar as chaves do app para realizar operações. Ele é adequado para proteger chaves privadas vinculadas ao dispositivo e criptografia local, mas não deve ser interpretado erroneamente como um cofre seguro para segredos compartilhados arbitrários de longa duração destinados a serviços remotos.
Uma arquitetura mais robusta exige que o cliente solicite tokens de curta duração, restritos e revogáveis de seu próprio serviço com base na identidade do usuário e no contexto do dispositivo, ou que um proxy no lado do servidor gerencie invocações de função de modelo de alto risco. O servidor deve impor autorização de conta, cotas, limitação de taxa, escopo do modelo, escopo de dados e monitoramento de comportamento anômalo.
- Isolar credenciais por ambientes de desenvolvimento, teste e produção
- Garantir que os tokens possuam permissões mínimas de modelo e dados
- Habilitar revogação no servidor e impor cotas e limites de taxa
- Impedir que clientes armazenem chaves compartilhadas de alta privilégio e longa duração
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
)Sinais de Integridade Devem Apenas Informar Decisões no Lado do Servidor
O Play Integrity fornece aos backends Android sinais sobre identificação do aplicativo, integridade do dispositivo, licenciamento de conta e riscos ambientais parciais. O App Attest da Apple ajuda o servidor a determinar se uma solicitação origina-se de uma instância válida do aplicativo, gerando chaves de dispositivo, emitindo desafios únicos, verificando a atestação no servidor e processando asserções subsequentes. O ponto em comum é que as evidências são validadas finalmente pelo servidor.
Esses mecanismos possuem limites claros. Os sinais relacionados ao Play são influenciados por fontes de distribuição, status do dispositivo e condições de serviço; a documentação da Apple observa que o App Attest não é suportado em todos os tipos de dispositivo e que nenhuma política única elimina toda fraude. O servidor deve distinguir entre estados de aprovação, falha, indisponibilidade, erros transitórios e não configurados. Não deve equiparar 'indisponível' diretamente a um ataque, nem realizar julgamentos finais localmente no cliente.
Sinais de integridade e criptografia de modelos abordam problemas diferentes. O primeiro ajuda a verificar instâncias do aplicativo e ambientes de execução, enquanto o segundo reduz a exposição estática do modelo. A autorização verdadeira ainda requer contexto de conta, verificações de recursos de negócio, validação de versão, análise de conteúdo da solicitação, aplicação de cota e contexto comportamental.
| Camada | O Que Fornece | Quem Valida | Uso Indevido Comum |
|---|---|---|---|
| Proteção de Arquivo de Modelo | Resistência ao acesso e substituição de armazenamento estático | Cliente e cadeia de entrega | Tratar criptografia de arquivo como autorização de API |
| Play Integrity | Sinais relacionados a aplicativos Android, dispositivos, contas e ambiente | Lado do servidor | Cliente retornar por si só um valor booleano confiável |
| App Attest | Atestação e asserção para chaves de instância de aplicativo Apple | Lado do servidor | Ignorar desafios, contadores ou dispositivos não suportados |
| Políticas de Conta e de Negócio | Se um usuário pode acessar modelos, dados e cotas específicos | Lado do servidor | Confiar apenas em sinais de dispositivo enquanto ignora permissões de usuário |
| Controle de Risco Comportamental | Limitação de taxa, detecção de replay, prevenção de abuso em massa e contexto anômalo | Lado do servidor | Conceder confiança permanente após uma única aprovação |
Validar Aplicações de IA Móvel Requer Visões Estáticas, de Tempo de Execução e do Lado do Servidor
Verificações estáticas respondem quais modelos, configurações, strings, credenciais e recursos de depuração existem no pacote de instalação; verificações de tempo de execução respondem como os modelos são carregados, como falhas são tratadas, se logs vazam dados e se atualizações podem ser revertidas; verificações do lado do servidor respondem se conta, versão, integridade, cota e permissões de dados são verdadeiramente aplicadas. A ausência de qualquer um desses três tipos de evidência viésa as conclusões para visões parciais.
Os testes devem usar candidatos a lançamento (release candidates) únicos e versões explícitas de modelo, documentando sistemas alvo, capacidades de dispositivo, backends de tempo de execução, fontes de modelo e estados de atualização. O desempenho de inferência on-device, uso de memória e compatibilidade dependem da estrutura do modelo, quantização, hardware e tempo de execução; números de outros modelos ou dispositivos não podem ser citados.
Caminhos de exceção são críticos: arquivos de modelo ausentes ou corrompidos, atualizações interrompidas, tempos de execução não suportados, tokens de servidor expirados, sinais de integridade indisponíveis, falhas no upload de logs e permissões de usuário revogadas. O sistema deve degradar-se com segurança, fornecendo estados recuperáveis tanto para usuários quanto para equipes de operações.
| Superfície de Evidência | Conteúdo da Verificação | Condições de Aprovação | Limites da Conclusão |
|---|---|---|---|
| Pacote de Instalação (Estático) | Modelos, chaves, configurações, marcadores de log e recursos de depuração | Nenhum segredo de alto privilégio de longa duração; entrega de modelo alinhada ao design | Não pode provar que o tempo de execução é inobservável |
| Tempo de Execução do Modelo | Carregamento, ciclo de vida de memória, erros, desempenho e reversão | Estável em dispositivos alvo com tratamento seguro de exceções | Não pode provar que a autorização do lado do servidor está correta |
| Rede e Credenciais | Validade de token, permissões, rotação, proteção contra replay e políticas de certificado | Privilégio mínimo e revogabilidade | Não pode provar que arquivos de modelo estão protegidos |
| Políticas do Lado do Servidor | Contas, versões, integridade, cotas e comportamento | Recursos de alto risco determinados finalmente pelo servidor | Não se pode tratar um único sinal da plataforma como absolutamente confiável |
| Privacidade e Logs | Entrada/saída, caches, diagnósticos e exportações | Coleta mínima, mascaramento e expirabilidade | Deve combinar com os requisitos de classificação de dados do negócio |
Conclusões de Design e Limitações de Escopo
A criptografia do modelo vale a pena, mas representa apenas um ponto de controle dentro do ciclo de vida do modelo. Aplicativos comerciais de IA também precisam proteger a lógica de pré/pós-processamento, impedir que chaves de alta privilégio de longa duração entrem no cliente, garantir que o servidor realize a autorização final, implementar tolerância a falhas para sinais de integridade da plataforma e governar dados e logs do usuário.
Sem release candidates reais, versões de modelo, dispositivos alvo e interfaces do lado do servidor, só podemos revisar a arquitetura e itens pendentes de validação. Não podemos afirmar que modelos são à prova de extração, interfaces são à prova de abuso, injeção em tempo de execução está bloqueada ou que metas de desempenho foram atingidas. Quaisquer tais conclusões exigem pacotes de evidências atuais.
O ponto de entrada de ação da Yudun nesta página destina-se à solicitação de application hardening e avaliação de compatibilidade; não representa validação de nenhum framework de modelo específico ou capacidade exclusiva de IA. O escopo do projeto deve ser confirmado separadamente após o envio da pilha tecnológica, método de entrega do modelo e caminhos críticos de negócio.
- Manter registros separados para modelos, tempos de execução, credenciais e dados
- Garantir que invocações de alto risco sejam finalmente autorizadas pelo servidor
- Fornecer caminhos de indisponibilidade e degradação para sinais da plataforma
- Habilitar atualizações de modelo para suportar verificação, troca atômica e rollback
- Vincular todas as conclusões a release candidates e versões de modelo específicas
Evidências e limites de aplicabilidade
Esta seção separa fatos documentados da plataforma, julgamento de engenharia e limites que não podem ser generalizados em declarações de produtos não verificadas.
| Julgamento do artigo | Fato ou base de engenharia | Limite de aplicabilidade |
|---|---|---|
| Chaves de API compiladas no cliente podem ser descobertas via descompilação. | A Lista de Verificação de Segurança Android oficial afirma explicitamente que, quando o código-fonte contém Chaves de API, atacantes podem descompilar o aplicativo e localizar esses recursos. | Algumas Chaves de baixo privilégio restritas pela plataforma podem residir no cliente conforme regras do fornecedor, mas restrição de escopo e monitoramento permanecem necessários. |
| O Android Keystore não pode impedir que um processo comprometido use chaves. | A documentação oficial do Android afirma que, embora o material da chave possa permanecer não exportável, atacantes ainda podem usar as chaves do aplicativo se o processo da aplicação for comprometido. | Capacidades de proteção específicas dependem do uso da chave, suporte de hardware, restrições de autenticação e detalhes de implementação. |
| Atestações e asserções do App Attest devem ser validadas no servidor. | O fluxo de trabalho oficial da Apple usa desafios do lado do servidor, verificação de atestação, armazenamento de chave pública e contadores de asserção subsequentes. | Nem todos os tipos de dispositivo são suportados, e a Apple afirma explicitamente que nenhuma política única elimina toda fraude. |
| A proteção de arquivos de modelo não pode substituir a autorização de recursos do lado do servidor. | Os dois protegem objetos diferentes: um visa arquivos do lado do cliente e materiais de tempo de execução, o outro visa permissões de conta, modelo, dados e cota. | Esta é uma avaliação de responsabilidade arquitetural e não implica que qualquer implementação específica de criptografia de modelo tenha passado pela validação. |
| Conclusões sobre desempenho e compatibilidade de modelo on-device devem ser vinculadas a modelos e dispositivos específicos. | Estrutura do modelo, método de quantização, tempo de execução, backend de hardware, versão do sistema e escala de entrada influenciam conjuntamente os resultados. | Este artigo fornece ou implica nenhuma figura de desempenho para modelos Yudun. |
Perguntas de engenharia
O modelo já está criptografado; por que ainda não posso colocar a Chave de API no app?
A criptografia do modelo protege arquivos de modelo, enquanto Chaves de API são credenciais para acessar recursos remotos. Quando o cliente deve usar a Chave, atacantes ainda podem obtê-la ou abusar dela através de observação estática ou em tempo de execução.
Armazenar a Chave de API no Android Keystore é absolutamente seguro?
O Keystore pode reduzir o risco de exportação de material de chave, mas um processo de aplicativo comprometido ainda pode invocar a chave. Ele é mais adequado para operações vinculadas ao dispositivo e não substitui o privilégio mínimo no lado do servidor nem tokens de curta duração.
Os dispositivos podem ser confiáveis permanentemente após aprovarem o Play Integrity ou o App Attest?
Não. Eles fornecem evidências para um momento e contexto específicos. O servidor ainda deve validar contas, solicitações, versões, cotas e comportamento, além de lidar com a indisponibilidade de sinais e mudanças de estado.
Os modelos no dispositivo devem ser migrados para o servidor?
Não necessariamente. Cenários offline, sensíveis à privacidade e de baixa latência podem exigir inferência no dispositivo. Os ativos devem ser organizados em camadas com base no valor e nas condições de negócio, mantendo permissões de alto risco e segredos de longa duração no servidor.
Quais avaliações podem ser realizadas sem amostras do modelo?
Podemos revisar ativos, cadeias de entrega, arquitetura de credenciais, estratégias de atualização e planos de validação, mas não podemos afirmar que a prevenção de extração de modelo, a proteção em tempo de execução ou a compatibilidade de desempenho foram aprovadas.
Quer testar isso em seu próprio aplicativo?
Envie o release candidate, os sistemas de destino e os caminhos críticos de negócios para um Yudun PoC e avaliação de compatibilidade.
Continuar com: Limites de segurança de tempo de execução para aplicativos móveis de IA