Em 20 de março, a OpenAI desativou a popular ferramenta de IA generativa ChatGPT por algumas horas. Mais tarde admitiu que o motivo da interrupção foi uma vulnerabilidade da cadeia de suprimentos de software originada na biblioteca de armazenamento de dados na memória de código aberto 'Redis'.
Como resultado desta vulnerabilidade, houve um intervalo de tempo (entre 1h e 10h PST de 20 de março) em que os usuários poderiam acessar acidentalmente os títulos do histórico de bate-papo de outros usuários e possivelmente expor informações relacionadas a pagamentos, como nomes, endereços de e-mail, endereços de pagamento. , tipo de cartão de crédito e últimos quatro dígitos do número do cartão de pagamento.
Este foi um bug relativamente pequeno que foi detectado e corrigido rapidamente. Considerando a popularidade crescente do ChatGPT e de outros LLM generativos, quais poderiam ser as consequências de uma abordagem mais direcionada ataque à cadeia de fornecimento de software?
Neste artigo, veremos o que exatamente aconteceu no dia 20 de março e como as informações do usuário foram expostas. Também faremos uma curta viagem imaginária até um ataque potencial mais grave e veremos quais informações podem ser expostas e o que pode ser feito para ajudar a prevenir tais casos. Terminaremos com algumas informações gerais segurança da cadeia de suprimentos de software sugestões que podem ser relevantes, independentemente do software em que sua empresa esteja trabalhando.
Aqui está o que aconteceu
Como quase qualquer outra empresa de software, o código da OpenAI depende em grande parte de bibliotecas e códigos de código aberto. Neste caso, o bug foi descoberto na biblioteca de código aberto do cliente Redis, redis-py. Aqui está a descrição do bug conforme aparece no próprio site da empresa recontagem:
- OpenAI usa Redis para armazenar em cache as informações do usuário em seu servidor para não exigir a verificação de seu banco de dados para cada solicitação.
- Os clusters Redis são usados para distribuir essa carga em várias instâncias do Redis.
- A biblioteca redis-py é usada para fazer interface com o Redis do servidor Python da empresa, que roda com assíncrono.
- A biblioteca mantém um conjunto compartilhado de conexões entre o servidor e o cluster e recicla uma conexão para ser usada em outra solicitação, uma vez concluída.
- Ao usar Asyncio, solicitações e respostas com redis-py se comportam como duas filas: o chamador envia uma solicitação para o fila de entrada, exibe uma resposta do fila de saída, e, em seguida, retorna a conexão ao pool.
- Suponha que uma solicitação seja cancelada depois de ser enviada para a fila de entrada, mas antes que a resposta saia da fila de saída. Nesse caso, vemos o nosso erro: a conexão é corrompida e a próxima resposta extraída para uma solicitação não relacionada pode receber dados deixados na conexão.
- Na maioria dos casos, isso resulta em um erro irrecuperável do servidor e o usuário terá que tentar a solicitação novamente.
- Mas, em alguns casos, os dados corrompidos correspondem ao tipo de dados que o solicitante esperava e, portanto, o que é retornado do cache parece válido, mesmo que pertença a outro usuário.
- À 1h, horário do Pacífico, na segunda-feira, 20 de março, a OpenAI introduziu inadvertidamente uma alteração em seu servidor que causou um aumento nos cancelamentos de solicitações do Redis. Isso criou uma probabilidade maior do que o normal para cada conexão retornar dados incorretos.
Este bug específico apareceu apenas no cliente Asyncio redis-py para Redis Cluster e desde então foi corrigido pelo trabalho combinado dos engenheiros OpenAI e dos mantenedores da biblioteca Redis.
Como lembrete, esse bug pode expor inadvertidamente o título de pesquisa de outro usuário ativo e parte das informações de pagamento desse usuário. Alguns usuários agora estão dando ao ChatGPT controle total ou parcial sobre seus dados pessoais. finanças, conferindo à exposição dessas informações resultados potencialmente catastróficos.
Aqui está o que poderia acontecer
Nesse caso, o bug da cadeia de suprimentos de software herdado pelo OpenAi da biblioteca de código aberto Redis era relativamente simples e facilmente corrigido. Gostaria de pedir a sua indulgência em imaginar um cenário mais grave, em que um ataque direcionado à cadeia de fornecimento de software, semelhante ao que ocorreu SolarWinds ocorre e permanece desconhecido por um período significativo de tempo, digamos meses.
Como os usuários agora estão pagando à OpenAI por acesso mais direto ao seu LLM, tal ataque poderia potencialmente revelar as informações do cliente, incluindo seus dados de pagamento. Mas essa não é realmente a informação que interessa ao nosso hipotético grupo de hackers. O ChatGPT atualmente tem 1.16 bilhões de usuários. Ultrapassou 1 bilhão de usuários em março de 2023. Esses números representam um aumento de quase 55% de fevereiro de 2023 a março de 2023. Com inúmeras pessoas agora usando IA generativa para qualquer coisa, desde arte a trabalhos de casa de história e finanças, o acesso irrestrito ao banco de dados da OpenAI pode revelar potencial chantagear informações sobre inúmeros usuários. O Black Mirror O episódio 'Shut Up and Dance' (Temporada 3, Episódio 3, 2016) oferece um resultado imaginativo muito bom para essas informações explícitas que chegam às mãos de pessoas sem escrúpulos. Se você está procurando um paralelo mais real, o Violação de dados de Ashley Madison de 2015 tiveram algumas consequências graves, algumas delas ainda relevantes mesmo anos mais tarde.
Vamos ir um pouco mais longe em nosso hack imaginativo e dizer que esse grupo de hackers não identificado pode não apenas obter acesso ao banco de dados OpenAI, mas também pode influenciar os resultados das solicitações. Você consegue imaginar o potencial de milhões de pessoas recebendo aconselhamento financeiro direcionado e personalizado por um grupo de hackers? Ou obter informações falsas de verificação de segurança ou informações de teste de código, cortesia, novamente, de nosso misterioso grupo de hackers. O fato de o ChatGPT agora poder acessar a Internet torna ainda mais fácil ocultar informações que entram ou saem dos servidores da OpenAI como nada mais do que dados regulares e inócuos.
Vou parar por aqui, mas acho que você pode ver o enorme dano potencial que um ataque à cadeia de suprimentos de software contra um LLM bem-sucedido pode causar.
Como proteger você e sua cadeia de suprimentos de software
Uma das primeiras coisas que você pode fazer para se proteger é aguçar seu senso de suspeita. Não confie implicitamente em nenhuma ferramenta, por mais benigna que pareça, a menos que você possa garantir que tem controle total sobre o que ela faz, o que pode potencialmente fazer e a quais recursos tem acesso. A opção de executar uma versão de código aberto do ChatGPT localmente pode lhe dar mais controle, tanto sobre as informações de treinamento quanto sobre o nível de acesso que elas possuem.
Como uma empresa de software que deseja estar mais vigilante em relação a potenciais riscos da cadeia de fornecimento de software herdado por meio dos pacotes de código aberto que ele usa, recomendo que você dê uma olhada Solução do escriba. A Scribe desenvolveu uma plataforma que permite maior transparência em seu SDLC completo em termos de todos os pacotes e pacotes herdados que você inclui, bem como quaisquer testes que você deseja realizar ao longo do caminho. A plataforma gera um SBOM para cada uma de suas construções e inclui todas as informações de segurança coletadas para cada construção em um único lugar. Ele também pode informar se sua construção é compatível com SLSA até o nível 3 e com SSDF do NIST. O novo Ferramenta Valint também permite que você componha suas próprias políticas e aplique-os a qualquer parte do pipeline de construção que desejar. Salvar todas as suas informações de segurança em um só lugar, ordenadas por builds ao longo do tempo, permite observar como seu aplicativo muda à medida que amadurece, tanto em termos de dependências quanto de segurança.
O Futuro da IA
A IA veio para ficar, não importa o que façamos. O nível do seu envolvimento na nossa vida quotidiana é uma questão de especulação, mas apenas com base nos últimos 6 meses parece certo que estamos perante um potencial divisor de águas para a tecnologia LLM e as suas utilizações. À medida que a IA torna a criação de código e aplicativos completos uma questão de encontrar os prompts corretos em 'linguagem natural', podemos estar enfrentando um dilúvio sem precedentes de aplicativos que não foram devidamente testados nem têm as proteções de segurança adequadas para proteger seus usuários. e as pessoas ou empresas que os criaram.
No final deste mês, a Scribe realizará um webinar lidando especificamente com a questão de saber se você pode ou não confiar na IA para ajudá-lo a proteger sua cadeia de suprimentos de software. Se você tiver alguma dúvida com base no que leu aqui, este seria um bom lugar e momento para apresentá-la.
Uma vez que o A plataforma Scribe é gratuita para usar em até 100 compilações por mês, encorajo qualquer um de vocês, um único desenvolvedor ou uma empresa, a experimentar e ver quantas de suas necessidades regulatórias e de segurança a plataforma atende. Até ao dia em que uma verdadeira inteligência nos ouvir por trás dos nossos ecrãs, resta-nos encontrar outras formas de lidar com a nossa própria segurança e acredito que promover a visibilidade como precursora da confiança é um bom ponto de partida.
Este conteúdo é oferecido a você pela Scribe Security, um fornecedor líder de soluções de segurança de cadeia de suprimentos de software ponta a ponta – fornecendo segurança de última geração para artefatos de código e processos de desenvolvimento e entrega de código em todas as cadeias de suprimentos de software. Saiba mais.