Create a Post
cancel
Showing results for 
Search instead for 
Did you mean: 
jorgeluiznim
Advisor

[PT-BR] Application Control Deep Dive: Appscan, Reputation Service e Developer Protection

Artigo 15 da série Harmony Endpoint Deep Dives · Nota sobre a gestão: o Harmony Endpoint é gerenciado na nuvem pelo Infinity Portal (Web Management). O Application Control fica em Policy > Access & Compliance > Application Control, e os apps em Manage > Manage Applications.

Quase todo projeto de allow-listing morre do mesmo jeito. Alguém bloqueia aplicações pelo nome, o atacante renomeia malware.exe para notepad.exe e o controle vira teatro. O Application Control não entra nesse jogo: ele identifica cada programa por um checksum infalsificável, e não pelo nome. Binário renomeado não engana ninguém. O resto do blade só merece confiança por causa dessa decisão de projeto, então tudo abaixo parte dela.

RESUMO
A identidade é por checksum, não por nome. O inventário nasce do scan de uma máquina de referência limpa com o Appscan. Cinco estados de permissão decidem entre allow, block e terminate. O Reputation Service aperta os seus padrões de "unidentified", mas nunca passa por cima de uma regra explícita. O Terminate mata o processo, não só a porta. E o Developer Protection impede que segredos cheguem ao Git.

O que você precisa antes de começar: um reference computer livre de malware por imagem padrão (para o Appscan) e o básico da política de Access & Compliance (Artigo 1). Só isso.


Duas coisas que o tornam confiável

O Application Control restringe o acesso à rede das aplicações que você escolher, e pode dar allow, block ou terminate em um processo, inclusive matá-lo no momento em que ele tenta alcançar a rede. Dois mecanismos sustentam isso:

  • Identidade por checksum: cada aplicação e versão tem um checksum único e infalsificável, então um programa malicioso não consegue se passar por um inofensivo.
  • Reputation Service (o antigo Program Advisor): serviço online que classifica apps como approved ou not approved, com base nos especialistas da Check Point e no hash do certificado assinado do app.

Montando o inventário com o Appscan

Você não digita nomes de aplicação. Você escaneia um reference computer, uma imagem controlada e livre de malware com os apps típicos da organização, uma por build padrão. O fluxo é este:

diag1-appscan-workflow.gif

 

O Appscan é uma ferramenta de CLI. No console cloud você baixa em Policy > Access & Compliance > Manage > Manage Applications > Download Appscan (também na sk108536) e roda no dispositivo de referência. Sintaxe básica:

Appscan [/o<filename> /s<targetdirectory> /x<extensionstring> /e /a /p /verbose /warnings /?]

/o define o arquivo de saída (padrão scanfile.xml), e cada aplicação e versão recebe o seu checksum. Um cuidado antes de importar o XML: remova os caracteres especiais (símbolos de trademark e copyright), ou a importação pode falhar.


Os cinco estados de permissão

Todo app do inventário está em um destes cinco estados:

Permissão Significado
Unidentified (Allow) Importado, não classificado, permitido porque o padrão é "Allow unidentified applications"
Unidentified (Block) Importado, não classificado, bloqueado porque o padrão é "Block unidentified applications"
Allow Permitido explicitamente pelo admin, sobrescreve o Reputation Service
Block Bloqueado explicitamente pelo admin, sobrescreve o Reputation Service
Terminate O app é terminado ao tentar alcançar a rede, ou imediatamente ao executar
  • A Allowed Applications List é Unidentified (Allow) mais Allow, e os usuários só podem usar esses.
  • A Blocked Applications List é Unidentified (Block) mais Block mais Terminated.
  • A seção Versions mostra o número, o Hash (signer) e a data Created On de cada versão, então dá para permitir uma versão de um programa e bloquear outra.

Como o Reputation Service inclina os padrões

Esta é a parte que vale acertar. Com o Reputation Service ligado, o client combina a recomendação dele com a permissão da sua política:

Reputation Setting da política Decisão do client
Approved Unidentified (Allow/Block) ou Allow Allow
Approved Block Block
Not Approved Unidentified (Allow/Block) ou Block Block
Not Approved Allow Allow

Lendo a tabela com calma, saem duas regras:

  • Um app em Unidentified (Allow) que o Reputation marca como Not Approved acaba bloqueado. A reputação aperta o seu padrão frouxo, e é isso que você quer.
  • Um Allow ou Block explícito sempre vence. A reputação nunca derruba uma decisão que você tomou de propósito.

Minha opinião: ligue. Você ganha o "bloqueie os desconhecidos ruins" sem classificar à mão cada ferramenta da empresa, e as suas regras deliberadas continuam mandando. Uma nota da era cloud: o Reputation Service é alcançado pela nuvem da Check Point, então o antigo ajuste de proxy no local.properties do on-premises não se aplica. Só garanta que os clients consigam sair para os endpoints de Reputation e ThreatCloud.


Terminate: matando o processo, não só a porta

Configurado em Access & Compliance > Application Control, em dois modos:

  1. Terminate on connection: o app é morto quando tenta alcançar a rede. O que nunca toca a rede (Notepad, Calculator) fica em paz.
  2. Terminate on execution: selecionado por padrão, o app é morto no momento em que executa.

Nota: o Terminate exige que os clients e a política de Compliance estejam configurados para permiti-lo (veja a sk141692). É aqui que o Artigo 14 e este se encontram.


Controle de WSL

O Windows Subsystem for Linux roda binários Linux sob o Windows, uma superfície real e muitas vezes ignorada. O Application Control pode Disable WSL Traffic ou Enable WSL Traffic direto na regra. Se o WSL ainda não entrou no seu allow-listing, este é um bom momento.


Developer Protection: barrando segredos no git commit

Este é o destaque moderno, e o recurso que pouca gente espera achar num produto de endpoint. O Developer Protection impede que desenvolvedores vazem dados sensíveis (chaves RSA, senhas, access tokens) pelo Git, e sinaliza dependências externas vulneráveis (por exemplo em AWS Lambda). Ele atua bem no commit:

diag2-developer-protection.gif

 

Modo Comportamento
Disabled Padrão
Detect Vazamento detectado, registrado em log, desenvolvedor notificado, mas o commit prossegue
Prevent Vazamento detectado, registrado em log, e o commit é bloqueado. O desenvolvedor pode fazer override (com ou sem justificativa), e a notificação ainda sugere a correção: adicionar ao .gitignore, subir a versão no package.json

Num parque de desenvolvedores eu rodaria primeiro em Detect para medir o ruído e depois passaria para Prevent. Barrar uma credencial no commit sai bem mais barato do que rotacioná-la depois que ela chegou a um repositório público.


Como eu faria o rollout

  • Monte o inventário do Appscan a partir de uma imagem de referência limpa por build padrão. Uma referência comprometida envenena o whitelist inteiro, então esta não é a etapa para ter pressa.
  • Habilite o Reputation Service para que os apps unidentified "Not Approved" sejam bloqueados sozinhos, enquanto as suas regras explícitas de Allow/Block continuam valendo.
  • Para allow-listing de verdade, deixe o padrão em Block Unidentified Applications, mas faça um piloto antes. Virar essa chave na empresa inteira no primeiro dia bloqueia ferramenta legítima e enche o helpdesk de chamado.
  • Coloque o Developer Protection em Prevent nas máquinas de desenvolvedor, depois de um período curto em Detect para medir o impacto.

Erros para evitar

Erro Impacto Correção
Escanear um reference computer que não está limpo Malware entra no whitelist Use uma imagem controlada e livre de malware
Importar um XML com caracteres de trademark/copyright A importação falha Remova os caracteres especiais antes
Esperar que o Reputation passe por cima de uma regra explícita Não passa, o Allow/Block do admin vence Use regras explícitas de propósito
Ativar Block Unidentified sem piloto Ferramentas legítimas bloqueadas, enxurrada de chamados Faça piloto e classifique antes os apps comuns
Achar que o Terminate para o Notepad Apps que não usam rede não são terminados O Terminate mira apps que tocam a rede, ou use Terminate on execution

Um caso de troubleshooting

Sintoma: um app marcado como "Unidentified (Allow)" está sendo bloqueado.
Por quê: o Reputation Service o classificou como Not Approved, o que aperta o padrão "Unidentified (Allow)" para Block.
Correção: se você confia no app, coloque-o em Allow explícito (isso sobrescreve a reputação) e confira se o Hash da versão é o que você quer permitir, já que as permissões são por versão.


Respostas rápidas

Quem vence, a minha regra ou a reputação? O seu Allow/Block explícito, sempre. A reputação só decide para apps unidentified.
Block ou Terminate? O Block nega o acesso à rede; o Terminate encerra o processo (ao acessar a rede, ou imediatamente ao executar).
Posso permitir uma versão e bloquear outra? Sim, as permissões são por versão (cada uma tem o seu número e Hash).


Esse é o Application Control de ponta a ponta: identidade por checksum, inventário limpo, reputação apertando os padrões e Developer Protection pegando segredos antes que saiam do notebook. Como você faz allow-listing hoje, com Block Unidentified estrito ou com apoio do Reputation Service? Tenho curiosidade de saber como outros times defendem o piloto internamente.


Relacionados e fontes

  • Compliance Deep Dive, Artigo 14 (o Terminate depende do Compliance configurado)
  • Check Point Harmony Endpoint Administration Guide (cloud / Infinity Portal), Access and Compliance Policy > Application Control (Manage Applications, Appscan, identidade por checksum, estados de permissão, Reputation Service, Terminate, WSL Traffic, Developer Protection)
  • sk108536 (Appscan) e sk141692 (configuração do Terminate)

Harmony Endpoint com gestão cloud (Infinity Portal / Web Management), clients Windows.

0 Kudos
0 Replies

Leaderboard

Epsum factorial non deposit quid pro quo hic escorol.

Upcoming Events

    CheckMates Events