Sítio do Piropo

B. Piropo

< Coluna em Fórum PCs >
Volte
16/10/2006

< Segurança no Vista II: O SDL >


Em Junho de 2006 a Microsoft publicou o documento (“white paper”) “Microsoft Windows Vista Security Advancements” disponível para transferência
< http://download.microsoft.com/download/c/2/9/c2935f83-[na mesma linha. N. W.M.]
1a10-4e4a-a137-c1db829637f5/WindowsVistaSecurityWP.doc
>
em formato .Doc e acompanhado por um vídeo que pode ser visto
<  http://www.microsoft.com/winme/0605/27914/Mike_Nash_Vista_Demo_MBR.asx > aqui. No documento, além de resumir os principais avanços incorporados ao Vista no campo da segurança, a Microsoft expõe as razões que a levaram a considerar este tema uma de suas principais preocupações e fornece alguns dados sobre o SDL, ou “Security Development Lifecycle”, o processo que adotou para garantir o desenvolvimento de produtos mais seguros. Muito do que vai ser lido nesta coluna se baseia nos conceitos expostos   no documento citado, ou seja, exprime a posição e o ponto de vista da MS sobre o assunto.

Melhorias na segurança

Os reforços da segurança implementados na versão Vista de Windows podem ser subdivididos em quatro grandes categorias:

- Acesso seguro;

- Proteção contra programas mal intencionados e intrusos;

- Proteção de dados e

- Avanços de segurança no Internet Explorer 7.

Segundo a MS, nestas últimas três décadas, à medida que os dispositivos digitais, incluindo os computadores pessoais, se incorporavam a nossa vida diária descortinando possibilidades ilimitadas de processamento e armazenamento de dados que revolucionaram o comportamento da sociedade, foram igualmente se tornando alvo cada vez mais freqüente de ataques de indivíduos mal intencionados que contaminam as máquinas com vírus, disseminam programas espiões, distribuem mensagens indesejadas (“spam”), disparam ataques maliciosos e furtam dados e informações pessoais para usá-las em proveito próprio. Estas ações acabaram por se transformar no principal obstáculo ao desenvolvimento e disseminação da tecnologia da informação.

A ameaça se tornou tão grave que, ainda segundo a MS, há quatro anos a empresa estabeleceu a estratégia “Trustworthy Computing” (computação confiável) com o objetivo de oferecer aos usuários individuais mais segurança e maior proteção da privacidade e, aos administradores de redes corporativas, meios de torná-las mais resistentes a ataques externos.

Todos os avanços no campo da segurança obtidos através da “Trustworthy Computing” foram incorporados à versão Vista de Windows, já que esta versão foi a primeira a ser desenvolvida desde o início segundo os princípios do “ Microsoft’s Security Development Lifecycle”, um conjunto de regras estritas de segurança que definem rigorosamente os processos de engenharia que devem ser seguidos por cada desenvolvedor de código e submetidos a uma verificação antes da aprovação.

O resultado disso foi um sistema operacional que incorporou as seguintes características voltadas especificamente para a segurança (e que serão discutidas ao longo desta série de colunas):

- “User Account Control” (controle de contas de usuários), uma técnica que protege o usuário comum (cuja conta não detém privilégios de administrador) contra a ação de programas maliciosos sem, no entanto, impedir que os demais programas sejam instalados e usados. Esta alteração envolve mudanças na própria arquitetura de “logon” do Windows;

- “Windows Service Hardening”, (rigidez dos serviços de Windows) uma estratégia que controla rigidamente as ações dos chamados “serviços” de Windows e reduz, entre outros, o risco de vulnerabilidades do tipo “estouro de buffer”;

- “Network Access Protection” (proteção de acesso à rede), um conjunto de alterações que aumenta significativamente a segurança das redes, permitindo a seus administradores impedir o acesso de uma máquina possivelmente contaminada;

- “Windows Defender” (defensor de Windows), uma tecnologia específica para controlar programas mal intencionados e intrusos. Esta tecnologia é integrada a um “Firewall” bidirecional aperfeiçoado e incorporada a um “Windows Security Center” (centro de segurança de Windows) bastante melhorado e simplificado;

- “Windows BitLocker Drive Encryption” (criptografia de unidades de disco Windows BitLocker), uma técnica que permite criptografar os dados armazenados em discos rígidos garantindo que as informações confidenciais contidas em discos furtados, perdidos ou “aposentados” (substituídos) caiam em mãos de indivíduos mal intencionados. Esta técnica, combinada com aperfeiçoamentos nos “Windows Rights Management Services” (serviços de gerenciamento de direitos de acesso de Windows) e no “Encrypting File System” (sistema de arquivos criptografados), aumentam significativamente o nível de proteção dos dados;

- Arquitetura do “Internet Explorer 7” totalmente remodelada, com ênfase nas questões de segurança e proteção da privacidade do usuário. Os melhoramentos incluem um modo protegido que impede que terceiros se apoderem do controle do navegador para execução de rotinas de programação à sua revelia, proteção contra “phishing” e a implementação de uma “Security Status Bar” (barra de “status” da segurança).

Além das alterações incorporadas ao sistema propriamente dito, a MS pretende estabelecer uma política bastante mais rígida de controle de segurança. As atualizações do sistema serão distribuídas automaticamente e tanto o banco de dados de definições de vírus e programas mal intencionados quanto a relação de sítios suspeitos de “phishing”serão mantidos estritamente atualizados (detalhes serão discutidos adiante).

Além destas melhorias que se aplicam a quaisquer sistemas que rodem Windows Vista, aqueles que dispuserem da nova geração de microprocessadores “de 64 bits”, assim como os que incorporarem funções de proteção no próprio microprocessador (como as funções “No eXecute” e “Trusted Platform Module”), desfrutarão da proteção adicional já que Vista é concebido para explorar estas facilidades.

Nesta segunda coluna da série vamos discutir o “Security Development Lifecycle - SDL”, a estratégia adotada pela MS para garantir que os riscos de segurança sejam levados em conta ao longo de todo o ciclo de desenvolvimento do produto.

Security Development Lifecycle – SDL

A partir de 2003, todos os produtos da MS utilizados em corporações, usados rotineiramente para manejar informações pessoais ou que se conectam à Internet são submetidos ao SDL, um processo que acompanha o produto durante todos os estágios seu desenvolvimento e vida útil (“do berço ao túmulo”, segundo o colunista Ryan Naraine da eWeek no artigo adiante citado).

O SDL é um dos principais pilares da iniciativa “Trustworthy Computing”. Ele representa uma mudança radical na metodologia do desenvolvimento de produtos. A metodologia tradicional consiste em escrever o código, testá-lo para verificar se de fato funciona e somente então verificar sua segurança, pesquisando a existência de possíveis “bugs” e vulnerabilidades. O uso da metodologia SDL incorpora a preocupação com segurança a cada estágio de desenvolvimento, desde a fase de concepção até o lançamento do produto.

A Figura 1, uma montagem de originais obtidos no artigo de Steve Lipner disponível no sítio da MSDN <   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/sdl.asp > “The Trustworthy Computing Security Development Lifecycle” mostra as diferenças entre a metodologia tradicional e o SDL.

Clique para ampliar...
Figura 1: Método tradicional e SDL.

O processo tradicional, mostrado esquematicamente na parte superior da figura, consiste de uma seqüência de fases que aparentemente se sucedem “em cascata” mas que na verdade consistem de sucessivas “espirais”, com cada uma delas sendo freqüentemente revista e alterada durante o próprio processo de desenvolvimento em resposta seja a exigências do mercado, seja a correção de falhas.

O SDL alterou significativamente este ciclo. Ele se baseia em quatro princípios básicos a que todo software deve obedecer: ser “seguro por projeto” (“Secure by Design”: concebido, desenvolvido e implementado de modo a proteger a si mesmo e as informações que processa e a resistir a ataques), ser “seguro por padrão” (“Secure by Default”: garantir segurança a partir do momento em que começa a ser executado; por exemplo: rodar com o mínimo de privilégios necessário e desabilitar todos os serviços e funções não essenciais), ser seguro na fase de distribuição (“Secure in Deployment”: ser acompanhado de ferramentas e instruções que auxiliem o usuário a manter a segurança) e, finalmente, manter os usuários informados de quaisquer eventuais falhas que venham a ser detectadas, distribuindo imediatamente as devidas correções.

O artigo de Steve Lipner acima citado descreve detalhadamente cada uma das fases do SDL e quem desejar informações mais detalhadas pode consultá-lo, assim como o artigo de Michael Howard, da MSDN Magazine, < http://msdn.microsoft.com/msdnmag/issues/05/11/SDL/ > “A Look Inside the Security Development Lifecycle at Microsoft”. Aqui não cabem detalhes, mas pode-se salientar alguns pontos interessantes da nova filosofia de desenvolvimento: cada equipe responsável por uma fase inclui obrigatoriamente entre seus membros um especialista em segurança; e cada passo do desenvolvimento é imediatamente submetido a testes e revisões de segurança; durante todo o processo o produto é submetido a tentativas de invasões e quebras de segurança por parte do “Secure Windows Initiative Attack Team – SWIAT (qualquer semelhança com o acrônimo das equipes “SWAT” não é mera coincidência...), um grupo de “hackers” contratados pela própria MS e assessorado por especialistas terceirizados, que tentam encontrar brechas e vulnerabilidades e relatam à equipe de desenvolvimento todas as falhas porventura encontradas.

Em resumo: o que o SDL traz de importante é uma mudança significativa na forma de encarar o item “segurança do produto”. Enquanto, tradicionalmente, a segurança era um tema a ser abordado em uma das fases finais do desenvolvimento (ou seja: desenvolve-se o produto, testa-se sua funcionalidade e depois, quando o desenvolvimento já está praticamente concluído, iniciam-se os testes de segurança), o SDL incorpora as preocupações com segurança do produto desde a fase inicial do desenvolvimento, a própria concepção do produto, e o acompanha passo a passo até a distribuição, incluindo não apenas o treinamento em questões de segurança de todos os elementos das diversas equipes que participam do desenvolvimento como também o acompanhamento do trabalho, “do berço ao túmulo”, por especialistas em segurança.

E funciona?

A aplicação da metodologia SDL no desenvolvimento dos produtos da MS começou em 2003. O primeiro produto a ser submetido a ela foi o Windows Server 2003, mas quando isto ocorreu o software já estava em uma fase relativamente adiantada de desenvolvimento, de modo que não foi possível incorporar a segurança desde os estágios iniciais. Depois dele vieram o “Service Pack 3” para o SQL 2000 e o “Service Pack 3” para o Exchange 2000 Server, ambos submetidos ao SDL desde o início. Mas como se trata de “Service Packs” (“pacotes de serviço”, um conjunto de atualizações agrupado em um único “pacote”), foram incorporados a produtos preexistentes, cujo desenvolvimento inicial não havia incorporado a metodologia SDL, portanto fica difícil aferir sua eficácia baseada neles.

Figura 2: Número de vulnerabilidades constatadas (pré e pós SDL).

Não obstante, há sinais positivos sobre a eficiência na nova filosofia de trabalho. Antes de adotar a SDL, a MS teve que emitir 62 boletins para corrigir vulnerabilidades encontradas no Windows 2000. Já o Windows Server 2003, cujo desenvolvimento foi parcialmente submetido ao SDL, exigiu apenas 24 correções. E os números relativos aos outros dois produtos são semelhantes (veja Figura 2, obtida no artigo da MSDN Magazine acima citado).

De uma forma geral, segundo opinião de Michael Howard, gerente do programa de gerenciamento de segurança da MS em entrevista a Ryan Naraine publicada no artigo da eWeek.Com < http://www.eweek.com/article2/0,1895,1779769,00.asp > “Microsoft Claims Security Win with New Development Rules”, o saldo é positivo. Diz ele:

“O processo não é perfeito e ainda está em desenvolvimento. Programadores são humanos. Haverá erros e aparecerão ‘bugs’ no código. Mas, com o SDL, eles serão reduzidos. ...(com o SDL) temos constatado uma redução global das vulnerabilidades de segurança. E, mais importante do que isso, também temos constatado uma redução no grau de severidade das vulnerabilidades que passam despercebidas durante o desenvolvimento”.

Windows Vista é o primeiro produto desenvolvido do início ao final sob a égide do SDL. Ele será, portanto, sua prova de fogo, o primeiro a confirmar (ou negar, quem sabe...) a eficiência do método.

A julgar pelo que se tem visto nas versões beta, a coisa parece que funciona.

Como veremos nas próximas colunas.

 

B. Piropo