Laboratório de Sistemas Integráveis LSI-USP Plataforma para efetivação de múltiplas políticas de controle de acesso em ambientes de grade computacional Leonardo Mattes, Leonardo C. Militelli, João Antonio Zuffo Sumário Introdução Trabalhos relacionados Arquitetura GridMultiPolicy Implementando Políticas Teste operacional Conclusões Introdução Grade computacionais: Compartilhamento de recursos e serviços de forma integrada e dinâmica entre múltiplos domínios lógicos e tecnológicos. Um típico cenário de grade computacional envolve VO (Organizações Virtuais). Introdução Organizações Virtuais domínios sobre domínios Introdução Ao oferecer maior integração e flexibilidade entre domínios heterogêneos, grades computacionais aumentam também a possibilidade de riscos e vulnerabilidade. Desafio de segurança para grades computacionais é o oferecimento de um serviço integrado aos diferentes modelos de políticas e mecanismos existentes nos sítios de uma VO; Introdução Desafios de grade computacional Permitir a integração de políticas de domínios autônomos; Oferecer serviços de segurança de forma integrada com os mecanismos pré-existentes; Oferecer suporte ao princípio de privilégio mínimo; Manter compatibilidade com as aplicações legadas. Trabalhos Relacionados Os trabalhos produzidos seguem duas orientações distintas: infra-estruturas distribuídas e flexíveis de controle de acesso para controlar serviços de rede (CAS, PERMIS e Shibboleth ) ; Instanciação remota de tarefas: Gerenciamento e mapeamento de contas remotas; Máquinas virtuais GridMultiPolicy Modelo de controle de acesso flexível, que oferece: Suporte e gerenciamento a múltiplos formatos de linguagens de políticas; Abrangência necessária para para exercer controle, tanto no oferecimento de serviços, como no ambiente de execução das aplicações; Estabelecimento dinâmico de múltiplos mecanismos de segurança; Políticas de segurança especificas para cada contexto de execução; Criação dinâmica de pontos de efetivação de políticas. GridMultiPolicy- modelo de autorização • Modelo de Autorização da especificacão AAA • PEP (Policy Enforcement Point -Ponto de Efetivação de Política) • PDP (Policy Decision Point- Ponto de Decisão de Política) Aplicação PEP Recurso alvo PDP Poíticas GridMultiPolicy – Arquitetura Uso integrado de duas entidades: JMPE (Java Multi Policy Environment) MPMS (Multi Policy Manager Service) Sítio da VO Aplicação JMPE PEPs Recursos do sistema PDPs Políticas MPMS GridMultiPolicy - MPMS Módulo principal (XACML) Módulos secundários (formato próprio) Módulo Principal Política Principal Módulo 1 Módulo 2 Escopo Escopo Políticas Políticas Módulo n ... Escopo Políticas GridMultiPolicy - MPMS Escopo (XACML), define a atuação de uma política secundária em relação: Ações; Regras para definir o contexto de atuação de uma políticas (sítios, recursos, perfis); PDP correlacionado, mecanismo capaz de efetivar as políticas correlacionada; Informações sobre os PEPs necessários GridMultiPolicy - MPMS Interface de comunicação PDP principal e secundário public interface PolicyInterface public byte[] createPolicy(RSL Description, VOUser user); Parâmetros para gerar políticas secundárias especificas a contexto de execução: Descrição da tarefa ou serviço por meio de um arquivo no formato RSL; Dados do usuário objeto “VOuser” GridMultiPolicy - JMPE Tem como objetivo a criação de um ambiente de execução customizado para fazer cumprir as múltiplas políticas estabelecidas; Estabelecimento dinâmico dos PDPs, PEPs e políticas necessários. GridMultiPolicy – JMPE Processo de estabelecimento dos PDPs JMPE inicialização Descritor de tarefas (RSL) Lista de PDPs Ambiente configurado JMPE PDP 1 PDP 2 ... PDP n GridMultiPolicy - JMPE Estabelecimento dos PEPs Granularidade básica fornecida pelo gerente de segurança Java. Granularidade estendida modificações em tempo de execução de bibliotecas para a inserção dos PEPs. GridMultiPolicy - JMPE Processo de criação dinâmica dos PEPs: Com base no escopos dos módulos secundários se estabelece a lista de instruções para inserção de PEP; Em tempo de execução as classes são carregadas e modificadas: 4 Aplicação JMPECLassLoader 5 3 Lista de instruções 2 Arquivos binários Java 1 JVM GridMultiPolicy - JMPE GridMultiPolicy - JMPE Efetivação de Políticas de segurança: Analisa a ação e os parâmetros de utilização para verificar quais os PDPs possuem escopos de atuação compatíveis; coleta as decisões dos PDPs para a dada ação; em caso de conflito das decisões, aplica o algoritmo de resolução de conflito; autoriza ou nega a ação; algoritmos de resolução de conflitos do XACML: “deny-overrides”, “allow-overrides”, “firstapplicable” e “only-one-applicable”. GridMultiPolicy Integração com GT4 1 - recebe a credencial MPMS Sítio 3- po líti ca s 4- WS-GRAM iníc tare ia a fa 2- submissão de tarefa Usuário da VO 5 tarefa acabada JMPE Implementando políticas LeastPrivilege, controle de acesso a: Arquivos locais; conexões TCP/IP; Web Services. <Action> File_write /tmp/* write</Action> <Action>Socket/lsi.usp.br:7</Action> <Action>WS/lsi.usp.br/axis:</Action> Implementando políticas Instrução para PEP de web service <PEP action="webServiceInvoke" grain="webService" classtarget="org.apache.axis.client.Call" > Method="org.apache.axis.client.Call" <Method name="invoke"> <property name="host" value="transport.url"/> <property name="service" value="operationName.getNamespaceURI()"/> <property name="port" value="perationName.getLocalPart()"/> </Method> </PEP> Implementando políticas IDS_Control promove a integração com sistema IDS local O PDP “br.usp.lsi.IDSControl“ armazena dados sobre acessos; GER (Grid Event Receiver) recebe informações de ataque da central de gerenciamento de IDS e compara com os acessos realizados. Implementando políticas IDS Sensor #2 Grid Host IDS_Control PDE PDE #2 ... PDE #2 GER Internet Internal Network IDS Sensor #1 IDS Management Central JMPE Teste operacional Uso do LeastPrivilege e IDS_Control; Realiza duas séries de ações e simula um ataque a um servidor web; Cadastrado no IDS o acesso em http://lsi.usp.br/axis como ataque. Teste operacional Resultado primeira série de ações: Obteve acesso aos recursos previstos pelas políticas LeastPrivilege. ******************** first round !*********** Write in /tmp/GridCliente fail to write /bin/malicioso Connected to 192.168.0.77:7 ! fail to Connect to 192.168.0.22:1024 . fail WS “admin” in http://lsi.usp.br/test WS “ test” in http://lsi.usp.br/axis Teste operacional Resultado segunda série de ações: Depois de detectado o ataque, todas as ações são bloqueadas. *************** second round !********* fail to write /tmp/GridCliente2 fail to write /bin/malicioso2 fail to conect to 192.168.0.77:7 fail to conect to 192.168.0.22:1024 . fail WS “admin” in http://lsi.usp.br/axis fail to WS “test” in http://lsi.usp.br/axis End of the test! Conclusões Modelo de autorização flexível para a próxima geração de plataformas de grade computacional, com as seguintes características: Permitir que administradores e usuários possam estabelecer suas próprias políticas; Oferece serviço de distribuição de políticas de segurança de múltiplos formatos; Utiliza um ambiente de execução flexível, que permite o estabelecimento de múltiplos mecanismos; Implementa de forma dinâmica e em tempo de execução os pontos de efetivação de políticas necessários; Perguntas? Laboratório de Sistemas Integráveis LSI-USP