“No artigo da semana passada, falamos sobre como funciona a resolução de nomes da Internet, e o ataque do tipo “man in the middle”, que pode estar sendo utilizado para violar as comunicações criptografadas. Esta semana, vamos falar sobre um ponto bastante polêmico, que é a possibilidade de que os sistemas operacionais possuam “backdoors” (portas dos fundos), que permitam à NSA acessar diretamente os seus dados.
Recentemente, vimos uma enxurrada de especialistas dizendo que todos os sistemas operacionais comerciais (entenda-se Windows e OS X) estão comprometidos, e que a única solução seria adotar sistemas de código livre, ou seja, Linux. Esse discurso já foi utilizado inúmeras vezes antes, mas agora está sendo alimentado com as revelações sobre a NSA. Porém, as coisas não são simples assim e, para analisar essa afirmação, vamos precisar conhecer um pouco da história dos sistemas operacionais e como eles foram construídos.
Um sistema operacional moderno é um software extremamente complexo, contendo inúmeras camadas de funcionalidades: abstração de hardware, kernel, camada de drivers, de segurança, controles de sessão, multitarefa, interface gráfica, isso para falar somente nas que são comuns a todos os sistemas. São centenas de milhares de linhas de código, desenvolvidas por uma tropa de engenheiros, arquitetos, analistas, programadores, testadores, documentadores, designers e inúmeros outros profissionais que, para cada nova versão, passam anos debruçados no código testando, corrigindo e testando novamente. Com toda essa complexidade, é claro que ninguém desenvolve um sistema operacional do zero. Muito código é reaproveitado, componentes de terceiros são incorporados, e embora todas as empresas neguem, acontece muita pirataria com a utilização de partes de códigos de outros sistemas, notadamente de bibliotecas de software aberto.
Vamos então a um pouco da história dos principais sistemas:
O Linux foi criado por Linus Torvalds, em 1992, mas foi baseado em um sistema chamado GNU criado por Richard Stallman em 1983. Foi idealizado desde o início como um software de código aberto, ou seja, todos têm acesso ao código fonte, e podem baixá-lo para suas máquinas, alterá-lo e customizar o seu próprio sistema.
Já o Windows, foi criado pela própria Microsoft, mas começou como o MS-DOS, em 1981, um sistema básico e sem interface gráfica, criado a partir da compra e alteração de outro sistema já existente chamado QDOS. Apesar disso, muitas pessoas alegam que, na realidade, o MS-DOS copiou o CP/M, desenvolvido pela Digital. A interface gráfica do Windows só nasceu muitos anos depois.
Já o OS X nasceu em 1984, como Mac OS, e foi criado a partir de uma versão simplificada do kernel do Linux com a adição de uma interface gráfica própria, que logo migrou para o padrão Motif, desenvolvido pela Digital e HP para sistemas Unix.
Fiz questão de acrescentar um pouco dessa história para mostrar que, na área de software, como na natureza, nada se cria e tudo se transforma. Todos alegam que o seu é original, mas olhando mais atentamente, todos copiaram muita coisa.
Falando ainda de história, a NSA foi criada em 1917, logo depois de os EUA terem entrado na primeira guerra mundial, e desde o início esteve envolvida na interceptação e decodificação de comunicações. Seu envolvimento com a área de informática começou na década de 70, quando projetou, influenciou e implementou boa parte dos algoritmos de criptografia, e já foi acusada por diversas vezes de tentar reduzir a complexidade deles para que tivesse a capacidade de decodificar os dados. Desde então, a NSA participou ativamente no desenvolvimento de padrões e componentes de sistemas, principalmente relacionados à segurança, como por exemplo o SELinux (security enhanced Linux), incorporado ao Solaris, FreeBSD e Darwinkernel e, posteriormente, a diversos outros sistemas Unix e Linux.
Resumindo então o nosso contexto, temos sistemas muito complexos que incorporam código de terceiros, incluindo a própria NSA, e foram sendo evoluídos ao longo dos anos através do trabalho de milhares de profissionais. Pensando um pouco sobre esse contexto, podemos tirar as seguintes conclusões:
--· Quando um componente complexo, com dezenas de milhares de linhas é incorporado a um sistema, é humanamente impossível e financeiramente desvantajoso inspecionar todo o código. O que se faz, na prática, é incorporar o componente e testar as funcionalidades necessárias. Isso pode favorecer a inclusão de algum código malicioso, que poderia passar despercebido pela equipe de desenvolvimento.
--· Por outro lado, em uma equipe grande seria muito difícil para uma empresa incorporar espontaneamente o código de um backdoor sem que essa informação acabasse vazando para alguém da equipe, e bastaria um único programador que saísse da empresa aborrecido para vazar essa informação para a Internet. Uma vez que essa informação vazasse e fosse confirmada, o sistema seria imediatamente banido, pelo menos no mercado corporativo, onde segurança e sigilo das informações é vital.
Na realidade, a Microsoft já foi acusada de ter feito isso: quando incorporou o código de verificação on-line de licenças do Windows, muitas equipes monitoraram os sistemas para tentar identificar se alguma informação privada estava sendo enviada, e nada de irregular foi encontrado. Nesse ponto, nos remetemos a um outro problema relacionado à possibilidade de um backdoor: ele só tem utilidade se eles puderem ter acesso às informações. Porém, mais uma vez, para entender o problema vamos ter que conhecer um pouco mais sobre a Internet.
Vimos, anteriormente, que cada computador ligado na rede precisa ter um endereço IP único para se comunicar. Conforme a Internet começou a crescer, ficou claro que não haveria endereços suficientes para todos e, além disso, por diversas razões (incluindo a segurança), não era conveniente que todos os computadores acessassem diretamente a Internet. Então, foram criadas algumas categorias especiais de endereços IP: os endereços reservados. São faixas de endereços especiais, reservados para diversas utilizações e que não são reconhecidos como válidos na Internet, não sendo possível navegar com eles.
Dentro dos endereços reservados, os mais importantes são os definidos para as redes privadas, marcados na tabela. Vamos tomar como exemplo a faixa 192.168.0.0/24, que é a mais comumente utilizada: inclui todos os endereços de 192.168.0.1 até 192.168.255.255, totalizando 65536 computadores diferentes que podem ser utilizados dentro de uma rede privada. Como as redes das empresas normalmente não são diretamente conectadas, os endereços podem ser repetidos entre as empresas sem causar nenhum conflito.
Mas se o endereço do meu computador não é valido na Internet, como eu consigo acessá-la? Todos os pacotes de dados que são transmitidos em uma rede possuem um cabeçalho, onde são registrados o endereço IP de origem e de destino. Para acessar um site, já vimos que o seu browser usa o DNS para descobrir o endereço de destino; então, ele envia os pacotes com o endereço privado do seu computador como origem e o endereço público do site como destino para o roteador (1). Normalmente, o roteador está conectado à Internet por um único endereço público e, ao receber seu pacote, ele utiliza um serviço chamado NAT (Network Address Translation) que anota o seu endereço privado em uma tabela e o substitui pelo próprio endereço público, encaminhando o pacote, agora com um endereço válido, para o destino (2). Na verdade, o site responde para o roteador (3), que então consulta a sua tabela, substitui o endereço de destino pelo seu endereço privado e encaminha o pacote para a seu computador (4).
Então, na realidade, em uma rede existe um único computador que acessa a Internet, que é o roteador, e que efetua toda a comunicação em nome da rede, gerenciando as respostas e as encaminhando para os endereços corretos; do ponto de vista da Internet, é como se existisse somente um computador, pois todos os pacotes possuem o mesmo endereço de origem. A mesma coisa acontece quando alguém da Internet tenta acessar um computador da sua empresa: ele só consegue acessar os endereços públicos. Quando sua empresa possui um site, o servidor dele possui um endereço privado, e o roteador precisa ser configurado para encaminhar os pacotes para o servidor correto na rede interna. Normalmente, os roteadores já vêm configurados para encaminhar tudo de dentro para fora, e nada de fora para dentro.
Mas o que isso tem a ver com o backdoor? O problema é que ele só seria útil para a NSA se ela pudesse utilizá-lo para acessar e transmitir os seus dados. Para fazer isso, ela poderia agir de duas formas:
--· Backdoor passivo: nesta forma, o backdoor fica quietinho esperando alguém de fora solicitar as informações. Só que, como acabamos de ver, isso só vai funcionar se alguém configurar o roteador para encaminhar os pacotes para a sua estação. O firewall das estações também ajuda bastante nesse ponto, pois bloqueia todas as conexões de entrada para o seu computador, exceto as utilizadas pelo próprio sistema e as que você configurar como permitidas.
--· Backdoor ativo: ele pode ficar o tempo todo tentando transmitir os dados para um servidor externo. Só que aqui entram os outros serviços de rede, principalmente o firewall, que limita os endereços e serviços que podem ser acessados na Internet. Além dele, existem inúmeros outros serviços que monitoram o tráfego, e um backdoor que ficasse o tempo todo tentando se conectar seria facilmente detectado, principalmente nas redes corporativas. O próprio firewall da estação monitora todos os programas, e sempre que algum tenta transmitir algo, ele pede a sua autorização.
Além da dificuldade em conseguir acessar os dados de seu computador, outro problema para a utilização de um backdoor é o volume de tráfego, pois se o objetivo deles é acessar tudo o que você envia e recebe e tudo o que está no seu disco, então encaminhar isso para a NSA significaria dobrar o volume de tráfego dentro da rede, o que seria facilmente percebido, pois implicariam inclusive na redução da performance.
Mas é claro que se um backdoor foi inserido no sistema pela própria Microsoft, o firewall do Windows não iria detectá-lo, e muita gente acredita em um imenso complô, envolvendo os sistemas operacionais, firewalls, roteadores, bridges, analisadores de pacotes, sistemas de detecção de intrusão e antivírus, de forma que todos eles ignorassem a comunicação do backdoor. Só que esses equipamentos vêm de inúmeros fabricantes de todos os lugares do mundo; então, esse complô teria que incluir os Chineses, Russos, Brasileiros, Alemães, Coreanos, Japoneses, e qualquer outro que resolva criar um equipamento de rede ou software de monitoramento, e todos alinhados com os objetivos da NSA.
Então, o que consigo concluir neste caso é que criar um backdoor nos sistemas operacionais seria uma solução de baixa eficiência para a NSA e alto risco para o fornecedor do sistema operacional, pois seria relativamente fácil detectá-lo, e normalmente não serviria para muita coisa, pois os controles normais de rede não iriam permitir que fosse acessado. Então, não estou declarando que eles não existem, mas na minha avaliação, não valeria a pena utilizá-los, tanto que, até o momento, nenhuma das revelações de Snowden indicou nada nesse sentido.
Quanto à discussão de sistemas de código livre versus sistemas proprietários, acho uma discussão oportunista e sem sentido. O principal argumento para se utilizar um ou outro é a sua adequação ao tipo de trabalho em que será utilizado, e o retorno do investimento, e não somente essa possibilidade de risco de segurança.
A vantagem do software livre nesse caso, é que o código fonte pode ser inspecionado para identificar algo malicioso, mas como vimos antes, essa é uma tarefa demorada e difícil. É muito mais fácil seria instalar um sistema em um laboratório e utilizá-lo, inspecionando toda a comunicação e identificando que componentes estão gerando as mensagens. Como não existem sistemas de código livre para todas as necessidades, sempre é necessário instalar algum software comercial. Então, essa deveria ser uma tarefa regular para alguma agência de inteligência brasileira: testar, inspecionar e avaliar todos os softwares utilizados na administração pública, emitindo pareceres técnicos que possam balizar as aquisições. Já passou da hora de o governo brasileiro parar de tratar a área de TI de forma amadora. Todas as outras grandes potências consideram como área estratégica e investem pesado em segurança digital. Atualmente, essa já é a nova fronteira da segurança nacional, onde são travadas verdadeiras guerras silenciosas, mas esse já é um assunto para o próximo artigo.
Porém, até o momento, falamos somente de sistemas operacionais e software para computadores, mas existe outro produto muito mais grave do ponto de vista de segurança: seu telefone ou tablet. Ao contrário dos outros equipamentos, quando você possui um plano de Internet, neles você está conectado diretamente na rede, e possui um endereço IP válido no seu equipamento; então, está sujeito à possibilidade de uso de um backdoor. Na realidade, você já deve ter vários: já reparou que a maioria dos programas instalados solicitam acesso à rede, agenda, lista de chamadas e dados de posicionamento, mesmo quando são jogos ou aplicativos que não precisariam dessas informações? Pois é dessa forma que a NSA consegue dados de ligações ao redor do mundo, mesmo em países onde ela não possui monitoramento. Provavelmente, foi assim que as ligações da Angela Merkel e da Dilma foram rastreadas e, provavelmente, as suas também estão sendo.
No próximo e último artigo, vamos falar de privacidade e do impacto do monitoramento na vida das pessoas e dos países, e vou incluir uma lista de sugestões de como o Brasil poderia se proteger e definir políticas de longo prazo para estabelecer sua autonomia digital, garantindo um mínimo de privacidade e segurança para a sociedade."
FONTE: escrito por José Luiz Berg e publicado no “Jornal GGN” (http://www.jornalggn.com.br/blog/jluizberg/nsa-e-o-monitoramento-dos-eua-parte-5-invadindo-seu-computador).
Nenhum comentário:
Postar um comentário