Clique aqui para ler este artigo em pdf
Clique aqui para ler todos os artigos desta edição
Segurança no Desenvolvimento de Software
por Leonardo Tolomelli
Quando o assunto é segurança de aplicativos, pensamos sempre na infra-estrutura onde eles estão rodando. Isso é fundamental para garantir uma solução segura, mas não é tudo. Segurança é parte de um grande processo que engloba todas as camadas do ambiente da aplicação, como hardware, conectividade, rede, e a aplicação propriamente dita.
Garantir um ambiente sempre atualizado e bem configurado com firewalls, antivírus e políticas de segurança é fundamental, mas é necessário mais que isso. É importante ter em mente que as aplicações também fazem parte dessa pilha de exigências e, que se não estiverem condizentes com o restante, colocarão tudo em risco.
As ameaças mudam a cada dia, assim como o ambiente de execução das aplicações. Sistemas construídos há apenas quatro ou cinco anos não levavam em consideração o nível de conectividade que as redes possuem hoje. Naquela época, não se imaginava o imenso número de computadores que viriam a se conectar a Internet (número esse que aumenta a cada dia) e, portanto, não havia naquele momento a mesma preocupação com a questão de segurança que existe hoje.
A Microsoft está sofrendo do mesmo mal, e foi necessária a criação de uma iniciativa própria denominada “Computação Confiável” (Trustworthy Computing, maiores informações no site: http://www.microsoft.com/mscorp/innovation/twc/), que demandou investimentos de US$ 250 milhões de dólares bem como a paralisação por 60 dias de todos os novos desenvolvimentos (para treinamento de todos os desenvolvedores) e a revisão completa do código-fonte dos produtos mais críticos da empresa.
O resultado dessa iniciativa é percebido no número de boletins publicados sobre falhas de segurança nesses produtos. Entre os nove meses que antecederam a revisão do código do SQL Server 2000 e a publicação do Service Pack 3 (que corrige as vulnerabilidades nele encontradas), foram emitidos dez boletins de segurança sobre o produto. Nos nove meses posteriores ao lançamento do SP3, somente um boletim.
No caso do sistema operacional Windows, isso é ainda mais evidente. Noventa dias após o lançamento do Windows 2000 Server, já havia nove boletins de segurança e, após 150 dias, esse número cresceu para 17.
O processo de revisão total do código do Windows foi realizado durante o desenvolvimento do Windows Server 2003. Após o lançamento dessa nova versão, houve três boletins nos primeiros 90 dias e somente quatro após 150 dias.
Resultados como esses mostram que o investimento na iniciativa está dando certo, e já estamos colhendo os frutos ao oferecermos softwares mais seguros. Ainda há muito por fazer e estamos trabalhando nisso, mas temos convicção de que estamos no caminho correto.
Outro benefício resultante desse trabalho foi o conjunto de melhores práticas para o desenvolvimento de aplicações seguras com ferramentas e produtos Microsoft. Esse conhecimento adquirido vem sendo usado na geração de material técnico para ajudar profissionais com necessidades semelhantes às enfrentadas pelo time da Microsoft. Os sites MSDN e TechNet estão recheados de documentos e treinamentos sobre segurança (http://msdn.microsoft.com/security/).
No que se refere à parte de desenvolvimento de software, foi montado um simpósio sobre segurança durante o último PDC 2003, ocorrido no mês de outubro, em Los Angeles. Esse material está sendo preparado e estará disponível no Brasil em seminários técnicos, artigos e treinamentos on-line a partir de janeiro/04.
Nosso objetivo é transmitir a experiência que adquirimos aos desenvolvedores interessados em tornar seu código mais seguro.
Esteja atento aos serviços e documentos disponíveis sobre o assunto no site MSDN Brasil (http://www.msdnbrasil.com.br/). Conto com a participação de vocês para, juntos, caminharmos em direção a aplicativos mais seguros para nossos usuários.