Protegendo Recursos do Sistema e APIs (Segurança Java 2) para Desenvolver Aplicativos

A segurança Java™ 2 é um modelo de programação muito difundido e tem um grande impacto no desenvolvimento de aplicativo.

Antes de Iniciar

A segurança Java 2 é ortogonal à segurança baseada em funções do Java Platform, Enterprise Edition (Java EE); é possível ativá-la ou desativá-la independentemente da segurança administrativa.

Entretanto, ela proporciona um nível adicional de proteção de controle de acesso além da autorização baseada em funções do Java EE. Aborda principalmente a proteção dos recursos do sistema e das APIs (Application Programming Interfaces). Quanto à desativação da segurança do Java 2, os administradores devem considerar os benefícios em relação aos riscos.

As recomendações a seguir são fornecidas para ajudar na ativação da segurança Java 2 em um ambiente de teste ou produção:
  1. Certifique-se de que o aplicativo seja desenvolvido com o modelo de programação de segurança do Java 2. Os desenvolvedores devem saber se as APIs usadas nos aplicativos são protegidas pela segurança do Java 2. É muito importante que as permissões necessárias para as APIs usadas sejam declaradas no arquivo de políticas, was.policy, ou a execução do aplicativo falhará quando a segurança do Java 2 estiver ativada. Os desenvolvedores podem fazer referência ao website para as APIs do Kit de Desenvolvimento que são protegidas pela segurançaJava 2. Consulte a seção Modelo e decisões de programação do tópico Segurança: Recursos para Learning para visitar esse website.
  2. Certifique-se de que os aplicativos migrados de releases anteriores tenham as permissões requeridas fornecidas. Como a segurança do Java 2 não é suportada ou é parcialmente suportada nas liberações anteriores do WebSphere Application Server, os aplicativos desenvolvidos antes da Versão 5 provavelmente não estão usando o modelo de programação da segurança do Java 2. Não há uma maneira fácil de descobrir todas as permissões requeridas disponíveis para o aplicativo. A seguir estão atividades que podem ser executadas para determinar as permissões extras que são necessárias para um aplicativo:
    • Revisão de código e inspeção de código
    • Revisão da documentação do aplicativo
    • Teste de ambiente de simulação dos aplicativos corporativos migrados com a segurança do Java 2 e que estão ativados em um ambiente de pré-produção. Ative o rastreio no gerenciador de segurança do WebSphere Java 2 para ajudar a determinar as permissões ausentes no arquivo de políticas do aplicativo. A especificação de rastreio é: com.ibm.ws.security.core.SecurityManager=all=enabled.
    • Utilize a propriedade de sistema com.ibm.websphere.java2secman.norethrow para auxiliar a depuração. Não utilize essa propriedade em um ambiente de produção.

      Consulte Segurança do Java 2

[AIX Solaris HP-UX Linux Windows][z/OS]O conjunto de permissões padrão para os aplicativos é o conjunto de permissões recomendado definido na Especificação J2EE 1.3. O padrão é declarado no arquivo de políticas app_server_root/profiles/profile_name/config/cells/cell_name/nodes/node_name/app.policy com as permissões definidas no arquivo de políticas do Development Kit (JAVA_HOME/jre/lib/security/java.policy) que concedem permissões para todos. No entanto, as permissões que estão declaradas no arquivo profiles/profile_name/config/cells/cell_name/filter.policy são negadas para aplicativos. As permissões que estão declaradas no arquivo filter.policy são filtradas para os aplicativos durante a verificação de permissões.

[IBM i]O conjunto de permissões padrão para os aplicativos é o conjunto de permissões recomendado definido na Especificação J2EE 1.3. O padrão é declarado no arquivo de políticas profile_root/config/cells/cell_name/nodes/node_name/app.policy com as permissões definidas no arquivo de políticas do Development Kit que concedem permissões a todos. O arquivo java.policy está localizado no diretório java_home, dependendo da JVM (Java Virtual Machine) que está ativada para o perfil. Para todas as Java virtual machines, o arquivo java.policy é utilizado em todo o sistema. Não edite o arquivo java.policy no servidor. As permissões que estão declaradas no arquivo profile_root/config/cells/cell_name/filter.policy são negadas para os aplicativos. As permissões declaradas no arquivo filter.policy são filtradas para os aplicativos durante a verificação de permissões.

[IBM i]Utilize o comando showVariables do objeto AdminTask para recuperar JAVA_HOME para o nó associado ao perfil do servidor. Por exemplo, se o nó for myNode:
  1. Digite QShell.
  2. Vá para profile_root/bin.
  3. Execute o seguinte comando:
    wsadmin -conntype NONE -c '$AdminTask showVariables {-scope Node=myNode -variableName JAVA_HOME}'

Defina as permissões requeridas para um aplicativo em um arquivo was.policy e incorpore o arquivo was.policy no arquivo EAR (Enterprise Archive) do aplicativo como YOURAPP.ear/META-INF/was.policy, consulte Configurando Arquivos de Política de Segurança do Java 2 para obter detalhes.

As etapas a seguir descrevem como impingir a segurança Java 2 no nível da célula para o WebSphere Application Server, Network Deployment.

Procedimento

  1. Clique em Segurança > Segurança Global. O painel Segurança Global é exibido.
  2. Selecione a opção Utilizar segurança Java 2 para restringir o acesso do aplicativo a recursos locais.
  3. Clique em OK ou Aplicar.
  4. Clique em Salvar para salvar as alterações.
  5. Inicie o servidor novamente para que as alterações tenham efeito.

Resultados

A segurança Java 2 é ativada e aplicada nos servidores. A permissão de segurança Java 2 é selecionada quando uma API protegida por segurança Java 2 é chamada.
Ao utilizar a segurança Java 2
  1. Ative a proteção nos recursos do sistema, por exemplo, ao abrir ou atender a uma conexão de soquete, ler ou gravar em sistemas de arquivos do sistema operacional, ler ou gravar propriedades do sistema da Java virtual machine.
  2. Impeça que o código de aplicativo chamem as APIs destrutivas; por exemplo, a chamada do método System.exit desativa o servidor de aplicativos.
  3. Impeça que o código de aplicativo obtenha as informações privilegiadas (senhas) ou obtenha os privilégios extras (credenciais do servidor).

O que Fazer Depois

É possível impor a segurança Java 2 no nível do servidor para o WebSphere Application Server, Network Deployment concluindo as seguintes etapas.
Nota: As alterações nas configurações da segurança Java 2 no nível do servidor substituem as configurações no nível de célula.
  1. Clique em Servidores > Servidores de Aplicativos > server_name.
  2. Em Segurança, clique em Segurança do Servidor.
  3. Selecione a opção Configurações de Segurança para esse Servidor Substituir as Configurações da Célula.
  4. Selecione a opção Utilizar segurança Java 2 para restringir o acesso do aplicativo a recursos locais.
  5. Clique em OK ou Aplicar.
  6. Clique em Salvar para salvar as alterações.
  7. Inicie o servidor novamente para que as alterações tenham efeito.
O gerenciador de segurança Java 2 é aprimorado para fazer dump das permissões de segurança Java 2 que são concedidas a todas as classes na pilha de chamada quando o acesso a um recurso é negado para um aplicativo. A exceção java.security.AccessControlException é criada. No entanto, essa capacidade de rastreio está desativada por padrão. Você pode ativar esse recurso especificando o serviço de rastreio do servidor com a especificação de rastreio com.ibm.ws.security.core.SecurityManager=all=enabled. Quando a exceção é criada, o dump de rastreio fornece sugestões para determinar se o aplicativo não possui as permissões ou se o código de tempo de execução do produto ou as bibliotecas de terceiros utilizadas não estão adequadamente marcadas como privilegiadas quando os recursos protegidos pela segurança Java 2 são acessados.

Consulte o Guia de Determinação de Problema de Segurança para obter detalhes.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_enablejava2sec
Nome do arquivo: tsec_enablejava2sec.html