Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

tiagomacul
Giga Sage

A Blindagem Contra o Vazamento de Dados – Por Que Desativar Mensagens de Erro SQL é Essencial?

 

1. Introdução: O Risco Inadvertido de Erros Detalhados

 

No ambiente de TI, um erro é uma informação valiosa para o desenvolvedor. No entanto, em um ambiente web voltado para o usuário, um erro detalhado é um presente para um atacante.

Quando um script ou uma consulta falha no ServiceNow, a plataforma tem a capacidade de exibir a mensagem de erro SQL bruta que veio do banco de dados subjacente. Embora isso ajude no debug, expõe informações críticas sobre a estrutura interna do seu banco de dados (nomes de tabelas, campos, lógica de queries e até mesmo o dialeto SQL).

A desativação dessas mensagens através da propriedade glide.db.disable_sql_error_messages é uma medida de segurança de primeira linha que protege sua instância contra tentativas de SQL Injection e ataques de Vazamento de Esquema (Schema Leakage).

 

2. O Perigo da Informação Exposta

 

Por que um erro SQL detalhado é perigoso?

  • Ajuda ao Atacante: Um "h a c k e r" que tenta realizar um ataque de SQL Injection (tentando inserir código SQL malicioso através de campos de entrada) depende do feedback do sistema. Se o sistema retornar uma mensagem de erro SQL completa, o atacante pode usar essa informação para:

    • Mapear o Esquema: Descobrir os nomes exatos de tabelas e colunas no seu banco de dados (Ex: u_tabela_dados_pessoais, sys_user_password_history).

    • Aperfeiçoar o Ataque: Corrigir a sintaxe da sua query maliciosa até que ela funcione, burlando a segurança.

  • Violação de Boas Práticas: A exibição de detalhes técnicos internos para o usuário final viola o princípio do Mínimo Vazamento de Informação, uma regra de segurança crítica.

 

3. A Solução: Desativando Mensagens de Erro SQL

 

O ServiceNow permite que você controle este vazamento de informação através de uma propriedade de sistema:

 

Propriedade Principal:

 

Propriedade Função Valor Recomendado
glide.db.disable_sql_error_messages Controla se as mensagens de erro SQL detalhadas serão suprimidas. true

Ao definir esta propriedade como true, qualquer erro SQL que ocorrer será interceptado e exibido ao usuário com uma mensagem genérica de erro (Ex: "Ocorreu um erro. Entre em contato com o suporte."), negando ao atacante o feedback necessário para continuar o ataque.

 

Propriedade Complementar (Boas Práticas):

 

Além disso, é crucial verificar outra propriedade mencionada nas melhores práticas de segurança:

Propriedade Função Valor Recomendado
glide.db.loguser Controla se os detalhes do usuário (nome, IP) são incluídos nos logs de SQL. false

Garantir que ambas as propriedades estejam configuradas para desativar logs e mensagens de erro é o padrão de segurança mais alto.

 

Como Configurar o Parâmetro Disable SQL Error Messages

Para configurar o parâmetro Disable SQL Error Messages no ServiceNow, siga os passos abaixo:

Acesse o ServiceNow: Faça login na sua instância do ServiceNow com uma conta de administrador.

  1. Navegue para Configurações de Sistema:
  • No menu de navegação, vá até Admin > Security center.
tiagomacul_0-1763417707135.png

 

Localize em Top non-compliant hardening settings no fim da lista, View all:

Press enter or click to view image in full size
tiagomacul_1-1763417707524.png

 

Clique no filtro

tiagomacul_2-1763417707084.png

 

Clique em Advanced View

tiagomacul_3-1763417707293.png

 

Selecione o campo “Name”

tiagomacul_4-1763417707028.png

 

O operador IS

tiagomacul_5-1763417707035.png

 

E digite o nome “Disable SQL Error Messages”

tiagomacul_6-1763417707009.png

 

e clique em update

tiagomacul_7-1763417707015.png

 

Seu filtro ficará da seguinte maneira

Press enter or click to view image in full size
tiagomacul_8-1763417707141.png

 

e assim você irá localizar o parâmetro

Press enter or click to view image in full size

 

Clique no parâmetro e assim irá ver

Press enter or click to view image in full size
tiagomacul_10-1763417707075.png

 

Altere o valor conforme a recomendação

Set property ‘glide.db.loguser’ to false.

ficará desta forma

Press enter or click to view image in full size

 

clique em update

 

e assim seu parâmetro estará compliant

Press enter or click to view image in full size

 

 

4. Conformidade e o Security Center (SSC)

 

A desativação de mensagens de erro SQL é um dos itens de Hardening verificados pelo ServiceNow Security Center (SSC).

  • SSC Check: O console de Hardening Settings do SSC verifica ativamente o valor da propriedade glide.db.disable_sql_error_messages.

  • Hardening Score: Manter esta propriedade definida como true contribui diretamente para elevar seu Hardening Score, demonstrando que sua instância está em conformidade com as diretrizes de segurança da plataforma.

  • Mitigação: Ao resolver esta não-conformidade, você está mitigando um risco listado nas categorias de vazamento de informação e proteção contra ataques de injeção.

 

Conclusão: Segurança por Padrão

 

O Enforce Disable SQL Error Messages é um lembrete de que a segurança está nos detalhes. Ao desabilitar o feedback excessivo do sistema, você transforma um potencial vetor de ataque em um obstáculo genérico.

Garantir que sua instância utilize apenas mensagens de erro genéricas para o usuário final é uma etapa essencial para proteger o esquema interno da plataforma, manter o Hardening Score alto e garantir uma postura de segurança robusta.

 

 

tiagomacul_14-1763417763803.jpeg

 

 

 

tiagomacul_15-1763417763789.jpeg

 

 

 

 

 

tiagomacul_16-1763417763882.png

 

 

 

Version history
Last update:
2 hours ago
Updated by:
Contributors