Segurança no Oracle 10G - Top 5 Basic Security | Blog do DBA/Instrutor Fábio Prado
Seguem abaixo os 5 principais itens de segurança básica (indicados pela Oracle) para aumentar o nível de segurança em Bancos de Dados Oracle 10G:
SELECT 'REVOKE EXECUTE ON ' || OBJECT_NAME || ' FROM PUBLIC;'
WHERE OBJECT_NAME IN ('UTL_SMTP','UTL_TCP','UTL_HTTP','UTL_FILE','DBMS_OBFUSCATION_TOOLKIT')
AND O.OWNER = 'PUBLIC'
FOR cur_rec IN (SELECT o.owner,
INNER JOIN dba_source s
ON s.owner = o.owner
AND s.type = o.object_type
WHERE OBJECT_NAME NOT IN ('UTL_SMTP','UTL_TCP','UTL_HTTP','UTL_FILE','DBMS_OBFUSCATION_TOOLKIT')
AND S.OWNER != 'SYS'
AND (UPPER(S.TEXT) LIKE UPPER('%UTL_SMTP%')
OR UPPER(S.TEXT) LIKE UPPER('%UTL_TCP%')
OR UPPER(S.TEXT) LIKE UPPER('%UTL_HTTP%')
OR UPPER(S.TEXT) LIKE UPPER('%UTL_FILE%')
OR UPPER(S.TEXT) LIKE UPPER('%DBMS_OBFUSCATION_TOOLKIT%'))
GROUP BY o.owner
Obs. 2: O bloco PL/SQL acima não gera os privilégios necessários para objetos compilados em código nativo ou objetos wrapped. O procedimento necessário para estes casos não é abordado neste artigo, portanto tenha muito cuidado ao executar este item, pois se o Banco de Dados tiver objetos wrapped ou compilados em código nativo, estes objetos ficarão inválidos e poderão impedir o funcionamento de sistemas que dependem deles. Para mais informações consulte os links: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/wrap.htm e http://www.oracle-base.com/articles/11g/PlsqlNewFeaturesAndEnhancements_11gR1.php#native_compilation.
c) Executar os comandos do script gerado no passo "a" e em seguida executar o script gerado no passo "b".
Verificar o valor do parâmetro de sistema UTL_FILE_DIR. Se este parâmetro tiver um valor apontando para um ou mais diretório(s) do sistema de arquivos, configure no Sistema Operacional, privilégios de gravação reduzidos (valor de cota máxima de gravação em disco) neste(s) diretório(s) para o usuário do SO que executa os processos do Oracle (normalmente usuário "oracle"). Se isso não for possível, pode-se configurar no parâmetro UTL_FILE_DIR um diretório em um volume lógico separado do volume lógico em que estão os arquivos e software Oracle. Isso reduz o risco de um script malicioso ser executado no BD para gravar arquivos nesta pasta até estourar o limite de tamanho do volume lógico e "parar" o Banco de Dados quando o volume lógico "estourar".
Se for desejado "limpar" (apontar para nenhum diretório) o parâmetro UTL_FILE_DIR, para aumentar o nível de segurança, execute os comandos abaixo para alterá-lo e reiniciar o Banco de Dados:
RodrigoAlmeida segunda-feira, 20 dezembro, 2010
Parabéns Fábio pelo blog e conteúdo apresentado.
Obrigado Rodrigo. Também parabenizo o seu blog (que já está incluso há um bom tempo na MINHA LISTA DE BLOGS).