Content uploaded by Vinicius Cardoso Garcia
Author content
All content in this area was uploaded by Vinicius Cardoso Garcia on Jul 20, 2015
Content may be subject to copyright.
SafeMash: Uma Plataforma como Serviço para a
Composição Segura e Colaborativa de Mashups
Carlo Marcelo Revoredo da Silva (Aluno), Vinicius Cardoso Garcia (Orientador).
Centro de Informática – Universidade Federal de Pernambuco (UFPE)
Av. Jornalista Anibal Fernandes, s/n - Cidade Universitária (Campus Recife)
50.740-560 - Recife – PE
{cmrs, vcg}@cin.ufpe.br
Programa de Pós Graduação em Ciência da Computação.
Nível: Mestrado.
Ingresso no Programa de Mestrado: Março de 2012.
Época esperada de conclusão: Março de 2014.
Etapas já Concluídas: Disciplinas Cursadas; Referencial bibliográfico; Proposta em
Andamento.
Resumo. Este artigo descreve o projeto SafeMash, uma plataforma como
serviço que proporciona um ambiente para a construção segura e
padronizada de Mashups. A plataforma oferece aos seus usuários recursos
que promovem boas práticas, como tratamento das entradas, além de
inspecionar a integridade das políticas de segurança estabelecidas pelas API
de terceiros que atuam como provedores de conteúdo. Estes recursos são
baseados nas abordagens de Segurança especificadas por organizações como
OWASP, CSA, OpenMashup e OpenAjax Alliance.
Palavras-chaves: Arquitetura de Aplicações, Computação em Nuvem,
Segurança da Informação, Segurança em Sistemas de Informação.
1. Introdução
Com o advento da Web 2.0, o conteúdo produzido e publicado deixou de ser
apenas leitura: agora os internautas interagem compartilhando informações em sites e
serviços que disponibilizam conteúdo, tornando a Web então programável [Governor,
2009]. Nesse contexto, surge a capacidade de proporcionar um ambiente dinâmico e
colaborativo, possibilitando que usuários e softwares trabalhem de forma cooperativa,
onde cada usuário desenvolve sua forma de consumir e disponibilizar informações por
meio de interfaces conhecidas por Application Programming Interface (API) [Governor,
2009]. Uma aplicação capaz de combinar serviços de provedores de conteúdo distintos é
denominada Mashup, que é um software que agrega informação e funcionalidade, capaz
de consumir ou fornecer recursos em diversos formatos na Web para diversos usuários e
serviços [Daniel et al., 2009]. Com tamanha praticidade e velocidade agregadas ao
compartilhamento do conteúdo, não demorou muito para as Mashups ganharem espaço
nos ambientes corporativos, exemplo de empresas como IBM, Google, Yahoo, Twitter e
Facebook, que possuem investimentos em ferramentas baseadas nesses conceitos. No
19
site Programmable Web
1
existem mais de 8.800 APIs e 7000 Mashups catalogadas,
apresentando uma boa dimensão do crescimento da utilização do conteúdo
compartilhado.
A computação em nuvem (CN) é um novo conceito, que tem o propósito de
disponibilizar recursos computacionais como serviço sob demanda, em curto espaço de
tempo e custo baseado no uso. Um dos modelos estratégicos da CN é a plataforma como
serviço, do inglês Plataform as a Service (PaaS), que é um modelo de CN voltado para
o desenvolvimento de aplicativos em uma infraestrutura flexível e de reuso. Como
consequência, favorece baixo custo e maior integração aos seus usuários finais [Velte et
al., 2009]. Por suas características, uma PaaS enriquece ainda mais o conteúdo da web
programável, pois oferece uma arquitetura escalável e compatível com diversos tipos de
protocolos, aperfeiçoando a criação de Mashups nesse tipo de ambiente. A Web
programável faz o uso de diversas tecnologias, algumas delas são: Extensible Markup
Language (XML) e Asynchronous Javascript and XML (Ajax). Ambas proporcionam
dinamismo na funcionalidade das Mashups. Entretanto, algumas particularidades de
implementação que envolvem a tecnologia Ajax, especialmente segurança e
padronização, ainda são fatores preocupantes para os especialistas [Ajax and Mashup
Security, 2007].
Neste contexto, este trabalho tem o objetivo de apresentar uma abordagem sobre
a construção de uma PaaS voltada para a composição de Mashups, que procura agregar
fatores de segurança e padronização no processo de composição das Mashups.
2. Motivação e Objetivos
Diante dos entraves de padronização e segurança em Mashups, diversas
organizações especializadas no assunto realizaram estudos sobre essas preocupações. De
acordo com um grupo de pesquisadores da Universidade da Califórnia, em Berkeley, a
falta de padronização de APIs está entre os dez maiores obstáculos para adoção às
soluções de CN [Armburst et al., 2009]. Essa restrição dificulta a inserção de uma
política de segurança eficiente, devido à heterogeneidade das interfaces. Cada provedor
de conteúdo implementa a API à sua maneira, proporcionando problemas de
padronização e divergência entre a segurança oferecida e pretendida. Com isso, os
usuários sentem-se receosos em inserir suas informações, na medida em que os dados
trafegados vão se tornando cada vez mais valiosos, proporcionalmente ao seu uso.
Diante das preocupações, diversas organizações sentem-se motivadas a propor soluções.
Uma delas é a Open Mashup Alliance
2
, que estabeleceu uma especificação baseada em
XML chamada de Enterprise Markup Mashup Language (EMML), com o intuito de
tornar a criação de Mashups mais homogênea. Outra organização é a OpenAjax
Alliance
3
, que procura promover boas práticas de padronização e segurança nas
implementações que envolvam componentes Ajax. Também existem organizações que
possuem pesquisas em um contexto mais amplo, mas que contribuem
1
http://www.programmableweb.com, acessado em 31 de Março de 2013.
2
http://www.openamashup.org, acessado em 31 de Março de 2013.
3
http://www.openajax.org, acessado em 31 de Março de 2013.
20
consideravelmente para o tema — uma delas é a OWASP Foundation
4
, com dois
projetos que trazem contribuições. O primeiro é o Top Ten Project [OWASP Top Ten
Project, 2010], que especifica falhas mais comuns em aplicações web. O segundo é o
Enterprise Security API (ESAPI), que apresenta uma API que proporciona segurança em
provedores de conteúdo [OWASP ESAPI, 2010]. Outra organização que segue a mesma
linha de amplitude é a Cloud Security Alliance
5
(CSA), apresentando uma publicação
sobre as preocupações com as principais ameaças aos modelos de CN, que contempla
também as questões de segurança na implementação de API [CSA Top Threats, 2012].
Baseando-se nesse contexto, surge a proposta de uma PaaS intitulada SafeMash,
na qual são estabelecidos padronizações e aspectos de segurança considerando o cenário
de CN e Mashups. O objetivo é disponibilizar um ambiente colaborativo, no qual os
usuários possam construir suas Mashups de forma padronizada e segura. A plataforma
disponibilizará recursos como: composição de Mashups baseada em especificação,
monitoramento das composições, validação das entradas das interfaces e análise de
conformidade com boas práticas de segurança. Essas práticas são baseadas nas
pesquisas e especificações destas organizações já mencionadas, proporcionando à
plataforma uma evolução contínua.
3. Metodologia do Trabalho
Para atingir os objetivos propostos neste trabalho, foi realizada uma pesquisa na
literatura do estado da arte sobre técnicas de detecção de vulnerabilidades em
aplicações/serviços web. As publicações da OWASP, CSA, Open Mashup e OpenAjax
são consideradas o prisma deste trabalho e, para facilitar a referência, serão nomeadas
como organizações especificadoras. Quanto à utilização do SafeMash, devem ser
considerados dois cenários: o de Consumidor e o de Desenvolvedor de Mashups,
conforme representado na Figura 1.
Figura 1: Visão Consumidor e Desenvolvedor da abordagem SafeMash
4
https://www.owasp.org, acessado em 31 de Março de 2013.
5
https://cloudsecurityalliance.org, acessado em 31 de Março de 2013.
21
3.1 Cenário do Consumidor de APIs/Mashup
Este cenário ocorre quando a plataforma é acessada por um usuário, convidado
ou cadastrado. Neste caso, a ação do usuário terá unicamente a intenção de consumir um
serviço ou composição catalogado ou construído na plataforma. Ao solicitar o conteúdo,
sua requisição será monitorada pela “Camada de Tratamento de Entradas”, onde será
analisada com o objetivo de minimizar ataques baseados em injeções maliciosas e
outras vulnerabilidades. Essa camada irá utilizar um meta-modelo baseado nas técnicas
abordadas pelas organizações especificadoras. Contudo, é importante mencionar que,
independentemente do panorama apresentado, algumas requisições dos usuários, seja no
cenário de Consumidor ou Desenvolvedor, estabelecidas pela própria plataforma, serão
consideradas inexoráveis a serem mensuradas por esta camada. O próximo passo será
direcionar a requisição do usuário para as Mashups ou serviços solicitados, onde serão
analisadas pela “Camada de Políticas de Segurança”, com o objetivo de verificar se o
provedor de conteúdo solicitado está cumprindo com a política de segurança
especificada. Essa camada também é baseada em um meta-modelo voltado para as
recomendações das organizações especificadoras.
3.2 Cenário do Desenvolvedor de Mashup
Esse cenário ocorre quando a plataforma é acessada por um usuário cadastrado
que deseja criar uma Mashup. O usuário tem, à sua disposição, um painel de controle
que oferece basicamente três ações: A primeira ação permite o usuário construir sua
Mashup, onde é possível inserir sintaxes através do recurso nomeado “EMML”,
baseadas na especificação homônima e que serão interpretadas pelo componente
“Construtor de Mashup”.
A segunda ação possibilita ao usuário pesquisar por provedores de conteúdo
disponíveis através do componente “Repositório de API”, no qual o usuário poderá
realizar filtragem por semântica e buscar por conteúdos que deseja para compor a sua
Mashup. Nessa etapa, também é possível fazer restrições utilizando o recurso nomeado
como “Política”, no qual o usuário irá especificar quais recursos de segurança deverão
ser considerados. A partir disso, a plataforma fará uso da “Camada de Políticas de
Segurança” para filtrar por Mashups ou APIs que atendam aos recursos especificados.
A terceira ação proporciona ao usuário atribuir um conjunto de políticas nas suas
próprias Mashups. Nesse contexto, ele especificará todos os recursos de segurança
aplicados à sua composição. Essas informações serão posteriormente analisadas e
testadas pelos administradores da plataforma. A partir dessa análise, será liberada ou
não ao público a composição proposta. Essa prática irá contribuir para que outros
usuários, que futuramente irão consumir a Mashup, tenham a ciência de quais aspectos
de segurança estão sendo considerados por ela, caracterizando assim o ambiente
colaborativo.
4. Resultados Esperados
No cenário atual, a distribuição das informações nas Mashups é realizada de
forma desenfreada, com cada provedor de conteúdo disponibilizando seu serviço através
de APIs que são implementadas de diversas formas, consequentemente causando um
grande problema de padronização ao formato dos dados trafegados e acarretando
22
dificuldades em aplicar uma adequada política de segurança. A plataforma SafeMash
tem o propósito de solucionar esses entraves, fazendo uso das abordagens das
organizações especificadoras. As principais contribuições esperadas por este trabalho
consistem na definição de uma PaaS que ofereça ambiente para a construção de
Mashups de forma colaborativa, ou seja, quando o usuário construir uma Mashup, estará
disponibilizando a outros usuários um serviço que se baseia em uma política de
segurança bem estruturada e em conformidade, além de o serviço ser desenvolvido de
forma padronizada, fazendo uso de uma especificação aplicada em um mesmo domínio,
proporcionando o desenvolvimento de forma mais homogênea. E todas essas
características serão aplicadas continuamente em todo o ciclo de vida da composição.
5. Trabalhos Correlatos
Existem na literatura alguns trabalhos que discutem questões similares às da
abordagem do SafeMash. Nesta seção, serão apresentados alguns deles, enfatizando as
similaridades e as diferenças em relação à abordagem proposta.
Stecca e Maresca propõem uma arquitetura que suporta diversos tipos de
implementações de Mashups [Stecca e Maresca, 2011], preocupando-se apenas com o
aspecto funcional, sem solucionar o problema da padronização na construção das
mesmas. O SafeMash propõe uma padronização com base na especificação EMML,
criada e mantida pela Open Mashup Alliance. De acordo com Garciá [Garciá et al.,
2010], a abordagem apresentada é aplicada sem considerar a participação colaborativa e
em tecnologia específica, no caso a linguagem Java. A abordagem do SafeMash é um
estilo arquitetural que é independente de tecnologia e apoia o desenvolvimento
colaborativo. Li [Li et al., 2011] propõem um framework baseado em entropia para
medir o grau de segurança em cada serviço Mashup baseado em nuvem, classificando as
Mashups em funcionais ou não funcionais. A entropia é uma função de não conservação
de estado, ou seja, baseada em mudanças, onde as medidas são tomadas com o passar da
experiência de uso. A abordagem do SafeMash procura tomar soluções de segurança
desde a fase inicial, considerando todo o ciclo de vida da composição. Xie [Xie et al.,
2009] apresentam uma abordagem de um novo modelo de serviço para a composição de
Mashups no cenário de CN e web programável, considerando a padronização e
utilização dos benefícios da CN. Apesar das semelhanças, este estudo difere do proposto
no SafeMash, pois ele não se preocupa com o desenvolvimento colaborativo e os
aspectos de segurança.
6. Considerações Finais
Este artigo apresentou o projeto SafeMash, uma PaaS focada no
desenvolvimento de Mashups de forma segura, padronizada e colaborativa. Atualmente
o projeto encontra-se em fase inicial de especificação da sua arquitetura, assim como as
decisões tecnológicas de sua implementação e as tomadas estratégicas para a
implementação dos meta-modelos, que serão baseados nas abordagens das organizações
especificadoras. Para a especificação das funcionalidades da plataforma é pretendido
utilizar diagramas que descrevem funcionalidades através de notações da Unifield
Modeling Language (UML), como exemplo o Diagrama de Caso de Uso [Larman,
2004]. O objetivo é elaborar uma documentação que descreva a arquitetura de forma
gráfica e intuitiva. De posse destes artefatos, futuramente pretende-se elaborar outro
23
artefato chamado Prova de Conceito Arquitetural [Larman, 2004], que como o nome
sugere, tem o objetivo de provar uma teoria e possibilita gerar modelagem conceitual da
arquitetura, protótipo e conversão automática de especificação para código.
7. Referências
Ajax and Mashup Security, Disponível em: <
http://www.openajax.org/whitepapers/Ajax%20and%20Mashup%20Security.php >.
Acesso em 27 de Janeiro de 2013.
Armburst et al., (2009), “Above the Clouds: A Berkeley View of Cloud”, Electrical
Engineering and Computer Sciences, University of California at Berkeley.
CSA Top Threats 2012, Disponível em: < https://cloudsecurityalliance.org/research/top-
threats/ > Acesso em 27 de Janeiro de 2013.
Daniel et al., (2010), “Toward Process Mashups: Key Ingredients and Open Research
Challenges”. In: Mashup’10: 4th International Workshop on Web APIs and Services
Mashups Article No. 9.
Garciá et al., (2010), “ROMULUS: Domain Driven Design and Mashup Oriented
Development based on Open Source Java Metaframework for Pragmatic, Reliable
and Secure Web Development”. In: European Conference on Software Maintenance
and Reengineering: 186-189. IEEE Computer Society Press.
Governor et al., (2009) “Web 2.0 Architectures: What Entrepreneurs and Information
Architects Need to Know”. O'Reilly; 1 ed.
Larman (2004) “Applying UML and Patterns: An Introduction to Object-Oriented
Analysis and Design and Iterative Development”. Prentice Hall, 3 ed.
Li et al. (2011) “An Entropy-based Security Framework for Cloud-oriented”. In:
International Joint Conference of IEEE TrustCom-11/IEEE ICESS-11/FCST-11:
304-311. IEEE Computer Society Press.
OWASP ESAPI (2010), Disponível em: <
https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API >
Último acesso em 27 de Janeiro de 2013.
OWASP Top Tem Project (2010), Disponível em: <
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project >. Acesso
em 27 de Janeiro de 2013.
Stecca e Maresca (2011) “A Cloud-based Platform for Enterprise Mashup Ecosystems”.
In: International Conference on Commerce and Enterprise Computing: 244-251.
IEEE Computer Society Press.
Velte et al. (2009) “Cloud Computing, A Practical Approach.” McGraw-Hill Osborne
Media, 1 ed.
Xie et al. (2009) “SMU: Towards Cloud Oriented Service MashUp”. In: Fifth
International Conference on Semantics, Knowledge and Grid: 136-143. IEEE
Computer Society Press.
24