Pular para o conteúdo

Trocar porta de Listener é uma medida de segurança?

Trocar porta de Listener é uma medida de segurança?

Alguns analistas de segurança consideram a simples troca de porta de uma aplicação (no caso do Oracle Database, a porta do Listener) uma estratégia sem efeito para a segurança. Eu já tive esta opinião, mas hoje em dia acho que a segurança deve ser aplicada em camadas, e toda dificuldade que possa ser criada para um potencial invasor, é válida, mesmo causando um maior custo em administração e Troubleshooting.

Obviamente que uma pessoa mal intencionada e com um pouco de conhecimento pode descobrir facilmente qual a nova porta do Listener, como também é demonstrado neste exemplo. Mas a intenção desta tática é despistar um invasor que faz tentativas na porta padrão em diversos Hosts, sequencialmente, tentando um acesso com senhas padrão. Já um invasor que queira acesso ao Oracle deste Host não será impedido por esta técnica.

Server:
 [oracle@Oracle-01 ~]$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
 # listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
 # Generated by Oracle configuration tools.
 
 LISTENER =
  (DESCRIPTION_LIST =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = Oracle-01.localdomain)(PORT = 8000))
  )
  )
 
 SID_LIST_LISTENER=
  (SID_LIST=
  (SID_DESC=
  (SID_NAME=ORCL)
  (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)))
 
 ADR_BASE_LISTENER = /u01/app/oracle
 
 [oracle@Oracle-01 ~]$ lsnrctl status
 
 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-SEP-2010 12:15:24
 
 Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 
 Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Oracle-01.localdomain)(PORT=8000)))
 STATUS of the LISTENER
 ------------------------
 Alias                     LISTENER
 Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
 Start Date                27-SEP-2010 12:08:20
 Uptime                    0 days 0 hr. 7 min. 3 sec
 Trace Level               off
 Security                  ON: Local OS Authentication
 SNMP                      OFF
 Listener Parameter File   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
 Listener Log File         /u01/app/oracle/diag/tnslsnr/Oracle-01/listener/alert/log.xml
 Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Oracle-01.localdomain)(PORT=8000)))
 Services Summary...
 Service "ORCL" has 1 instance(s).
  Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
 The command completed successfully
 [oracle@Oracle-01 ~]$
Client:

ricardo@ricardo-laptop:~$ cat $ORACLE_HOME/tnsnames.ora

ORCL =

 (DESCRIPTION =

 (ADDRESS_LIST =

 (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.56.105)(PORT = 8000))

 )

 (CONNECT_DATA = (SID = ORCL))

 )

ricardo@ricardo-laptop:~$ sqlplus SCOTT/TIGER@ORCL

SQL*Plus: Release 11.2.0.2.0 Production on Mon Sep 27 12:49:57 2010

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

SQL> EXIT

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, Oracle Label Security, OLAP, Data Mining,

Oracle Database Vault and Real Application Testing options

ricardo@ricardo-laptop:~$ nmap -sV 192.168.56.105

Starting Nmap 5.21 ( http://nmap.org ) at 2010-09-27 12:50 BRT

Nmap scan report for 192.168.56.105

Host is up (0.0016s latency).

Not shown: 997 closed ports

PORT     STATE SERVICE    VERSION

22/tcp   open  ssh        OpenSSH 4.3 (protocol 2.0)

111/tcp  open  rpcbind

8000/tcp open  oracle-tns Oracle TNS Listener

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 23.84 seconds

ricardo@ricardo-laptop:~$

Ricardo Portilho Proni

Ricardo Portilho Proni

Com 20 anos de experiência profissional, Oracle ACE Member – eleito pela Oracle Corporation um dos maiores especialistas do mundo em Oracle Database- Trabalhou em grande parte dos maiores bancos de dados Oracle do Brasil. Certificado em Oracle, SQL Server, DB2, MySQL, Sybase e Websphere. Conselheiro do GPO e do GUOB, palestrante do ENPO, GUOB Tech Day e Oracle Open World, escritor da Revista SQL Magazine e Instrutor na Nerv.

Comentário(s) da Comunidade

  1. Portilho,

    Acho que o principal motivo de recomendar trocar a porta do listener é “dificultar” um pouco a identificação de um Oracle na rede (conforme você mesmo disse), mas isso deve atrasar o hacker a invadir o banco uns 15 minutos. 🙂 Se o usuário malicioso alterar um pouco os parâmetros do scanner de rede que ele estiver fazendo, ele consegue descobrir facilmente o Oracle.

    Em relação as camadas de segurança, é isso ai. O listener tem algumas funcionalidades legais para garantir a segurança do banco, desde por exemplo, o uso de senha (para versões anteriores a 10g) até a configuração do listener para “ouvir” apenas alguns IPs da rede (esse é muito legal, trabalhoso, mas legal).

    Existe uma forma de alterar o glogin.sql através de uma vulnerabilidade do log do listener. Muito interessante!! Dá uma pesquisada na net.

    Enfim, parabéns pelo post. Dificilmente vejo pessoas postando aqui referente a este tipo de segurança. Digo isso pois sou analista de segurança em banco de dados. 🙂

    Abraços.

  2. O Rodrigo, tudo bem?
    Realmente, a dificuldade é bem pequena, mas o jogo é causar toda dificuldade que podemos, e ganhar uns minutinhos que sejam.
    Vou fazer uns testes com as novas funcionalidades e vulnerabilidades do listener, em breve. Essa do glogin deve ser muito legal de testar.

    Obrigado pelo comentário.
    Grande abraço !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress