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.
- 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.
- 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
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.
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]](../images/iseries.gif)
- Digite QShell.
- Vá para profile_root/bin.
- 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
- Clique em Segurança > Segurança Global. O painel Segurança Global é exibido.
- Selecione a opção Utilizar segurança Java 2 para restringir o acesso do aplicativo a recursos locais.
- Clique em OK ou Aplicar.
- Clique em Salvar para salvar as alterações.
- Inicie o servidor novamente para que as alterações tenham efeito.
Resultados
- 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.
- 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.
- 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
- Clique em Servidores > Servidores de Aplicativos > server_name.
- Em Segurança, clique em Segurança do Servidor.
- Selecione a opção Configurações de Segurança para esse Servidor Substituir as Configurações da Célula.
- Selecione a opção Utilizar segurança Java 2 para restringir o acesso do aplicativo a recursos locais.
- Clique em OK ou Aplicar.
- Clique em Salvar para salvar as alterações.
- Inicie o servidor novamente para que as alterações tenham efeito.
Consulte o Guia de Determinação de Problema de Segurança para obter detalhes.