Meio Bit » Software » Sem crítica de dados, pequeno Bobby Tables continua atual

Sem crítica de dados, pequeno Bobby Tables continua atual

O tempo passa e a ausência de crítica de dados continua fazendo estragos; desta vez, usuária perde acesso ao iCloud por causa de seu sobrenome

32 semanas atrás

Crítica de dados é um dos mais elusivos seres míticos em TI, uma criatura da qual todo mundo já ouviu falar, mas ninguém nunca viu. Quando a internet ainda era movida a carvão e bem limitada, praticamente nenhuma empresa se dava ao trabalho de aplicar regras e muitos bancos de dados possuíam variáveis das mais bizarras possíveis.

O pequeno Bobby Tables continua relevante (Crédito: XKCD) / crítica de dados

O pequeno Bobby Tables continua relevante (Crédito: XKCD)

Quando a web se tornou popular, crítica e sanitização de dados se tornaram fatores críticos, em que um código escrito de forma desleixada significa a ruína de bancos gigantescos, mas mesmo hoje ataques bestas, como os de injeção de SQL, são comuns e causam prejuízos gigantescos, para companhias e usuários.

A tirinha do XKCD, publicada a mais de uma década atrás, ilustra um caso bobo do ataque de injeção de SQL, em que a mãe deu ao filho o nome de uma string. Como o primeiro nome contém os caracteres '); e o apóstrofo é o delimitador da string, tudo o que vem depois é entendido como uma segunda consulta, que no caso, ordena apagar toda a tabela de alunos.

Exemplos de programação feita nas coxas, de fraca crítica de dados a POG descarado abundam para todos os lados, desde a Microsoft que numa época colocou limite no número de caracteres usados em uma senha, ao código-fonte do WordPress, que é uma coleção de gambiarras inacreditável. Por via de regra a única metodologia admitida é a XGH, e os erros só serão lidados (se forem) quando (não se) aparecerem.

Em um mundo ideal, usuários responsáveis pela entrada de dados não poderiam ter permissões de alto nível, o que inviabilizaria o ataque do pequeno Bobby Tables, mas todo mundo sabe que não é bem isso o que acontece. Em geral, crítica e sanitização de dados são processos simples que os profissionais deveriam manter em mente em primeiro lugar, mas como sempre há o fator econômico no meio, a ordem é colocar para funcionar, e se der problema, "depois a gente vê isso".

O que nos traz a 2021, ainda com casos de ataques de injeção de SQL sendo lugar comum. Um dos alvos mais recentes foi o Gab, aquela rede social de viés conservador, que resultou no acesso de mais de 15 mil contas de usuários, inclusa a do ex-presidente dos EUA Donald Trump.

Pensando bem, pouca gente vai lamentar pelo que aconteceu ao Gab, mas voltando.

Exemplo de código HTML (Crédito: jamesmarkosborne/Pixabay)

Exemplo de código HTML (Crédito: jamesmarkosborne/Pixabay)

Como já citado, código feito mal e porcamente pode aparecer em todo lugar, permitindo ataques simples como o citado acima, que é considerado um dos mais banais e ingênuos, o que classifica os alvos afetados como absurdamente inseguros e mal programados.

Por outro lado, usuários podem quebrar o sistema mesmo sem ter a intenção de fazê-lo, e nesse sentido, acabam se manifestando graças a falhas de sanitização, ou à ausência de um profissional que aja como o "cara que malda", o encarregado de pensar fora da caixa e prever maneiras de que uma entrada legítima de dados pode causar danos.

Uma das mais óbvias, e que já tratamos no Meio Bit aqui e aqui, é a entrada "null" como um nome/sobrenome. Graças a um bug extremamente manjado de XML, a string vira a constante NULL depois de parseada, é entendida como um campo vazio e por causa disso, a entrada é invalidada.

Tal problema poderia ser facilmente resolvido graças a um tratamento individual de palavras críticas no código, antes que eles sejam convertidos para XML e interpretados de outras formas, mas na cabeça dos desenvolvedores e empresas, é muito mais simples o usuário usar outro sobrenome ou mudá-lo, do que gastar dinheiro corrigindo o código.

Agora o pequeno Bobby Tables conseguiu aprontar com a Apple, mais especificamente o iCloud, o serviço de armazenamento na nuvem da maçã. A usuária afetada é uma atriz e autora chamada Rachel... True.

De acordo com Rachel, ela perdeu o acesso à sua conta do iCloud por conta da forma que seu sobrenome foi escrito. O sistema da Apple entende a string "true" como uma flag booleana, o bit onde apenas valores 0 ou 1 (falso ou verdadeiro) são interpretados. Por conta disso, o login do serviço travou por completo e a trancou do lado de fora, um problema que persiste por pelo menos 6 meses.

O caso é extremamente raro, mas assim como a string "null" do XML, ele poderia ser resolvido com um tratamento adequado da palavra "true", de modo que sua entrada não fosse entendida como um flag. De qualquer forma, novamente é o caso de uma empresa gigantesca que poderia dedicar tempo e recursos para sanar o bug, ao invés de cansar a usuária, que vem tentando sem sucesso resolver a situação junto ao suporte da Apple.

Agora a pérola: a maçã não deixou de cobrar pelo serviço de armazenamento extra do iCloud durante os meses em que a conta permaneceu inacessível, e segundo Rachel, ela não pode migrar de volta para o plano gratuito, pois perderia uma grande quantidade de dados salvos (o limite de espaço na modalidade grátis é de apenas 5 GB).

Até o momento, a Apple não se manifestou a respeito.

Fonte: Engadget

Leia mais sobre: , , , , .

relacionados


Comentários