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

Migração de Código Crítico: A Propriedade com.glide.script.packages_call_removal e o Risco de Usar Java Direto

 

Gemini_Generated_Image_iy9jfiiy9jfiiy9j.png

 

1. Introdução: O Risco de Burlar o Escopo

 

No passado, os desenvolvedores do ServiceNow frequentemente recorriam a chamadas diretas a pacotes Java usando a sintaxe Packages.com.glide... para estender a funcionalidade da plataforma.

Embora funcionais, essas chamadas representam um grande risco de segurança e instabilidade. Eles contornam as camadas de proteção de API suportadas, comprometendo a capacidade da ServiceNow de garantir a estabilidade do seu código durante upgrades e expondo a instância a vulnerabilidades.

A propriedade com.glide.script.packages_call_removal e a ferramenta que a acompanha são essenciais. Elas servem como a linha de frente para a migração, ajudando a identificar e substituir chamadas a classes Java que foram descontinuadas, não-suportadas ou que apresentam alto risco de segurança nas versões mais recentes da plataforma.

 

2. Por Que Usar Packages Calls é uma Má Prática?

 

O problema central não é o Java em si, mas o acesso não governado a ele:

  • Instabilidade em Upgrades: A ServiceNow pode remover ou alterar classes Java internas a qualquer momento, pois elas não fazem parte do contrato de API público. Isso quebra scripts que dependem delas.

  • Vulnerabilidade de Segurança: O acesso direto a pacotes Java não honra as proteções do Application Scope (Escopo de Aplicação), podendo expor o Scripting Engine a APIs perigosas.

  • Ameaça no SSC: O Security Center (SSC) monitora o uso de pacotes Java não aprovados (visível em Restrict Allowed Java Packages), indicando que o seu código está fora de conformidade com os padrões de hardening.

 

3. A Ferramenta de Remoção de Chamadas de Pacotes (Packages Call Removal Tool)

 

Ao ser ativada, a ferramenta associada à propriedade com.glide.script.packages_call_removal executa uma auditoria crítica em toda a sua instância, com três funções principais:

  1. Identificação e Escaneamento: Examina todos os campos de scripts (Business Rules, Script Includes, etc.) que podem conter chamadas Packages..

  2. Localização Precisa: Encontra exatamente quais linhas de código estão utilizando classes Java obsoletas ou descontinuadas.

  3. Propostas de Correção: Oferece sugestões de substituição para migrar o código de uma chamada insegura (Packages) para uma API Glide equivalente e suportada.

 

4. Guia de Migração: Substituindo o Código Inseguro

 

A boa notícia é que a ServiceNow oferece APIs Glide robustas e seguras para substituir a maioria das chamadas diretas a pacotes Java.

A migração é simples: Substitua a sintaxe longa e insegura por um equivalente Glide Global ou Scoped API.

Comando Bloqueado/Obsoleto Novo Comando (Suportado) Função
Packages.com.glide.util.StringUtil.format(...) GlideStringUtil.format(...) Formatação e Manipulação de String.
Packages.com.glide.security.Encryption.encrypt(...) GlideSecurity.encrypt(...) Funções de Criptografia e Segurança.
new Packages.com.glide.schedules.Schedule(...) new GlideSchedule(...) Gestão de Agendamentos e Calendários.
Packages.com.glide.zip.ZipUtil.compress(...) GlideZipUtil.compress(...) Compressão e Descompressão de Arquivos Zip.

 

5. Conexão com o Security Center (SSC)

 

Este processo é um pilar do seu Hardening Score no Security Center.

O SSC monitora as tabelas sys_whitelist_member e sys_whitelist_package. Se essas tabelas contiverem entradas de pacotes não aprovados, o SSC o alertará sobre a exposição de APIs perigosas ao Scripting Engine, o que causa instabilidade e insegurança.

 

Ação de Conformidade: Ao utilizar a ferramenta packages_call_removal e substituir as chamadas obsoletas, você garante que sua lista de pacotes permitidos esteja limpa e alinhada com as APIs seguras e suportadas, elevando seu Hardening Score.

 

tiagomacul_0-1763158646967.png

tiagomacul_1-1763158658919.png

tiagomacul_2-1763158673500.png

tiagomacul_3-1763158688044.png

 

 

tiagomacul_4-1763158695701.png

 

tiagomacul_5-1763158752959.png

 

tiagomacul_6-1763158763529.png

tiagomacul_7-1763158770698.png

 

tiagomacul_8-1763158782796.png

 

 

Conclusão

 

A propriedade com.glide.script.packages_call_removal não é apenas uma ferramenta para preparar sua instância para o próximo upgrade; ela é uma ferramenta de governança de segurança.

Ao migrar sistematicamente de chamadas diretas a pacotes Java para as APIs Glide suportadas, você garante que seus scripts não apenas funcionem, mas que também sejam sustentáveis, seguros e auditáveis, cumprindo os mais altos padrões de segurança exigidos pela ServiceNow e pelo seu Security Center.

 

 

tiagomacul_9-1763158800768.jpeg

 

 

tiagomacul_11-1763158967020.jpeg

 

 

 

 

tiagomacul_10-1763158816919.png

 

 

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