Sobre Vulnerabilidades e Fechaduras

A maneira mais didática que eu conheço para apresentar o conceito de "vulnerabilidade" é apelando para o exemplo da fechadura na figura ao lado: você pode facilmente abri-la sem precisar da chave. Basta enfiar um algo razoavelmente rígido (um cartão de crédito serve) em diagonal na fresta entre a lingueta e o encaixe na parte fixa. O inciso na figura detalha melhor a razão: a lingueta que trava a porta é diagonal e virada justamente para o lado de fora. O que a foto não mostra, mas acho que o leitor não terá problemas em acreditar, é que a mola também não é lá muito forte.

De uma forma geral, podemos definir uma vulnerabilidade como um "erro de concepção" ou "erro de implantação" que permite a ocorrência de eventos indesejados. Se imaginarmos que um tal "evento indesejado" seja "a fechadura poder ser aberta sem a chave", nosso sucesso com o cartão de crédito no exemplo acima mostra que essa instalação especifica dessa fechadura em particular constitui uma vulnerabilidade.

Note, antes de mais nada, que a existência ou não da vulnerabilidade está condicionada à definição do que sejam esses tais de "eventos indesejados". O que pra mim é uma vulnerabilidade, pra você pode não ser, simplesmente porque as suas expectativas sobre a que essa fechadura deve resistir podem ser bem diferentes das minhas.

Nos computadores, costuma haver uma vulnerabilidade vagamente semelhante: a porta USB. É amplamente sabido que muitos vírus se propagam através de pen drives (inclusive, recentemente, nosso Rodrigo Santos reportou mais uma vulnerabilidade do Windows que facilita isso). E se você instalar um outro sistema operacional em um pen drive, pode usá-lo para burlar as defesas do sistema operacional que está instalado no disco rígido do computador.

Pode-se consertar as vulnerabilidades em dois momentos: tanto no projeto quanto na implantação. O exemplo da figura ao lado mostra duas fechaduras: a debaixo é semelhante à do exemplo anterior, facilitando o truque de abri-la enfiando um cartão de crédito na fresta. A de cima, porém, tem uma espécie de caixa metálica integrada ao conjunto da maçaneta que cobre a trava. Algo rígido o bastante para empurrar a lingueta não conseguiria fazer a curva, e algo flexível o bastante para fazer a curva não conseguiria empurrar a lingueta. Não quer dizer que seja impossível – talvez alguém invente uma ferramenta especializada que consiga. Todavia, não dá pra discordar que fica bem mais difícil. Por isso, parece justo afirmar que essa fechadura é mais bem projetada, pois parece ter levado em conta essa vulnerabilidade.

Coisa parecida acontece em computação: por exemplo, quase todas as marcas de discos rígidos permitem que você defina uma senha sem a qual ele não libera seu conteúdo, mesmo se você instalá-lo em outro computador. Mas, além de pouca gente saber disso, esse método é pouco usado devido a uma série inconvenientes, que, para não me alongar mais ainda, não vou discutir aqui.

Pode-se também consertar uma vulnerabilidade no momento da implantação. Na figura ao lado, vê-se uma fechadura que aparentemente não tinha uma caixa cobrindo a lingueta, mas quem instalou teve a sabedoria de acrescentar uma. Os mais atentos, porém, poderiam se perguntar se não seria possível inserir algo por cima ou por baixo – nessa instalação, a lingueta só está protegida pela frente. Isso é bem típico: um "conserto" a posteriori na hora da implantação às vezes não fica tão bom quanto um conserto a priori no projeto.

Novamente, nos computadores temos coisa semelhante: você pode colocar uma senha na BIOS do seu computador que faz com que ela só dê partida no sistema operacional se o usuário digitar a senha certa. Não é tão bom quanto uma senha no disco rígido e existem maneiras de burlá-la, mas é melhor do que nada.

Vemos desde já que há espaço pra discutirmos se a vulnerabilidade é do projeto da fechadura em si ou se o problema foi a maneira específica como ela foi instalada. Mesmo assim, acho que dá pra concordar que a fechadura com a cobertura de metal embutida pode ser considerada mais bem projetada, pois já vem protegida de fábrica, dando menos chance de um lapso do instalador.

Da mesma forma, há amplo espaço pra discutirmos se as vulnerabilidades nos sistemas computacionais são problemas de projeto ou de implementação. Já aqui fica claro que não existem certos ou errados universais – o que existe, no máximo, são prós e contras.

O jeito exato como definimos os tais "eventos indesejados" determina como e se conseguimos ou não consertar uma vulnerabilidade. Por exemplo, se reformularmos nosso conceito de "evento indesejado" como "ninguém deve conseguir atravessar a porta", então nada do que discutimos acima seria suficiente: poderíamos simplesmente destruir a porta, digamos, com um machado. Com a porta de vidro, seria muito fácil e rápido – certamente faria uma barulheira danada e chamaria muita atenção, tenderia a aumentar as chances de sermos descobertos, entre outros problemas, mas o objetivo de atravessar a porta seria cumprido. Note o efeito colateral nefasto deixar o requisito muito genérico: complica bastante as coisas, pois, agora, teremos de levar em conta não só a fechadura em si, mas a resistência da porta, da parede que a suporta, etc.

Por outro lado, se redefinirmos nosso objetivo como apenas "deter pessoas que não se sentiriam inclinadas a mexer na fechadura ou na parede", então não há vulnerabilidade alguma. Mas é difícil negar que essa é uma definição bem mais fraca que a anterior e que o conjunto de contextos onde ela poderia fazer sentido é muito menor.

Então, a lição que tiramos é: as vulnerabilidades estão condicionadas a essa lista de eventos indesejados específicos contra os quais queremos ter algum tipo de garantia (ainda que não seja total ou infalível) que não vão acontecer. No jargão de segurança de informação, essa lista se chama "modelo de ameaça".

É surpreendentemente difícil fazer esse "modelo de ameaças" – é muito, muito fácil deixá-lo impreciso ou incompleto. Faça esse exercício intelectual você mesmo – de quem, exatamente, e sob quais condições, e por quanto tempo, e a que custo, a porta da frente da sua residência ou empresa lhe defende? E de quem ela não lhe defende? Após fazer essa lista, pense se você está satisfeito com elas e no que você poderia fazer para ter mais ou menos garantias. Se você levar a sério esse exercício, queira por favor ter a gentileza de postar seus resultados na seção de comentários – adoraria conhecer seu ponto de vista.

Você provavelmente descobrirá que sua porta e fechadura lhe oferecem menos garantias do que você gostaria, mas quase qualquer coisa que você possa fazer para melhorá-las vai incorrer em custos que você talvez não esteja tão disposto assim a pagar e você será obrigado a reconhecer que segurança não é sua maior prioridade. Aqui, porém, já estou me adiantando e quase fugindo do propósito original deste artigo, que era conceitualizar "vulnerabilidades" e "modelo de ameaças" – a questão de custo/benefício terá de ficar para um artigo futuro.

No próximo post, vou mostrar uma vulnerabilidade em uma outra classe de dispositivos de controle de acesso físico, mas dessa vez algo mais "eletrônico" e, quem sabe, as semelhanças e diferenças entre o mundo físico e o mundo dos bits fiquem mais claras. Acho que com esse post, porém, consegui cumprir um pré-requisito essencial para essa jornada: dar-nos um ponto de partida sólido de onde começar.

Próximas partes

Comentários
Aceita-se formatação à la TWiki. HTML e scripts são filtrados. Máximo 15KiB.

 
Enviando... por favor aguarde...
Comentário enviado com suceso -- obrigado.
Ele aparecerá quando os moderadores o aprovarem.
Houve uma falha no envio do formulário!
Deixei uma nota para os admins verificarem o problema.
Perdoe-nos o transtorno. Por favor tente novamente mais tarde.
Ricardo Ulisses | 2010-07-30 18:31:51 | permalink | topo

Esse post tem um significado especial para quem já usou técnica semelhante à enunciada pelo Kiko para abrir este tipo específico de fechadura. Já vi (e usei – para fins legítimos e legais, claro) abertura de portas com cartões de crédito e até mesmo com outros materiais mais inusitados como palito de picolé. Para os que nunca viram ou fizeram, posso dizer que é incrivelmente fácil.

O desenvolvimento do tema, a conceitualização dos termos e as analogias entre as vulnerabilidades das fechaduras e dispositivos computacionais são de uma didática maestral.

Confesso que ainda não vi uma "porta da frente" de uma empresa significativamente robusta a ponto de resistir a ameaças mais parrudas como um martelo, pé-de-cabra ou machado. Em alguns apartamentos, a paranóia gerada pelos altos índices de violência urbana faz com que moradores instalem portas gradeadas de metal como redundância à sua porta da frente, uma abordagem em camadas para segurança contra acesso indevido. Nas empresas e nas casas, penso que a abordagem mais comum para layered security nesse contexto é a instalação de um sistema de alarme monitorado 24h por alguma empresa de segurança patrimonial.

Entretanto, existe uma ameaça mais furtiva e menos barulhenta contra fechaduras em geral: o lock picking. Esta técnica consiste em abrir fechaduras com um instrumento diferente da própria chave que foi originalmente projetada para abri-la, sem danificá-la. Isto geralmente envolve o uso de ferramentas específicas, normalmente utilizadas por chaveiros. Aliás, o lock picking é uma das técnicas essenciais ao ofício de chaveiro. A quem você recorre se perder a chave de casa?

Ultimamente esta técnica vem ganhando terreno até mesmo nas conferências de segurança da informação, como a Eko Party, uma das mais importantes da América Latina. Na Lockpick Village, uma das atividades conduzidas pelos organizadores da conferência, é possível aprender sobre vulnerabilidades de vários tipos de travas e fechaduras; o que ao mesmo tempo é um aprendizado valioso para a proteção física de infra-estrutura corporativa e de propriedade privada.

Citanto o site do evento: "After all, you can have the most hardened, patched, and properly-configured servers on the planet but none of that matters if someone walks through the door without any difficulty."

Victor Hora | 2010-07-30 15:26:14 | permalink | topo

Sobre o uso de senhas no próprio hardware do disco rídigo, acredito que menos pessoas ainda sabem, que na maioria das implementações, é possível "quebrar" ou desativar essa senha.

Felizmente, existem sistemas que oferecem um nível de proteção bem maior, como:

  • Criptografia de todo o disco rígido;
  • Criptografia de partições (pedaços) do disco rígido;
  • Critografia de dados (arquivos) específicos.

Todos tem suas vantagens e desvantagens, principalmente em relação a complexidade envovilda na sua implementação, custo, performance entre outros fatores.

Cabe ao usuário do sistema, ter conhecimento das possíveis vulnerabilidades que ele está sujeito e optar pela solução que adequa-se melhor as suas necessidades.