Pular para o conteúdo
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #86213
    dbcana
    Participante

      Buenas!

      Primeiramente permitam que me apresente, já que este é meu primeiro post: Daniel Caña, 32 anos, desenvolvedor WEB (PHP) com aspirações de seguir carreira como DBA Oracle, residente na grande Porto Alegre/RS.

      Bueno, o motivo do post é que acidentalmente me deparei com uma falha de segurança no OracleXE que não consigo corrigir.

      Um amigo que tem um XE instalado em sua empresa demitiu seu ‘DBA’ (entenderão o pq das aspas no relato) e este último não deixou a senha do usuário SYS. Sabendo que eu havia feito curso de DBA Oracle, meu amigo solicitou meu auxílio.

      Até aí tudo OK, gerei no servidor um novo arquivo pwd e me loguei como sysdba. Alterei a senha do user sys, executei as verificações de rotina (botei o banco em modo archive, multiplexei controlfile, datafiles e redologs, verifiquei os arquivos de trace e alert e por último fiz um backup – que até então não havia ¬¬).

      Após deixar o banco redondo, fui verificar seu funcionamento como um usuário normal. Porém, ao efetuar o login no SQLPlus (por puro costume e por conta do vício de digitação, confesso) coloquei após a senha um ‘as sysdba’ e dei um enter. Obviamente, após dar o enter e me dar por conta da ‘boca-abertice’, comecei a me auto-flagelar verbalmente (hehehe) mas, para meu espanto, recebi a resposta do SQLPlus ‘connected!’.

      Verifiquei se aquilo estava correto e se o usuário tinha mesmo privilégios administrativos. TINHA! Fiz outros testes, com outros usuários, inventei senhas diferentes para o usuário sys e TODAS ERAM ACEITAS QUANDO ACOMPANHADAS DE ‘as sysdba’. O mais incrível, mesmo quando eu usava um nome de usuário inexistente este usuário era criado com privilégios administrativos.

      Alguém saberia me dizer como corrigir este furo, digo, rombo de segurança?… Verifiquei a literatura do curso, mas não há nenhuma referência a um caso semelhante, apenas alusão ao parâmetro REMOTE_LOGIN_PASSWORDFILE que, independente de seu valor, não resolveu o problema.

      Abraços,

      Daniel

      #86214
      Rodrigo Almeida
      Participante

        Daniel,

        Sinceramente, eu ainda não conhecia essa brecha de segurança, e se realmente existe, é uma avenida e não uma brecha!!! rs rs.

        Seguinte, somente para testes, qual a versão do seu Oracle XE (Universal, West Europe e etc), Release, e os seguintes valores de parÂmetros.

        Qual o valor do parâmetro remote_login_passwordfile?
        Qual o resultado do select * from v$pwfile_users;
        Qual o comando para criar o arquivo de senha?

        E outra dúvida (da minha parte), se eu realizo as tarefas abaixo:

        1) create user rodrigo identified by rodrigo;

        2) grant create session to rodrigo;

        3) DISCONNECT; <– MUITO IMPORTANTE

        3) conn rodrigo/rodrigo@nome_do_tns as sysdba

        4) shutdown immediate;

        A sequência acima é possível realizar?

        Caso contrário, se você se logou na máquina, e se conectou com SYS, automaticamente, tu pode colocar qualquer coisa, conn dadada/dedede as sysdba que vai conectar-se, e após isso, dê um show user, irá perceber que está como SYS. Mas tem explicação.

        Abraços,[/b]

        #86218
        Ishii
        Participante

          Olá,

          Na verdade não sei classificar se é realmente uma brecha ou uma falha na instalação do XE. No caso do XE sobre Windows é criado um Grupo ORA_DBA e no Gerenciamento do Computador (Painel de Controle >> Ferramentas Administrativas >> Gerenciamento do Computador >> Ferramentas do Sistema >> Usuários e Grupos Locais >> Grupos – aff) você vai notar que existe um grupo ORA_DBA e que alguns usuários ou apenas o Adm da Máquina estão nele.

          Com essa configuração a validação dos usuários é feito pela OS também e no caso do XE quando colocado a opção “as sysdba” informando apenas o slash “/” ou barra. Faça alguns testes:

          1) Abra o prompt do DOS digite: sqlplus /nolog
          2) No prompt do SQL digite: connect / as sysdba
          3) Você estará conectado como SYS por que a autenticação foi feita pela validação do usuário no Grupo ORA_DBA

          Teste 2
          1) Vá no Grupo ORA_DBA (conforme o longo caminho acima) e remova todos os usuários
          2) Tente novamente o teste acima… deve retornar mensagem de privilégios insuficientes… (se não retornar então o erro é mais grave ainda)

          O que acontece com essa validação via OS? Ele simplesmente ignora o user e o password e prevalece o slash e a expressão “as sysdba”. Se você notou ele sempre conecta como SYS….

          Espero ter ajudado.

          []s Ishii

          #86222
          Rodrigo Almeida
          Participante

            Exatamente isso Ishi.

            Por isso eu mandei ele forçar os testes passando por uma autenticação atráves do TNS.

            Explicação perfeita.

            Abraços,

            Rodrigo Almeida

            #86224
            dbcana
            Participante

              Buenas!

              Realmente, o user está como SYS… E conferi o grupo de usuários com privilégios administrativos também (e sim, estou entre eles… huahuahua)

              Grato pelo esclarecimento, Rodrigo e Ishii, vou tomar as providências para não permitir mais essa abertura.

              Forte abraço,

              Daniel

              #86225
              Rodrigo Mesquita
              Participante

                Acredito que o problema é exatamente como o Ishi falou. Ele não está validando seu usuário e senha. Ele está validando pelo OS. Se vc tentar conectar por um cliente não irá conseguir.

                Neste arquivo abaixo tem falando sobre a configuração do parametro responsável pela autenticação via os.

                http://www.oracle-base.com/articles/mis … cation.php

                #86229
                dbcana
                Participante

                  Buenas!

                  Bá, Mesquita, teu post veio na hora certa… Eu ia mesmo perguntar como configurar se houvesse a mesma falha no Linux… hehehe

                  Abraços,

                  Daniel

                Visualizando 7 posts - 1 até 7 (de 7 do total)
                • Você deve fazer login para responder a este tópico.