Sugestões para vulnerabilidades e proteção de modelos de Machine Learning



Recentemente, especialistas estão abordando cada vez mais a questão da segurança dos modelos de aprendizado de máquina e oferecem vários métodos de proteção. É hora de estudar em detalhes possíveis vulnerabilidades e defesas no contexto de sistemas de modelagem tradicionais populares, como modelos lineares e de árvore, treinados em conjuntos de dados estáticos. Embora o autor deste artigo não seja um especialista em segurança, ele segue de perto tópicos como depuração, explicações, justiça, interpretabilidade e privacidade no aprendizado de máquina.

Neste artigo, apresentamos vários vetores prováveis ​​de ataques a um sistema típico de aprendizado de máquina em uma organização típica, oferecemos soluções tentativas de proteção e consideramos alguns problemas comuns e as práticas mais promissoras.

1. Ataques de corrupção de dados


Distorção de dados significa que alguém altera sistematicamente os dados de treinamento para manipular as previsões do seu modelo (esses ataques também são chamados de ataques "causais"). Para distorcer os dados, um invasor deve ter acesso a alguns ou todos os seus dados de treinamento. E, na falta de controle adequado em muitas empresas, diferentes funcionários, consultores e contratados podem ter esse acesso. Um acesso não autorizado a alguns ou a todos os dados de treinamento também pode ser obtido por um invasor fora do perímetro de segurança.

Um ataque direto a dados corrompidos pode incluir alterações nos rótulos dos conjuntos de dados. Portanto, qualquer que seja o uso comercial do seu modelo, um invasor pode gerenciar suas previsões, por exemplo, alterando os rótulos para que seu modelo possa aprender a conceder grandes empréstimos, grandes descontos ou estabelecer pequenos prêmios de seguro para os invasores. Forçar um modelo a fazer previsões falsas no interesse de um invasor às vezes é chamado de violação da "integridade" do modelo.

Um invasor também pode usar corrupção de dados para treinar seu modelo com o objetivo de discriminar deliberadamente um grupo de pessoas, privando-o de um grande empréstimo, grandes descontos ou baixos prêmios de seguro aos quais tem direito. Na sua essência, esse ataque é semelhante ao DDoS. Forçar um modelo a fazer previsões falsas para prejudicar outras pessoas às vezes é chamado de violação da "acessibilidade" do modelo.

Embora possa parecer mais fácil distorcer os dados do que alterar os valores nas linhas existentes de um conjunto de dados, você também pode introduzir distorções adicionando colunas aparentemente inofensivas ou extras ao conjunto de dados. Os valores alterados nessas colunas podem fazer com que as previsões do modelo sejam alteradas.

Agora, vamos examinar algumas soluções de proteção e especialistas (forenses) possíveis em caso de corrupção de dados:

  • Análise de impacto diferenciado . Muitos bancos já estão realizando análises de impacto diferencial para empréstimos justos para determinar se seu modelo é discriminado por diferentes categorias de pessoas. No entanto, muitas outras organizações ainda não chegaram até agora. Existem várias ferramentas de código aberto excelentes para detectar discriminação e conduzir análises de impacto diferencial. Por exemplo, Aequitas, Themis e AIF360 .
  • Modelos justos ou privados . Modelos como aprender representações justas (LFR) e agregação privada de conjuntos de professores (PATE) tendem a prestar menos atenção às propriedades demográficas individuais ao gerar previsões. Além disso, esses modelos podem ser menos suscetíveis a ataques discriminatórios para distorcer os dados.
  • Rejeição por impacto negativo (RONI) . O RONI é um método de remover linhas de dados de um conjunto de dados que reduz a precisão da previsão. Para obter mais informações sobre o RONI, consulte a Seção 8, Segurança do aprendizado de máquina .
  • Análise residual . Pesquise padrões estranhos e perceptíveis nos resíduos das previsões do seu modelo, especialmente aqueles relacionados a funcionários, consultores ou contratados.
  • Auto-reflexão . Avalie modelos em seus funcionários, consultores e contratados para identificar previsões anormalmente favoráveis.

A análise de impacto diferenciado, a análise residual e a auto-reflexão podem ser realizadas durante o treinamento e no âmbito do monitoramento em tempo real dos modelos.

2. Ataques de marca d'água


Marca d'água é um termo emprestado da literatura sobre segurança do aprendizado profundo, que geralmente se refere à adição de pixels especiais à imagem para obter o resultado desejado do seu modelo. É perfeitamente possível fazer o mesmo com dados de clientes ou transações.

Considere um cenário em que um funcionário, consultor, contratado ou atacante externo tenha acesso ao código para o uso da produção do seu modelo que faz previsões em tempo real. Essa pessoa pode alterar o código para reconhecer uma combinação estranha ou improvável de valores de variáveis ​​de entrada para obter o resultado da previsão desejado. Como a corrupção de dados, os ataques de marcas d'água podem ser usados ​​para violar a integridade ou acessibilidade do seu modelo. Por exemplo, para violar a integridade, um invasor pode inserir uma "carga útil" no código de avaliação para o uso de produção do modelo, como resultado do qual reconhece uma combinação de 0 anos no endereço 99, o que levará a uma previsão positiva para o invasor. E para bloquear a disponibilidade do modelo, ele pode inserir uma regra discriminatória artificial no código de avaliação, o que não permitirá que o modelo dê resultados positivos para um determinado grupo de pessoas.

As abordagens de proteção e especialistas para ataques usando marcas d'água podem incluir:

  • Detecção de anomalias . Autocoders é um modelo de detecção de fraude que pode identificar entradas complexas e estranhas ou que não são como outros dados. Potencialmente, os codificadores automáticos podem detectar marcas d'água usadas para acionar mecanismos maliciosos.
  • Limitações de integridade de dados . Muitos bancos de dados não permitem combinações estranhas ou irrealistas de variáveis ​​de entrada, o que poderia potencialmente impedir ataques de marcas d'água. O mesmo efeito pode funcionar para restrições de integridade aos fluxos de dados recebidos em tempo real.
  • Análise de exposição diferenciada : consulte a seção 1 .
  • Controle de versão . O código de avaliação para a aplicação de produção do modelo deve ser versionado e controlado, como qualquer outro produto de software crítico.

A detecção de anomalias, as limitações de integridade dos dados e a análise de impacto diferencial podem ser usadas durante o treinamento e como parte do monitoramento do modelo em tempo real.

3. Inversão de modelos substitutos


Geralmente, “inversão” é chamada obtendo informações não autorizadas de um modelo, em vez de colocar informações nele. Além disso, a inversão pode ser um exemplo de um "ataque de engenharia reversa de reconhecimento". Se um invasor conseguir obter muitas previsões da API do seu modelo ou outro ponto de extremidade (site, aplicativo etc.), ele poderá treinar seu próprio modelo substituto . Simplificando, esta é uma simulação do seu modelo preditivo! Teoricamente, um invasor pode treinar um modelo substituto entre os dados de entrada usados ​​para gerar as previsões recebidas e as próprias previsões. Dependendo do número de previsões que podem ser recebidas, o modelo substituto pode se tornar uma simulação bastante precisa do seu modelo. Depois de treinar o modelo substituto, o atacante terá uma "caixa de areia" da qual ele poderá planejar a personificação (por exemplo, "imitação") ou um ataque com um exemplo competitivo da integridade do seu modelo ou obter o potencial de começar a recuperar alguns aspectos dos dados confidenciais de treinamento. Os modelos substitutos também podem ser treinados usando fontes de dados externas que são de alguma forma consistentes com suas previsões, como, por exemplo, o ProPublica fez com o modelo de reincidência do autor do COMPAS.

Para proteger seu modelo da inversão usando um modelo substituto, você pode confiar nessas abordagens:

  • Acesso autorizado . Solicite autenticação adicional (por exemplo, dois fatores) para obter uma previsão.
  • Previsões do acelerador Limite um grande número de previsões rápidas de usuários individuais; considere a possibilidade de aumentar artificialmente os atrasos nas previsões.
  • Modelos substitutos "brancos" (chapéu branco) . Como exercício de hacker branco, tente o seguinte: treine seus próprios modelos substitutos entre suas previsões de entrada e modelo para um aplicativo de produção e observe cuidadosamente os seguintes aspectos:
    • limites de precisão de vários tipos de modelos substitutos “brancos”; tente entender até que ponto o modelo substituto pode realmente ser usado para obter dados indesejados sobre o seu modelo.
    • tipos de tendências de dados que podem ser aprendidas com seu modelo substituto “branco”, por exemplo, tendências lineares representadas por coeficientes de modelo linear.
    • tipos de segmentos ou distribuições demográficas que podem ser estudados analisando o número de pessoas designadas para determinados nós da árvore de decisão substituta “branca”.
    • as regras que podem ser aprendidas da árvore de decisão substituta “branca”, por exemplo, como representar com precisão uma pessoa que receberá uma previsão positiva.


4. Ataques de rivalidade


Em teoria, um hacker dedicado pode aprender - digamos, tentativa e erro (“inteligência” ou “análise de sensibilidade”) - inverter um modelo substituto ou engenharia social, como jogar com seu modelo para obter o resultado desejado da previsão ou evitar o indesejável previsão. Tentar atingir esses objetivos usando uma cadeia de dados especialmente projetada é chamado de ataque adversário. (às vezes um ataque para investigar a integridade). Um invasor pode usar um ataque adversário para obter um empréstimo grande ou um prêmio de seguro baixo, ou para evitar a negação da liberdade condicional com uma avaliação alta do risco criminal. Algumas pessoas chamam o uso de exemplos competitivos para excluir um resultado indesejável de uma previsão como "evasão".

Experimente os métodos descritos abaixo para defender ou detectar um ataque com um exemplo competitivo:

  • Análise de ativação . A análise de ativação requer mecanismos internos comparativos em seus modelos preditivos, por exemplo, a ativação média de neurônios em sua rede neural ou a proporção de observações relacionadas a cada nó final em sua floresta aleatória. Em seguida, você compara essas informações com o comportamento do modelo com fluxos de dados recebidos reais. Como um dos meus colegas disse: " É o mesmo que ver um nó final em uma floresta aleatória, o que corresponde a 0,1% dos dados de treinamento, mas é adequado para 75% das linhas de pontuação por hora ".
  • Detecção de anomalias . veja a seção 2 .
  • Acesso autorizado . veja a seção 3 .
  • Modelos comparativos . Ao avaliar novos dados, além de um modelo mais complexo, use um modelo comparativo de alta transparência. Modelos interpretados são mais difíceis de decifrar porque seus mecanismos são transparentes. Ao avaliar novos dados, compare o novo modelo com um modelo transparente confiável ou com um modelo treinado em dados verificados e em um processo confiável. Se a diferença entre o modelo mais complexo e opaco e o interpretado (ou verificado) for muito grande, retorne às previsões conservadoras do modelo ou processe a linha de dados manualmente. Registre este incidente, pode ser um ataque com um exemplo competitivo.
  • Previsões do acelerador : consulte a seção 3 .
  • Análise de sensibilidade "branca" . Use a análise de sensibilidade para conduzir seus próprios ataques de pesquisa para entender quais valores variáveis ​​(ou combinações deles) podem causar grandes flutuações nas previsões. Procure esses valores ou combinações de valores ao avaliar novos dados. Para conduzir uma análise de pesquisa "branca", você pode usar o pacote de código aberto cleverhans .
  • Modelos substitutos brancos: consulte a seção 3 .

A análise de ativação ou modelos comparativos podem ser usados ​​durante o treinamento e como parte do monitoramento em tempo real dos modelos.

5. Personificação


Um hacker dedicado pode descobrir - novamente, por tentativa e erro, por inversão com um modelo substituto ou engenharia social - quais dados de entrada ou pessoas específicas obtêm o resultado desejado da previsão. Um invasor pode se passar por essa pessoa para se beneficiar da previsão. Os ataques de personificação são chamados às vezes de ataques "simulados" e, do ponto de vista do modelo, isso lembra o roubo de identidade. Como no caso de um ataque de exemplo competitivo, com a personificação, os dados de entrada são alterados artificialmente de acordo com o seu modelo. Porém, diferentemente do mesmo ataque de um exemplo competitivo, no qual uma combinação de valores potencialmente aleatória pode ser usada para enganar, na personificação, para obter a previsão associada a esse tipo de objeto, informações associadas a outro objeto modelado (por exemplo, um cliente condenado , funcionário, transação financeira, paciente, produto etc.). Suponha que um invasor possa descobrir de quais características do seu modelo depende o fornecimento de grandes descontos ou benefícios. Então ele pode falsificar as informações que você usa para obter esse desconto. Um invasor pode compartilhar sua estratégia com outras pessoas, o que pode levar a grandes perdas para sua empresa.

Se você estiver usando um modelo de dois estágios, cuidado com um ataque "alérgico": um invasor pode simular uma sequência de dados de entrada normais para o primeiro estágio do seu modelo para atacar o segundo estágio.

As abordagens de proteção e especialistas para ataques com personificação podem incluir:

  • Análise de ativação. veja a seção 4 .
  • Acesso autorizado. veja a seção 3 .
  • Verifique se há duplicatas. No estágio de pontuação, acompanhe o número de registros semelhantes para os quais seu modelo está disponível. Isso pode ser feito em um espaço dimensional reduzido usando autocoders, dimensionamento multidimensional (MDS) ou métodos de redução dimensional semelhantes. Se houver muitas linhas semelhantes em um determinado período de tempo, tome medidas corretivas.
  • Recursos de notificação de ameaças. Salve a função num_similar_queries no seu pipeline, que pode ser inútil imediatamente após o treinamento ou a implementação do modelo, mas pode ser usada durante a avaliação (ou durante a reciclagem futura) para notificar o modelo ou o pipeline de ameaças. Por exemplo, se no momento da classificação, o valor de num_similar_queries maior que zero, a solicitação de avaliação poderá ser enviada para análise manual. No futuro, quando você treinar novamente o modelo, poderá ensiná-lo a produzir resultados negativos de previsão para linhas de entrada com alta num_similar_queries .

A análise de ativação, a verificação duplicada e a notificação de possíveis ameaças podem ser usadas durante o treinamento e no monitoramento de modelos em tempo real.

6. Problemas comuns


Alguns usos comuns de aprendizado de máquina também apresentam problemas de segurança mais gerais.

Caixas pretas e complexidade desnecessária . Embora avanços recentes em modelos interpretados e explicações sobre modelos tornem possível o uso de classificadores e regressores não lineares precisos e transparentes, muitos processos de aprendizado de máquina continuam focados nos modelos de caixa preta. Eles são apenas um tipo de complexidade frequentemente desnecessária no fluxo de trabalho padrão do aprendizado de máquina comercial. Outros exemplos de complexidade potencialmente prejudicial podem ser especificações excessivamente exóticas ou um grande número de dependências de pacotes. Isso pode ser um problema por pelo menos dois motivos:

  1. Um hacker persistente e motivado pode aprender mais sobre o seu sistema de simulação de caixa preta excessivamente complexo do que você ou sua equipe (especialmente no mercado superaquecido e em rápida mudança de hoje para "analisar" dados). Para isso, um invasor pode usar muitos novos métodos de explicação independentes do modelo e uma análise de sensibilidade clássica, além de muitas outras ferramentas de hackers mais comuns. Esse desequilíbrio de conhecimento pode ser potencialmente usado para realizar os ataques descritos nas seções 1-5 ou para outros tipos de ataques ainda desconhecidos.
  2. O aprendizado de máquina em ambientes de pesquisa e desenvolvimento depende fortemente de um ecossistema diversificado de pacotes de software de código aberto. Alguns desses pacotes têm muitos participantes e usuários, outros são altamente especializados e são necessários por um pequeno círculo de pesquisadores e profissionais. Sabe-se que muitos pacotes são suportados por estatísticos brilhantes e pesquisadores de aprendizado de máquina que se concentram em matemática ou algoritmos, em vez de engenharia de software e certamente não em segurança. Há casos frequentes em que o pipeline de aprendizado de máquina depende de dezenas ou mesmo centenas de pacotes externos, cada um dos quais pode ser invadido para ocultar uma "carga útil" maliciosa.

Sistemas e modelos distribuídos . Felizmente ou infelizmente, vivemos em uma era de grande volume de dados. Atualmente, muitas organizações usam sistemas distribuídos de processamento de dados e aprendizado de máquina. A computação distribuída pode ser um grande alvo para ataques de dentro ou de fora. Os dados podem ser distorcidos apenas em um ou vários nós de trabalho de um grande sistema distribuído de armazenamento ou processamento de dados. A porta traseira para marcas d'água pode ser codificada em um modelo de um conjunto grande. Em vez de depurar um conjunto ou modelo de dados simples, os profissionais devem agora estudar dados ou modelos espalhados por grandes agrupamentos de computação.

Ataques de negação de serviço distribuída (DDoS) . Se um serviço de modelagem preditiva tiver um papel fundamental nas atividades da sua organização, leve em consideração pelo menos os ataques DDoS distribuídos mais populares quando os atacantes atacarem um serviço preditivo com um número incrivelmente grande de solicitações para atrasar ou parar de fazer previsões para usuários legítimos.

7. Decisões gerais


Você pode usar vários métodos comuns, antigos e novos, mais eficazes para reduzir as vulnerabilidades do sistema de segurança e aumentar a justiça, a controlabilidade, a transparência e a confiança nos sistemas de aprendizado de máquina.

Previsão de acesso autorizado e regulação de frequência (otimização) . Recursos de segurança padrão, como autenticação adicional e ajuste de frequência de previsão, podem ser muito eficazes no bloqueio de vários vetores de ataque descritos nas seções 1-5.

Modelos comparativos . Como modelo comparativo para determinar se alguma manipulação foi feita com a previsão, você pode usar o pipeline de modelagem antigo e comprovado ou outra ferramenta de previsão interpretada com alta transparência. A manipulação inclui corrupção de dados, ataques de marcas d'água ou exemplos competitivos. Se a diferença entre a previsão do seu modelo testado e a previsão de um modelo mais complexo e opaco for muito grande, anote esses casos. Envie-os para analistas ou tome outras medidas para analisar ou corrigir a situação. Devem ser tomadas precauções sérias para garantir que seu benchmark e transportador permaneçam seguros e inalterados em relação à sua condição original e confiável.

Modelos interpretados, justos ou privados . Atualmente, existem métodos (por exemplo, GBM monótonos (M-GBM), listas de regras bayesianas escalonáveis ​​(SBRLs) , explicações de redes neurais (XNNs) ) que fornecem precisão e interpretabilidade. Esses modelos precisos e interpretáveis ​​são mais fáceis de documentar e depurar do que as caixas-pretas clássicas de aprendizado de máquina. Tipos mais recentes de modelos justos e privados (por exemplo, LFR, PATE) também podem ser treinados em como prestar menos atenção às características demográficas visíveis externamente disponíveis para observação, usando engenharia social durante um ataque com um exemplo competitivo, ou impersonalização. Você está pensando em criar um novo processo de aprendizado de máquina no futuro? Considere construí-lo com base em modelos privados ou justos interpretados menos arriscados. Eles são mais fáceis de depurar e potencialmente resistentes a alterações nas características de objetos individuais.

Depurando um modelo para segurança . Uma nova área para modelos de depuração é dedicada à detecção de erros nos mecanismos e previsões de modelos de aprendizado de máquina e sua correção. As ferramentas de depuração, como modelos substitutos, análise residual e análise de sensibilidade, podem ser usadas em testes em branco para identificar suas vulnerabilidades ou em exercícios analíticos para identificar possíveis ataques que possam ou possam ocorrer.

Documentação do modelo e métodos de explicação . A documentação do modelo é uma estratégia de redução de risco que tem sido usada no setor bancário há décadas. Ele permite salvar e transferir conhecimento sobre sistemas de modelagem complexos à medida que a composição dos proprietários do modelo muda. A documentação tem sido tradicionalmente usada para modelos lineares de alta transparência. Mas com o advento de ferramentas poderosas e precisas de explicação (como a árvore SHAP e atributos baseados em derivações de funções locais para redes neurais), os fluxos de trabalho preexistentes do modelo de caixa preta podem ser pelo menos um pouco explicados, depurados e documentados. Obviamente, a documentação agora deve incluir todos os objetivos de segurança, incluindo vulnerabilidades conhecidas, corrigidas ou esperadas.

Monitore e gerencie modelos diretamente por motivos de segurança . Profissionais sérios entendem que a maioria dos modelos é treinada em "instantâneos" estáticos da realidade na forma de conjuntos de dados e que em tempo real a precisão das previsões diminui, pois o estado atual das coisas está se afastando das informações coletadas anteriormente. Hoje, o monitoramento da maioria dos modelos visa identificar tal viés na distribuição das variáveis ​​de entrada, o que, em última análise, levará a uma diminuição na precisão. O monitoramento do modelo deve ser projetado para rastrear os ataques descritos nas seções 1-5 e quaisquer outras ameaças em potencial que surgem ao depurar seu modelo. Embora nem sempre isso esteja diretamente relacionado à segurança, os modelos também devem ser avaliados em tempo real para efeitos diferenciados. Juntamente com a documentação do modelo, todos os artefatos de modelagem, código fonte e metadados associados devem ser gerenciados, com versão e verificados quanto à segurança, bem como os ativos comerciais valiosos que são.

Recursos de notificação de ameaças . Funções, regras e etapas do processamento preliminar ou subsequente podem ser incluídas em seus modelos ou processos equipados com meios de notificação de possíveis ameaças: por exemplo, o número de linhas semelhantes no modelo; se a linha atual representa um funcionário, contratado ou consultor; Os valores na linha atual são semelhantes aos obtidos com ataques brancos com um exemplo competitivo? Essas funções podem ou não ser necessárias durante o primeiro treinamento do modelo. Mas economizar espaço para eles pode um dia ser muito útil na avaliação de novos dados ou na subsequente reciclagem do modelo.

Detecção de anormalidades do sistema . Treine o metamodo para detectar anomalias com base em um autocoder nas estatísticas operacionais de todo o seu sistema de modelagem preditiva (o número de previsões para um determinado período de tempo, atrasos, CPU, memória e carregamento de disco, número de usuários simultâneos etc.) e monitore cuidadosamente esse metamodelo para anomalias. Uma anomalia pode dizer se algo der errado. Investigações de acompanhamento ou mecanismos especiais serão necessários para rastrear com precisão a causa do problema.

8. Referências e informações para leitura adicional


Uma grande quantidade de literatura acadêmica moderna sobre segurança de aprendizado de máquina se concentra no aprendizado adaptável, no aprendizado profundo e na criptografia. No entanto, até agora o autor não conhece os praticantes que realmente fariam tudo isso. Portanto, além de artigos e postagens publicados recentemente, apresentamos artigos dos anos 90 e início dos anos 2000 sobre violações de rede, detecção de vírus, filtragem de spam e tópicos relacionados, que também foram fontes úteis. Se você quiser aprender mais sobre o fascinante tópico de proteger modelos de aprendizado de máquina, aqui estão os principais links - do passado e do presente - que foram usados ​​para escrever a postagem.


Conclusão


Aqueles que se preocupam com a ciência e a prática do aprendizado de máquina estão preocupados com o fato de que a ameaça de hackers com o aprendizado de máquina, juntamente com as crescentes ameaças de quebra de confidencialidade e discriminação algorítmica, podem aumentar o crescente ceticismo público e político sobre aprendizado de máquina e inteligência artificial. Todos nós precisamos lembrar os tempos difíceis para a IA no passado recente. Vulnerabilidades de segurança, violações de privacidade e discriminação algorítmica podem potencialmente ser combinadas, levando a um financiamento reduzido para pesquisas no campo do treinamento em informática ou a medidas draconianas para regular essa área. Vamos continuar a discussão e resolução dessas questões importantes, a fim de evitar uma crise e não atrapalhar suas conseqüências.

Source: https://habr.com/ru/post/pt458892/


All Articles