Um Framework baseado em Padrões de Segurança para Transformações em MDA
Por: 1e421f69 • 14/5/2018 • Artigo • 4.774 Palavras (20 Páginas) • 201 Visualizações
Um Framework baseado em Padrões de Segurança para Transformações em MDA
Fábio Sarturi Prass1, Lisandra Manzoni Fontoura1, and Osmar Marchi dos Santos1
1 Programa de Pós-Graduação em Informática, Universidade Federal de Santa Maria – UFSM, Brasil
{fabioprass, lisandramf, osmar[a]}@gmail.com
Resumo. Padrões de Segurança são amplamente utilizados em sistemas para proteger dados compartilhados e informações. Eles usam as especificações de segurança para controlar o acesso a recursos e evitar violações de segurança. No entanto, as especificações são definidas como uma forma ad-hoc na fase de implementação após o design de software. Esta causa vem aumentando as vulnerabilidades dos sistemas de TI. Assim, propõe-se um framework baseado em padrões de segurança orientado à modelo, fornecendo diretrizes para implementação do modelo aplicativo, a validação correta do uso dos padrões e a geração automática para uma plataforma específica. A segurança é inserida implicitamente no sistema por meio de transformação entre modelos e codificação automática, garantindo que a segurança não será violada em nenhum nível e não será apta a erros ou alterações do código.
Abstract.
Keywords. Segurança, Padrão de Segurança, Transformação, MDA, Framework.
- Introdução
Com a intenção de obter maior agilidade no desenvolvimento de sistemas, e alcançar os benefícios inerentes, têm surgido ferramentas de geração de código, que se utilizam de templates, assistentes, desenvolvimento declarativo, entre outros recursos. O uso destas ferramentas no desenvolvimento de aplicações cobra do desenvolvedor um valor extremamente alto, que é a dependência das soluções geradas, tornando impraticável realizar alterações nos códigos-fonte automatizados por diversas razões, entre as quais, os algoritmos gerados podem ter alto nível de complexidade [3].
Diversos frameworks, e outras ferramentas que se utilizam de complementação de código têm surgido com o mesmo intuito, o de acelerar os processos de codificação dos aplicativos. Embora a complementação de código seja extremamente satisfatória, a essência e a responsabilidade da codificação correta continuam sendo atribuídas ao programador. Embora estas ferramentas façam constantes verificações sintáticas, elas não podem garantir em tempo de desenvolvimento a utilização correta dos objetos e nem mesmo da completude e coerência operacional dos algoritmos, semanticamente [6].
A Object Management Group (OMG), em busca de uma alternativa para a automatização do desenvolvimento com a aplicação dos modelos gerados na etapa de modelagem, criou o Model Driven Architeture (MDA), como alternativa para o aproveitamento da documentação e geração de código de forma automatizada, com o intuito de oferecer um passo evolutivo no processo de desenvolvimento de software. Esta arquitetura busca ainda permitir a especificação de um sistema de forma independente da plataforma e prover meios de transformação desta especificação para plataformas específicas [15].
Visando à elaboração de sistemas seguros, têm-se os padrões de segurança, que são soluções reutilizáveis aos problemas de segurança. Contudo, para obter os benefícios da utilização destes padrões é necessário saber quando, onde e como utilizá-los, a partir de suas definições, pois, falhas de segurança podem ser introduzidas pela incorreta implementação do padrão de segurança [18].
Padrões de segurança, em combinação com MDA, permitem que a segurança esteja integrada na modelagem de sistemas à medida que os modelos de projeto sejam combinados com os modelos de segurança. Assim, técnicas de geração automática de código são utilizadas para automatizar a construção de sistemas a partir desses modelos, auxiliando a criação de estruturas flexíveis e garantindo que os requisitos de segurança sejam considerados durante todas as fases do desenvolvimento do sistema. Com isso, as falhas de segurança podem ser identificadas de forma mais rápida e a implementação é mantida consistente com a política de segurança modelada, além de permitir a migração para novas plataformas [25].
Aplicações como softwares, comércio eletrônico e outras similares no âmbito da tecnologia da informação, possuem a segurança como requisito fundamental e apesar da grande variedade de estruturas disponíveis, constantemente há noticias sobre vulnerabilidades e falhas de segurança em sistemas de software [8]. Á medida que as estruturas aparecem, eles se tornam rapidamente ultrapassadas por diferentes motivos. Na maioria das vezes não oferecem um modelo arquitetural suficientemente flexível para acompanhar as necessidades do negócio, o qual está em desenvolvimento ou, ainda, porque limitam o escopo da arquitetura que o negócio necessita. Devido à diversidade de requisitos de negócio de cada aplicação, arquitetos de software e analistas necessitam cada vez mais criar suas próprias estruturas e manter suas integridades e coerência em relação às necessidades do negócio as quais atendem [4].
O conhecimento desses desenvolvedores pode ser incorporado em padrões, que descrevem soluções comprovadas para problemas recorrentes. Padrões, assim, facilitam a geração e documentação de soluções conhecidas e estabelecidas. Estas soluções encapsuladas são muito valiosas na elaboração de novos sistemas, na avaliação de sistemas existentes, e podem, ainda, melhorar o processo de comunicação e aprendizagem [14].
Uma variedade de diferentes tipos de padrões tem sido considerada na literatura: os padrões são desenvolvidos para diferentes níveis de abstração, variando de paradigmas fundamentais para a estruturação de sistemas de software ou padrões de gestão para implementações concretas de decisões de projeto particular. Desta forma, uma abordagem orientada a modelo pode auxiliar o desenvolvimento de sistemas seguros, promovendo uma implementação facilitada dos padrões de segurança e, desta forma, garantindo aderência às diretrizes arquiteturais da organização e às questões de segurança. Este trabalho está concentrado, principalmente, nas linguagens de modelagem e métodos para gerar um framework de padrões de segurança que possa ser inserido em regras de transformações de modelos utilizando MDA. A avaliação se baseia no estudo dos padrões de segurança definidos por Shumacher et al. [19].
...