Como qualquer usuário do Oracle poderá exercer os privilégios concedidos a PUBLIC, revogue os privilégios desnecessários do grupo de usuários PUBLIC do banco de dados.
Esses privilégios incluem o privilégio de EXECUTE em várias packages (PL/Sql) a qual permite que os usuários executem. Varias packages já são instaladas com privilégio PUBLIC, seguindo o princípio de privilégio mínimo, o DBA deverá revogar os privilégios concedendo somente os que forem necessário para utilização da aplicação.
Logado como SYSTEM, use a consulta a seguir para listar os objetos pertencentes a SYS que tem privilégio EXECUTE concedido a PUBLIC.
SELECT table_name
FROM DBA_TAB_PRIVS
WHERE owner = 'SYS'
AND privilege = 'EXECUTE'
AND grantee = 'PUBLIC';
Vários packages DBMS_* e UTL_* foram listados né? segue alguns dos packages mais avançados que podem ser usados de forma incorreta pelos usuários.
- UTL_SMTP - Permite que mensagens de e-mails sejam enviadas, o privilégio nessa package pode permitir a troca não autorizada de mensagens via e-mail.
- UTL_TCP - Permite que o servidor estabeleça conexão de rede de saída com qualquer serviço de rede de recepção ou em espera, esse privilégio permite que sejam enviados dados entre servidores e qualquer serviço de rede em espera.
- UTL_HTTP - Permite que o servidor solicite e recupere dados via HTTP, a permissão a essa package, permite que dados sejam enviados por HTML a um WEB site mal-intencionado.
- UTL_FILE - Se tiver sido configurado de forma incorreta, permite acesso ao texto de qualquer arquivo localizado no Sistema Operacional, com essa permissão o usuário poderá gravar dados arbitrários no mesmo local gravado por outro.
- DBMS_OBFUSCATION_TOOLKIT - Criptografa os dados, em hipótese nenhuma usuários devem ter acesso a criptografia de dados, pois os dados criptografados não poderão ser recuperados se as chaves de criptografia não forem gerenciadas e armazenadas de forma segura.
Essas packages são muito úteis para aplicações que necessitem do serviço delas, porem devem ser atribuídas as permissões aos usuários de forma adequada para garantir a segurança.
Segue o exemplo de como revogar um privilégio a uma package PUBLIC
REVOKE execute on utl_file FROM PUBLIC;
Até a próxima........
Nenhum comentário:
Postar um comentário