quarta-feira, 24 de agosto de 2011
Avaliando uma arquitetura de software
terça-feira, 9 de agosto de 2011
Segurança na aplicação e vulnerabilidade no web.config
Segundo o autor, os arquitetos e desenvolvedores estão dando agora mais importância a segurança das aplicações na hora de projetar e desenvolver. Porém mesmo assim a aplicação pode esta vulnerável a ataque se não houver atenção necessária nos arquivos de configuração (Web.config). Se ele estiver configurado incorretamente pode trazer grandes ameaças como um código mal feito. O que torna mais grave esta situação é que as configurações padrão deste arquivo possuem valores que tornam o ambiente inserguro.
O autor na parte um do artigo lista cinco configurações que permitem que criminosos virtuais explorem as aplicações baseadas na web e usam a tecnologia ASP .NET.
1 - Custom Errors Disabled
Quando esta configuração está com o valor desabilitado (off) os erros que ocorrem na aplicação é exibido detalhadamente para o cliente em seu browser. O nome dos métodos, nome de variáveis e descrição do que casou o erro.
Configuração vulnerável:
<configuration>
<system.web>
Configuração segura:
<configuration>
<system.web>
Saber o local em que o erro foi originado parece não ser um risco para a segurança, mas quanto mais informações um hacker conseguir de um site mais fácil será atacá-lo. Por exemplo, através de uma exceção poder ser obter a versão do servidor IIS e do SGBD SQL Server que a aplicação esta sendo usada. Com esta informações em mãos basta procurar ou desenvolver exploits que exploram vulnerabilidades do servidor, caso elas existam.
De acordo com Bryan Sullivan, para impedir que os detalhes dos erros sejam exibidos no browser do cliente modificando o atributo mode do elemento <customErros> para remoteOnly. Desta forma um mensagem de erro genérica é exibida para o usuário. Outra forma de aumentar o nível de segurança é redirecionar o cliente para uma pagina de erro padrão. Isto pode ser feito definindo o atributo defaultRedirect do elemento <customErros>. Esta abordagem ainda é melhor que a anterior, porque não revela o servidor a versão do servidor ASP .NET que a aplicação esta executando.
No próximo post continuarei a lista as ameaças que acontecem devido a uma confiugração mal feita no arquivo Web.config.