Uma vez que a ontologia OWASP-CWE esteja consistente, ´e poss´ıvel, utili- zando o formato RDF (Resource Description Framework ), recuperar informa¸c˜oes atrav´es do uso de uma poderosa linguagem de consulta - SPARQL, acrˆonimo re- cursivo para SPARQL Protocol and RDF Query Language. O Prot´eg´e fornece a
op¸c˜ao de salvar a ontologia em formato RDF, criando um modelo semˆantico for- mal atrav´es de ‘triplas’ sujeito-predicado-objeto. Informa¸c˜oes detalhadas sobre a linguagem e a utiliza¸c˜ao com RDF pode ser encontrada em Prud et al. (2008). A combina¸c˜ao de consultas com SPARQL sobre bases de informa¸c˜ao ontol´ogicas no formato RDF tem sido cada vez mais utilizadas, ambas sendo atualmente padr˜oes recomendados pela W3C8 (World Wide Web Consortium) (P´erez et al., 2006).
A aplica¸c˜ao das consultas sobre a ontologia foi feita utilizando um servidor SPARQL gratuito - Fuseki9, dispon´ıvel dentro do projeto java Jena10. O Fuseki permite a execu¸c˜ao de consultas a modelos RDF diretamente atrav´es do protocolo HTTP, isto ´e, sobre ontologias RDF publicadas em servidores web. Exemplifi- cando, a seguinte consulta retorna todas as triplas existentes no modelo:
PREFIX uni:<http://www.marciusmarques.com/owasp/owasp-cwe.owl#> select * {?x ?y ?z}
Uma ilustra¸c˜ao da arquitetura desenvolvida pode ser encontrada na Figura 5.4. Os parˆametros para a consulta s˜ao definidos atrav´es do Question´ario respondido pelo desenvolvedor, cuja vers˜ao atual contempla vinte perguntas, detalhadas no Apˆendice A.
Para responder ao Question´ario, o desenvolvedor utiliza seus conhecimento dos Requisitos da Aplica¸c˜ao. O question´ario foi desenvolvido dentro da op¸c˜ao de biblioteca de documentos do tipo ‘Pesquisa’, da solu¸c˜ao da Microsoft Share- Point na vers˜ao 2010. Cada uma das perguntas, cuja resposta pode ser Sim (Yes), N˜ao (No) ou N/A (N˜ao Aplic´avel/Not Available), est´a relacionada a um ou mais riscos do OWASP Top 10, no caso de resposta positiva.
Baseado nas vinte perguntas, o sistema identifica quais s˜ao os trˆes maiores ris- cos (Risco Info) associados `as caracter´ısticas da aplica¸c˜ao. Em seguida, entrega essa informa¸c˜ao ao Apache Jena-Fuseki, que atrav´es da linguagem SPARQL consulta a Ontologia OWASP-CWE, retornando todas as informa¸c˜oes sobre esses riscos no formato XML. Por fim, a informa¸c˜ao ´e formatada utilizando o XML Parser do pr´oprio navegador, para disponibilizar o Relat´orio de Riscos ao desenvolvedor.
Espera-se que essas informa¸c˜oes sejam levadas em considera¸c˜ao no processo de desenvolvimento. Destaca-se que o desenvolvedor pode escolher receber as recomenda¸c˜oes em trˆes n´ıveis - b´asico, intermedi´ario e avan¸cado, cada um deles relacionados ao n´ıvel 1, 2 ou 3 de recomenda¸c˜oes de verifica¸c˜ao do OWASP ASVS. Desenvolvedores iniciantes em atividades relacionadas `a seguran¸ca devem utilizar os n´ıveis 1 ou 2, enquanto desenvolvedores mais experientes podem utilizar o n´ıvel 3.
Os passos para utiliza¸c˜ao do sistema com suas respectivas tecnologias envol- vidas s˜ao enumerados abaixo:
1. Prepara¸c˜ao do ambiente
8http://www.w3.org
9http://jena.apache.org/documentation/servingdata/index.html 10https://jena.apache.org/
(a) Cria¸c˜ao da ontologia (Prot´eg´e) - conforme passos descritos na Se¸c˜ao 5.1, gerou-se o arquivo owasp-cwe.owl, com 21 classes, 13 propriedades de objetos, 11 propriedades de dados, 292 indiv´ıduos e 1562 axiomas. (b) Publica¸c˜ao da ontologia no formato RDF em servidor web (Prot´eg´e) -
realizado atrav´es de envio do arquivo gerado para um servidor web via FTP.
(c) Execu¸c˜ao do servidor RDF/HTTP (Apache Jena - Fuseki) - executado em mem´oria pela porta 3030, integrado ao modelo RDF desenvolvido. O comando de execu¸c˜ao da ferramenta ´e fuseki-server –mem /ds e para acesso pelo navegador ´e suficiente utilizar o endere¸co http: // localhost: 3030/ para execu¸c˜ao local.
2. Execu¸c˜ao do sistema
(a) Desenvolvedor preenche question´ario e n´ıvel de maturidade desejado (Microsoft SharePoint)
(b) Defini¸c˜ao dos trˆes riscos associados `as respostas (Microsoft SharePoint) (c) Consulta `as informa¸c˜oes sobre os riscos na ontologia (Apache Jena -
Fuseki - SPARQL)
(d) Retorno das informa¸c˜oes para conhecimento do desenvolvedor (Micro- soft SharePoint)
Cap´ıtulo 6
Estudos de Caso e Resultados
Para avaliar a abordagem proposta, realizaram-se quatro experimentos em casos reais de solicita¸c˜oes de desenvolvimento de aplica¸c˜oes web da organiza¸c˜ao, com os resultados sendo analisados quantitativa e qualitativamente. As aplica¸c˜oes selecionadas possuem a maioria das caracter´ısticas encontradas nesse tipo de aplica¸c˜ao de forma constante, como mecanismos de autentica¸c˜ao, comunica¸c˜ao via parˆametros, n´ıveis de privil´egios distintos, dentre outras.
6.1
Cen´ario 1 - SMS Broadcast
• Descri¸c˜ao da demanda: desenvolvimento de uma aplica¸c˜ao que possa en- viar mensagens de texto para funcion´arios a partir de uma interface web. O sistema deve possibilitar que os funcion´arios sejam selecionados baseado em uma funcionalidade de filtros. Deve ser poss´ıvel filtrar por localiza¸c˜ao e se¸c˜ao de trabalho. Por exemplo, deve ser poss´ıvel filtrar o envio da men- sagem apenas para os funcion´arios do setor de Finan¸cas do Rio de Janeiro. A aplica¸c˜ao deve ter alta disponibilidade, para ser utilizada em caso de emergˆencias onde se faz necess´ario enviar comunica¸c˜oes aos funcion´arios dentro de um limitado n´umero de op¸c˜oes (por exemplo, quando de uma in- disponibilidade do sistema de e-mail). A aplica¸c˜ao deve possuir um m´odulo de cadastro onde qualquer funcion´ario da organiza¸c˜ao pode enviar os seus dados e de seus dependentes relacionados. O m´odulo de envio deve ser restrito a apenas alguns funcion´arios pr´e-determinados. A aplica¸c˜ao ´e con- siderada de baixa complexidade.
• Tecnologias envolvidas: backend Microsoft SQL Server, frontend Microsoft SharePoint, linguagem ASP Cl´assico.
• Experimento: a tarefa de desenvolvimento foi designada para quatro desen- volvedores com experiˆencia similar em desenvolvimento de aplica¸c˜oes, mas diferentes experiˆencias em rela¸c˜ao a desenvolvimento seguro. As aplica¸c˜oes foram desenvolvidas sob diferentes condi¸c˜oes:
– Os desenvolvedores DA1 e DB1 realizaram o desenvolvimento sem utili- zar a ontologia OWASP-CWE. O desenvolvedor DA1, entretanto, par- ticipou do curso de 40 horas baseado em OWASP no ano anterior.
– Os desenvolvedores DA2 e DB2 utilizaram a ontologia OWASP-CWE antes do processo de desenvolvimento, atrav´es do preenchimento do question´ario para identifica¸c˜ao dos maiores riscos associados `a aplica¸c˜ao. O desenvolvedor DA2, al´em disso, participou do curso de 40 horas ba- seado em OWASP no ano anterior. Ressalta-se que nesse primeiro cen´ario a ontologia, em sua primeira vers˜ao, ainda n˜ao possu´ıa in- forma¸c˜oes das bases OWASP ASVS e CWE, sendo composta da in- forma¸c˜ao presente no OWASP Top 10.
• Avalia¸c˜ao: os quatro c´odigos desenvolvidos - DA1, DB1, DA2 e DB2 - foram submetidos ao processo de CnA da organiza¸c˜ao, cujo resultado pode ser verificado na Tabela 6.1 e na Figura 6.1.