Conference PaperPDF Available

SafeMash: Uma Plataforma como Serviço para a Composição Segura e Colaborativa de Mashups

Authors:

Abstract and Figures

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.
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 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
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
Web software development is one of the most active areas and fastest growing industries in software and services development in Europe, and, in particular, Java Enterprise Edition is the mainstream European technology option for one million European developers. Since web development is not still a mature area, the proliferation of frameworks and components has both increased the required skills of web engineers, and has affected considerably their productivity. For that reason, the evolution of existing Java based web applications is a very hard and time-consuming task. ROMULUS project has researched on domain driven design for web application development on Java by means of an open source metaframework. A web metaframework is an abstract layer that collects the main aspects of current web frameworks, such as persistence, security, web flow or authentication.
Article
Cloud-oriented service mashup can aggregate many services to provide personalized services for end-users on demand. However, how to securely aggregate mashup services becomes a bottleneck of hampering the development of cloud computing. In this paper, we present a secure cloud service mashup framework called SMEF to address this problem. In SMEF, we employ security entropy to measure the unascertained security degree of service mashup. The nonfunctional criteria of SMEF are aggregated as a single criterion by defining a utility function. Then the relatively optimal mashup services are selected to meet the user requirements. Finally, we have implemented a simulation of SMEF and conducted extensive experiments using simulations of different sizes of services and security factors. Experimental results show the feasibility and efficiency of the SMEF service mashup framework.
Conference Paper
In the last years we witnessed a proliferation of the Web APIs (Application Programming Interfaces) provided by Web companies such as eBay, Amazon, Google, Yahoo, Facebook, Twitter, etc. in order to 'open' their platforms to 3rd party developers to increase revenues. These APIs can be combined together to create new value added services called Mashups. In this paper we propose a classification of some Mashup types and then we show through examples how they can be applied to different application domains. The paper also describes a platform for Mashup creation and execution according to the Platform as a Service -- PaaS Cloud Computing paradigm. Finally we describe a 'Mashup Ecosystem' enabled by such a platform and inspired by the Apple Store case study.
Toward Process Mashups: Key Ingredients and Open Research Challenges
  • Daniel
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.
Disponível em: < https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API > Último
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.
Cloud Computing, A Practical Approach
  • Velte
Velte et al. (2009) " Cloud Computing, A Practical Approach. " McGraw-Hill Osborne Media, 1 ed.
SMU: Towards Cloud Oriented Service MashUp
  • Xie
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.