quinta-feira, 29 de março de 2007

A quebra do Enigma - Um ensinamento sobre o papel do homem para a proteção de ambientes computacionais.

Com a migração dos negócios realizados para o ambiente digital, a criptografia passa a ser cada vez mais um fator crítico para o sucesso das empresas.
Em determinados segmentos, devido a natureza do negócio, esse fato sempre foi uma realidade. Pode-se citar como exemplo, a área de defesa, cujo o tipo de negócio requer que as informações geradas tenham que ser corretamente identificada e protegida, pois no caso de serem corrompidas ou descobertas podem gerar prejuízos materiais e humanos irreversíveis.
O uso da criptografia para fins militares remota da antiguidade, quando César usava para seus generais em batalha um mensagem cifrada usando um mecanismo de deslocamento alfabético. O método era bastante rudimentar e consistia no deslocamento do alfabeto de um valor de n posições. Por exemplo se o alfabeto sofre um deslocamento de duas posições, o texto "casa" passa a ser escrito como "ecuc".
Uma evolução desse mecanismo consiste na substituição mono-alfabética, onde em vez de deslocar o alfabeto em um número "x" de posições, na verdade se cria um novo alfabeto, onde cada letra do alfabeto é colocada em uma posição nova, onde não há qualquer co-relação entre a posição da letra no alfabeto cifrado e a sua posição no alfabeto real.
Ambos os mecanismos de cifragem sofrem um problema crítico para seu sucesso, pois basta que se identifique o idioma no qual a mensagem foi escrita para ser possível regenerar a mensagem através de uma análise probabilística da mesma.
Para solucionar essa dificuldade foi desenvolvido os sistemas poli-alfabéticos, que consiste de um algoritmo na qual a chave define qual será o alfabeto utilizado no processo de cifragem. Apesar desse esquema de cifragem possuir algoritmos conhecidos de decifragem, caso seja usado uma chave muito grande e outros artifícios que compliquem o processo de decifragem da mensagem, ele até os dias atuais continua muito difícil de quebrar.
Durante a Segunda Guerra, os alemães consigiram extremas vantagens nos campos de batalhas utilizando uma máquina chamada enigma, que implementava um algoritmo de cifragem baseado em um mecanismo poli-alfabético.
Esse mecanismo mostrou-se extremamente eficiente, fazendo com que os aliados tivessem que empreender um esforço considerável para conseguir quebrá-lo.
Porém, assim como em muitos ataques atuais, esse trabalho, apesar de ter sido realizado graças ao uso de modernas técnicas de cripto-análise, teve como fator crucial para o sucesso, o mal uso do sistema pelos usuários.
Relatos históricos apresentam que o grupo de cripto-análise dos aliados utilizavam de algumas fragilidades operacionais empreendidas pelos alemães ao sistema.
Uma dessas vulnerabilidades consistia de que mensagens metereológicas eram transmitidas pelo enigma. Já que essa informação era de conhecimento dos aliados, pois eles também operavam no mesmo teatro de operação, ficava mais simples de conseguir obter a chave utilizada para cifrar o texto.
Outro erro de operação é encontrado na maior parte de quebra de chaves da atualidade, o uso de chaves fracas pelos operadores das máquinas, chaves essas como iniciais de namoradas, nomes familiares ou até mesmo a mesma chave sempre. Os aliados sabendo qual o usuário que operava o enigma, já tinha de antemão a chave utilizada pelo sistema.
Atualmente os algoritmos criptográficos não utilizam mecanismos de substituição alfabética, mas sim técnicas matemáticas para realizar o processo de proteção de uma mensagem, o que por si só é mais seguro e eficiente. Porém, assim como no caso apresentado nessa nota, caso o sistema não seja operado devidamente, ele fracassará em seu objetivo.
Por exemplo, no caso do uso de um sistema assimétrico de nada adianta gerar chaves usando geradores de números pseudo-aleatórios robustos se essas chaves são armazenadas em claro no disco rígido do usuário sem qualquer controle de acesso ao repositório onde ela se encontra.
Dessa forma, para proteger um negócio, além de usar um sistema de segurança robusto, deve-se antecipadamente pensar no fator humano, criando um ambiente no qual a tecnologia seja adequadamente utilizada, minimizando os erros não propositais, que conforme rescentes pesquisas são os maiores provocadores de incidentes de segurança.

sexta-feira, 23 de março de 2007

Taxonomia de Segurança

Essa semana foi analisado um artigo bastante antigo (1994) que tratava da classificação das diversas falhas de segurança.

A taxonomia de um sistema é importante pois permite definir fronteiras claras e bem definidas para o mesmo, ocasionando que seja possível analisar em detalhes as diversas fronteiras que o compõe.

Apesar de sua idade, o trabalho de [Landwehr et all] ainda é bastante válido para ser possível entender dois aspectos importantes: problemas de segurança computacional não são atuais e sua natureza, em grande maioria, são pouco mutáveis.

É claro que existem novas classes e falhas de segurança que não são contempladas pelo estudo referenciado acima, mas de uma forma geral, esses novos problemas são apenas adaptações e/ou evoluções dos existentes no estudo.

Um aspecto forte no documento é sua análise sobre como as falhas podem ser inseridas, acidentalmente ou propositadamente, durante o ciclo de vida do desenvolvimento de um produto. Isso é importante pois quando a segurança é analisada através desse enfoque, está na verdade procurando-se prevenir a ocorrência de falhas e não remediar, como é o enfoque da maior parte dos artigos encontrados na área. Como exemplo pode-se citar que quando se adquire um sistema de detecção de intrusos está se combatendo o resultado de uma falha, enquanto se investe em gestão de segurança durante o ciclo de desenvolvimento, está se prevenindo falhas.

Outra parte interessante do estudo são os exemplos apresentados ao final do documento, dando a um leitor não familiarizado com a área de segurança uma forma de entender a taxonomia sugerida.

[Landwer et all] A Taxonomy of Computer Program Security Flaws with Examples. Publicado na ACM Computing Surveys no. 26 em Setembro de 1994.

quinta-feira, 8 de março de 2007

Divulgação da Fraude do Sumitomo Bank

No ano de 2005 foi divulgado uma tentativa frustrada de fraude no banco japonês Sumitomo. A fraude consistia no roubo de senhas de funcionários chaves do referido banco através de um dispositivo de keylogging (espécie de guardador de senhas) implementado em hardware.
A importância da notícia não foi a tentativa da fraude em si, mas sim, o fato de ter sido amplamente divulgado, fato muito raro quando envolve Instituições bancárias.
Outro fato bastante interessante sobre o ocorrido é a simplicidade do ataque, pois ele poderia ser empreendido remotamente via algum tipo de malware embutido em arquivos legítimos do usuário (apresentações, e-mails, entre outros).
Desse incidente dois grandes insinamentos podem ser tirados. O primeiro deles é que as empresas devem repensar a divulgação de incidentes de segurança pois um dos pilares da segurança da informação é a negação a segurança por obscuridade, ensinamento que a muito a criptografia usa para validar seus algoritmos de forma mais eficiente.
Caso as empresas divulgassem mais os seus incidentes de segurança, o ensinamento poderia ser aprendido, além de que daria uma real dimensão do problema para as autoridades e, muito provavelmente, ações concretas internacionais já deveriam ser tomadas.
O segundo ensinamento diz respeito ao planejamento de segurança das empresas. Um banco é uma instituição que possui um investimento bastante significativo em soluções de segurança da informação. Porém o combate a ameaças virtuais é algo bastante dinâmico e por maior que seja o investimento na área, nunca será o suficiente para erradicar esse problema.
No caso do banco Sumitomo, talvez se houvesse uma maior preocupação na educação e controle dos seus funcionários, talvez esse problema não tivesse ganhado dimensões tão grandes. Esse esquema de conscientização já é adotado com sucesso em outras áreas da segurança (safety), como a do trabalho e a de vôo.
Caso os funcionários fossem constantemente alertados quanto ao perigo de guarda senhas de forma local a sua máquina, de tomar cuidado ao abrir determinados conteúdos e de sempre modificar suas senhas, problemas similares a esses, que ocorrem diariamente mas não são divulgados, seriam muito menos comum.