Habilitar o acesso ao LDAP interno do WebLogic

Para configurar os usuários, o WebLogic utiliza uma base LDAP interna, como uma senha gerada aleatóriamente. Para ambientes de produção, o uso desse LDAP não é recomendado, mas para demonstrações e desenvolvimento precisamos em alguns casos habilitar o acesso à esses dados.

Para acessar o LDAP interno que já vem com o WebLogic, acesse o console e clique no nome do domínio. Acesse a aba Security e escolha a opção Embedded LDAP.

Embedded LDAP

Embedded LDAP

No campo Credential, informe uma nova senha, confirme ela logo abaixo e clique em Save. Reinicie o WebLogic.

Utilize o usuário: cn=Admin e a senha especificada para acesso. A url e porta de acesso são as mesmas do WebLogic. Para acessar você pode utilizar o JXExplorer ou qualquer outro client de LDAP.

 

Bug na criação do domínio do Oracle Identity Manager

Ao instalar o Oracle Identity Manager com a opção para criação do domínio o instalador pode trazer o seguinte erro:

Error creating ASInstance asinst_1.
Cause:
An internal operation has failed: java.lang.ExceptionInInitializerError

Caused by: java.lang.ExceptionInInitializerError
at javax.crypto.Mac.getInstance(DashoA13*..)
at oracle.security.crypto.cert.PKCS12.computeMAC(PKCS12.java:299)

Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
at javax.crypto.SunJCE_b.<clinit>(DashoA13*..)

Caused by: java.lang.SecurityException: Cannot locate policy or framework files!
at javax.crypto.SunJCE_b.i(DashoA13*..)

Esse problema ocorre ao criar um novo domain pelo utilitário de configuração. Para resolver esse problema, você pode criar um novo domínio do WebLogic e utilizar o utilitário para estender o domínio criado. Dessa forma o erro não irá ocorrer!

Evitar pedir usuário e senha em produção no WLS

Quando você realiza a criação de um domínio do WebLogic em modo de produção, ao iniciar o servidor ele solicita à você o usuário e senha administrativos.

 Enter username to boot WebLogic server:
 Enter password to boot WebLogic server:

Para evitar isso e possibilitar a criação de scripts automáticos para inicialização do domínio WebLogic, é necessário criar um arquivo: boot.properties. Crie o arquivo em DOMAIN/servers/AdminServer/security/boot.properties com o seguinte conteúdo:

username=usuario
password=senha

Substitua o “usuario” e “senha” pelo respectiva usuário e senha. Agora é só iniciar o WebLogic e você verá a seguinte linha no log.

<Jan 2, 2012 5:23:22 PM BRST> <Notice> <Security> <BEA-090083> <Storing boot identity in the file: /u01/Oracle/Middleware/user_projects/domains/wc_only_domain/servers/AdminServer/security/boot.properties>

Após o server subir, o arquivo será criptografado e a senha não será mais necessária!

Habilitando Cookies Seguros no WebLogic

Em requisições HTTPS que utilizam cookies é importante habilitar a flag SECURE=”TRUE” nos cookies. Para realizar isso no WebLogic, é necessário adicionar as seguinte linha no weblogic-application.xml

<wls:session-descriptor>
<wls:cookie-secure>true</wls:cookie-secure>
</wls:session-descriptor>

E garantir que no console do weblogic esteja marcado o seguinte: Domain -> Configuration -> Web Application tab, enable “Auth Cookie Enabled”

Para garantir, abrir o config.xml do weblogic e adicionar/alterar a tag:

<auth-cookie-enabled>true</auth-cookie-enabled>

Mais informações: http://www.owasp.org/index.php/OWASP_AppSec_FAQ#What_are_these_secure_cookies.3F

Desabilitar o Autocompletar em Campos Input

Em campos de login, senha, número de cartão de crédito, CPF e informações que não podem ser compartilhada com usuários mal-intencionados é uma boa prática incluir o seguinte atributo AUTOCOMPLETE=”off”.

Dessa forma o autocompletar fica desabilitado e o browser não salva a senha do usuário.

Exemplo:

<input type="text" name="campo" autocomplete="off" />

Como esse atributo não é válido pela W3C o pessoal costuma inserir o autocomplete=”off” via javascript:

// Utilizando JQuery
jQuery('campo').attr('autocomplete','off');
// Ou Javascript padrão
campo.setAttribute('autocomplete','off');

Pode-se utilizar a solução do javascript para adicionar esse atributo em campos do ADF e/ou elementos onde não temos acesso direto ao código HTML gerado.

Mais informações sobre a vulnerabilidade em:

https://www.owasp.org/index.php/Testing_for_Vulnerable_Remember_Password_and_Pwd_Reset_%28OWASP-AT-006%29

Manipulando Token de Segurança

qrcodeEsses dias tive um desafio bem bacana, que foi gravar e ler informações em um dispositivo de segurança programado em Java. O dispositivo é o Alladin eToken Pro 72K (Java).

eToken

eToken

Utilizei ele para autenticação de duas vias, conforme descrito nesse post, mas foi necessário armazenar algumas informações de segurança para aderir a requisição de um cliente na implantação dos requisitos impostos pelo PCI Security Standards Council na criptografia de dados, para não cair na mesma falha que a Playstation Network.

««« Clique aqui para ler o restante do conteúdo: Manipulando Token de Segurança »»»

Crivo de Eratóstenes

qrcodeOs números primos possuem várias aplicações, como criptografia e segurança dos dados (por exemplo: SSL, X509, certificados, chaves privadas, ..), e a obtenção deles de forma eficiente sempre foi alvo de estudo dos matemáticos.

O Crivo de Eratóstenes é um algoritmo muito simples e eficiente para gerar números primos. Esse algoritmo consiste em remover os múltiplos de um determinando conjunto.
Por exemplo, quero achar todos os números primos de 1 a 120. O algoritmo gera um conjunto com todos os números de 2 a 120 (já que 1 não é primo). Utiliza o primeiro número (que no caso é 2), e vai removendo os múltiplos: 4, 6, 8, 10, …. e marca o 2 como primo, procura o próximo não removido que é o 3, marca como primo, e vai removendo os múltiplos se não foram removidos anteriormente: 6, 9, 12, 15… Ele vai fazendo isso até raiz quadrada do número máximo que você quer verificar. Se a raiz não é inteira, truncamos (menor inteiro). No nosso exemplo, raiz quadrado de 120, que fica entre 10 e 11 e portanto só precisamos verificar os múltiplos até 10. Garantindo que buscamos por todos os múltiplos possíveis até 120.

««« Clique aqui para ler o restante do conteúdo: Crivo de Eratóstenes »»»

Seu Site como Aplicação no Android

qrcodeAntes de fazer sua primeira aplicação para o Android, é necessário seguir os procedimentos descritos nesse post. Além disso, para os testes você precisará criar um AVD, a descrição de como fazer isso, pode ser encontrada no conteúdo desse post.

Abra o Eclipse, File, New, Project. Escolha Android Project Using Studio for Android se você instalou o MOTODEV Studio ou Android Project caso contrário. Clique em Next.

New Project

New Project

««« Clique aqui para ler o restante do conteúdo: Seu Site como Aplicação no Android »»»

Criando Key Store no WebLogic

Um keystore é um repositório de certificados, normalmente utilizado para criptografia SSL. No WebLogic server a extensão desse arquivo é jks. Para manipular um keystore utilizamos a ferramenta keytool.

Execute o utilitário keytool. No meu caso, como estou configurando o Oracle IRM, o alias tem nome “oracle.irm.wrap” e o keystore “irm.jks”. Você pode alterar o tipo de algoritmo (estou utilizando RSA) e o tamanho da chave (2048). Consulte as opções na documentação do keytool. Mude de acordo com sua necessidade.

keytool -genkeypair -alias oracle.irm.wrap -keyalg RSA -keysize 2048 -keystore irm.jks

Informe a senha e o que ele for perguntando. Como estou utilizando para testes, informei tudo o default (Unknown). Pronto Key Store gerado, agora você pode utilizar o JKS criado onde ele for necessário :) .

Muitos arquivos abertos?

Em aplicações de grande porte, como servidores JEE, o número de arquivos e processos abertos pode ser relativamente grande. Isso ocasiona um problema em alguns sistemas Linux, pois o número de arquivos  e processos abertos por usuário é limitado e uma das mensagens de erro que você poderá encontrar será: “Too many open files”.

Isso ocorre ao utilizar o Oracle SOA Suite no Ubuntu, portanto é uma boa prática realizar esses procedimentos antes da instalação.

O primeiro passo é criar um novo arquivo na pasta /etc/sysctl.d ou adicionar a seguinte linha no arquivo /etc/sysctl.conf:

fs.file-max = 100000

Onde 100000 é o número máximo de arquivos que o kernel do linux pode manipular. Após feito isso, edite o arquivo /etc/security/limits.conf e adicione as seguintes linhas:

thiago soft nproc 2047
thiago hard nproc 16384
thiago soft nofile 1024
thiago hard nofile 65536

Substitua thiago pelo usuário que você está executando os processos. Na terceira coluna, nproc é o número máximo de processos abertos para o usuário e nofile é o número máximo de arquivos abertos para o usuário. Dẽ uma lida no início do arquivo que há explicações sobre cada parâmetro.

Reinicie o computador ou recarregue as alterações com o comando:

sysctl -p

Caso o erro persista, altere os valores de número de processos e número de arquivos abertos.

Próxima Página »