Workshop05

60
Workshop Segurança JEE

Transcript of Workshop05

  • 1. WorkshopSegurana JEE

2. Agenda Apresentao Conceitos segurana JEE Desenvolvendo: RAD Implementao, testes Demo Java Authorization Contract for Containers JACC Demo Infraestrutura Introduo a segurana de servios web 3. Apresentao 4. 3o pilar da Qualidade da Aplicao Funcionalidade Performance Segurana 5. Problemas Os aplicativos Web so o alvo n 1 dos hackers quebuscam explorar vulnerabilidades Os aplicativos so implantados com vulnerabilidades Configuraes de baixa segurana expem as empresas perdas de negcios Os requisitos regulatrios de PCI exigem a segurana deaplicativo 80% dos custos de desenvolvimento so gastos naidentificao e correo de defeitos 6. Benefcios Reduz o risco de interrupo, desfigurao ou roubo dedados associados com aplicativos Web Assessora e monitora conformidade da poltica desegurana em toda a empresa Melhora a conformidade com as normas do setor eexigncias regulatrias (por exemplo PCI) Melhora a capacidade de integrar aplicativos crticosdo negcio Teste e controle automatizados durante todo o ciclo devida do desenvolvimento, reduzindo os custos desegurana a longo prazo. 7. Motivaes e objetivos Controle de acesso incorporado nas aplicaes pode falhar Impacto no ciclo de desenvolvimento da aplicao Limitao dos componentes desenvolvido internamente Custo e prazo de atualizao dos componentes Modelo de autorizao relativamente complicado Falta de auditoria Usar soluo de mercado Velocidade na colocao de novas aplicaes Aumentar controle de acesso Diminuir falhas Transparente para as aplicaes Auditoria de acesso Gerenciamento unificado das polticas 8. Ciclo de vida da aplicaoConfiguraoRAD- LDAPDesenvolvimento-TAMLocal - WAS7- PortalPublicao em ReplicaoPublicaohomologao/configuraesem testeproduo 9. Arquitetura lgicaWebSEALWeb Container AutorizaoServidorPolticas EJB Container 10. Conceitos de Segurana JEE 11. Modelo de segurana JEE A segurana das aplicaes JEE implementada usandopapeis de segurana (Role) Os papeis de segurana so aplicados nos componentesWeb e EJB mtodos EJB ou URIs Web A Segurana pode ser especificada de 2 maneiras: Declarativa em tempo de configurao, atravs dos deployment descriptors Programtica utilizando as APIS padres em tempo de desenvolvimento A associao dos usurios e dos grupos com os papeis JEE geralmente feito no momento da instalao daaplicao (deploy) 12. ProcessoBob Ligao Papel-Permisso Mtodo EJBMtodo EJB AdministradorAna Mtodo EJB Enterprise Java BeanSolicitanteServletCorretoresjsp Atendentegif,css Segurados Role Segurana ComponentesUsurios/GruposJEE Web 13. Modelo de autorizao baseado em papelQuais papeis so permitidos? Acesso-EJB: roles necessrios dosautorizadomtodos- Servlet/jsp: roles necessrios SIMnas security constraintsRequisio Algumautenticadaigual?Quais papeis so atribudos?- Obter nome doNOusurio/grupo nos credenciais- Obter os roles atribudos a Acessoesse usurio/gruponegado 14. Mapeamento Grupo Mapeamento Application Deployment Descriptor usurios UsurioRecurso Mapeamento Role Usurio Usurio UsurioUsurioMetodo EJB RoleRoleGrupo URI WebGrupo UsurioRole Mapeamento PrincipalDefinido peloprogramador da aplicaoDefinido peloinstalador da aplicao 15. Mapeamento Processos (antigo-novo) Cadastrar papelRU 2 ETrustPapel RU Papel RAPermissoAssociar654Cadastrar usurio1 Papel RU ao Cadastrar permissousurio Associar papel Cadastrar papel RA ecom descritor da 3RA e papel RU associar permisso aplicaoUsurio sincronizao GerenciadorLDAPColocar usurio no grupoDeploy-script RAD-Security Editor Grupo RURole JEERecurso JEE 16. Implementando a Segurana JEE 17. Segurana EJB declarativa Implementao de segurana declarativa com Annotation Lista de annotations EJB @DeclareRoles @DenyAll @PermitAll @RolesAllowed @RunAs 18. Segurana EJB declarativa Implementao de segurana declarativa com Annotation Restrigir acesso ao EJB de sesso Donate import javax.annotation.security.DeclareRoles; import javax.annotation.security.RolesAllowed; .... @DeclareRoles( { "DMANAGERS_ROLE", "DUSERS_ROLE" }) public class DonateBean implements DonateBeanInterface, ...... { @RolesAllowed( { "DMANAGERS_ROLE","DUSERS_ROLE" }) public void donateToFund(Employee employee, Fund fund, int hours) ... ...... @RolesAllowed( { "DMANAGERS_ROLE","DUSERS_ROLE" }) public String donateToFund(int employeeId, String fundName, int hours) { 19. Deployment descriptor EJBejb-jar.xml (diretrio DonateEJB/ejbModule/META-INF) imediatamente antes do tagDMANAGERS_ROLEDUSERS_ROLEDUSERS_ROLEDMANAGERS_ROLEDonateBeandonateToFund Utilizar o editor de Segurana do RAD para auxilio 20. Segurana Web declarativa Implementao de segurana declarativa com Annotation Lista de annotations Web @DeclareRoles @RunAs 21. Segurana WEBEditor de segurana do RAD: Restringir o acesso a pginas Web com segurana declarativa 22. Informaes de seguranaO editor de segurana insere as seguintes informaes no arquivo web.xml:A restrio de segurana o elemento base que contm: O elemento define os privilegios de acesso a um conjunto de recursos. Este elemento pode especificar padres de URL e mtodos HTTP. O elemento define quais so os roles necessrios para acessar esse conjunto de recursos Web. O elemento declare os nomes dos roles utilizados nos elementos security-constraint. 23. ALLAUTHENTICATED_ROLEConstraintALLAUTHENTICATED_ROLECollection/faces/FindEmployee.jsp/FindEmployee.faces/FindEmployee.jspGETPUTHEADTRACEPOSTDELETEweb.xml OPTIONSAuto generated Authorization ConstraintALLAUTHENTICATED_ROLEDUSERS_ROLE 24. Configurar roles do EAR emapeamento de roles - 1Prximo slide 25. Configurar roles do EAR emapeamento de roles - 2 26. Teste da segurana declarativa EJBcom JUnit 27. Cdigo para seguranaSystem.setProperty("com.ibm.SSL.ConfigURL", propDir +"ssl.client.props");System.setProperty("java.security.auth.login.config", propDir +"wsjaas_client.conf");System.setProperty("com.ibm.CORBA.ConfigURL",propDir +"sas.client.props"); Definir SSL, JAAS e SAS (Secure Authentication Services) Propriedades necessrias para acessar o servidor ctx.lookup(""); Conectar ao Contexto inicial para carregar o Realm default e carregar as informaes necessrias ao Security Server LoginContext lc = new LoginContext("WSLogin", new WSCallbackHandlerImpl("DNARMSTRONG", "xxxxxxxx")); o contexto do login,Criar lc.login(); fazer o login, e colocar o final Subject subject = lc.getSubject(); usurio autenticado como System.out.println("subject=" + subject.toString()); o usurio default para WSSubject.setRunAsSubject(subject); este thread de execuo 28. Teste de seguranaem EJB 29. Teste a segurana declarativa EJB com Universal Test Client (UTC) 30. Teste da segurana declarativa Web Mapeamento 31. Teste da segurana declarativa Web com o usurio DGADAMS 32. Testar o acesso com o usurio DNARMSTRONG 33. Implementar seguranaprogramtica numa pgina Web 34. DEMO 35. Java Authorization Contract for Containers JACC 36. Introduo a JACC JACC permite aos servidores de aplicao interagircom fornecedores de autorizao externosusando interfaces padronizadas para tomar asdecises de autorizao JACC define as classes de permisso para os Containers EJB e Web JACC no especfica como atribuir roles aosprincipais (grupos e usurios) 37. Java Authorization Contract for Containers (JACC)AdministradorAplicao WebSphere Application Server: Container J2EE UsurioAdministrao AplicaoControle de acesso(deploy, undeploy)Gerencia recursos,Acesso permitido?roles, mapeamentosConfigurao PolticasDeciso de acesso Tivoli Access Manager: Provedor JACC Repositrio provedor 38. Adio WebSphere WebSphere suporta 2 principals especiais para omapeamento Role Principal: All Authenticated role mapeado para AllAuthenticated atribuido a qualquer usurioautenticado Everyone role mapeado para Everyone atribuido aqualquer requisitante 39. Integrao TAM com WAS Os componentes do cliente TAM so embutidosno WebSphere Application Server TAM o provedor default JACC para WebSphere O cliente TAM pode ser configurado usandoscripts ou a console de administrao O servidor TAM pode fornecer funo deautenticao 40. Provedor TAM JACCConfigurao - 1Prximo slide 41. Provedor TAM JACC Configurao - 2Aceitar Prximo slidetodos osDefaults 42. Provedor TAM JACCConfigurao - 3ServidorPoliticas Servidor Porta usado paraAutorizao escutar as atualizaes da base de PoliticasCriado durante aconfigurao daSegurana WAS 43. Provedor TAM JACCMapeamento Role para Principal 44. Habilitar a seguranadas aplicaes Java EE 45. DEMO 46. Infraestrutura 47. Integrao com Portal LDAPPortal LegadoApp-Legado WebSEALVignetteApp-Arq3.0 TAM 48. Modelo antigo-novoUsurioPapelRA F0104158 RARHUFuncionarioRUPSGFuncionarioprhucontrolepontoRUPSGColaboradorprhuconsultaholPapelRU Permisso RUPSGFuncionario prhucontroleponto RARHUFuncionario prhuregistrarponto RASYSFuncionario prhuiniciarweb RUPSGFuncionario ROLE_RHUPontoApp MesmaF0104158/rhuapp/registrarponto.doF3400321/rhuapp/consultalista.doURL Grupo RUPSGColaborador ROLE_RHUPontoApp RoleJEEF0104158RUPSGFuncionarioF3400321RUPSGColaborador 49. Configurao TAM: grupo Referncia paragrupo LDAP 50. Configurao TAM: user Referncia parausurio LDAP 51. Nomenclatura Sintaxe Papel: RUXXXColaborador, RAYYYAdministrador XXX: empresa, diretria, rea de negcio YYY: identificao do sistema Role J2EE: ROLE_YYYAdministrador Grupo: RUXXXColaborador 52. Configurao servidores li412li450 li413 TAM TAMWeb SEAL Web SEALAuthorization Server Authorization Server DmCatalog Server WAS-Cluster Catalog Serverg Session Manager WAS-ClusterSession Manager r Policy Server RHEL-luciPolicy ServerTSPMTSPMTSPM WAS-Cluster TSPM Dm DB2 DB2-ClusterDB2gTIPTIPr 53. Introduo a Segurana Web Services 54. Motivos para DataPower XML a linguagem de web services e SOA XML onipresente Em alguns anos, XML estar em qualquer aplicao,equipamento e documento presente nas redes das empresas. Desafios do XML XML muito falante XML precisa de muito banda. Tem um impacto direito sobre a performance do servidor de aplicao. O processamento XML precisa de um nmero significativos de ciclos deprocessador e de recursos de memria. XML um texto efetivamente legvel por humano No tem mecanismo nativo de segurana. Fcil de entender e vulnervel a intercepo. A segurana pode ser implementada no servidor de aplicao, mas umprocessamento adicional e aumenta o problema de performance. SOA no somente Web Services e XML Empresas precisam integrar sistemas legados, formatos de mensagens eprotocolos numa arquitetura SOA. Necessidade de uma habilidade para transformar sistemas legados emformato XML. 55. O que o DataPower enderea ? Performance XML Como? transferindo o processamento do XML do servidor deaplicao para o hardware otimizado do DataPower. Por conseqncia, reduzindo o nmero necessrio deservidores de aplicao Segurana XML Como? transferindo a segurana XML para o DataPower Fornece a segurana padronizada WS Security Integrao XML e sistemas legados Como ? usando DataPower para transformar XML emformato e protocolo legados de mensagem: XML -> HMTL (renderiza contedo HTML para Portal) XML Mensagem MQ Tudo feito a velocidade de rede 56. Arquitetura com DataPowerInternetDMZ Intranet ClienteApplicaes Ameaas XML Transformao Controle Acesso Integrao SLA Roteamento Cliente 57. Exposio seletiva 58. WebSphere DataPower XI50 Crypto XSLT Processor 2 x 160 GBXG3 or XG44GB RAM ProcessorHDD 512MB Flash Memory Serial Port4 x 10/100/1000 Ethernet Ports 59. Referncia Portonet: Home > Departamentos > Informtica -Arquitetura de TI > Arquitetura de Software > Documentos Padro de Arquitetura de Segurana Java.pdfContatos:[email protected]@portoseguro.com.br 60. Obrigado