Estou relendo um dos melhores livros técnicos que já li: “Escrevendo Código Seguro”, de Michael Howard e David LeBlanc, traduzido aqui no Brasil pela editora Bookman e originalmente publicado pela editora Microsoft. Um livro da Microsoft, uma empresa com uma fama até alguns anos atrás tão ruim nesta área : o que poderia dar errado né? Nada: justamente pelo passado de falhas de segurança graves no Windows. Aquele velho ditado: o melhor médico é aquele que está doente.
É basicamente um livro sobre arquitetura e construção de software. Você irá encontrar técnicas que te auxiliam a escrever código menos sujeito a falhas, e também lida com questões arquiteturais muito importantes. Um aspecto histórico deste texto que o torna especial é a época em que foi escrito: foi logo após uma série de micos que a Microsoft passou envolvendo furos de segurança em seus produtos. Daquele mico a empresa criou uma iniciativa chamada “Secure Windows Initiative” (os autores fizeram parte da equipe fundadora) que realmente tornou as coisas muito melhores para usuários Windows.
Então a partir deste background dos autores podemos ter uma idéia sobre como funcionam de fato as coisas por trás da Microsoft (você sentirá vontade de trabalhar lá). O que realmente chama a atenção é o aspecto humano da coisa. O tempo inteiro os autores nos mostram como lidar com a resistência das pessoas em lidar com segurança, que muitas vezes é vista como um recurso do sistema e não o que realmente é: um elemento arquitetural que permeia cada linha de código. Então você encontrará inúmeros contra-argumentos para todas as tolices que ouvimos por aí: “depois cuidamos da segurança”, “bobagem se preocupar com isto: tem um firewall”, e por aí vai.
No que diz respeito à parte de construção você verá basicamente C++ e tecnologias que hoje não são tão usadas, como, por exemplo, ActiveX, DCOM, etc. Interessante mesmo são as boas práticas que o livro expõe de uma forma não axiomática, ou seja, é exposto em detalhes por que, por exemplo, você deve limitar a área do ataque (entender o que é isto), ter configurações seguras por padrão, etc. Há alguma coisa sobre .net, mas infelizmente não conheço muito a plataforma para te dizer se é atualizado ou não.
Atenção especial deve ser dada ao capítulo 4, em que é exposto como fazer uma modelagem de ameaças ao seu sistema. Você irá conhecer uma metodologia desenvolvida pela Microsoft chamada STRIDE que é fascinante para dizer o mínimo.
Gosto muito também do capítulo 19 em que é exposto como escrever testes de segurança. Normalmente equipes de teste simplesmente não sabem como fazer testes de segurança, então é um capítulo que, acredito, dará um diferencial para empresas que prezem de fato pela qualidade dos seus sistemas e do modo como são testados.
Na minha opinião é um livro que vai além da segurança: encontra-se no mesmo nível que o maravilhoso Code Complete que mencionei em 2009 neste blog. É texto de formação: te torna um profissional melhor tanto técnicamente quanto socialmente. Recomendo a leitura!
PS: infelizmente não estou podendo escrever muito últimamente, o que tem me frustrado bastante, mas garanto-lhes que em breve lhes trarei algumas novidades bem interessantes sobre Groovy, Grails, Spring e “otras cositas más” que tem me animado bastante. :)
Legal, estou mesmo precisando ler umas coisas assim.
coSitas
Isto que da tentar espanhol!
Arrumado Eduardo, valeu! :)
que será que o Kico tanto trama? seria a bola quadrada? hehehehe
Ou o que será que trama tanto com o Kico? :)