• Nenhum resultado encontrado

Sumário Capítulo 1 Introdução

Capítulo 4 – A abordagem de Desenvolvimento Dirigido pela Segurança

5) A relação na qual um caso de uso agrava o dano causado por um caso de uso impróprio Esta relação também pode ocorrer entre dois casos de uso impróprio;

4.6 Máquinas de ataque

Um aspecto relativo à segurança da informação que requer atenção é o teste o software, ainda no SDLC. Devido ao fato de não haver, de um modo geral, um ferramental específico para testar os requisitos de segurança, os testes de segurança são executados após a entrega, às vezes já no ambiente de produção ou operação do software, e com ênfase em ataques de malwares, por meio de teste de invasão. Esta abordagem, apesar de eficaz para os propósitos aos quais se destina, carrega duas deficiências:

1) Como tratado neste trabalho, os problemas de segurança da informação não se restringem aos malwares e ataques externos ao software, especialmente no ambiente de dispositivos móveis, cuja complexidade e diversidade de elementos e fatores sujeitos às ameaças e agentes de vulnerabilidades foram abordados no Capítulo 2; 2) Teste de invasão ou teste de segurança são, de um modo em geral, bastante voltados

Seção 3.5, poucas vezes explorando os requisitos de segurança da informação do software propriamente dito.

O modelo SDD propõe enfrentar estas deficiências com a construção de máquinas de ataque que possam ser empregadas para testar a segurança do software muito além das ameaças de malwares, e que possam atuar sobre os requisitos de segurança da informação específicos de cada software.

Máquinas de ataque são programas, componentes ou trechos de código construídos para simular a ação de malwares, invasores, usuários mal informados, mal-intencionados ou as falhas, erros e faltas que possam impedir o software de atingir seus objetivos. As principais finalidades do projeto e da construção das máquinas de ataque são:

 Validar os danos previstos e descritos nos casos de uso impróprio;

 Simular a ocorrência dos riscos elencados na análise de riscos;

 Comprovar a efetividade das contramedidas propostas e adotadas;

 Automatizar as atividades de teste o tanto quanto possível, seja pela integração com as ferramentas de teste automatizado seja pela possibilidade de execução programada e automática.

Além disso, as máquinas de ataque são essenciais ao processo de teste pois, sendo criadas em função de riscos específicos, possibilitam a execução de testes mais objetivos – em contraponto aos testes genéricos – reduzindo o esforço e aumentando a efetividade do teste, com a consequente redução do risco de que o software venha a apresentar problemas decorrentes de ataques quando estiver em produção, em especial aqueles decorrentes de problemas já conhecidos.

4.6.1 Modelagem de máquinas de ataque

Com uma abordagem semelhante à modelagem de ameaças, a modelagem das máquinas de ataque propõe o aproveitamento máximo de características comuns das ameaças para propiciar a construção de elementos que explorem as vulnerabilidades pontualmente. E assim como a modelagem de ameaças, a modelagem das máquinas de ataque tem como insumos básicos:

 O estudo e a classificação das vulnerabilidades do ambiente operacional, da infraestrutura e suas características funcionais, como tratado no Capítulo 2;

 A classificação das ameaças e a base de conhecimento acerca das mesmas, incluindo características operacionais e até mesmo código, como tratado na Seção 2.5 e no Apêndice A;

 Os casos de uso impróprio desenvolvidos para as ameaças devidamente classificadas, como exposto nas Seções 4.4 e no Apêndice C;

 A análise de riscos, principalmente no que se refere à priorização do tratamento dos riscos, com abordado nas Seções 4.5 e no exemplo do Apêndice C;

Um facilitador adicional da modelagem de máquinas de ataque é a sua vinculação e dependência com o ambiente e a infraestrutura do software, o que significa que o mesmo time de projeto do software está, a princípio, habilitado a projetar e construir as máquinas de ataque.

Além disso, é comum o interesse dos desenvolvedores de software pelas atividades dos

bad guys, os desenvolvedores de malwares. O fato de existirem outros profissionais de sua

classe que possuem habilidades para identificar e explorar vulnerabilidades desperta a curiosidade e o interesse, e pode ser utilizado como um motivador, um desafio para a equipe de desenvolvimento empregar os seus melhores esforços para provar sua capacidade de operar em condições de igualdade com aqueles. Ou seja, o projeto e a construção das máquinas de ataque são uma ótima forma dos desenvolvedores praticarem a segurança do ponto de vista dos bad

guys, desafiando-os a se mostrarem mais competentes e preparados que aqueles.

Outra característica desta proposta do modelo SDD é justamente a necessidade do trabalho colaborativo e interdependente entre as equipes de desenvolvimento – que detém a expertise necessária para a construção das máquinas de ataque, e as equipes de segurança da informação, que detém o conhecimento das ameaças e vulnerabilidades, resultando em sinergia e na eliminação do gap relatado por McGraw (2005).

No modelo de SDD a etapa de especificação do software inclui a criação de casos de uso impróprio específicos ou genéricos, confrontando riscos e vulnerabilidades e contemplando ameaças identificadas e posteriormente caracterizadas como relevantes pela análise de riscos. No caso do projeto de software utilizado como exemplo, estes casos de uso impróprio embasam a modelagem de máquinas de ataque, cujo processo de elaboração é detalhado na Seção C.3 do Apêndice C, descrevendo e apresentando os modelos das respectivas máquinas de ataque.

4.6.2 Aplicação de máquinas de ataques nos testes de segurança

No modelo SDD, uma vez projetadas e construídas as máquinas de ataques modeladas conforme descrito anteriormente, os testes específicos para a segurança do software contemplam o uso destas máquinas de ataque para a execução dos testes, com o intuito de aferir a eficácia dos mecanismos de defesa e as contramedidas de segurança adotadas. Para tanto os casos de teste devem contemplar as operações específicas voltadas para o uso destas máquinas, com base nos casos de uso impróprio e na análise de riscos.