Você está na página 1de 13

Mdulo 7

Segurana

Lio 1
Introduo a Segurana

Verso 1.0 - Jan/2008

JEDITM

Autor Aldwin Lee Cheryl Lorica Equipe Rommel Feria John Paul Petines

Necessidades para os Exerccios

Sistemas Operacionais Suportados NetBeans IDE 5.5 para os seguintes sistemas operacionais: Microsoft Windows XP Profissional SP2 ou superior Mac OS X 10.4.5 ou superior Red Hat Fedora Core 3 Solaris 10 Operating System (SPARC e x86/x64 Platform Edition) NetBeans Enterprise Pack, poder ser executado nas seguintes plataformas: Microsoft Windows 2000 Profissional SP4 Solaris 8 OS (SPARC e x86/x64 Platform Edition) e Solaris 9 OS (SPARC e x86/x64 Platform Edition) Vrias outras distribuies Linux Configurao Mnima de Hardware Nota: IDE NetBeans com resoluo de tela em 1024x768 pixel Sistema Operacional Microsoft Windows Linux Solaris OS (SPARC) Solaris OS (x86/x64 Platform Edition) Mac OS X Processador 500 MHz Intel Pentium III workstation ou equivalente 500 MHz Intel Pentium III workstation ou equivalente UltraSPARC II 450 MHz AMD Opteron 100 Srie 1.8 GHz PowerPC G4 Memria 512 MB 512 MB 512 MB 512 MB 512 MB HD Livre 850 MB 450 MB 450 MB 450 MB 450 MB

Configurao Recomendada de Hardware Sistema Operacional Microsoft Windows Linux Solaris OS (SPARC) Solaris OS (x86/x64 Platform Edition) Mac OS X Processador 1.4 GHz Intel Pentium III workstation ou equivalente 1.4 GHz Intel Pentium III workstation ou equivalente UltraSPARC IIIi 1 GHz AMD Opteron 100 Series 1.8 GHz PowerPC G5 Memria 1 GB 1 GB 1 GB 1 GB 1 GB HD Livre 1 GB 850 MB 850 MB 850 MB 850 MB

Requerimentos de Software NetBeans Enterprise Pack 5.5 executando sobre Java 2 Platform Standard Edition Development Kit 5.0 ou superior (JDK 5.0, verso 1.5.0_01 ou superior), contemplando a Java Runtime Environment, ferramentas de desenvolvimento para compilar, depurar, e executar aplicaes escritas em linguagem Java. Sun Java System Application Server Platform Edition 9. Para Solaris, Windows, e Linux, os arquivos da JDK podem ser obtidos para sua plataforma em http://java.sun.com/j2se/1.5.0/download.html Para Mac OS X, Java 2 Plataform Standard Edition (J2SE) 5.0 Release 4, pode ser obtida diretamente da Apple's Developer Connection, no endereo: http:// developer.apple.com/java ( necessrio registrar o download da JDK). Para mais informaes: http://www.netbeans.org/community/releases/55/relnotes.html

Segurana

JEDITM

Colaboradores que auxiliaram no processo de traduo e reviso


Acio Jnior Alexandre Mori Alexis da Rocha Silva Angelo de Oliveira Bruno da Silva Bonfim Denis Mitsuo Nakasaki Emanoel Tadeu da Silva Freitas Guilherme da Silveira Elias Leandro Souza de Jesus Lucas Vincius Bibiano Thom Luiz Fernandes de Oliveira Junior Maria Carolina Ferreira da Silva Massimiliano Giroldi Paulo Oliveira Sampaio Reis Ronie Dotzlaw

Auxiliadores especiais
Reviso Geral do texto para os seguintes Pases:
Brasil Tiago Flach e Vincius G. Ribeiro (Especialista em Segurana) Guin Bissau Alfredo C, Bunene Sisse e Buon Olossato Quebi ONG Asas de Socorro

Coordenao do DFJUG

Daniel deOliveira JUGLeader responsvel pelos acordos de parcerias Luci Campos - Idealizadora do DFJUG responsvel pelo apoio social Fernando Anselmo - Coordenador responsvel pelo processo de traduo e reviso, disponibilizao dos materiais e insero de novos mdulos Rodrigo Nunes - Coordenador responsvel pela parte multimdia Srgio Gomes Veloso - Coordenador responsvel pelo ambiente JEDITM (Moodle)

Agradecimento Especial
John Paul Petines Criador da Iniciativa JEDITM Rommel Feria Criador da Iniciativa JEDITM

Segurana

JEDITM

1. Objetivos
Este mdulo trata segurana na perspectiva da linguagem Java. Discutiremos porque Java dito seguro, o que significa segurana e, mais importante ainda, aprenderemos as melhores formas de se utilizar os dispositivos de segurana da plataforma Java dentro de seus prprios projetos. Veremos algumas das caractersticas bsicas da plataforma Java que proporcionam segurana: o Class Loader, o verificador de bytecode e o gerente de segurana. Tambm sero abordadas as extenses que valorizam o modelo de segurana em Java atravs das assinaturas digitais, provedores de segurana, e o controlador de acesso. O objetivo desta lio fornecer uma compreenso da arquitetura de segurana do modelo Java e como esse pode ser melhor utilizado. Pressupe-se que o leitor tenha um bom conhecimento sobre programao Java. Em particular, como escrever projetos Java, pois avanados recursos de segurana e algoritmos de criptografia sero discutidos, feito de tal forma que o leitor primariamente interessado em utilizar a biblioteca para executar determinadas tarefas. Iremos analisar a um nvel fundamental o que uma assinatura digital e como ela pode ser criada e utilizada; entretanto, no abordaremos a teoria da criptografia por trs de uma assinatura digital ou provar que uma assinatura digital realmente segura. Para aqueles que so suficientemente versados nestas matrias, mostraremos como as bibliotecas podem ser incrementadas para suportar novos tipos de algoritmos criptogrficos; porm, a matemtica rigorosa e definies de criptografia no sero discutidas neste material. Ao final desta lio, o estudante ser capaz de:

Conhecer sobre os principais aspectos de segurana Aprender boas prticas de segurana Observar as prticas de segurana aplicadas linguagem Java

Segurana

JEDITM

2. Introduo a Segurana
O Glossrio Nacional de Segurana de Sistemas de Informao dos Estados Unidos (EUA) define a Segurana de Sistemas de Informao (INFOSEC) como: Proteo de sistemas de informao contra o acesso no-autorizado a informao ou sua modificao, seja por meio de armazenamento, processamento ou trfego, e contra a negao de servios aos usurios autorizados ou o fornecimento destes para usurios no autorizados, incluindo medidas necessrias para detectar, documentar e bloquear tais ameaas. Um documento completo para maiores referencias pode ser encontrado em: http://www.cnss.gov/Assets/pdf/nstissd_501.pdf Uma forma simples para expressar esta definio prover informao e servio correto para as pessoas certas no momento certo. Segurana da informao significa no fornecimento de dados corretos para pessoas de quem possuem direitos do acesso a tais dados. Alm disso, est includa o bloqueio da informao para pessoas sem permisso para sua visualizao. H vrios anos atrs, quando as redes de computadores no eram to dominantes quanto so nos dias de hoje, era relativamente fcil guardar as informaes. Naquela poca, para poder causar algum dano ao sistema, era necessrio ter acesso fsico ao sistema. Acesso remoto, acessibilidade das redes e a Internet mudaram tudo isso. "A rede o computador", uma expresso criada pela Sun Microsystems em meados dos anos oitenta, representa uma das grandes verdades destes tempos. Temos mais e mais computadores conectados rede a cada dia que passa. Aplicaes passaram de um sistema nico (por exemplo, poca dos mainframes) para um modelo mltiplo de cooperao entre os diferentes mdulos de sistemas. medida que a rede cresce, a segurana da informao torna-se mais vulnervel. Sistemas esto mais propensos a ataques e outras concesses de acesso e revelam uma janela aberta para grupos ou indivduos com motivaes hostis. Especialistas em segurana costumam dizer que a melhor maneira de manter seus dados seguros retirar o computador da rede e bloquear todas as portas para o acesso, isso inclui, portas USB, unidades de CD-ROM, DVD-ROM ou mesmo disquetes. Infelizmente, nesse estado, o poder do sistema no explorado de forma eficaz. Em vez de tornar o sistema indisponvel para a rede, medidas de segurana devem ser definidas para proteger as informaes e os servios.

Segurana

JEDITM

3. Os principais aspectos de segurana


Listados abaixo, esto os cinco elementos de segurana da informao aceitos.

Confidencialidade Garantia de que as informaes no sero divulgadas a pessoas no autorizadas, processos ou dispositivos Integridade de Dados Condio existente que os dados no sero interceptados no caminho de sua origem e no foram acidentalmente ou maliciosamente, modificados ou destrudos at seu destino. Disponibilidade Acesso confivel a dados e informaes de servios para os usurios autorizados Controle de Acesso Diz respeito ao acesso fsico ou lgico do sistema No-repdio Busca evitar que as partes envolvidas em um acordo ou protocolo neguem atos realizados. Diz respeito diretamente votao digital e tratamento com dinheiro.

Confidencialidade, integridade e disponibilidade, tambm conhecidos como o Infosec da CIA Triad, so os principais aspectos de segurana. Cada elemento discutido em detalhe a seguir.

3.1. Confidencialidade
De forma simples, confidencialidade restringe as informaes apenas s pessoas que tenham o acesso autorizado. Isto significa que a informao s estar disponvel para aqueles que tm permisso para acessar os dados. Os indivduos que no tm acesso por direito informao e no devem ser capazes de visualizar os dados e devem ter o acesso negado. A informao no deve ser fornecida ou difundida alm do que necessrio ou autorizado. Pode ocorrer violao de sigilo quando os dados so acessados, seja, por um indivduo ou organizao que no esto autorizados a visualiz-los. Suponha ir a um terminal em uma agncia bancria para verificar seu extrato. Coloca-se o carto do banco, digita-se a senha e seleciona-se a opo "Emitir Extrato". possvel olhar para o lado ou para trs, para perceber se existe um olheiro observando essa transao. Estes "olheiros" podem no ser capazes de roubar o seu dinheiro; entretanto, iro saber quanto dinheiro sua conta contm. No se deseja permitir que outras pessoas venham a conhecer o contedo de sua conta, quer seja para um fim malicioso ou no. Seu segredo descoberto no momento em que algum v sua senha, a transao, ou o saldo de sua conta. Outro exemplo que pode ser pouco claro o de navegar na Internet em um cybercaf. Algumas dessas lojas podem ter pacotes de sensores olfativos instalados em seus servidores (sniffers). Pacotes de sensores olfativos so programas que interceptam e roubam informaes que podem ser usadas para analisar cada registro passado atravs da rede ou parte da rede. Alguns destes sensores olfactivos so legitimamente utilizados para monitorar e solucionar problemas de rede. No entanto, a mesma utilidade pode tambm causar violaes de sigilo. Estes pacotes podem ser utilizados por indivduos mal intencionados para obter diversas informaes, como o site navegado, o login do usurio e detalhes mais sigilosos, tais como, a senha de sua conta bancria, ou seu nmero de carto de crdito. Confidencialidade assegura que as informaes estejam seguras, de uma forma que s as pessoas autorizadas tm a permisso para conhecer os dados.

3.2. Integridade
Garante que as informaes passadas no sejam corrompidas ou alteradas de alguma forma. Esta propriedade no s assegura que sejam autnticas e completas como tambm, garante que possam ser confiveis e invocadas. Integridade assegura:

Modificaes no so feitas por pessoal no autorizado aos dados ou processos


6

Segurana

JEDITM

Alteraes s podem ser realizadas por pessoal autorizado aos dados ou processos Os dados so internamente e externamente consistentes

No entanto, convm notar que a integridade dos dados no lidar com a exatido dos dados. Essa propriedade garante que somente as informaes disponveis no sistema seja a mesma informao que o usurio acessou em tempos trs. A integridade dos dados pode ser comprometida quando a informao seja corrompida, voluntariamente ou involuntariamente, antes que seja lida pelo seu destinatrio. Assume-se que, se a informao foi gerada corretamente, ser preservada nesse estado. A fonte da integridade deve ser de confiana em que o remetente da informao seja alguem que realmente supomos que seja. A fonte de integridade pode ser comprometida quando um agente burla ou forja a sua identidade atravs de informaes incorretas enviadas para um destinatrio. Spoofing uma situao em que os dados de identidade so falsificados por mascaramento numa situao de verdade. Uma espcie de falsificao chamada de phising. Alguns bem conhecidos endereos WEB so reproduzidos de forma a ter um visual parecido com o do endereo oficial. Este tipo de ataque freqentemente realizado com um endereo falso, onde as vulnerabilidades dos navegadores WEB so exploradas para encobrir a falha. Estes endereos procuram enganar os usurios solicitando informaes sobre seus dados pessoais, tais como, nome completo, nome de usurio, senha e informaes do carto de crdito. Sem suspeitas, as vtimas so encaminhados para endereo e no final uma mensagem de erro exibida indicando que a senha est incorreta. Neste momento, a informao j foi recolhida pelos atacantes para o seu prprio benefcio. Integridade de dados ter confiana de que a informao no foi alterada entre a sua transmisso e sua recepo. Note que, em um modo formal de segurana, a integridade mais interpretada restritivamente no sentido de proteo contra a destruio ou alterao no autorizada de informaes.

3.3. Disponibilidade
No momento em que a informao necessria, ser exibida e pronta para ser utilizada pelo pessoal autorizado. Todos os recursos autorizados dados, funcionalidades e servios - devem estar disponveis quando necessrios. possvel que a confidencialidade e a integridade da informao estejam protegidas porm, para um invasor, estes dados no devem ser acessveis. Isso faz com que a informao seja intil e, portanto, sem garantia. Um bom exemplo da violao de disponibilidade o da negao de servio ou ataque DoS. Um ataque DoS um tipo de ataque contra uma determinada rede que se destina a colocar as redes em situao de submisso de dados, atravs da inundao de ataques, isto torna o trfego intil. Talvez um dos mais populares foi o ataque "Code Red" realizado em 2001. Code Red explorava a vulnerabilidade de um determinado servidor WEB para perturbar o servio. Code Red era um verme (um programa que conecta-se a outras mquinas e se auto-replica) que comeou a infectar as mquinas rodando suas vrias verses no servidor. O vrus enviava seu cdigo atravs de uma solicitao HTTP e explorava uma determinada porta descobrindo a vulnerabilidade. O vrus era executado no computador do cliente. Em vez de voltar a corrigir uma pgina da WEB, o vrus retornava seu prprio cdigo HTML e exibia a seguinte mensagem: Bem vindo ao http:// www.worm.com! Atacado por chineses! Outra verso do mesmo vrus tentou atacar um determinado endereo IP, enviando grandes quantidades de dados inteis. O referido endereo IP pertencia ao endereo www.whitehouse.gov. Em vez de exibir o site oficial da Casa Branca, o texto apresentado acima era exibido. O trfego do site da Casa Branca foi redirecionado para um outro endereo IP e atacou o endereo IP numa URL que no era mais vlida. Disponibilidade
Segurana

garantia

de

que

os

sistemas

sejam

responsveis

pela
7

entrega,

JEDITM

armazenamento e processamento de informaes e sejam disponveis quando necessrio, por aqueles que necessitam.

Segurana

JEDITM

4. Boas Prticas de Segurana


Boas prticas de segurana dizem respeito aos seguintes atributos:

Identificao e autenticao Autorizao Controle de acesso No repudiao Auditoria

4.1. Identificao e Autenticao


um processo de dois passos que determina quem autorizado a acessar a informao em um sistema. Identificao valida a identidade do usurio provendo um identificador nico como o nome de usurio ou o nmero do usurio. Autenticao o processo de verificar a identidade mostrada pelo usurio. Usada para estabelecer a validade da transmisso, do emissor ou da mensagem. Autenticao baseada em, pelo menos, um dos trs fatores a seguir:

O usurio sabe autenticao pode ser verificada provendo algo que somente o usurio sabe, como a sua senha ou seu nmero de identificao pessoal (NIP) O usurio possui autenticao pode ser verificada provendo detalhes atravs de um dispositivo como um carto inteligente ou um token O usurio autenticao pode ser verificada usando a biometria, tal como, impresso digital, voz, DNA, retina ou caractersticas da ris

Identificao e autenticao so geralmente implementadas para servios pessoais de aplicaes WEB como programas de envio de e-mail, bancos on-line e leiles on-line para determinar a identidade do usurio. Sem a identificao e a autenticao, esses servios no poderiam ser implementados porque a identidade de outros usurios seria comprometida. Imagine se fosse possvel conhecer a conta bancria de outras pessoas sem nenhuma autenticao. A confidencialidade dos usurios seria comprometida.

4.2. Autorizao
o privilgio de acesso aos dados de um usurio, sistema ou processo. Autorizao define as permisses e os direitos de um usurio em um sistema. Geralmente, depois de um usurio (ou processo) ser autenticado, a autorizao determina o conjunto de aes que aquele usurio pode efetuar no sistema. Os sistemas operacionais mais modernos definem conjuntos de permisses que so variaes ou extenses de trs tipos bsicos de acesso:

Leitura: O usurio pode ler o contedo dos arquivos e listar o contedo dos diretrios Escrita: O usurio pode mudar o contedo de um arquivo ou diretrio adicionando, criando, apagando ou renomeando Execuo: Se o arquivo for um programa, o usurio pode executar o programa. Os usurios podem entrar no diretrio

Estas permisses e direitos so implementadas de maneira diferentes nos sistemas baseados em Controle de Acesso Discrecionria e Controle de Acesso Mandatrio.

4.3. Controle de Acesso


Limita o acesso a recursos do sistema a usurios, processos, programas ou outros sistemas autorizados. Este um termo genrico para o processo pelo qual um sistema controla a interao entre os usurios e os recursos do sistema. O Controle de Acesso prov proteo contra o uso no autorizado de recursos, incluindo:
Segurana 9

JEDITM

Uso de recurso de comunicao Leitura, escrita ou deleo em um recurso de informao Execuo de um recurso de processamento

Um esquema popular de controle de acesso manter uma Access Control List (lista de controle de acesso) ou ACL. ACL especifica quais operaes o conjunto de usurios ou grupos podem realizar nos vrios recursos. Existem dois tipos de Tcnicas de Controle de Acesso: Controle de Acesso Discrecionria (CAD) um meio de restringir acesso a objetos baseado na identidade e na necessidade de conhecer dos usurios e/ou grupos dos quais o objeto pertence. Os controles so Discrecionria na medida em que um objeto com uma certa permisso de acesso capaz de passar aquela permisso (direta ou indiretamente) para qualquer outro objeto. Geralmente, elas so feito na discrio do dono do objeto, como permisses de arquivo/diretrio e posse de usurio/grupo. Sistemas CAD permitem ao usurio determinar inteiramente o acesso dado aos seus recursos, o que significa que eles podem, por acidente ou malcia, conceder acesso a usurios no autorizados. Controle de Acesso Mandatrio (CAM) um meio de restringir acesso a objetos baseado na sensitividade da informao contida nos objetos e na autorizao formal dos assuntos para acessar informaes de tal sensitividade. A caracterstica mais importante do CAM diz respeito a proibio do controle total de objetos para os usurios que os criaram. A poltica de segurana do sistema (como criada pelo administrador) determina inteiramente os direitos de acesso concedidos, e o usurio no pode conceder acesso mais restrito ao seus recursos do que aquele que o administrador especifica. Por exemplo, em CAD, a usuria Alice pode ter a permisso tanto para ler como para alterar um arquivo, enquanto que o usurio Bob s pode ler o arquivo. Em contraste, um controle de acesso no discrecionrio implica em que todos os usurios acessando um determinado recurso recebem os mesmos direitos, quaisquer que sejam os nveis de compartilhamento destes.

4.4. No Repudiao
o conceito de garantir que um contrato ou um acordo, que tenha sido feito, negado por nenhuma das partes envolvidas em momento futuro.

no possa ser

No repudiao de origem protege contra o emissor que nega que a mensagem foi enviada. Prova que o dado foi enviado No repudiao de entrega protege contra o receptor que nega que os dados foram recebidos. Prova que o dado foi recebido

Isto significa que a no repudiao garante que o emissor e o receptor foram as partes que realmente enviaram e receberam as mensagens. Em outras palavras, isto assegura que o emissor dos dados recebe uma prova da entrega da mensagem e que o receptor recebe uma prova da identidade do emissor, ou seja, nenhum dos dois poder negar o fato. Muitas organizaes querem tornar seguras as mensagens de email de seus colaboradores. MIME Seguro uma soluo de segurana de email comumente suportada pelos servidores nos dias de hoje pois, no prov somente confidencialidade, autenticao de dados e proteo de integridade como tambm a no repudiao para mensagens de email usando assinaturas digitais.

4.5. Auditoria
Auditoria de segurana a prtica de coletar e avaliar as evidncias de um sistema das prticas e operaes de uma organizao. Auditoria pode envolver avaliar e monitorar sistemas, verificar computadores em busca de fraquezas de segurana e executar sistemas de deteco de intrusos que possam sinalizar possveis falhas. A avaliao das evidncias garante se os sistemas de informao da organizao esto seguros, mantem a integridade dos dados e se os mesmos esto operando efetivamente e eficientemente para atingir os objetivos da organizao.
Segurana 10

JEDITM

O objetivo de uma auditoria de TI revisar e avaliar a disponibilidade, confidencialidade e integridade dos sistemas de informao das organizaes respondendo as seguintes perguntas:

Os sistemas da organizao estaro disponveis para o negcio sempre que requeridos? (Disponibilidade) A informao presente nos sistemas ser mostrada apenas para usurios autorizados? (Confidencialidade) A informao provida pelo sistema sempre confivel, precisa, e entregue no prazo? (Integridade)

Vale a pena notar que auditoria de maneira nenhuma prev ataques. Apenas grava eventos, maliciosos ou no, para que se tenha registro de possveis brechas que possam ser consultados para ajudar a reparar os defeitos. Trilhas de Auditoria podem ser implementadas em qualquer sistema para gravar todas as aes dos usurios. Auditoria pode ser usada para monitorar as atividades dos usurios garantindo que nenhuma atividade maldosa seja executada. Eventos, aes e data e hora que podem ser usados para auditar uma atividade do usurio em um determinado sistema.

Segurana

11

JEDITM

5. Prticas de Segurana e a linguagem Java


A plataforma Java foi projetada com uma forte nfase em segurana. A linguagem Java segura em tipagem. O cdigo s pode acessar locais de memria que autorizado a acessar, e somente, numa maneira bem definida. No mais, na linguagem Java, carregamento seguro de classe e mecanismo de verificao garantem que apenas cdigo Java legtimo seja executado. A arquitetura inclui um grande conjunto de interfaces de programao de aplicaes, ferramentas, e implementaes de protocolos de segurana, mecanismos e algoritmos comumente usados, Interfaces de infra-estrutura de criptografia e chave pblica provm as bases para se desenvolver aplicaes seguras. Interfaces para atribuir autenticao e controle de acesso habilitam aplicaes a se resguardarem contra acessos no autorizados de recursos protegidos. Isto d ao usurio um framework de segurana consistente para se escrever aplicaes, e tambm prov ao usurio ou administrador um conjunto de ferramentas para gerenciar as aplicaes de maneira segura. A plataforma Java implementa boas prticas de seguranas como mostradas na tabela abaixo. Cada caracterstica ser discutida em maior detalhe ao longo deste mdulo.
Confidencialidade Integridade Disponibilidade Identificao e Autenticao Autorizao NoRepudiao Auditoria Contedo

JVM Carregadores de Classe Gerenciadores de Segurana Domnios de Segurana Criptografar, Encriptar, SSL Sumrio de Mensagens Assinaturas e Certificados Digitais Lista de Controle de Acesso JAAS X

X X X

X X X X X X X

X X X X X

X X

Tabela 1: Boas Prticas de Segurana e a linguagem Java

Segurana

12

JEDITM

Parceiros que tornaram JEDITM possvel

Instituto CTS Patrocinador do DFJUG. Sun Microsystems Fornecimento de servidor de dados para o armazenamento dos vdeo-aulas. Java Research and Development Center da Universidade das Filipinas Criador da Iniciativa JEDITM. DFJUG Detentor dos direitos do JEDITM nos pases de lngua portuguesa. Banco do Brasil Disponibilizao de seus telecentros para abrigar e difundir a Iniciativa JEDITM. Politec Suporte e apoio financeiro e logstico a todo o processo. Borland Apoio internacional para que possamos alcanar os outros pases de lngua portuguesa. Instituto Gaudium/CNBB Fornecimento da sua infra-estrutura de hardware de seus servidores para que os milhares de alunos possam acessar o material do curso simultaneamente.

Segurana

13